G検定学習記録_ニューラルネットワーク
この続き。
活性化関数
用語 | 解説 |
---|---|
ステップ関数 | 閾値を超えたら1,超えなかったら0を出力する |
シグモイド関数 | 0~1を出力する。見た目が緩やかなS字カーブ |
tanh関数 | シグモイド関数に似ている。出力範囲が-1~1。シグモイド関数よりも勾配消失問題が起こりにくい。 |
ReLU | 入力が負の場合は0、正の場合は入力値をそのまま出力する。微分不可能な点が存在する。 |
ソフトマックス関数 | 3つ以上の多クラス分類での出力に使われる |
※自己符号化器(Autoencoder):次元圧縮するためのアルゴリズム
色々な定理
用語 | 解説 |
---|---|
ノーフリーランチ定理 | あらゆる問題において性能の良い汎用的な解決法はなく、個々のタスクに対して最適化していく必要がある |
みにくいアヒルの子定理 | 何らかの仮説、前提知識がないと分類やパターン認識は不可能である*1 |
バーニーおじさんのルール | ニューラルネットワークの重みパラメーターの数に対して、最低限その10倍以上の訓練データ量が必要*2 |
モラベックのパラドックス | AIなどは高度な知性に基づく推論よりも、本能に基づく運動スキルや知能を身につける方がはるかに難しいこと*3 |
勾配効果法の問題点と解決方法
用語 | 問題点 | 解決法 |
---|---|---|
局所最適解 | 見せかけの最適解 | 学習率を大きく設定する |
鞍点 | ある次元では極小であるが、ある次元では極大となってしまう点。学習を重ねても鞍点から抜け出せない状態をプラトーと呼ぶ | モーメンタム。学習を加速させる。 |
学習時間 | 大規模なデータセットだと学習時間がかかる | ミニバッチ勾配効果法。全体ではなく一部のデータをランダムに選んで学習 |
※バッチ学習 = 一度に全ての学習データを用いる | ||
※オンライン学習 = データをランダムに1つずつ選択して学習する |
ミニバッチ学習補足
用語 | 解説 |
---|---|
イテレーション | 勾配効果法を実行した回数=パラメータが更新された回数 |
エポック | 全データを学習した回数 |
過学習を抑える方法
用語 | 解説 |
---|---|
ドロップアウト | 学習時にランダムにノードを除外。ネットワークを強制的に小さくしている。 |
早期終了 | 学習を早い段階で止めること |
正則化 | L1正則化、L2正則化 |
パラメータ更新最適化アルゴリズム
用語 | 解説 |
---|---|
SGD | 誤差関数を計算する際、順番をシャッフルして計算する |
Adagrad | 学習が進むにつれて学習率を小さくする。一度学習率を小さくすると大きくできなくて学習が停滞する可能性があるのが課題 |
RMSprop | AdaGradを改良。現在の勾配を反映して学習率を調整する。 |
Adam | RMSProp + モーメンタムを組み合わせた手法 |
学習率の調整方法が色々ググってみてもまだイメージつかない、、
*1:https://atmarkit.itmedia.co.jp/ait/articles/2007/30/news024.html
*2:https://atmarkit.itmedia.co.jp/ait/articles/2008/12/news015.html#:~:text=%E7%94%A8%E8%AA%9E%E8%A7%A3%E8%AA%AC,%E3%81%82%E3%81%8F%E3%81%BE%E3%81%A7%E7%B5%8C%E9%A8%93%E5%89%87%E3%81%A7%E3%81%82%E3%82%8B%E3%80%82
*3:https://atmarkit.itmedia.co.jp/ait/articles/2009/23/news024.html