SlideShare a Scribd company logo
1 of 18
Download to read offline
DeepLearningを知ろう
勾配降下法編
自己紹介
氏名 渡辺春希
Twitter @haruaya0423
広島市立大学3年知能工学科
出身 静岡
趣味 ポケモン、シャニマス
最近の出来事 ラブライブのアニメが面白い
久しぶりにTOEICで600超えた
前回までの復習
ニューラルネットワークは
入力値と重みの積に
バイアスの値を
足して値を出力する。
数式にすると以下のとおり、
Y=XW+B
そして、ソフトマックス関数に
通し、値の大きいものを予測結
果として出力した。
𝑦 𝑘=
exp(𝑎 𝑘)
𝑖=1
𝑛
exp(𝑎𝑖)
重みとバイアスはどう決める?
適切な重みとバイアスを設定すれば精度の高い予測を
行うことができる。
では、どのように設定するか?当たり前だが、最初に
設定した値が適切である可能性はゼロに近い。
答えは、データから学習する。データから何千回、何万回
と学習を繰り返して適切な値を設定する。
学習してから テスト
誤差を用いる。
正解データとのずれ、つまり誤差を小さくすれば
精度は必然的に上がる。
誤差を表す損失関数は色々あるが、今回は
交差エントロピー誤差を用いる。式に表すと
E=- 𝑖
𝑛
𝑡 𝑘log𝑦 𝑘
T=[0,0,1,0,0,0,0,0,0,0] 2を正解ラベルとする。
Y=[0.1,0.05,0.6,0,0.05,0.1,0,0.1,0,0] 2の予測の値が高い。
この場合、E=0.511
一方、7の可能性が高いと予測すると
Y=[0.1,0.05,0.1,0,0.05,0.1,0,0.6,0,0]
E=2.302
さっきよりも、損失関数の値が大きくなってしまった。
つまり、正解ラベルの値に近ければ近いほど、
損失関数の値は小さくなることが分かる。
つまり、損失関数の値を小さくする
最適化問題を解けばいい!
勾配降下法
けっきょくどうすればいいのか?
微分を用いれば解決する。
例えばy=(𝑥 − 1)2
という
関数の場合、最小値の時の
Xの値は1である。
言い換えれば、x=1のときの
接線の傾き、つまり微分結果は
0である。
(𝑥 − 1)2
の微分結果は2x-2である。
ここから増減表を作ると
増減表が分かればxをどの方向に
動かせば、yの値が最小になるか
分かる。
xの範囲   の符号 yの増減
x<1 - ↘
x=1 0
x>1 + ↗
𝑦
𝑥
例えばx=3ならばマイナス方向に、x=-1ならばプラス方向に
動かせば最小値の値に近づく。
xの範囲   の符号 yの増減 xの値を
どうする?
x<1 - ↘ 増やす
x=1 0 変化なし
x>1 + ↗ 減らす
𝑦
𝑥
増減表に追加するとこんな感じになる。
表を見るとyを最小にするためのxを動かす方向は
導関数の符号と逆方向である。つまりxの更新を式に表すと
X=X-
𝑑𝑦
𝑑𝑥
となる。
では、X=3を初期値として更新してみましょう
更新式は、x=x-(2x-2)です。
更新してみよう!
Xの値を3とする。更新式はx=x-(2x-2)
1回目 x=3-(2*3-2)=-1 xの値を-1に更新
2回目 x=-1-(2*-1-2)=3 xの値を3に更新
3回目 x=3-(2*3-2)=-1 xの値を-1に更新
4回目 x=-1-(2*-1-2)=3 xの値を3に更新
-1と3を交互に繰り返してしまう。
更新式では、方向の他に動かす割合、学習率(η)が必要である。
X=X-η
𝑑𝑦
𝑑𝑥
ηの値は任意に設定する。
更新してみよう2
Xの値を3とする。更新式はx=x-η*(2x-2)。またη=0.1
1回目 x=3-0.1*(2*3-2)=3-0.4=2.6 xの値を2.6に更新
2回目 x=2.6-0.1*(2*2.6-2)=2.6-0.3=2.3 xの値を2.3に
更新
3回目 x=2.3-0.1*(2*2.3-2)=2.3-0.2=2.1 xの値を2.1に
更新
4回目 x=2.1-0.1*(2*2.1-1-2)=2.1-0.2=1.9 xの値を1.9
に更新
だんだんxの値が1に近づいてきた。ηが大きすぎると
Xがいったり来たり、最小値から離れてしまう。
話を戻すと
これを今回の場合に置き換えると
W=W-η
𝑑𝐸(𝑤)
𝑑𝑊
, b=b-η
𝑑𝐸(𝑏)
𝑑𝑏
Wとbにそれぞれに対して偏微分を行うことに
なる。
次回予告
誤差逆伝播法 or 畳み込み
それと次回はまた新たなシリーズの
発表をします。
機械学習を用いたデータ分析に
ついて発表したいと思います。
前回の発表の追加点
活性化関数は何故必要?
結論からいうと多層にする意味がなくなるから。
X=[𝑥1
𝑥2]
𝑊(1)
=[𝑤11
1
𝑤12
1
𝑤21
1
𝑤22
1
]
𝑊(2)
=[𝑤11
2
𝑤12
2
]
となる。
さて、今まではWX+bの出力に活性化関数を通して
新たな出力値を出した。ここで活性化関数を無くすと
𝑦 = 𝑊(2)
𝑊(1)
xとなる。計算してみると
Y =[𝑤11
2
𝑤12
2
] [𝑤11
1
𝑤12
1
[𝑥1
𝑤21
1
𝑤22
1
] 𝑥2 ]
=[𝑤11
2
𝑤11
1
+𝑤12
2
𝑤21
1
𝑤11
2
𝑤12
1
+𝑤12
2
𝑤22
1
][𝑥1
𝑥2 ]
=(𝑤11
2
𝑤11
1
+𝑤12
2
𝑤21
1
) 𝑥1+( 𝑤11
2
𝑤12
1
+𝑤12
2
𝑤22
1
)𝑥2
結果を見てみると
A=(𝑤11
2
𝑤11
1
+𝑤12
2
𝑤21
1
), 𝐵 = ( 𝑤11
2
𝑤12
1
+𝑤12
2
𝑤22
1
)
とすると、y=A 𝑥1+B𝑥2
つまり単層パーセプトロン
である。 である。
線形の活性化関数なら
Y=2xという活性化関数を用いてみる。しかし、
(4𝑤11
2
𝑤11
1
+4𝑤12
2
𝑤21
1
) 𝑥1+(4 𝑤11
2
𝑤12
1
+4𝑤12
2
𝑤22
1
)𝑥2
こんな感じに式がまとまってしまう。
つまり、f(x+y)=f(x)+f(y),f(ax)=af(x)
という線形の関数を用いてしまうとxでまとまってしまう。
よってシグモイド関数のような非線形の関数を
使う必要がある。

