狠狠撸

狠狠撸Share a Scribd company logo
カジュアル勉強会 @仙台
Excelで機械学習入門 第5回
株式会社 エクテック
データサイエンティスト
第10回までの流れ
1回~3回 4回~10回
AI周辺の
基本知識
最適化の基本
推論の基本
重回帰分析
機械学習
サポートベクタマシン
ナイーブベイズ
ニューラルネットワーク
RNN/BPTT
強化学習/Q学習
環境について
(Surroundings)
Excel 2013, 2016
Google Spreadsheets
本日のアジェンダ
1. ニューラルネットワークの基本単位とユニット
2. ユニットを層状に並べたニューラルネットワーク
ニューラルネットワークの
基本単位とユニット
以前ちょっと话したかもですが...
Casual learning machine learning with_excel_no5
ニューラルネットワーク
『シナプスの結合によりネットワークを形成した
??ニューロン(ノード)が、学習によって
シナプスの結合強度を変化させ、
問題解決能?を持つようなモデル全般を指す。
狭義には誤差逆伝播法を?いた多層パーセプトロンを
指す場合もある。?般的なニューラルネットワークでの
??ニューロンは?体のニューロンの動作を極めて
簡易化したものを利?する。』
(Wikipediaより)
?の脳を模した、
数理学に基づいた機械的な処理
『?の脳を模し』た
Casual learning machine learning with_excel_no5
これら?つ?つが、ニューロン(??ニューロン)
これら?つ?つが、ユニット(ノード)
x1
x2
x3
y
出?
??
ユニット, ノード,
ニューロン, ??ニューロン
x1
x2
x3
y
出?
??
w1
w2
w3
重み
θ
閾値
x1
x2
x3
y
出?
??
w1
w2
w3
重み
??信号x1, x2, x3に対してsum
s = w1x1 + w2x2 + w3x3 + θ
閾値
θ
閾値重み
??信号x1, x2, x3に対してsum
s = w1x1 + w2x2 + w3x3 + θ
これら重みや閾値は
そのユニットの固有の値
x1
x2
xn
y
出?
??
w1
w2
wn
重み
n個の??信号x1, x2, … , xn があれば
s = w1x1 + w2x2 + … + wnxn + θ
閾値
θ
……
sに対して、出?値 yは...
n個の??信号x1, x2, … , xn があれば
s = w1x1 + w2x2 + … + wnxn + θ
y = a(s)
sに対して、出?値 yは...
n個の??信号x1, x2, … , xn があれば
s = w1x1 + w2x2 + … + wnxn + θ
y = a(s)
活性化関数
(activation function)
σ(s) =
1
1 + e -s
ロジスティック関数
σ(s) =
1
1 + e -s
tanh(s) =
e - e
e + e-ss
-ss
ハイパボリックタンジェント
ロジスティック関数
ロジスティック関数
σ(s) =
1
1 + e -s
tanh(s) =
e - e
e + e-ss
-ss
ハイパボリックタンジェント
シグモイド関数
s < 0 のとき ReLU(s)=0
s ≧ 0 のとき ReLU(s)=s
σ(s) =
1
1 + e -s
tanh(s) =
e - e
e + e-ss
-ss
ハイパボリックタンジェント
シグモイド関数
s < 0 のとき ReLU(s)=0
s ≧ 0 のとき ReLU(s)=s
活性化関数の代表例
ロジスティック関数
3つの関数を?較すると
こんな感じになります
ロジスティック関数は
?物の神経細胞が持つ
性質をモデル化したもの
?等?物の神経細胞では、
情報は電気的パルスの時間密度によって
表現され、細胞間でやりとりされます。
この時間密度は最?値が0、
電気化学的な制約で
決まる上限を最?値としています
ハイパボリックタンジェント
双曲線正接関数
ロジスティック関数と同様の性質
が、値域が[-1,1]になり
より滑らかな関数となっていて
収束がロジスティックより速い
(計算が速く処理できる)
ロジスティック関数と総称して
シグモイド関数と呼ぶ
ReLU関数は
recti?ed linear function
単純で計算量が?さく、
他の関数よりも学習が
より速く進み、最終的に
より良い関数が得られやすい
シグモイド関数を活性化関数とする下図のような
ユニットを考えます。??x1, x2に対して、
重みを順にw1, w2とします。また、閾値をθ
とします。このとき、出?yは次のように算出
されます。
s = w1x1 + w2x2 + θ
y = σ(s) =
1
1 + e -s
x1
x2
y
w1
w2
θ
x1
x2
y
w1
w2
θ
ユニットは
ネットワークを作っています
x1
x2
y
w1
w2
θ ユニット同?の連携の強さ
『重み』
情報伝達のための
パイプの太さといったイメージ
太いほど情報が伝わりやすい
(これは重みが、正の場合)
x1
x2
y
w1
w2
θ 細胞固有の感度を表す
『閾値』
閾値が?さければ、反応は早い
閾値が?きければ、反応は鈍い
x1
x2
y
w1
w2
θ 細胞固有の感度を表す
『閾値』
これが意味するところは、
システムの安定度合いを?しています。
ノイズのような?さな??に対して、
いちいち反応すると、システムは不安定になってしまいますよね
x1
x2
y
w1
w2
θ 出?は、
”興奮度”をイメージ。
??に対して、どれほど”興奮”したか
出?が?きければ、??に対して”興奮”を
出?が?さければ、??に対して”無視”を
Excelでは
“SUMPRODUCT”関数を利?します
ユニットを層状に並べた
ニューラルネットワーク
これらユニットを层状にしたもの
ニューラルネットワーク
『??層』, 『隠れ層』, 『出?層』
が基本の構成
具体例で、考えてみましょう
4 ? 3 画素の??2値画像として読み取った
「0」,「1」の?書き?字画像を識別する
ニューラルネットワークを作成します。
3 ? 4画素
画像
x1
x2
x3
x4
x5
x6
x7
x8
x9
x10
x11
x12
??層
(Input layer)
x1
x2
x3
x4
x5
x6
x7
x8
x9
x10
x11
x12
隠れ層※中間層ともいう
(Hidden layer)
H1
H2
H3
x1
x2
x3
x4
x5
x6
x7
x8
x9
x10
x11
x12
H1
H2
H3
出?層
(Output layer)
Z1
Z2
0 1 1
1 0 1
1 0 1
1 1 0
0 1 1
1 0 1
1 0 1
0 1 1
0 1 0
0 1 0
0 1 0
0 1 0
1 1 0
0 1 0
0 1 0
0 1 0
3 ? 4画素でも “0”, “1”の2値でも
「0」, 「1」を表現できる
ここからややこしくなるので
記号を整理します
Xi Hj Zk
隠れ層
(Hidden layer)
??層
(Input layer)
出?層
(Output layer)
i は??層の中の
上からの位置を
?すとする
j は隠れ層の中の
上からの位置を
?すとする
k は出?層の中の
上からの位置を
?すとする
Hj
Zk
Xi ユニットXi の出?xi
ユニットHj の出?hj
ユニットZkの出?zk
??字は、ユニット名を
??字は、ユニットの出?変数を表すことにします
sj
隠れ層
(Hidden layer)
j番?のニューロン
出?層
(Output layer)
k番?のニューロン
??の
線形和
H
θj
H
wji
H
??層 i番?の
ニューロン
sk
??の
線形和
O
θk
O
wkj
O
隠れ層 j番?の
ニューロン
i Xi
Hj
Zk
i番?の
ニューロン
(i=1,2,...,12)
j番?の
ニューロン
(j=1,2,3)
k番?の
ニューロン
(k=1,2)
wji
H
wkj
O
隠れ層
(Hidden layer)
出?層
(Output layer)
??層
(Input layer)
ここからネットワークを
式で表現してみましょう
x1
x2
x3
x12
H1
H2
H3
w11
w12
w13
H
H
H
w1 12
H
閾値θ1
H
s1 = w11x1 + w12x2 + … + w112x12 + θ1
H H H H H
s2 = w21x1 + w22x2 + … + w212x12 + θ2
H H H H H
s3 = w31x1 + w32x2 + … + w312x12 + θ3
H H H H H
h1 = a(S1)
H
h2 = a(S2)
H
h3 = a(S3)
H
ここで a は活性化関数
H1
H2
H3
Z1
Z2
w11
O
w12
O
w13
O
閾値θ1
O
s1 = w11h1 + w12h2 +w13h3 + θ1
O O O
z1 = a(S1)
H
z2 = a(S2)
H
ここで a は活性化関数
(ここでは便宜上活性化関数を同?としていますが、
絶対同?である必要はありません)
s2 = w21h1 + w22h2 +w23h3 + θ2
O
O O O O O
O
ニューラルネットワーク
出?の意味
x1
x2
x3
x4
x5
x6
x7
x8
x9
x10
x11
x12
H1
H2
H3
Z1
Z2
1
0
画像
「0」 「0」に
反応
「1」に
反応
ニューラルネットワークの出?層には
2つのユニット, Z1, Z2があり
Z1は「0」, Z2は「1」を検出する
という意図がある
ここで、?事なことは
Z1
Z2
1
0
「0」に
反応
「1」に
反応
数字「0」が読み込まれたとき
ユニットZ1の出?z1と1との差が
?さければ?さいほど
Z1
Z2
1
0
「0」に
反応
「1」に
反応
数字「0」が読み込まれたとき
ユニットZ2の出?z2と0との差が
?さければ?さいほど
Z1
Z2
1
0
「0」に
反応
「1」に
反応
このニューラルネットワークは
良い結果を出します
(画像「0」が「0」であるかどうか
True→1, False→0 と?般的に考えます)
Z1
Z2
1
0
出?層
画像
「0」
計算
z1
z2
出? 理想値
出?の誤差の評価として
数字「0」が読まれたとき: e = {(1-z1) + (0-z2) }
2 2
Z1
Z2
0
1
出?層
画像
「1」
計算
z1
z2
出? 理想値
出?の誤差の評価として
数字「1」が読まれたとき: e = {(0-z1) + (1-z2) }
2 2
これら誤差が?さいこと
精度が?いということ
0 1画像 画像
Z1
Z2 Z1
Z2
e = {(0-z1) + (1-z2) }e = {(1-z1) + (0-z2) }
2 22 2
重みと閾値の决め?と?的関数
ニューラルネットワークの
重みと閾値はどのように決まるのか
ネット?らが学習する
というアイデア
ニューラルネットワークに
1枚1枚の画像を読み込ませ
出?値を計算させて
1枚1枚の画像に紐づけられた
正解(訓練データ)との平?誤差を算出
訓練データすべてにおいて
平?誤差を求め、それらの総和を算出
総和が最?になるように繰り返す
ニューラルネットワークの原理
このときの誤差の総和が
?的関数となり、最?化=最適化
していく
ニューラルネットワークが
?ら学習する
ニューラルネットワークを
多層にして学習させることを
ディープラーニング(深層学習)という
次回、误差逆伝搬法を?ていきます
Appendix
ti (i=1,2,..,6) に対して
L = (a + b ) + μ1{1 - t1(ax1 + by1 + c)} +
μ2{1 - t2(ax2 + by2 + c)} + … +
μ6{1 - t6(ax6 + by6 + c)}
について、a, b, cの最?値を求める。
これは、得られるμ1, μ2, … , μ6の式について
その最?値を求める。
μ1, μ2, … , μ6 >0
余?のある?は、復習ついでに
??で解いてみてください...!
(次回、第5回のAppendixに解答を差し込みます)
ヒント!
δL
δa
= 0,
δL
δb
= 0,
δL
δc
= 0①
② a, bの関係式を求める
③ t, μの関係式を求める
④ L についてt, μ, x, yで表現する
δL
δa
= a - μ1t1x1 - μ2t2x2 - … - μ6t6x6 = 0
δL
δb
= b - μ1t1y1 - μ2t2y2 - … - μ6t6y6 = 0
δL
δc
= - μ1t1 - μ2t2 - … - μ6t6 = 0
a = μ1t1x1 + μ2t2x2 + … + μ6t6x6
b = μ1t1y1 + μ2t2y2 + … + μ6t6y6
上記の式から...
μ1t1 + μ2t2 + … + μ6t6 = 0
μ1t1 + μ2t2 + … + μ6t6 = 0
この式を
L = (a + b ) + μ1{1 - t1(ax1 + by1 + c)} +
μ2{1 - t2(ax2 + by2 + c)} + … +
μ6{1 - t6(ax6 + by6 + c)}
に代?して整理すると
L = - 1/2(a + b ) + (μ1 + μ2 + … + μ6)
となる
2 2
ここで
a = μ1t1x1 + μ2t2x2 + … + μ6t6x6
b = μ1t1y1 + μ2t2y2 + … + μ6t6y6
であるから
a , b はそれぞれ
2 2
a = (μ1t1x1 + μ2t2x2 + … + μ6t6x6)
=μ1t1x1μ1t1x1 + μ2t2x2 μ1t1x1+ …
+ μ6t6x6μ6t6x6
b = (μ1t1y1 + μ2t2y2 + … + μ6t6y6)
=μ1t1y1μ1t1y1 + μ2t2y2μ1t1y1 +…
+ μ6t6y6μ6t6y6
22
2 2
Lを, xi, yi, ti, μi だけの式で表せば
L = - 1/2{μ1μ1t1t1(x1x1+y1y1 )+
μ1μ2t1t2(x1x2+y1y2 )+
μ1μ3t1t3(x1x3+y1y3 )+
…+μ6μ6t6t6(x6x6+y6y6 )}
+ (μ1 + μ2 + … + μ6)
条件式
L = - 1/2{μ1μ1t1t1(x1x1+y1y1 )+
μ1μ2t1t2(x1x2+y1y2 )+
μ1μ3t1t3(x1x3+y1y3 )+
…+μ6μ6t6t6(x6x6+y6y6 )}
+ (μ1 + μ2 + … + μ6)
μ1t1 + μ2t2 + … + μ6t6 = 0 のもと
の最?値を求めれば良い
※これがExcelシート上の計算となっている
EoF

More Related Content

Casual learning machine learning with_excel_no5