勾配と最適化

微積分の基礎
No.551
数学

日付:2025年3月13日

勾配は、関数の変化方向を示すベクトルであり、最適化の基本となる概念です。特に、機械学習の勾配降下法(Gradient Descent)や、ポートフォリオ最適化などの金融工学に広く応用されます。

目 次

はじめに

前回は、偏微分を学びました。
偏微分を理解すると、多変数関数の変化を 1 つの変数ごとに捉えることができます。
しかし、実際に多変数関数の最適な値(最大値・最小値)を見つけるには、勾配(グラディエント) の概念が重要になります。

勾配は、関数の変化方向を示すベクトルであり、最適化の基本となる概念です。
特に、機械学習の勾配降下法(Gradient Descent) や、ポートフォリオ最適化 などの金融工学に広く応用されます。

今回は、勾配の概念と、最適化に向けた基本的な計算方法を学びます。

1. 勾配(グラディエント)とは?

多変数関数 f(x,y)f(x, y) の変化方向を示すベクトルを 勾配(グラディエント) と呼びます。

勾配は、各変数についての偏微分を並べたベクトルで表されます。

f=(fx,fy)\nabla f = \left( \frac{\partial f}{\partial x}, \frac{\partial f}{\partial y} \right)

このベクトルは、関数が最も速く増加する方向を示します。
つまり、

  • 勾配の向き → 関数が最も増加する方向
  • 勾配の大きさ → その増加の速さ

を表します。

2. 勾配の計算例

例 1:関数 f(x, y) = x^2 + y^2 の勾配

まず、この関数の偏微分を求めます。

fx=2x,fy=2y\frac{\partial f}{\partial x} = 2x, \quad \frac{\partial f}{\partial y} = 2y

したがって、勾配ベクトルは

f=(2x,2y)\nabla f = (2x, 2y)

この勾配ベクトルは、原点に近いほど小さくなり、遠ざかるほど大きくなります。

  • 例えば、点 (1,1)(1,1) では f(1,1)=(2,2)\nabla f(1,1) = (2,2) これは関数がこの方向に最も速く増加することを意味します。
  • 逆に、点 (1,1)(-1,-1) では f(1,1)=(2,2)\nabla f(-1,-1) = (-2,-2) これは、関数がこの方向に最も速く増加することを意味します。

このように、勾配を使うと関数の増加・減少の方向がわかります。

3. 勾配降下法(Gradient Descent)

勾配の性質を利用して、関数の最小値を求める方法が 勾配降下法(Gradient Descent) です。

勾配降下法は、次のような手順で実行されます。

  1. 初期点 (x0,y0)(x_0, y_0) を適当に選ぶ。
  2. 勾配 f(x,y)\nabla f(x, y) を計算する。
  3. f(x,y)\nabla f(x, y) の反対方向に少しだけ進む。
  4. これを繰り返し、関数の最小値を見つける。

更新式は次のようになります。

xn+1=xnηfxx_{n+1} = x_n - \eta \frac{\partial f}{\partial x} yn+1=ynηfyy_{n+1} = y_n - \eta \frac{\partial f}{\partial y}

ここで、η\eta は学習率(ステップの大きさ)です。

例 2: f(x, y) = x^2 + y^2 の最小化

  • 初期点 (x0,y0)=(3,4)(x_0, y_0) = (3, 4) を選ぶ。
  • 勾配を計算: f(3,4)=(6,8)\nabla f(3,4) = (6,8)
  • 学習率 η=0.1\eta = 0.1 として更新: x1=30.1×6=2.4x_1 = 3 - 0.1 \times 6 = 2.4 y1=40.1×8=3.2y_1 = 4 - 0.1 \times 8 = 3.2
  • これを繰り返すと、最終的に (x,y)=(0,0)(x,y) = (0,0) に収束。

このように、勾配降下法は関数の最小値を見つけるための基本的な方法です。

4. 応用例

(1) 機械学習:ニューラルネットワークの学習

ニューラルネットワークのパラメータ(重み)は、損失関数の勾配を用いて最適化されます。

  • 損失関数 L(w)L(w) の勾配を計算し、
  • その方向に沿って重み ww を更新することで、
  • モデルの予測精度が向上する。

(2) 金融工学:ポートフォリオ最適化

ポートフォリオのリスク(分散)は、多変数関数として表されます。

  • f(w1,w2,...,wn)f(w_1, w_2, ..., w_n) をポートフォリオのリスク関数とすると、
  • 各資産の割合 wiw_i に関する勾配を計算し、
  • 最適なポートフォリオの配分を見つける。

まとめ

  • 勾配(グラディエント)は、関数が最も速く増加する方向を示すベクトル。
  • 勾配降下法を使えば、多変数関数の最小値を効率的に求められる。
  • 機械学習や金融工学など、幅広い応用がある。