More Related Content

More from ssuserf94232

information_fake_2.pdf
information_fake_2.pdfinformation_fake_2.pdf
information_fake_2.pdfssuserf94232
 
make_information_search.pdf
make_information_search.pdfmake_information_search.pdf
make_information_search.pdfssuserf94232
 
python3 エンジニア認定データ分析試験を受けてみた
python3 エンジニア認定データ分析試験を受けてみたpython3 エンジニア認定データ分析試験を受けてみた
python3 エンジニア認定データ分析試験を受けてみたssuserf94232
 

More from ssuserf94232 (10)

research.pdf
research.pdfresearch.pdf
research.pdf
 
information_fake_2.pdf
information_fake_2.pdfinformation_fake_2.pdf
information_fake_2.pdf
 
make_information_search.pdf
make_information_search.pdfmake_information_search.pdf
make_information_search.pdf
 
Hiro it202105
Hiro it202105Hiro it202105
Hiro it202105
 
Deeplearn4
Deeplearn4Deeplearn4
Deeplearn4
 
Deeplearning3
Deeplearning3Deeplearning3
Deeplearning3
 
Machine&amp;data
Machine&amp;dataMachine&amp;data
Machine&amp;data
 
Deeplearining1
Deeplearining1Deeplearining1
Deeplearining1
 
Gresult
GresultGresult
Gresult
 
python3 エンジニア認定データ分析試験を受けてみた
python3 エンジニア認定データ分析試験を受けてみたpython3 エンジニア認定データ分析試験を受けてみた
python3 エンジニア認定データ分析試験を受けてみた
 

Recently uploaded

