合成関数の微分(連鎖律)

機械学習・強化学習の分野において、「合成関数の微分連鎖律、英: chain rule)」は、**誤差逆伝播法(Backpropagation)勾配降下法(Gradient Descent)**の基礎となる極めて重要な概念です。以下に、定義・導出・例・機械学習への応用を含めて詳しく説明します。


1. 合成関数の微分(連鎖律)の定義

連鎖律とは、複数の関数を合成した関数の導関数を求めるためのルールです。

単変数の場合

2つの関数

  • y=f(u)y = f(u)

  • u=g(x)u = g(x)

の合成関数 y=f(g(x))y = f(g(x)) の微分は、次のように表されます:

dydx=dfdududx\frac{dy}{dx} = \frac{df}{du} \cdot \frac{du}{dx}

つまり、「外側の関数の微分 × 内側の関数の微分」。


2. 多変数関数における連鎖律

機械学習では、多変数関数が頻出します。たとえば:

  • z=f(x,y)z = f(x, y)

  • x=g(t),y=h(t)x = g(t),\quad y = h(t)

のとき、z=f(g(t),h(t))z = f(g(t), h(t)) の導関数は:

dzdt=fxdxdt+fydydt\frac{dz}{dt} = \frac{\partial f}{\partial x} \cdot \frac{dx}{dt} + \frac{\partial f}{\partial y} \cdot \frac{dy}{dt}

これは、ベクトル形式の合成関数にも一般化され、ヤコビアンや勾配ベクトルを使って表現されます。


3. 具体例

例1:単変数合成関数

f(x)=sin(x2)f(x) = \sin(x^2)

このとき、

  • 外側関数:f(u)=sin(u)f(u) = \sin(u)

  • 内側関数:u=x2u = x^2

連鎖律により:

ddxsin(x2)=cos(x2)2x\frac{d}{dx} \sin(x^2) = \cos(x^2) \cdot 2x


例2:多変数の合成

z=x2+y2,x=t2,y=sintz = x^2 + y^2,\quad x = t^2,\quad y = \sin t
dzdt=zxdxdt+zydydt=2x2t+2ycost\frac{dz}{dt} = \frac{\partial z}{\partial x} \cdot \frac{dx}{dt} + \frac{\partial z}{\partial y} \cdot \frac{dy}{dt} = 2x \cdot 2t + 2y \cdot \cos t


4. 機械学習における応用:誤差逆伝播法

ニューラルネットワークの学習では、損失関数 LL を入力 xx に対して最小化する必要がありますが、LL は通常、何層もの合成関数となっています。

たとえば、出力 y=fn(fn1(f1(x)))y = f_n(f_{n-1}(\cdots f_1(x))) のような関数に対し、各パラメータの勾配を求めるために、連鎖律を何度も繰り返し適用します:

dLdx=dLdyndyndyn1dy1dx\frac{dL}{dx} = \frac{dL}{dy_n} \cdot \frac{dy_n}{dy_{n-1}} \cdot \cdots \cdot \frac{dy_1}{dx}

このように、中間層の誤差が次々に伝播することで、各パラメータに対する勾配が計算できるのです。


5. まとめ

項目 内容
名称 合成関数の微分(連鎖律)
単変数 ddxf(g(x))=f(g(x))g(x)\frac{d}{dx} f(g(x)) = f'(g(x)) \cdot g'(x)
多変数 偏微分の合成によって構成される
応用 誤差逆伝播法、勾配降下法など機械学習の根幹
本質 微分の掛け算」で合成関数の微分を順に伝播させる

生成日:2025/06/01