Math World Lab

多変数関数の偏微分・全微分

複数の変数が絡み合う関数を「1変数ずつ」切り取って理解する微分の拡張

この単元の発見をシェア
3行要約(Key Takeaways / AIOサマリー)
1
偏微分とは、多変数関数 f(x,y)f(x,y) において1つの変数だけを動かし、他の変数を定数とみなして行う微分のこと
2
偏微分係数を成分に並べたベクトル「勾配 ∇f=(∂f/∂x, ∂f/∂y)\nabla f = (\partial f/\partial x,\ \partial f/\partial y)」は、関数が最も急激に増加する方向とその増加率を表す
3
機械学習の損失関数は多数のパラメータを持つ多変数関数であり、勾配降下法は各パラメータについての偏微分(勾配)を使ってパラメータを一斉に更新する

なぜこれを学ぶのか? — 現実社会とテクノロジーでの価値

Purpose & Motivation

なぜ生まれたのか?

偏微分とは、多変数関数 $f(x,y)$ において1つの変数だけを動かし、他の変数を定数とみなして行う微分のこと

身につく武器・思考力

偏微分係数を成分に並べたベクトル「勾配 $\nabla f = (\partial f/\partial x,\ \partial f/\partial y)$」は、関数が最も急激に増加する方向とその増加率を表す

実社会・ITでの活躍現場

  • •機械学習における多パラメータ損失関数の勾配計算
  • •ITシステム・アルゴリズム実装における論理設計
  • •データ分析やシミュレーションにおける数理モデリング

Layer 1 — 直感・シミュレーター

カラーグリッドとして表示された2変数関数 f(x,y)f(x,y) の「地形図」の上で、スライダーを使って点 (x,y)(x,y) を動かしてみよう。その地点における ∂f/∂x\partial f/\partial x(x方向の傾き)と ∂f/∂y\partial f/\partial y(y方向の傾き)が矢印と数値でリアルタイムに表示され、色の濃淡(関数値の高低)とあわせて、多変数関数の「地形」を体感できる。

f(x,y)f(x,y) = 0.589
∂f/∂x\partial f/\partial x = 0.539
∂f/∂y\partial f/\partial y = 0.389

↑ 色の濃淡は関数値 f(x,y) の高低(黄色が高い・青が低い)を表す地形図。スライダーで点(x,y)を動かすと、赤い矢印がx方向の傾き(∂f/∂x)、緑の矢印がy方向の傾き(∂f/∂y)を表し、矢印の向きと長さがその地点での勾配ベクトルの成分にほぼ対応する。

直感チェック!ミニクイズ

f(x,y)=x2y+3y2f(x,y) = x^2 y + 3y^2 のとき、点 (x,y)=(2,1)(x,y)=(2,1) における偏微分 ∂f/∂x\partial f/\partial x の値はいくつか?

Layer 2 — 定義・受験・証明

定義

2変数関数 f(x,y)f(x,y) の xx に関する偏微分係数は、yy を固定して xx のみを変数とみなした極限として定義される。

∂f∂x(x,y)=lim⁡h→0f(x+h,y)−f(x,y)h\frac{\partial f}{\partial x}(x,y) = \lim_{h\to 0} \frac{f(x+h,y) - f(x,y)}{h}

同様に yy に関する偏微分 ∂f/∂y\partial f/\partial y も定義される。これらを成分に持つベクトルを「勾配(グラディエント)」と呼ぶ。

∇f(x,y)=(∂f∂x, ∂f∂y)\nabla f(x,y) = \left(\frac{\partial f}{\partial x},\ \frac{\partial f}{\partial y}\right)

また、x,yx, y の微小変化 dx,dydx, dy に対する ff の変化量の1次近似を「全微分」と呼び、df=∂f∂xdx+∂f∂ydydf = \dfrac{\partial f}{\partial x}dx + \dfrac{\partial f}{\partial y}dy で与えられる。

公式・数理モデル

∇f=(∂f∂x,∂f∂y),df=∂f∂xdx+∂f∂ydy\nabla f = \left(\frac{\partial f}{\partial x}, \frac{\partial f}{\partial y}\right), \qquad df = \frac{\partial f}{\partial x}dx + \frac{\partial f}{\partial y}dy

証明・導出

勾配が最大増加方向を示すことの証明: 点 (x0,y0)(x_0,y_0) から単位ベクトル u=(cos⁡θ,sin⁡θ)\mathbf{u}=(\cos\theta,\sin\theta) の方向へ進むときの ff の変化率(方向微分)は、全微分の式より、

Duf=∂f∂xcos⁡θ+∂f∂ysin⁡θ=∇f⋅uD_{\mathbf{u}} f = \frac{\partial f}{\partial x}\cos\theta + \frac{\partial f}{\partial y}\sin\theta = \nabla f \cdot \mathbf{u}

ここでベクトルの内積の性質 ∇f⋅u=∥∇f∥ ∥u∥cos⁡φ=∥∇f∥cos⁡φ\nabla f \cdot \mathbf{u} = \|\nabla f\| \, \|\mathbf{u}\| \cos\varphi = \|\nabla f\| \cos\varphi(φ\varphi は ∇f\nabla f と u\mathbf{u} のなす角、∥u∥=1\|\mathbf{u}\|=1)を用いると、

Duf=∥∇f∥cos⁡φD_{\mathbf{u}} f = \|\nabla f\| \cos\varphi

