どうも、カタミチです。
さて、今日も「最短コースでわかる PyTorch&深層学習プログラミング」のひとり読書会、やっていきますかねー。
3章も中盤戦ってところですかねー。いってみよー
3-4. 勾配降下法の実装
さて、本節はどうやら勾配降下法の実装についての節のようです。コーディングの流れとしては大きく4つで…
①予測計算
②損失計算
③勾配計算
④パラメータ修正
とあります。私が前著から学んだ「勾配降下法」と、多少の用語の差異こそあれ、アルゴリズムは同じはずです。なので、個人的には復習の意味合いが強いですかね。ともあれ、見ていきましょう。
①予測計算
まずは予測計算。入力テンソルを\(X\)とし、予測結果を出力テンソル\(Yp\)としたとき、予測関数は、係数\(W\)と定数\(B\)を用いて…
\(Yp = W * X + B\)
と表せるよー、とあります。割り当てられている文字が異なるものの、以前にもやった「予測モデル」の式と同じですね。(参考:【ひとり読書会】ディープラーニングの数学(第18回) - まったりAI勉強記)
ちなみに以前にやったときは、
\(yp=w_0+w_1x\)
って書き方していましたね。改めて見ると、線形回帰は重みパラメータの数が少なく、スタートの式がシンプルですね。
②損失計算
つづいて損失計算。数学的には、数式で色々と苦労した部分になりますが、本書の本節では深くは触れられていません。正解テンソルを\(Y\)とする、ってことと、損失関数には「平均2乗誤差」を選ぶことが書かれているにとどまります。
当然このあたりは、前にアルゴリズムを勉強した部分なので、イメージはついてます、はい。
③勾配計算
で、勾配計算。\(W\)と\(B\)を少しずらすよー、これにより勾配値を求めるよー、ということだけ触れられていますね。
④パラメータ修正
最後にパラメータ修正。勾配値に学習率をかけてずらします。勾配降下法の式として紹介されていたアレですね。(参考:【ひとり読書会】ディープラーニングの数学(第19回) - まったりAI勉強記)今回は、学習率には\(\alpha\)ではなく\(lr\)って文字が使われるようです。
ということで
本節は勾配降下法の手順の話でしたね。次節からはどうやら具体的にコードを書いていくみたいなので、楽しみにしておきますかねー。
ではまた。