機械学習の最適化を支える微分の基礎。勾配降下法のために最低限を押さえます。
微分って高校で習ったけど、ML本では『勾配』って書かれててちょっと違う気がする…
いい目の付け所ね。
微分は1変数関数の傾き、偏微分は多変数関数で1変数だけ動かしたときの傾き、勾配∇は全変数の偏微分をまとめたベクトル。
1変数 f(x)=x² なら f'(x)=2x。 これが微分。 2変数 f(x,y)=x²+y² なら ∂f/∂x=2x、∂f/∂y=2y。 これが偏微分よ。
じゃあ勾配ベクトルは∇f = (2x, 2y) ってことですかぁ?
その通り。
勾配は『その点で関数が最も急に増える方向』を指すベクトル。 機械学習では損失関数を最小化したいので、勾配の逆方向に進むのが基本戦略。 これが{kw('勾配降下法')}。
勾配降下法って、めっちゃ大事じゃん!
そう、ニューラルネットワークも線形回帰も、損失関数を勾配降下で最小化するの。 数式: θ_new = θ_old - η·∇L(θ)。 ηは学習率。
学習率って何ですかぁ?
1ステップでどれくらい動くかを決める数値。 大きすぎると振動し、小さすぎると学習が遅い。 0.001〜0.1 が典型値。
極小値だと勾配が0になるんだよね?
その通り。 局所最小値・極大値・鞍点では勾配=0。 二階微分(ヘッセ行列)で形状を判定するけど、DS検定★では『勾配=0が極値の必要条件』を覚えておけば十分よ。
DS検定では『勾配の意味』『勾配降下法の手順』『学習率の役割』が問われやすいわ。
しずく、覚えますぅ♪
f(x, y) = x² + 2xy + 3y² の勾配 ∇f を求める: ∂f/∂x = 2x + 2y ∂f/∂y = 2x + 6y ∇f = (2x + 2y, 2x + 6y) (1, 1) での勾配: ∇f(1, 1) = (2·1 + 2·1, 2·1 + 6·1) = (4, 8) → (1,1) では (4, 8) 方向が最も急な増加方向 → 勾配降下法ではその逆方向(-4, -8)に進む
確認クイズ
勾配降下法における学習率 η の役割として正しいものはどれか。
- 1ステップでパラメータを更新する大きさを決める
- 損失関数の絶対値そのもの
- 勾配の符号を決める
- サンプル数を決める
こたえを見る
正解: 1. 1ステップでパラメータを更新する大きさを決める
1ステップでパラメータを更新する大きさを決めるのが学習率の役割です。 大きすぎると振動して収束しない、小さすぎると学習が極端に遅い、というトレードオフがあり、典型値は 0.001〜0.1 です。