多変数関数
複数の入力から 1 つの値を返す関数。 最適化の目的関数はこの形。
1 変数と何が違うか#
方向の自由度が生まれる。 1 変数なら増えるか減るかの 2 択だが、 変数では無限の方向がある。 そのため「どちらへ動くか」という問いが意味を持ち、 勾配という道具が必要になる。
次元の呪い#
次元が上がると、直感が通用しなくなる。
- 体積のほとんどが表面近くに集まる。 半径 1 の球で、 外側 1% の殻に含まれる体積の割合は 。 で 63%、 でほぼ 100%
- 点どうしの距離がほぼ等しくなる。 最近傍と最遠点の距離の比が 1 に近づく
- 格子で刻むと点数が指数的に増える。 各軸 10 分割で
これがランダム探索が 高次元で無力になる理由であり、 グリッドサーチが実用にならない理由でもある。
可視化の限界#
3 次元までしか描けない。高次元の関数を理解するには
- 2 変数だけ動かした断面を見る
- 主成分方向へ射影する
- 目的関数値の推移だけを追う
といった間接的な手段に頼ることになる。
参考文献#
- MIT OCW 18.02 Multivariable Calculus https://ocw.mit.edu/courses/18-02-multivariable-calculus-fall-2007/
- Ian Goodfellow, Yoshua Bengio, Aaron Courville. Deep Learning. MIT Press, 2016. https://www.deeplearningbook.org/