ディープラーニング入門 過学習の回避
精度の改善傾向から判断
過学習の回避と精度改善の傾向
図1 AIモデルの性能の評価指標「損失関数」と「正解率」を利用すれば,訓練データの特定の特徴やノイズに過度に適応する「過学習」の兆候を検知できる.画像クリックで動画を見る.または記事を読む.[提供・著]井上 祐寛
詳細:[VOD/KIT]ラズベリー・パイで学ぶエッジAIプログラミング入門 |
過学習とは何か
過学習は,モデルが訓練データに対して高い精度を示す一方で,未知のデータに対する汎化性能が低下する現象です.これは,モデルが訓練データの特定の特徴やノイズに過度に適応してしまうために発生します.その結果,テスト・データや実世界のデータに対する予測精度が著しく低下します.過学習を回避するためには,次のような方法が一般的に用いられます.
- データの増強
訓練データのバリエーションを増やすことで,モデルが多様なパターンを学習するよう促します - 正則化
$L_2$正則化やDropoutといった手法を活用することで,モデルの自由度を制約し,過剰適合を防ぎます - 適切なバッチ・サイズとエポック数の選択
バッチ・サイズやエポック数を調整することで,過学習を防ぎつつ効率的な学習を実現します
Dropoutは効果的な手法として広く知られています.この手法では,学習のたびにランダムに一定数のノードを無効化し,モデルが残りのノードでより汎化的な特徴を学習するように促します.
精度改善の指標と学習の傾向
モデルの性能を評価するための指標として,損失関数(loss)や正解率(accuracy)がよく使用されます.また,検証データを用いることで,学習過程における過学習の兆候を早期に検知できます.
- 損失関数($loss$)
モデルが予測した値と正解値との誤差を表します.訓練データの損失($loss$)と検証データの損失($val\_loss$)の乖離が大きい場合,過学習が発生している可能性があります - 正解率($accuracy$)
予測がどれだけ正解に近いかを表します.訓練データの正解率($accuracy$)が高く,検証データの正解率($val\_accuracy$)が低い場合も,過学習が疑われます
これらの指標を定期的に確認しながら,学習率($L_r$)やエポック数($epochs$)を調整することが重要です.学習率が大きすぎる場合,最適解を飛び越えてしまう可能性があり,小さすぎる場合は収束が遅くなります.
活性化関数の選択とモデル性能への影響
活性化関数は,ニューラル・ネットワークの性能を左右する重要な要素です.以下に主要な活性化関数を挙げ,それぞれの特性を解説します.
1.ReLU(Rectified Linear Unit)
$f(x) = \max(0, x)$ シンプルで計算効率が高く,画像認識タスクで広く使用されています.ただし,負の入力値に対して勾配が消失する「死んだReLU」問題が発生することがあります.
2.シグモイド関数
$f(x) = \dfrac{1}{1 + e^{-x}}$ 出力が0から1に収束するため,確率を扱うタスクに適しています.しかし,勾配が消失しやすく,学習の収束が遅いという欠点があります.
3.Softmax関数
複数クラス分類問題に適しており,出力ノードの合計が1となるように正規化します.これにより,各クラスの確率を明確に比較できます.
4.Leaky ReLU
$f(x) = \begin{cases} x & \text{if } x > 0 \\ \alpha x & \text{otherwise} \end{cases}$ ReLUの改良版で,負の入力値にも小さな傾きをもたせることで「死んだReLU」問題を軽減します.
これらの関数を適切に選択することで,モデルの収束速度や性能を向上させることが可能です.特に,出力層の活性化関数はタスクに応じて慎重に選定する必要があります.〈著:ZEPマガジン〉
著者紹介
- 株式会社クレスコ入社後,銀行向けシステムなど数多の開発にリード・エンジニアとして従事.後に自社ソリューションとなる統合認証システムの基礎を独力で開発するなど,アイデアと技術でクレスコを牽引する.技術研究所での機械学習研究を経て,人工知能を強みとする部門に異動.現在はテクニカルエバンジェリストとして企業が持つ業務課題へのAI適用に関するコンサルティング,機械学習に関する技術支援を行う一方,自ら研究テーマを持ち共同研究,実験システムの構築も担当.「SoftwareDesign」「やってみよう!機械学習」(技術評論社),「日経ソフトウェア」「AIプログラマになれる本」(日経BP)への記事寄稿,会津大学,はこだて未来大学,琉球大学,早稲田大学のほかWatson SummitやMicrosoftでの講演等,社外でも精力的に活動中
著書
- ラズパイ+USB SDRで作るFlightradar24 Businessアカウント・フィーダ,ZEPエンジニアリング株式会社.
- [VOD/KIT]ラズベリー・パイで学ぶエッジAIプログラミング入門,ZEPエンジニアリング株式会社.
- [VOD/KIT]世界の航空機を同時追跡!Flightradar24 ラズパイ・キット,ZEPエンジニアリング株式会社.
- [VOD/KIT]人工知能カメラM5StickVで作って学ぶ画像解析AI開発入門,ZEPエンジニアリング株式会社.
- いろんなことを試して学ぶ! Pythonプログラミング,2021年,日経BP.
- エッジAIプログラミング M5StickV 活用編,日経ソフトウェア2020年11月号,日経BP.
- エッジAIプログラミング M5StickV 準備編,日経ソフトウェア2020年7月号,日経BP.
- Kaggleに参戦しよう(連載),日経ソフトウェア2020年1月号,日経BP.
- Kaggleに参戦しよう(連載),日経ソフトウェア2019年9月号,日経BP.
- Kaggleに参戦しよう(連載),日経ソフトウェア2019年7月号,日経BP.
- AIプログラマになれる本,2019年,日経BP.
- やってみよう! 機械学習 第2章 機械学習の始め方,2019年,技術評論社.
- 人工知能で画像生成 応用編,日経ソフトウェア2019年1月号,日経BP.
- 人工知能で画像生成 基本編,日経ソフトウェア2018年11月号,日経BP.
- 自分で構築するか,APIで機能を使うか 機械学習の始め方,Software Design2018年4月号,技術評論社.
参考文献
- [VOD/Pi3A KIT]ラズパイ・キットで学ぶLinux I/Oボードの作り方・探し方・動かし方,ZEPエンジニアリング株式会社.
- [VOD/Pi KIT]ラズベリー・パイで学ぶLinux&Pythonプログラミング超入門,ZEPエンジニアリング株式会社.
- [VOD/PiZero KIT]Python×ラズパイで初めての量子コンピュータ,ZEPエンジニアリング株式会社.
- [VOD/Pi400 KIT]SLAMロボット&ラズパイ付き!ROSプログラミング超入門,ZEPエンジニアリング株式会社.
- [VOD/Pi KIT]ラズパイ×Pythonで動かして学ぶモータ制御入門,ZEPエンジニアリング株式会社.