Submit Search
Upload
Deep learning chapter4 ,5
•
Download as PPTX, PDF
•
0 likes
•
102 views
S
ShoKumada
Follow
「ゼロから作るDeep Learning」4、5章の輪読会 用の資料です。
Read less
Read more
Science
Report
Share
Report
Share
1 of 57
Download now
Recommended
Stanでガウス過程
Stanでガウス過程
Hiroshi Shimizu
PRML復々習レーン#9 前回までのあらすじ
PRML復々習レーン#9 前回までのあらすじ
sleepy_yoshi
深層学習による非滑らかな関数の推定
深層学習による非滑らかな関数の推定
Masaaki Imaizumi
Back propagation
Back propagation
T2C_
深層学習の数理
深層学習の数理
Taiji Suzuki
ゼロから作るDeepLearning 5章 輪読
ゼロから作るDeepLearning 5章 輪読
KCS Keio Computer Society
「現実世界に活かす数学」 (麻布高等学校、教養総合、数学講義 5 回目)
「現実世界に活かす数学」 (麻布高等学校、教養総合、数学講義 5 回目)
Kensuke Otsuki
深層学習①
深層学習①
ssuser60e2a31
Recommended
Stanでガウス過程
Stanでガウス過程
Hiroshi Shimizu
PRML復々習レーン#9 前回までのあらすじ
PRML復々習レーン#9 前回までのあらすじ
sleepy_yoshi
深層学習による非滑らかな関数の推定
深層学習による非滑らかな関数の推定
Masaaki Imaizumi
Back propagation
Back propagation
T2C_
深層学習の数理
深層学習の数理
Taiji Suzuki
ゼロから作るDeepLearning 5章 輪読
ゼロから作るDeepLearning 5章 輪読
KCS Keio Computer Society
「現実世界に活かす数学」 (麻布高等学校、教養総合、数学講義 5 回目)
「現実世界に活かす数学」 (麻布高等学校、教養総合、数学講義 5 回目)
Kensuke Otsuki
深層学習①
深層学習①
ssuser60e2a31
The review of 'Explaining nonlinear classification decisions with deep Taylor...
The review of 'Explaining nonlinear classification decisions with deep Taylor...
tetsuo ishigaki
機械学習の理論と実践
機械学習の理論と実践
Preferred Networks
[DL輪読会]Temporal DifferenceVariationalAuto-Encoder
[DL輪読会]Temporal DifferenceVariationalAuto-Encoder
Deep Learning JP
prml_titech_9.0-9.2
prml_titech_9.0-9.2
Taikai Takeda
2015年9月18日 (GTC Japan 2015) 深層学習フレームワークChainerの導入と化合物活性予測への応用
2015年9月18日 (GTC Japan 2015) 深層学習フレームワークChainerの導入と化合物活性予測への応用
Kenta Oono
第4回数理モデル勉強会(日本植物学会第84回大会関連集会)
第4回数理モデル勉強会(日本植物学会第84回大会関連集会)
TakaakiYonekura
『劣モジュラ最適化と機械学習』 4章
『劣モジュラ最適化と機械学習』 4章
ayato shimada
Casual learning machine learning with_excel_no2
Casual learning machine learning with_excel_no2
KazuhiroSato8
深層学習の数理:カーネル法, スパース推定との接点
深層学習の数理:カーネル法, スパース推定との接点
Taiji Suzuki
AI2018 8 ニューラルネットワークの基礎
AI2018 8 ニューラルネットワークの基礎
Hirotaka Hachiya
【Zansa】第12回勉強会 -PRMLからベイズの世界へ
【Zansa】第12回勉強会 -PRMLからベイズの世界へ
Zansa
数理解析道場
数理解析道場
TakaakiYonekura
機械学習と深層学習の数理
機械学習と深層学習の数理
Ryo Nakamura
プログラミング
プログラミング
saireya _
東京都市大学 データ解析入門 10 ニューラルネットワークと深層学習 1
東京都市大学 データ解析入門 10 ニューラルネットワークと深層学習 1
hirokazutanaka
RBMを応用した事前学習とDNN学習
RBMを応用した事前学習とDNN学習
Masayuki Tanaka
機械学習 / Deep Learning 大全 (2) Deep Learning 基礎編
機械学習 / Deep Learning 大全 (2) Deep Learning 基礎編
Daiyu Hatakeyama
Deep learning実装の基礎と実践
Deep learning実装の基礎と実践
Seiya Tokui
論文紹介&実験
論文紹介&実験
SHINGO MORISHITA
2013.12.26 prml勉強会 線形回帰モデル3.2~3.4
2013.12.26 prml勉強会 線形回帰モデル3.2~3.4
Takeshi Sakaki
More Related Content
Similar to Deep learning chapter4 ,5
The review of 'Explaining nonlinear classification decisions with deep Taylor...
The review of 'Explaining nonlinear classification decisions with deep Taylor...
tetsuo ishigaki
機械学習の理論と実践
機械学習の理論と実践
Preferred Networks
[DL輪読会]Temporal DifferenceVariationalAuto-Encoder
[DL輪読会]Temporal DifferenceVariationalAuto-Encoder
Deep Learning JP
prml_titech_9.0-9.2
prml_titech_9.0-9.2
Taikai Takeda
2015年9月18日 (GTC Japan 2015) 深層学習フレームワークChainerの導入と化合物活性予測への応用
2015年9月18日 (GTC Japan 2015) 深層学習フレームワークChainerの導入と化合物活性予測への応用
Kenta Oono
第4回数理モデル勉強会(日本植物学会第84回大会関連集会)
第4回数理モデル勉強会(日本植物学会第84回大会関連集会)
TakaakiYonekura
『劣モジュラ最適化と機械学習』 4章
『劣モジュラ最適化と機械学習』 4章
ayato shimada
Casual learning machine learning with_excel_no2
Casual learning machine learning with_excel_no2
KazuhiroSato8
深層学習の数理:カーネル法, スパース推定との接点
深層学習の数理:カーネル法, スパース推定との接点
Taiji Suzuki
AI2018 8 ニューラルネットワークの基礎
AI2018 8 ニューラルネットワークの基礎
Hirotaka Hachiya
【Zansa】第12回勉強会 -PRMLからベイズの世界へ
【Zansa】第12回勉強会 -PRMLからベイズの世界へ
Zansa
数理解析道場
数理解析道場
TakaakiYonekura
機械学習と深層学習の数理
機械学習と深層学習の数理
Ryo Nakamura
プログラミング
プログラミング
saireya _
東京都市大学 データ解析入門 10 ニューラルネットワークと深層学習 1
東京都市大学 データ解析入門 10 ニューラルネットワークと深層学習 1
hirokazutanaka
RBMを応用した事前学習とDNN学習
RBMを応用した事前学習とDNN学習
Masayuki Tanaka
機械学習 / Deep Learning 大全 (2) Deep Learning 基礎編
機械学習 / Deep Learning 大全 (2) Deep Learning 基礎編
Daiyu Hatakeyama
Deep learning実装の基礎と実践
Deep learning実装の基礎と実践
Seiya Tokui
論文紹介&実験
論文紹介&実験
SHINGO MORISHITA
2013.12.26 prml勉強会 線形回帰モデル3.2~3.4
2013.12.26 prml勉強会 線形回帰モデル3.2~3.4
Takeshi Sakaki
Similar to Deep learning chapter4 ,5
(20)
The review of 'Explaining nonlinear classification decisions with deep Taylor...
The review of 'Explaining nonlinear classification decisions with deep Taylor...
機械学習の理論と実践
機械学習の理論と実践
[DL輪読会]Temporal DifferenceVariationalAuto-Encoder
[DL輪読会]Temporal DifferenceVariationalAuto-Encoder
prml_titech_9.0-9.2
prml_titech_9.0-9.2
2015年9月18日 (GTC Japan 2015) 深層学習フレームワークChainerの導入と化合物活性予測への応用
2015年9月18日 (GTC Japan 2015) 深層学習フレームワークChainerの導入と化合物活性予測への応用
第4回数理モデル勉強会(日本植物学会第84回大会関連集会)
第4回数理モデル勉強会(日本植物学会第84回大会関連集会)
『劣モジュラ最適化と機械学習』 4章
『劣モジュラ最適化と機械学習』 4章
Casual learning machine learning with_excel_no2
Casual learning machine learning with_excel_no2
深層学習の数理:カーネル法, スパース推定との接点
深層学習の数理:カーネル法, スパース推定との接点
AI2018 8 ニューラルネットワークの基礎
AI2018 8 ニューラルネットワークの基礎
【Zansa】第12回勉強会 -PRMLからベイズの世界へ
【Zansa】第12回勉強会 -PRMLからベイズの世界へ
数理解析道場
数理解析道場
機械学習と深層学習の数理
機械学習と深層学習の数理
プログラミング
プログラミング
東京都市大学 データ解析入門 10 ニューラルネットワークと深層学習 1
東京都市大学 データ解析入門 10 ニューラルネットワークと深層学習 1
RBMを応用した事前学習とDNN学習
RBMを応用した事前学習とDNN学習
機械学習 / Deep Learning 大全 (2) Deep Learning 基礎編
機械学習 / Deep Learning 大全 (2) Deep Learning 基礎編
Deep learning実装の基礎と実践
Deep learning実装の基礎と実践
論文紹介&実験
論文紹介&実験
2013.12.26 prml勉強会 線形回帰モデル3.2~3.4
2013.12.26 prml勉強会 線形回帰モデル3.2~3.4
Deep learning chapter4 ,5
1.
「ゼロから作るDeepLearning」 4、5章まとめ Twitterアカウント : @dar_kuma_san 1
2.
講座の流れ 【講座の目的】 ・ニューラルネットワークの理論を理解し、説明できるようになる ・基本的な動作をPythonで実装できるようになる ・ライブラリ活用時のパラメータの意味が理解できる 回 分野 章
キーワード 第1回 推論 2、3 ニューラルネットワーク、 活性化関数、行列計算 第2回 学習 4、5 損失関数、数値微分、 勾配法、誤差逆伝搬 第3回 学習 6 SDG、Adam、過学習、 ハイパーパラメータ 全3回を予定 2
3.
1. 「学習」とは? ⇒推論と学習の違い 2.
どうやって学習させるか? ⇒勾配法 3. 「傾き」の求め方 ⇒数値微分 4. 効率的な「傾き」の求め方 ⇒誤差逆伝播法 5. 学習方法について ⇒オンライン、ミニバッチ、バッチ 6. 手書き文字画像から学習 ⇒Pythonで実装 7. まとめ 第2回の目標 • 学習のアルゴリズム「勾配法」を理解する • 勾配の効率的な求め方「誤差逆伝播法」を理解する 講座の流れ 3
4.
学習がなぜ必要か? 4
5.
学習がなぜ必要か?(1/2) • 「推論」は、未知のデータを入れて予測値を取り出す操作 • 「学習」は、正解が出るように重み(W)とバイアス(B)を調整する操作 推論 未知のデータXを入力して、予測値Yを出す 0 1 2 3 𝑋𝑊
+ 𝐵 = 𝑌 入力 出力重み バイアス 学習 𝑋𝑊 + 𝐵 = 𝑌 入力 出力重み バイアス 0 1 2 3 3 2 ✕ 3 ○ Xを入力したら、Yが出るように WとBを調整する 未知のデータ 既知のデータ 正解/不正解を教える 5
6.
学習がなぜ必要か?(2/2) 学習の簡単な例では、 パーセプトロンの重みとバイアスを機械に決めさせる ゲート AND OR
NAND 式 閾値 真理値 (w1, w2, 𝑏)=(0.5, 0.5, −0.7) (w1, w2, 𝑏)=(−0.5, −0.5,0.7)(w1, w2, 𝑏)=(0.5, 0.5, −0.2) 6
7.
どうやって学習させるか? 7
8.
どうやって学習させるか?(1/9) どのくらい正解から外れているかの指標:損失関数 名称 2乗和誤差 交差エントロピー誤差 式 用途
回帰問題 2クラス分類 多クラス分類 損失関数の種類 損失関数を最小にすることで、 「予測値」を「正解値」を近づける! 1 2 (y − t)2 − t log y +(1 − t)log(1 − 𝑦) − i=0 k ti log yi y:予測値、t:正解値、k:クラス数 8
9.
2乗和誤差: 予測確率確率と正解ラベルの差の2乗和 どうやって学習させるか?(2/9) 国語の点 (予測値) 80点 数学の点 地理の点 英語の点 国語の点 (実際) 75点 差 分 を 取 る L = 1 2 (y −
t)2 = 1 2 (80 − 75)2 (𝑦:予測値 、 t ∶正解値) 9
10.
𝐿 = −
t log y +(1 − t)log(1 − 𝑦) = −log 0.87=0.14 (Survived(実際)=1の時) = −log 0.13=2.0 (Survived(実際)=0の時) 2クラス分類の交差エントロピー誤差: -(予測確率の対数と正解ラベルの対数尤度) どうやって学習させるか?(3/9) Survived (予測値) 0.87 Sex Survived (実際) 1 差 分 を 取 る Age Pclass Survived (実際) 0 (𝑦:予測値 、 t ∶正解ラベル) 10
11.
どうやって学習させるか?(4/9) 「2クラス分類の交差エントロピー誤差」の性質 t(正解ラベル)、y(予測確率)の対数尤度にマイナスをかけたものに等しい つまり、「誤差を最小にする」 ≒ 「最大尤度になるyを求める」 𝐿
= − t log y +(1 − t)log(1 − 𝑦) 𝑦 𝑡 (1 − 𝑦)(1−𝑡) 対数を取って、マイナスをかける t : 0(失敗) or 1(成功) y:成功確率 11
12.
出典:https://ml4a.github.io/ml4a/jp/looking_inside_neural_nets/ 28 28 L = −
i=0 9 ti log yi = − log 0.6 0 100 200 0 120 255 0 89 180 正解 y0(0.1) y1(0.05) y2(0.0) y3(0.0) y4(0.05) y5(0.1) y6(0.0) y7(0.1) y8(0.6) y9(0.0) 0 1 2 3 4 5 6 7 8 9 (𝑦𝑖 :予測確率 、 𝑡𝑖 ∶正解ラベル) t0(0) t1(0) t2(0) t3(0) t4(0) t5(0) t6(0) t7(0) t8(1) t9(0) 交差エントロピー誤差 : 予測確率の対数と正解ラベルの積の和の符号を変えたもの どうやって学習させるか?(5/9) one-hot label 12
13.
L = −
log y8 L y8 「多クラス分類の交差エントロピー誤差」の性質 “正解”の予測確率を低く見積もると急激に増える “正解”の予測確率を1に見積もると0になる どうやって学習させるか?(6/9) 正解の予測確率 交差エントロピー誤差 13
14.
どうやって学習させるか?(7/9) 損失関数は重み(W)とバイアス(B)の関数である。 損失関数の傾きと逆方向に動かして”谷底”を目指せば良い L 重みW 、 バイアスB 損失関数 初期位置 谷底 傾き>0傾き<0 動かす方向 重みの更新:W ←
W − ρ 𝜕L 𝜕W バイアスの更新:B ← B − ρ 𝜕L 𝜕B 傾き 𝜌は「学習率」と言って ハイパーパラメーターの一種である 傾きを利用して、関数が最小値を 取るように変数を最適化する 手法を「勾配法」という 更新後位置ゴール 14
15.
どうやって学習させるか?(8/9) 1 . 重み(W)、バイアス(B)を”適当に”に決める 2.
訓練データを入れて、推論させる(誤差を求める) 3. 誤差から傾きを求める 4. 重み(W)、バイアス(B)を更新する 2~4を繰り返す 𝜕L 𝜕W W ← W − ρ 𝜕L 𝜕W 学習の流れ ループ 15
16.
この操作を全てのWとBについて、 繰り返し実施すれば、 いつか予測値と正解が一致するはず どうやって「傾き」を求めるか? どうやって学習させるか?(9/9) 16
17.
どうやって「傾き」を求めるか? 17
18.
どうやって「傾き」を求めるか?(1/5) 機械は解析的に傾きを求められないので、「数値微分」によって近似的に求める 重みW L(W) 損失関数 2h 現在位置 𝜕L(W) 𝜕W ≅ L W+h −L(W−h) 2h 傾き 前後に微小量
ℎ 移動させて変化を求める これが傾きの近似値 L W + h −L(W − h) 重みの更新:W ← W − ρ 𝜕L 𝜕W 18
19.
勾配法で、損失関数が減少する様子を確認する 重みの更新:W ← W
− ρ 𝜕L(W, B) 𝜕W バイアスの更新:B ← B − ρ 𝜕L(W, B) 𝜕B 𝐿 W B W B 損失関数を以下と仮定する L W, B = W2 + B2 傾きの方向 ゴール ゴール どうやって「傾き」を求めるか?(2/5) 19
20.
どうやって「傾き」を求めるか?(3/5) 重み、バイアスが更新される過程を可視化する W, B =
−10 , 10 からスタート 、繰り返し回数:20回 学習率=0.01 学習率=0.1 学習率=0.8 学習率=1.0 重みの更新:W ← W − ρ 𝜕L(W, B) 𝜕W バイアスの更新:B ← B − ρ 𝜕L(W, B) 𝜕B 20
21.
どうやって「傾き」を求めるか?(4/5) 数値微分の問題点: ニューラルネットが巨大になるとパラメータ数が膨大になり、 現実的な時間で「傾き」を求められない! 28 28 予測確率 𝑦0(0.1) 𝑦1(0.05) 𝑦2(0.0) 𝑦3(0.0) 𝑦4(0.05) 𝑦5(0.1) 𝑦6(0.0) 𝑦7(0.1) 𝑦8(0.6) 𝑦9(0.0) 入力層(784) 中間層(50) 出力層(10) 教科書記載の「手書き文字分類(MNIST)」のニューラルネットワーク 必要な重みWの数:39,700 必要なバイアスの数:60 (1,784)の行列 21
22.
1 . 重み(W)、バイアス(B)を”適当に”に決める 2.
訓練データを入れて、推論させる(誤差を求める) 3. 誤差から傾きを求める 4. 重み(W)、バイアス(B)を更新する 2~4を繰り返す 学習の流れ ループ 数値微分を使った学習を細かく見ると、、 𝜕L(𝑊) 𝜕𝑊 ≅ 𝐋 𝐖+𝐡 −𝐋(𝐖−𝐡) 2h 1つのパラメータの傾きを求める際に2回「推論」させる必要がある! つまり、2~4を1回実施する度に (39,700+60)×2 + 1 = 79401回 推論動作が必要になる 10000回ループさせると、 7,940,000,001回、、、終わるだろうか(反語) どうやって「傾き」を求めるか?(5/5) 22
23.
効率的に「傾き」を求める 23
24.
効率的に「傾き」を求める(1/12) t1 t2 L = −
i=1 2 ti log yi 交差エントロピー誤差 入力層 中間層1層目 中間層2層目 出力層 「傾き」をもっと簡単に計算できないか、3層のニューラルネットワークで考える 中間層1層目の第1ニューロンから中間層2層目の第1ニューロンにかかる 重みを ”効率的に”求めることを考える。𝒘 𝟏𝟏 (𝟐) 24
25.
微分の連鎖律 誤差逆伝播の説明で多用します 効率的に「傾き」を求める(2/12) 𝑦 = 𝑓
𝑢 u =g(x) 𝑑𝑦 𝑑𝑥 = 𝑑𝑦 𝑑𝑢 𝑑𝑢 𝑑𝑥 𝑦 = 𝑓 𝑢, 𝑣 u =g(q,r) v =h(q,r) 𝜕𝑦 𝜕𝑞 = 𝜕𝑦 𝜕𝑢 𝜕𝑢 𝜕𝑞 + 𝜕𝑦 𝜕𝑣 𝜕𝑣 𝜕𝑞 𝜕𝑦 𝜕𝑟 = 𝜕𝑦 𝜕𝑢 𝜕𝑢 𝜕𝑟 + 𝜕𝑦 𝜕𝑣 𝜕𝑣 𝜕𝑟 25
26.
微分の連鎖律から以下が成り立つ の関係があるから、 1 2 3 それぞれの項を求めて掛ければ良い 効率的に「傾き」を求める(3/12) 𝐿
= 𝐿 𝑧1 2 , 𝑧1 2 = 𝑧1 2 (𝑎1 2 ) , 𝑎1 2 = 𝑎1 2 (𝑤11 2 ) 26
27.
3の部分を求める の関係から、 効率的に「傾き」を求める(4/12) 27
28.
活性化関数で変換しているから、 = 効率的に「傾き」を求める(5/12) 2の部分を求める 28
29.
の関係があるから、 と変形できる 効率的に「傾き」を求める(6/12) 1の部分を求める 29
30.
さらに変形していく、 の関係から、 効率的に「傾き」を求める(7/12) 𝒘 𝟏𝟏 (𝟑) 𝒘 𝟐𝟏 (𝟑) 30
31.
前半部分を求める softmax関数を右の式に代入する 代入 効率的に「傾き」を求める(8/12) - 31
32.
さらに変形していく、 代入 この変形は、 以下の関係を使っている 効率的に「傾き」を求める(9/12) 32
33.
なんと! 予測確率と正解ラベルの差分 という単純な形で表される! 代入 1 2 3 これで、1、2、3
が揃いました 効率的に「傾き」を求める(10/12) 33
34.
予測確率と正解ラベルの差分を含 む、簡単に求められる項の積 (青字のルートに関係する項) だけで表すことができた! このようにして、重みWとバイア スBの傾きを求める手法を 「誤差逆伝播法」という 活性化関数の微分が入っていること に注目! 効率的に「傾き」を求める(11/12) 𝒘 𝟏𝟏 (𝟑) 𝒘 𝟐𝟏 (𝟑) 34
35.
1. 非線形であること ⇒
多層化のメリットを活かす! 2. 推論動作での減衰が小さい ⇒ 多層化のメリットを活かす! 3. 傾きが0の領域がないこと ⇒ 勾配消失を防ぐ 4. 傾きが一定であること ⇒ 学習速度が早い 名前 step sigmoid tanh ReLU Leaky ReLU 特徴 0 or 1を返す ・0~1を返す ・中心が0.5 ・-1~1を返す ・中心が0 ・入出力が比例 ・a≦0で傾き=0 ・入出力が比例 ・a≦0で傾き≠0 式 グラフ 𝑎 ℎ𝑎 𝑎 ℎ𝑎 𝑎 ℎ𝑎 𝑎 ℎ𝑎 (𝑎 0) (𝑎 0) 1 1 + 𝑒−𝑎 𝑒 𝑎 − 𝑒−𝑎 𝑒 𝑎 + 𝑒−𝑎 (𝑎 0) (𝑎 0) 𝑎 (𝑎 0) (𝑎 0) 𝑎 𝑎 進化の過程 𝑎 ℎ𝑎 中間層で使う活性化関数: 重みの更新:W ← W − ρ 𝜕L 𝜕W 傾きが0だと 更新されない ! 効率的に「傾き」を求める(12/12) 35
36.
学習方法 36
37.
出典:https://ml4a.github.io/ml4a/jp/looking_inside_neural_nets/ 28 28 実は今まで、1個のデータ(1文字)について説明していました。 実際の学習では、多数の訓練データを使います。 訓練データが多数の場合について説明します。 0 100 200 0
120 255 0 89 180 正解 y0(0.1) y1(0.05) y2(0.0) y3(0.0) y4(0.05) y5(0.1) y6(0.0) y7(0.1) y8(0.6) y9(0.0) 0 1 2 3 4 5 6 7 8 9 (𝑦𝑖 :予測確率 、 𝑡𝑖 ∶正解ラベル) t0(0) t1(0) t2(0) t3(0) t4(0) t5(0) t6(0) t7(0) t8(1) t9(0) 学習方法(1/7) この「8」だけに最適化 しても、、 37
38.
学習方法(2/7) 学習方法には、「オンライン学習」、「ミニバッチ学習」、「バッチ学習」があり、 それぞれ性質が異なる。 名称 オンライン学習 ミニバッチ学習
バッチ学習 エントロピー誤差 更新のタイミング 1文字毎 1バッチ毎 全データ毎 メリット ・計算コストが小さい ・データ全て保管して おかなくて良い ・データの性質の変化 に機敏に対応できる ・局所最適解に陥りに くい ・局所最適解に陥りに くい ・バッチ学習に対して 計算コストが小さい ・外れ値の影響を受け にくい デメリット ・外れ値の影響を受け やすい ・局所最適解に陥りや すい ・新データを入れると、 全データで計算しなお す必要がある − i=0 k ti log yi − 1 𝐵 𝑛=1 𝐵 𝑖=0 𝑘 𝑡𝑖 log 𝑦𝑖 − 1 𝑁 𝑛=1 𝑁 𝑖=0 𝑘 𝑡𝑖 log 𝑦𝑖 k:クラス数、B:1バッチの文字数、N:全文字数 38
39.
オンライン学習 1文字の交差エントロピー誤差を計算する 1文字ごとに重み、バイアスを更新する 正解 y0(0.1) y1(0.05) y2(0.0) y3(0.0) y4(0.05) y5(0.1) y6(0.0) y7(0.1) y8(0.6) y9(0.0) 0 1 2 3 4 5 6 7 8 9 t0(0) t1(0) t2(0) t3(0) t4(0) t5(0) t6(0) t7(0) t8(1) t9(0) L = −
i=0 9 ti log yi交差エントロピー誤差 ランダムに選択 学習方法(3/7) 39
40.
ミニバッチ学習 1バッチ(ex.100文字)の交差エントロピー誤差を計算する 交差エントロピー誤差を1文字あたりに変換する 1バッチごとに重み、バイアスを更新する 正解 y0(0.1) y1(0.05) y2(0.0) y3(0.0) y4(0.05) y5(0.1) y6(0.0) y7(0.1) y8(0.6) y9(0.0) 0 1 2 3 4 5 6 7 8 9 t0(0) t1(0) t2(0) t3(0) t4(0) t5(0) t6(0) t7(0) t8(1) t9(0) 𝐿 = − 1 4 𝑛=1 4 𝑖=0 9 𝑡𝑖
log 𝑦𝑖交差エントロピー誤差 N:全文字数 1バッチ=4文字の場合 全ての文字を使い切ることを「epoch」と言う。1epoch = 48/4 =12バッチ ランダムに選択 学習方法(4/7) 40
41.
バッチ学習 全文字一括で入れる 𝐿 = − 1 𝑁 𝑛=1 𝑁 𝑖=0 9 𝑡𝑖
log 𝑦𝑖 正解 y0(0.1) y1(0.05) y2(0.0) y3(0.0) y4(0.05) y5(0.1) y6(0.0) y7(0.1) y8(0.6) y9(0.0) 0 1 2 3 4 5 6 7 8 9 t0(0) t1(0) t2(0) t3(0) t4(0) t5(0) t6(0) t7(0) t8(1) t9(0) 全文字の交差エントロピー誤差を計算する 交差エントロピー誤差を1文字あたりに変換する 全文字ごとに重み、バイアスを更新する 交差エントロピー誤差 N:全文字数 学習方法(5/7) 41
42.
さて、問題です 60,000個ある訓練データを、 1バッチ=100個として、 10,000バッチ学習させると、 何epochに相当するでしょうか? 学習方法(6/7) 【Answer】 全データは60,000/100 = 600バッチ よって、全データは10,000/600
= 16.7 epochs になります 42
43.
予測確率 𝑦0(0.1) 𝑦1(0.05) 𝑦2(0.0) 𝑦3(0.0) 𝑦4(0.05) 𝑦5(0.1) 𝑦6(0.0) 𝑦7(0.1) 𝑦8(0.6) 𝑦9(0.0) 入力層(784) 中間層(50) 出力層(10) 3層ニューラルネットワークで、60,000文字の手書き文字認識のミニバッチ学習 を行う。「数値微分」と「誤差逆伝播法」の速度差を体感する 60,000文字 ミニバッチ学習 100文字/バッチ 10000バッチ学習させる 学習方法(7/7) 43
44.
発表の補足 (誤解を招きやすい箇所。。) 44
45.
補足(1/6) 「学習」とは、正解が出るように重み(W)とバイアス(B)を調整する操作であり、 損失関数の傾きと逆方向に更新することで調整する(勾配法) 学習 𝑋𝑊 +
𝐵 = 𝑌 入力 出力重み バイアス 0 1 2 3 2 ✕ 3 ○ Xを入力したら、Yが出るように WとBを調整する 既知のデータ 正解/不正解を教える 勾配法 45
46.
補足(2/6) パラメーターの「更新」のタイミングについて誤解させている恐れがあるので補足します 1 . 重み(W)、バイアス(B)を”適当に”に決める 2.
訓練データを入れて、推論させる(誤差を求める) 3. 誤差から傾きを求める 4. 重み(W)、バイアス(B)を更新する 2~4を繰り返す 𝜕L 𝜕W W ← W − ρ 𝜕L 𝜕W 学習の流れ ループ 46
47.
補足(3/6) 「オンライン学習」と「ミニバッチ学習」を例に再度説明します 名称 オンライン学習 ミニバッチ学習
バッチ学習 エントロピー誤差 更新のタイミング 1文字毎 1バッチ毎 全データ毎 メリット ・計算コストが小さい ・データ全て保管して おかなくて良い ・データの性質の変化 に機敏に対応できる ・局所最適解に陥りに くい ・局所最適解に陥りに くい ・バッチ学習に対して 計算コストが小さい ・外れ値の影響を受け にくい デメリット ・外れ値の影響を受け やすい ・局所最適解に陥りや すい ・新データを入れると、 全データで計算しなお す必要がある − i=0 k ti log yi − 1 𝐵 𝑛=1 𝐵 𝑖=0 𝑘 𝑡𝑖 log 𝑦𝑖 − 1 𝑁 𝑛=1 𝑁 𝑖=0 𝑘 𝑡𝑖 log 𝑦𝑖 k:クラス数、B:1バッチの文字数、N:全文字数 47
48.
✖️:1つのデータ(1文字)で谷底まで更新する 損失関数Lは動かない L 初期位置 谷底 動かす方向 L 1回目更新後位置 谷底 𝑊 𝑊 L 2回目更新後位置 谷底 𝑊 補足(4/6) 1回目の更新 2回目の更新 48
49.
L 谷底 ○:1つのデータ(1文字)ではあくまでも1回しか更新しない 損失関数Lが頻繁に変動する L 初期位置 谷底 動かす方向 L 1回目更新後位置 谷底 𝑊 𝑊 補足(5/6) 1回目の更新 2回目の更新 2回目更新後位置 49
50.
L 谷底 ミニバッチ学習の場合は、バッチごとに更新する 入力データが(バッチ数、784)の行列になることに注意! L 初期位置 谷底 動かす方向 L 1バッチ目更新後位置 谷底 𝑊 𝑊 補足(6/6) 1バッチ目の更新 2バッチ目の更新 2バッチ目更新後位置 𝑋𝑊 + 𝐵
= 𝑌 28 28 (1,784)×(784,784) オンライン学習の場合 ミニバッチ学習の場合 𝑋𝑊 + 𝐵 = 𝑌 (9,784)×(784,784) 50
51.
第2回まとめ 51
52.
第2回まとめ(1/2) • ディープラーニングの学習方法 傾きと逆方向にパラメータを更新して「谷底」を目指す (勾配法) ・傾きの効率的な求め方 推論で求めている値を使って、高速に傾きを求める (誤差逆伝播法) ・パラメータ更新のタイミング 学習法によってパラメーター更新のタイミングが異なる (オンライン学習、ミニバッチ学習、バッチ学習) W ←
W − ρ 𝜕L 𝜕W 52
53.
第2回まとめ(2/2) 第3回は、以下を説明します 「第6章 学習に関するテクニック」 ・最適な重みパラメータを探索する手法(勾配方の進化形) ・パラメーターの初期値をどうするか? ・ハイパーパラメータの設定方法 ・過学習の対応策 局所最適解に陥ることがある 53
54.
Appendix 54
55.
名 前 identity sigmoid softmax 特 徴 入力値をそのまま返す
・0~1を返す ・中心が0.5 総和が1になる 役 割 回帰問題 2クラス分類 多クラス分類 式 グ ラ フ ℎ 𝑎 = 𝑎 ℎ 𝑎 𝑘 = 𝑒 𝑎 𝑘 𝑖=1 𝑛 𝑒 𝑎 𝑖 𝑎 ℎ𝑎 𝑎 ℎ𝑎 h(𝑎) = 1 1+𝑒−𝑎 出力層で使う活性化関数: 𝑎 𝑘 ℎ𝑎𝑘 softmax関数 55
56.
ℎ 𝑎 𝑘
= 𝑒 𝑎 𝑘 𝑖=1 𝑛 𝑒 𝑎 𝑖 softmax関数 softmax関数:出力の総和は1になる。入/出力で大小関係は変わらない。 𝑘=1 𝑛 ℎ(𝑎 𝑘) = 1 定義式 特徴 確率変数の定義を満たしている! 𝑎1 𝑦1 ℎ( ) 𝑎2 𝑦2 ℎ( ) 𝑎3 𝑦3 ℎ( ) 𝑎 𝑘 ℎ𝑎𝑘 入力に対して 確率差が付きやすい 入力 他のニューロン への入力が、 他のニューロン の出力に影響する 56
57.
0.06 0.82 0.12 82% 6%
“human” “cat” softmax関数を使うと、入力値を確率に変換できる。 𝑎1 𝑦1 ℎ( ) 𝑎2 𝑦2 ℎ( ) 𝑎3 𝑦3 ℎ( ) 12% “dog” 0.3 2.9 1.0 𝑎1 𝑎2 𝑎3 𝑦1 𝑦2 𝑦3 入力 出力 softmax関数 softmax関数 57
Download now