SlideShare a Scribd company logo
1 of 24
Download to read offline
DeepLearningを知ろう
順伝播編
自己紹介
氏名 渡辺春希
Twitter @haruaya0423
広島市立大学3年知能工学科
出身 静岡
趣味 ポケモン、シャニマス
最近の出来事 ポケモンの新規DLCが楽しい
4年でどこの研究室に行くか
考え中
久しぶりのTOEIC疲れた
DeepLearning(深層学習)とは?
人工知能の分野の1つ
主に画像認識の分野で
有名(もちろん、他の
分野でも活躍)
その、精度は人間をも
凌駕する。
実は1950年代には既に存在、しかし人工知能の冬の時代と共にあまり発展せず
2015年に画像認識のコンペで目まぐるしい結果を残し、一気に注目を浴びる。
全3回の発表でCNNを説明
(失踪したらごめんなさい)
パーセプトロン
入力値である信号を受け取り、ひとつの信号を出力する。
以下では、単純パーセプトロンを表示。
図の丸はノードという。
Xは入力信号、Yは出力信号、
wは重みを表す。入力信号と
それに対応する重みを乗算する。
そしてそれらの総和を求める。
つまり、式に表せば
W1x1+w2x2となる。
パーセプトロン続き
そして、信号の総和が限界値(Θ)を超えれば,
1そうでなければ0を出力。
つまり、式に表すと
Y= 0 (w1x1+w2x2≦Θ)
1 (w1x1+w2x2>Θ)
となる。
重みの値が信号の出力をコントロールする。
論理回路を解いてみる。
パーセプトロンを使ってAND回路を解く。
W1を0.5,W2を0.5,Θを0.6にする。
式は0.5*x1+0.5*x2となる。
もし、この式がΘを超えれば
1を出力。違うと0を出力。W1,w2,Θを
この値に設定すればANDの条件を満たす。
NANDやORも同様にできる。
X1 X2 y
0 0 0
1 0 0
0 1 0
1 1 1
AND回路の真理値表
偏りをコントロールするバイアス
Y= 0 (w1x1+w2x2≦Θ)
1 (w1x1+w2x2>Θ)
この式のΘを左辺に移すと
Y= 0 (w1x1+w2x2-Θ≦0)
1 (w1x1+w2x2-Θ>0)
となる。-Θ=bとすると
Y= 0 (w1x1+w2x2+b≦0)
1 (w1x1+w2x2+b>0) となる。
バイアスの役割
例えば、bが0の場合、WiXiの和がマイナスならば
出力が0となる。
しかし、bが正の場合、和がマイナスでも出力が
1となる場合がある。
bの値が大きければ出力が1になりやすく、
逆に小さければ出力が0になりやすい。
つまり、バイアスは出力する範囲をコントロールする
値である。
単純パーセプトロンの限界
AND回路は、直線によって出力の
領域の分割が可能である。
しかし、XOR回路は直線によって領域の
分割が不可能である。
どんなに重みをいじっても、単純パーセプトロンは直線で分離する問題を解けない。
直線じゃなければ
このように、曲線による分離なら領域の分割が可能となる。
曲線、つまり非線形的な表現を行えば柔軟な表現を可能とする。
多層パーセプトロン
図のように、単純パーセプトロン
を複数並べたパーセプトロンを
多層パーセプトロンという。
最初の層を入力層、
中間の層を隠れ層、
出力に用いる層を出力層と
いう。
XOR回路を多層パーセプトロン
のように表すと
表にすると
x1 x2 s1 s2 y
0 0 1 0 0
1 0 1 1 1
0 1 1 1 1
1 1 0 1 0
層を重ねることで
XORが可能となった!
ここまでのまとめ
パーセプトロンは渡された入力を用いて、
値を出力する。
重みwとバイアスbをパラメータとして設定。
単純パーセプトロンは線形領域しか表現できない
多層パーセプトロンは非線形領域を表現できる。
層を重ねれば重ねるほど、柔軟な表現が可能となる。
ニューラルネットワーク
活性化関数h()の導入
パーセプトロンの総和はw0+w1x1+w2x2+b
これをy’とする。このy’が活性関数によって
変換されyが出力される。
活性化関数の種類
Step関数
X>0なら1、それ以外なら0
を出力する。
Sigmoid関数
1
1+exp(−𝑥)
ステップ関数と比べると滑らかな曲線。
その他にもRelu関数など様々な活性化関数が
多次元配列と行列計算を用いる。
今回は3層の
ニューラルネットワーク
を構成
𝑤1 2
(1)
記号の見かた。
右上 第何層目かの重みを表す
左下 前層の何番目かのノード(ニューロン)
右下 次層の何番目かのノード(ニューロン)
例えば入力層x2のノードから
第1層の一番上のノードへの
重みは𝑤1 2
(1)
と表せる。
色々、行列で表すと
1層目の1番上のノードの重み付き和を𝑎1
(1)
とすると
𝑎1
(1)
= 𝑊11
(1)
𝑥1+ 𝑊12
(1)
𝑥2+𝑏1
(1)
となる。 同様に𝑎2
(1)
, 𝑎3
(1)
となる。
また、1層目の重み付き和をまとめると
𝐴(1)=(𝑎1
(1)
𝑎2
(1)
𝑎3
(1)
)
𝐴(1)
= 𝑋𝑊(1)
+𝐵(1)
𝑊(1)
=(𝑊11
(1)
𝑊21
(1)
𝑊31
(1)
X=(𝑥1 𝑥2 )
𝑊12
(1)
𝑊22
(1)
𝑊32
(1)
) 𝐵(1)
=(𝑏1
(1)
𝑏2
(1)
𝑏3
(1)
)
出力層(ソフトマックス関数)
𝑦 𝑘=
exp(𝑎 𝑘)
𝑖=1
𝑛
exp(𝑎 𝑖)
最終的な出力を確率で表すために
分類問題ではこの関数を用いる。
例えば犬か猫か分類する問題を解くとする。
この場合、分類の種類の数だけ、
出力層のノードを増やす。
今回の場合は、2つのノードとなる。
また、y1のラベルを犬、y2のラベルを
猫とする。
ソフトマックス関数 続き
前のスライドの第2層の1番目のノードの値が1.32,
2番目のノードの値が0.20だとする。そうなると
ソフトマックス関数に代入すると、
𝑦1=
exp(1.32)
exp 1.32 +exp(0.20)
=0.75
𝑦2=
exp(0.20)
exp 1.32 +exp(0.20)
=0.25
Y1のラベルのノードの値が高い。つまり、今回の例では
犬と予測した方が正解の確率が高くなる。
expを用いる理由は隠れ層のノードの値が
マイナスとなる場合もある。値が大きいほど高い確率
を割り当てたいためexpを用いる。
大まかな流れ
1.重みと入力値を掛ける。X*W
2.それにバイアスを足す。X*W+b
3.それに活性化関数を通し新たな入力値とする。 h(X*W+b)
4.しばらく繰り返す
5.ソフトマックス関数を通す。確率として表記する。
6.確率の高いラベルを正解だと予測する。
実際に画像認識をしてみた。
今回は手書き文字の認識を行う。画像の濃淡は数字で
表せるため、それを入力値として用いる。
28*28の画像のため、入力値は784個存在する。
また、bとWは学習済みと仮定する。
テストデータとして、1万枚の手書き数字文字を使う。
ネットワークは
X W1 W2 W3 Y
(1,784)*(784,50)*(50,100)*(100,10) 10
そもそも、bとWって…..
当たり前ではあるが、最初からbとWは学習済みの値では
ないはず。では、どのように学習するのか?
これは次回の発表で説明します。
次回予告
勾配降下法と誤差逆伝番法
お楽しみに!

More Related Content

More from ssuserf94232

python3 エンジニア認定データ分析試験を受けてみた
python3 エンジニア認定データ分析試験を受けてみたpython3 エンジニア認定データ分析試験を受けてみた
python3 エンジニア認定データ分析試験を受けてみたssuserf94232
 

More from ssuserf94232 (6)

Deeplearn4
Deeplearn4Deeplearn4
Deeplearn4
 
Deeplearning3
Deeplearning3Deeplearning3
Deeplearning3
 
Machine&data
Machine&dataMachine&data
Machine&data
 
Deep learning2
Deep learning2Deep learning2
Deep learning2
 
Gresult
GresultGresult
Gresult
 
python3 エンジニア認定データ分析試験を受けてみた
python3 エンジニア認定データ分析試験を受けてみたpython3 エンジニア認定データ分析試験を受けてみた
python3 エンジニア認定データ分析試験を受けてみた
 

Deeplearining1