Windows Defenderのフル・クイック・カスタム・オフラインスキャンを実行する方法.docx
Windows Defenderのフル・クイック・カスタム・オフラインスキャンを実行する方法.docxWindows Defenderのフル・クイック・カスタム・オフラインスキャンを実行する方法.docx
Windows Defenderのフル・クイック・カスタム・オフラインスキャンを実行する方法.docxivanwang53
 
あらゆる通信環境で切れない「ネットモーション」のモバイルアクセス [NetMotion]
あらゆる通信環境で切れない「ネットモーション」のモバイルアクセス [NetMotion]あらゆる通信環境で切れない「ネットモーション」のモバイルアクセス [NetMotion]
あらゆる通信環境で切れない「ネットモーション」のモバイルアクセス [NetMotion]Taka Narita
 
Windowsアップデート後の黒い画面を修正する方法|データ復元|ブラックスクリーン
Windowsアップデート後の黒い画面を修正する方法|データ復元|ブラックスクリーンWindowsアップデート後の黒い画面を修正する方法|データ復元|ブラックスクリーン
Windowsアップデート後の黒い画面を修正する方法|データ復元|ブラックスクリーンivanwang53
 
ダウンロードがダウンロード(Downloads)フォルダに表示されない」問題の対処法
ダウンロードがダウンロード(Downloads)フォルダに表示されない」問題の対処法ダウンロードがダウンロード(Downloads)フォルダに表示されない」問題の対処法
ダウンロードがダウンロード(Downloads)フォルダに表示されない」問題の対処法ivanwang53
 
動的 & 非同期コンポーネント / Dynamic & Async Components
動的 & 非同期コンポーネント / Dynamic & Async Components動的 & 非同期コンポーネント / Dynamic & Async Components
動的 & 非同期コンポーネント / Dynamic & Async Componentsokitamasashi
 
Windows 10、Windows 11の付箋を簡単に復元する6つの方法|データ復元
Windows 10、Windows 11の付箋を簡単に復元する6つの方法|データ復元Windows 10、Windows 11の付箋を簡単に復元する6つの方法|データ復元
Windows 10、Windows 11の付箋を簡単に復元する6つの方法|データ復元ivanwang53
 

Recently uploaded (6)

Windows Defenderのフル・クイック・カスタム・オフラインスキャンを実行する方法.docx
Windows Defenderのフル・クイック・カスタム・オフラインスキャンを実行する方法.docxWindows Defenderのフル・クイック・カスタム・オフラインスキャンを実行する方法.docx
Windows Defenderのフル・クイック・カスタム・オフラインスキャンを実行する方法.docx
 
あらゆる通信環境で切れない「ネットモーション」のモバイルアクセス [NetMotion]
あらゆる通信環境で切れない「ネットモーション」のモバイルアクセス [NetMotion]あらゆる通信環境で切れない「ネットモーション」のモバイルアクセス [NetMotion]
あらゆる通信環境で切れない「ネットモーション」のモバイルアクセス [NetMotion]
 
Windowsアップデート後の黒い画面を修正する方法|データ復元|ブラックスクリーン
Windowsアップデート後の黒い画面を修正する方法|データ復元|ブラックスクリーンWindowsアップデート後の黒い画面を修正する方法|データ復元|ブラックスクリーン
Windowsアップデート後の黒い画面を修正する方法|データ復元|ブラックスクリーン
 
ダウンロードがダウンロード(Downloads)フォルダに表示されない」問題の対処法
ダウンロードがダウンロード(Downloads)フォルダに表示されない」問題の対処法ダウンロードがダウンロード(Downloads)フォルダに表示されない」問題の対処法
ダウンロードがダウンロード(Downloads)フォルダに表示されない」問題の対処法
 
動的 & 非同期コンポーネント / Dynamic & Async Components
動的 & 非同期コンポーネント / Dynamic & Async Components動的 & 非同期コンポーネント / Dynamic & Async Components
動的 & 非同期コンポーネント / Dynamic & Async Components
 
Windows 10、Windows 11の付箋を簡単に復元する6つの方法|データ復元
Windows 10、Windows 11の付箋を簡単に復元する6つの方法|データ復元Windows 10、Windows 11の付箋を簡単に復元する6つの方法|データ復元
Windows 10、Windows 11の付箋を簡単に復元する6つの方法|データ復元
 

Deep learning2