dn-2. ニューラルネットワーク
の学習不足と過学習
(ディープラーニング入門演習)
URL: https://www.kkaneko.jp/ai/dn/index.html
1
金子邦彦
人工知能による画像の分類
2
画像分類
• 画像分類は,与えられた画像に対して,次を
得ること
ラベルごとの確率
3
画像
ラベルごとの確率
(ラベルが10個あれば,
確率は10個求まる)
画像分類
システム
ここで行う画像の分類
4
• 画像を 10 種類に自動分類。
たくさんの画像
前準備
Google アカウントの取得が必要
• 次のページを使用
https://accounts.google.com/SignUp
• 次の情報を登録する
氏名
自分が希望するメールアドレス
<ユーザー名>@gmail.com
パスワード
生年月日,性別
5
手順
① パソコンの Web ブラウザで,次のページを開く
https://www.tensorflow.org/tutorials
② 左側のメニューの「Keras による ML の基本」
を展開,「基本的な画像分類」をクリック, 「Run
in Google Colab」をクリック
6
③ セルを上から順に実行する.
セルの実行の終了を確認してから、次のセルに移る
こと
7
最後まで続ける
Google
アカウント
が必要
ニューラルネットワークの例
8
入力データ
出力データ
ニューロン
10 個
ニューロン
128 個
種類は relu
種類は softmax
ニューラルネットワークを作成するプログラム
9
ニューラルネットワークの学習の様子
同じ教師データを繰り返し使って学習を行う
10
繰り返し回数:5回
繰り返しのたびに誤差が減少(loss の右横の数値)
ニューラルネットワークによる予測の様子
11
10種類のどれに分類されたかを棒グラフで表示
(ラベルが10個あるので,確率は10個求まる)
青:正解、 赤や黒:不正解
学習不足と過学習
12
ニューラルネットワークの学習で気を付けること
• 学習には大量のデータが必要
学習の成功のため
• 同じ教師データを使って学習を繰り返す
学習不足の解消
• 学習の検証が必要
過学習が無いことの確認
13
ニューラルネットワークの学習
14
• 教師データ(学習のためのデータ)を使用
• 学習は自動で行われる
① 教師データにより,ニューラルネットを動かし,誤差を
得る
② ニューロン間の結合の重みの上げ下げにより、誤差を減
らす (最終層の結果が,手前の層の結合の重みに伝搬する
ことから,フィードバックともいわれる)
• ニューロンの数が増えたり減ったりなどではない
• 誤差が減らなくなったら、最適になったとみなす
学習不足
• ニューラルネットワークの学習では,学習のた
めのデータ(教師データ)を使う
• 教師データを1回使っただけでは,学習不足の
場合がある
→ 同じ教師データを繰り返し使って学習を行う.
繰り返しながら,誤差の減少を確認
15
1回
2回
3回
4回
誤差の減少
過学習
• 教師データでの学習を終了したとき
• 検証データで検証すると,
学習がうまくいっていないことが分かる場合がある
16
過学習なし
17
精度
エポック数
学習データ
検証データ
良くない
良い
学習の繰り返しとともに
精度が向上
過学習あり
18
精度
エポック数
学習データ
検証データ
良くない
良い
学習の繰り返しに伴い,
学習データでの精度は改善しても,
検証データでの精度が改善しない
ニューラルネットワークの学習では,
過学習が発生していないことを確認すること
19
手順
① パソコンの Web ブラウザで,次のページを開く
https://www.tensorflow.org/tutorials
② 左側のメニューの「Keras による ML の基本」
を展開,「オーバーフィットとアンダーフィット」
をクリック, 「Run in Google Colab」をクリック
20
• 3つのニューラルネットワークの学習曲線
ニューロン数
Baseline: 1層目は16個, 2層目は16個
Smaller: 1層目は4個, 2層目は4個
Bigger: 1層目は512個, 2層目は512個
ニューロン数が多いと過学習が起きやすい
21
実線は学習データ
点線は検証データ
学習の繰り返し
考察の例
次のグラフから次を読み取る
• 学習の繰り返し回数はいくつがよさそうか?
• 過学習は発生しているか、していないか?
22
精度
良くない
良い
1.0
0.0
実線は学習データ
点線は検証データ
学習の繰り返し
過学習の防止に役立つ技術
• データの拡張
教師データの拡張(増量)と再学習による解決
• ドロップアウト
学習の途中で,ニューロン間の結合をランダムに
無効化することで解決
• その他(正則化など)
23
• ドロップアウト等の技術により,過学習を緩和
24
青:ドロップアウト等なし オレンジ:ドロップアウト等あり
学習の繰り返し
実線は学習データ
点線は検証データ