Pytorch実装ハンドブック勉強③
時間が空いてしまった。。。
Pytorch実装ハンドブックの勉強三回目です。
本日は2.4章の損失関数と最適化関数から。
2.4損失関数と最適化関数
◯よく使われる損失関数
回帰問題・・・ MSELoss、L1Loss
MSELossが平均二乗誤差損失、L1Lossが平均絶対誤差損失だそうで。
2値分類問題・・・BCELoss、BCEWithLogitsLoss
BCELossはバイナリ交差エントロピー損失だそうで、、、
これを理解するには、交差エントロピーをしっかり理解しないと
交差エントロピー・・・下記のURLによると、交差エントロピーは試行を行って得られた情報量を
間違った確率分布 q を元にして算出した時の情報量の期待値。
誤った確率で算出された期待値ってことでしょうか。
交差エントロピーの導出 - いっきに Python に詳しくなるサイト
もうひとつのBCEWithLogitsLossは、クラスの判別結果がロジットで出てくる場合に使用する。
多クラス分類問題・・・CrossEntropyLoss
CrossEntropyLossは出てきた各クラスのロジットに対してソフトマックス関数をかけて損失値を算出。
◯いろいろな最適化関数
最適化の種類に、SGD、SGDモメンタム、Adadelta、Adagrad、Adam、RMSprop。意外とちゃんと理解していない。
・確率的勾配降下法(Stochastic Gradient Descent,以下 SGD):確率的勾配(stochastic gradient) ∇l(w,z) を用いた勾配法。
参考:確率的勾配降下法 - 数理計画用語集
・SGDモメンタム:通常の SGDに物理法則のモーメントのような速度減衰の概念を入れ、最適化の高速化を実現。
他の概念は省略。