今週、勾配法+機械学習の勉強会があるので予習!
勾配法
損失関数の大きさを最小にするために使う方法
→ 機械学習だと学習データで予測精度を高めるための方法って感じかな (正解に近づくように重みとかバイアスとかをいい感じに調整するあれですね)
勾配降下法
損失関数の大きさの勾配を下っていくように損失関数の大きさが最小になる点を探す方法
G検定の勉強とかで聞いたことある 勾配法って言葉より先に勾配降下法を聞いたことある! 有識者に聞いたところ、勾配法と勾配降下法は同じ意味って認識でOKみたい
勾配法と微分の関係
勾配法の勾配は「損失関数の大きさ」を表したグラフ(関数) 微分してグラフの傾きを調べ、傾きが0のところが最小値となる
→ 誤差関数の値が最小=最適解
しかし、ディープラーニングなどではたくさん(多次元)変数を使うので 損失関数の大きさの関数もかなり複雑らしい 複雑な関数だと傾きが0になる点を求めるのが難しいので、勾配法の登場!
- 関数上のある2点を取って、その接線の傾きを求める(微分する)
- 傾きが正(右上がり)だったら、2点より左側(マイナス側)に傾き=0がありそう
- 傾きが負(右下がり)だったら、2点より右側(プラス側)に傾き=0がありそう
- 何回も接線の傾きを求めていって「このくらいの傾きの小ささだったらOK」な点を出す