論文一覧に戻る 📚 用語集トップ 🗺 概念マップ
📚 用語解説
📚 用語解説
偏微分
Partial Derivative
数学基礎

🔖 キーワード索引

多変数関数勾配ナブラ全微分連鎖律ヘッシアン極値勾配降下法ラグランジュ最適化

別名・略称:(なし)

💡 30秒で分かる結論

偏微分(Partial Derivative):多変数関数の特定変数による微分

📍 あなたが今見ているもの

機械学習=損失関数の最小化」と聞いて、 その最小化がどう行われるかと言えば、 答えは 偏微分。 損失関数を各パラメータで偏微分し、 その値(勾配)の反対方向にパラメータを動かしていく。 これが 勾配降下法。 全てのニューラルネットの学習はこの仕組みに乗っています。

🎨 直感で掴む

偏微分のイメージ

関数 $f(x, y) = x^2 + 3xy + y^2$ について:

  • $x$ で偏微分($y$ は定数扱い):$\frac{\partial f}{\partial x} = 2x + 3y$
  • $y$ で偏微分($x$ は定数扱い):$\frac{\partial f}{\partial y} = 3x + 2y$

勾配ベクトル

2 つの偏微分を並べると勾配 $\nabla f$:

$\nabla f = \left( \frac{\partial f}{\partial x}, \frac{\partial f}{\partial y} \right) = (2x+3y,\ 3x+2y)$

この向きが 関数が最も急に増える方向。 反対向きに進めば最小値に近づく。

📐 定義 / 数式

【偏微分の定義】
$$\frac{\partial f}{\partial x_i} = \lim_{h \to 0} \frac{f(x_1, \ldots, x_i+h, \ldots, x_n) - f(x_1, \ldots, x_n)}{h}$$
【勾配】
$$\nabla f = \left(\frac{\partial f}{\partial x_1}, \frac{\partial f}{\partial x_2}, \ldots, \frac{\partial f}{\partial x_n}\right)^\top$$
【連鎖律(合成関数)】
$$\frac{\partial f}{\partial x} = \sum_{i} \frac{\partial f}{\partial u_i} \cdot \frac{\partial u_i}{\partial x}$$
$f$ が $u_i$ の関数で、 各 $u_i$ が $x$ の関数のとき

🔬 記号・式を言葉で読み解く

$\partial$
「パーシャル」記号。 通常の微分 $d$ と区別。
勾配
全偏微分を並べたベクトル。 関数の増加方向を指す。
方向微分
任意の方向への変化率。 勾配との内積で計算可。
ヘッシアン
二階偏微分の行列。 関数の曲率を表す。
連鎖律
合成関数の偏微分。 NN の誤差逆伝播の理論基盤。

🧮 実データで計算してみる

線形回帰 $\hat y = \beta_0 + \beta_1 x$ の損失 $L = \sum(y_i - \hat y_i)^2$ を $\beta_1$ で偏微分:

$$\frac{\partial L}{\partial \beta_1} = -2\sum_i x_i (y_i - \beta_0 - \beta_1 x_i)$$

これを 0 にする $\beta_1$ が最小二乗解。 数値最適化なら 勾配降下法

$$\beta_1^{(t+1)} = \beta_1^{(t)} - \eta \cdot \frac{\partial L}{\partial \beta_1}$$

これを反復するとパラメータが最小値に向かう。 $\eta$ は学習率。

🐍 Python 実装

SSDSE-B-2026(47 都道府県・2023 年データ)を題材にした最小コード:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
import numpy as np
import sympy as sp

# 数式の偏微分(SymPy)
x, y = sp.symbols('x y')
f = x**2 + 3*x*y + y**2
print('∂f/∂x =', sp.diff(f, x))  # 2*x + 3*y
print('∂f/∂y =', sp.diff(f, y))  # 3*x + 2*y

# 数値的偏微分(中心差分)
def numerical_partial(f, x, i, h=1e-5):
    x1, x2 = x.copy(), x.copy()
    x1[i] += h
    x2[i] -= h
    return (f(x1) - f(x2)) / (2*h)

⚠️ よくある落とし穴

⚠️ 変数の独立性を仮定
実際は変数同士が関連している場合、 偏微分だけでは因果効果を見誤ることがある。
⚠️ 連鎖律の符号ミス
符号を間違えると勾配降下が発散する。
⚠️ 数値微分のステップサイズ
小さすぎると数値誤差、 大きすぎると近似誤差。
⚠️ 離散関数に微分
整数値関数は通常の偏微分不可。 → 差分や代理関数。
⚠️ 非微分可能点
ReLU の x=0、 |x| の x=0 など。 → 劣勾配を使う。

🌐 関連手法・この用語を使う論文

📄 機械学習を使う論文
ニューラルネットや勾配ベースの最適化を使う全論文の数学的基礎です。