機械学習・強化学習の分野において、「合成関数の微分(連鎖律、英: chain rule)」は、**誤差逆伝播法(Backpropagation)や勾配降下法(Gradient Descent)**の基礎となる極めて重要な概念です。以下に、定義・導出・例・機械学習への応用を含めて詳しく説明します。
1. 合成関数の微分(連鎖律)の定義
連鎖律とは、複数の関数を合成した関数の導関数を求めるためのルールです。
単変数の場合
2つの関数
-
y=f(u)
-
u=g(x)
の合成関数 y=f(g(x)) の微分は、次のように表されます:
dxdy=dudf⋅dxdu
つまり、「外側の関数の微分 × 内側の関数の微分」。
2. 多変数関数における連鎖律
機械学習では、多変数関数が頻出します。たとえば:
-
z=f(x,y)
-
x=g(t),y=h(t)
のとき、z=f(g(t),h(t)) の導関数は:
dtdz=∂x∂f⋅dtdx+∂y∂f⋅dtdy
これは、ベクトル形式の合成関数にも一般化され、ヤコビアンや勾配ベクトルを使って表現されます。
3. 具体例
例1:単変数合成関数
f(x)=sin(x2)
このとき、
連鎖律により:
dxdsin(x2)=cos(x2)⋅2x
例2:多変数の合成
z=x2+y2,x=t2,y=sint
dtdz=∂x∂z⋅dtdx+∂y∂z⋅dtdy=2x⋅2t+2y⋅cost
4. 機械学習における応用:誤差逆伝播法
ニューラルネットワークの学習では、損失関数 L を入力 x に対して最小化する必要がありますが、L は通常、何層もの合成関数となっています。
たとえば、出力 y=fn(fn−1(⋯f1(x))) のような関数に対し、各パラメータの勾配を求めるために、連鎖律を何度も繰り返し適用します:
dxdL=dyndL⋅dyn−1dyn⋅⋯⋅dxdy1
このように、中間層の誤差が次々に伝播することで、各パラメータに対する勾配が計算できるのです。
5. まとめ
| 項目 |
内容 |
| 名称 |
合成関数の微分(連鎖律) |
| 単変数 |
dxdf(g(x))=f′(g(x))⋅g′(x) |
| 多変数 |
偏微分の合成によって構成される |
| 応用 |
誤差逆伝播法、勾配降下法など機械学習の根幹 |
| 本質 |
「微分の掛け算」で合成関数の微分を順に伝播させる |