これは φ=0\varphi = 0、つまり u\mathbf{u} が ∇f\nabla f と同じ向きのときに最大値 ∥∇f∥\|\nabla f\| をとる。 したがって勾配ベクトル ∇f\nabla f の指す方向こそが、関数値が最も急激に増加する方向であり、その大きさ ∥∇f∥\|\nabla f\| が最大増加率そのものである(逆向き −∇f-\nabla f は最も急激に減少する方向)。

押さえておきたいポイント

  • 偏微分は「他の変数を一時的に定数とみなす」だけで、1変数の微分公式(積の微分・合成関数の微分など)がそのまま使える
  • 勾配ベクトル ∇f\nabla f は等高線(ff が一定の曲線)に対して常に直交する
  • 極値の必要条件は ∇f=0\nabla f = \mathbf{0}(すべての偏微分が同時に0)であり、これは1変数関数の f′(x)=0f'(x)=0 の自然な拡張である
  • 勾配降下法では、パラメータベクトル θ\theta を θ←θ−η∇f(θ)\theta \leftarrow \theta - \eta \nabla f(\theta) と更新することで、損失関数 ff が最も急激に減少する方向へパラメータを動かす
参照基準・学習指導要領との対応

本トピックの内容・数理モデルは、文部科学省学習指導要領(算数・数学・情報)および国際標準カリキュラムに準拠し、エンジニアリング現場の実装事例と照らし合わせてMath World Lab編集部により検証・作成されています。

Layer 3 — 工学応用・現場実装

機械学習における多パラメータ損失関数の勾配計算

機械学習モデルの損失関数は、重み・バイアスなど何百万もの変数を持つ多変数関数である。各パラメータについての偏微分(勾配)を数値的または解析的(誤差逆伝播法)に求め、そのベクトルに沿ってパラメータを更新することで、損失を最小化する。ここでは単純な2変数関数で数値微分による勾配計算の仕組みを示す。

1// 中心差分法による数値偏微分(1変数の微分の多変数への素朴な拡張)
2function partialDerivative(
3 f: (x: number, y: number) => number,
4 x: number,
5 y: number,
6 variable: "x" | "y",
7 h = 1e-5
8): number {
9 if (variable === "x") {
10 return (f(x + h, y) - f(x - h, y)) / (2 * h);
11 } else {
12 return (f(x, y + h) - f(x, y - h)) / (2 * h);
13 }
14}
15
16// 勾配ベクトル ∇f = (∂f/∂x, ∂f/∂y) を計算
17function gradient(
18 f: (x: number, y: number) => number,
19 x: number,
20 y: number
21): { dfdx: number; dfdy: number } {
22 return {
23 dfdx: partialDerivative(f, x, y, "x"),
24 dfdy: partialDerivative(f, x, y, "y"),
25 };
26}
27
28// 例: 損失関数 f(x, y) = (x - 3)^2 + (y + 1)^2(凸関数、最小値は (3, -1))
29const loss = (x: number, y: number) => (x - 3) ** 2 + (y + 1) ** 2;
30
31// 多変数版の勾配降下法
32function gradientDescent2D(
33 f: (x: number, y: number) => number,
34 start: { x: number; y: number },
35 learningRate = 0.1,
36 steps = 50
37) {
38 let { x, y } = start;
39 for (let i = 0; i < steps; i++) {
40 const { dfdx, dfdy } = gradient(f, x, y);
41 x -= learningRate * dfdx; // 各パラメータを勾配の逆方向に更新
42 y -= learningRate * dfdy;
43 }
44 return { x, y };
45}
46
47console.log(gradientDescent2D(loss, { x: 0, y: 0 }));
48// (3, -1) に近い値へ収束する

次に学ぶならコレ!おすすめトピック

この単元と深い繋がりを持つ、あわせて学ぶと理解が深まるおすすめ単元

数理モデル・概念が近い関連トピック

関連度高大学数学

テイラー展開・マクローリン展開

複雑な関数を「多項式のはしご」で近似する解析学の万能ツール

関連度高工学応用

勾配降下法

谷底を探すAIの基本アルゴリズム

関連度高大学数学

ベイズの定理(条件付き確率と事前・事後確率)

新たな情報や証拠(エビデンス)を得て「確信度」を更新する確率論

同じレベルで次に挑戦したいトピック

同レベル推薦大学数学

固有値・固有ベクトル

行列で変換しても「向きが変わらない」特別な方向

同レベル推薦大学数学

フーリエ変換と周波数分解

どんなに複雑な波も、単純なサイン波の重ね合わせに分解できる

同レベル推薦大学数学

正規分布と中心極限定理

あらゆるランダムなばらつきが最終的に収束する「釣鐘型の山」

工学・実社会での応用先でつながるトピック

工学・実践連携小学校・算数

平均値・中央値・データの活用

棒グラフを動かして、平均と中央値の違いを体で覚えよう

工学・実践連携中学数学

四分位範囲・箱ひげ図

データを並べて4等分すると、散らばり具合が一目でわかる

✨1% 排出100連ガチャ当選 63.4%爆死 36.6%1/e の法則
工学・実践連携中学数学

ガチャ確率と大数の法則(確率の心理バイアス)

「確率1%を100回引けば当たる?」余事象と二項分布が暴くスマホゲームの現実

あなたの数学力をさらに伸ばす

数学の弱点診断や算数パズルに挑戦してみませんか?

簡単な質問に答えてあなたにぴったりの学習ロードマップを発見したり、直感を試すパズルで数の面白さを体験できます。