はじめに
人工知能を専攻して日々AIモデルの実装や研究に向き合っていると、深層学習の教科書に必ず出てくる数式にぶち当たります。特に最適化(勾配降下法)の章で出てくる $\nabla f(\mathbf{a})$ と $\Delta f$。
形も似ているし、同じようなタイミングで登場するので「ごっちゃになってきた…」という経験はありませんか?
この記事では、過去の自分への振り返りも兼ねて、この2つの記号の「役割」と「住んでいる世界」の違いを、直感的なイメージを使ってスッキリ解説します。
結論:コンパスと高度計
結論から言うと、この2つは全く別の生き物です。山下り(最適化)に例えると、次のように切り分けられます。
- 勾配ベクトル = 地面が教えてくれる「コンパス(方向)」
- 関数の値の変化量 = 実際に歩いた結果の「高度計の差分(数値)」
1. 勾配ベクトル:地図上の「コンパス」
- 正体: 「どっちに進むと一番急な上り坂か」を指し示すベクトル(矢印)です。これが $\nabla f(\mathbf{a})$ です。
- 特徴: 今いる場所に立った瞬間に一意に決まります。あなたはまだ一歩も動いていません。高さ(メートル)の情報は持たず、「東に傾き2、北に傾き3」といった方向のセットです。数式の中に、あなたの歩幅($\Delta \mathbf{x}$)は一切登場しません。
2. 変化量:移動した結果の「高さの差」
- 正体: 実際に一歩進んだ結果、標高がどれくらい変わったかを表す単なる数字(スカラー)です。これが $\Delta f$ です。
- 特徴: コンパスを見た上で、あなたが実際に歩幅を決めて**移動した「結果」**として発生します。矢印ではなく、「さっきより5メートル上がった($+5$)」という事実です。
2つを繋ぐ「近似の魔法」
この2つは、深層学習の心臓部とも言える以下の式で繋がっています。
$$\Delta f \approx \nabla f(\mathbf{a}) \cdot \Delta \mathbf{x}$$
直感的な意味は、「一番急な傾きの情報(コンパス)」 $\times$ 「自分が進んだ歩幅」 = 「高さの変化(高度計)」 です。
実際の山は曲がっていますが、足元が「平らな板」だと仮定して掛け算で予測しています。歩幅(学習率)を極限まで小さくすれば、この誤差はなくなります。
勾配降下法のアルゴリズムに「結果の差分」が出てこない理由
教科書の勾配降下法の疑似コードを見ると、更新式はこうなっています。
$$\mathbf{x} \leftarrow \mathbf{x} - \alpha \nabla f(\mathbf{x})$$
※ $\alpha$ は学習率
「あれ? $\Delta f$ はどこに行ったの?」と思うかもしれません。
実は、山を下るための行動手順(コード)には、わざわざ「結果(何メートル下がるか)」を計算する必要がないからです。
コンパス($\nabla f$)の逆を向いて、適切な歩幅($\alpha$)で足を出しさえすれば、先ほどの近似式が「結果($\Delta f$)は勝手にマイナスになる(=下る)よ!」と理論的に保証してくれています。だから計算式には登場しないのです。
まとめ
-
ナブラの仲間:括弧
[ ]に入った「矢印(方向)」。動く前に地形から決まる。 - デルタの仲間:ぽつんと存在する「ただの数字(結果)」。動いたことで発生する。