連鎖律(チェインルール)完全ガイド|合成関数の微分をマスターしよう

数学

「y = sin(x²)を微分してください」と言われたら、どう計算しますか?

「えっと…sinの微分はcosで…x²の微分は2xで…あれ?どう組み合わせればいいの?」

こんな経験、ありませんか?

実は、この「関数の中に別の関数が入っている」タイプの微分には、特別なルールがあります。それが連鎖律(チェインルール)です。

連鎖律は、高校数学から大学数学、さらには機械学習(AI)の世界でも超重要な概念です。この記事では、連鎖律の基本から実際の応用まで、初心者の方にも分かりやすく、順を追って解説していきます。

スポンサーリンク
  1. 連鎖律(チェインルール)って何?
    1. 連鎖律を一言で表すと
    2. 合成関数って何?
    3. なぜ連鎖律が必要なの?
  2. 連鎖律の公式
    1. 基本形(1変数の場合)
    2. なぜ「連鎖」律なのか
  3. 連鎖律の使い方|ステップバイステップ
    1. ステップ1:外側と内側を見分ける
    2. ステップ2:外側を微分する(内側はそのまま)
    3. ステップ3:内側を微分する
    4. ステップ4:掛け算する
  4. 具体例で理解を深めよう
    1. 例題1:基本的な多項式
    2. 例題2:三角関数
    3. 例題3:指数関数
    4. 例題4:平方根
    5. 例題5:複雑な合成関数
    6. 例題6:3段階の合成関数
  5. 連鎖律の仕組み|なぜこれで合ってるの?
    1. 直感的な理解
    2. 具体例で考える
    3. 数式での証明(興味がある人向け)
  6. 多変数関数の連鎖律
    1. 2変数関数の連鎖律
    2. 具体例:2変数関数
    3. 連鎖律の図解(木構造)
  7. 連鎖律の実際の応用
    1. 応用1:機械学習(AI)
    2. 応用2:物理学
    3. 応用3:経済学
  8. よくある間違いと注意点
    1. 間違い1:内側の微分を忘れる
    2. 間違い2:外側と内側を逆にする
    3. 間違い3:展開してから微分すれば良いと思う
    4. 間違い4:偏微分記号と普通の微分記号を混同する
  9. 練習問題
    1. 問題1
    2. 問題2
    3. 問題3
    4. 問題4
    5. 問題5
  10. よくある質問(FAQ)
    1. Q1:連鎖律を使わなくても微分できる?
    2. Q2:連鎖律を使うとき、どっちが外側か分からなくなる
    3. Q3:3段階以上の合成関数はどうする?
    4. Q4:偏微分の連鎖律がよく分からない
    5. Q5:機械学習を勉強するのに連鎖律は必須?
    6. Q6:連鎖律を速く計算できるようになるには?
    7. Q7:連鎖律と積の微分公式の違いは?
  11. まとめ
    1. 連鎖律の基本
    2. 連鎖律を使う手順
    3. よく使うパターン
    4. 多変数関数の場合
    5. 実際の応用
    6. 最後に

連鎖律(チェインルール)って何?

連鎖律(れんさりつ)は、英語で「Chain Rule(チェインルール)」と呼ばれる、微分の公式の一つです。日本語では「合成関数の微分公式」とも言います。

連鎖律を一言で表すと

「関数の中に別の関数が入っている(合成関数)を微分するとき、外側の微分×内側の微分で計算できる」

これが連鎖律の基本的な考え方です。

合成関数って何?

連鎖律を理解するには、まず「合成関数」を理解する必要があります。

合成関数とは、ある関数の結果を、別の関数に入れることです。

イメージで理解しよう

料理に例えると分かりやすいです。

  1. 材料(x)を洗う → きれいな材料(u)になる
  2. きれいな材料(u)を調理する → 完成品(y)になる

この「洗って、調理する」という2段階の処理が、合成関数です。

数式で表すと

  • u = g(x)(xを使ってuを作る)
  • y = f(u)(uを使ってyを作る)

これをまとめて書くと:

y = f(g(x))

これが合成関数です。gの結果をfに入れているわけですね。

なぜ連鎖律が必要なの?

普通の関数なら、習った微分の公式を使えば簡単に微分できます。

  • y = x² → y’ = 2x
  • y = sin(x) → y’ = cos(x)

でも、関数の中に別の関数が入っていたら?

y = sin(x²)

これをそのまま「sinの微分はcos」と単純に考えると、cos(x²)になってしまいますが、これは間違いです。

正しい答えは:2x·cos(x²)

この「内側のx²の微分である2xを掛ける」という部分が、連鎖律のポイントなんです。

連鎖律の公式

それでは、連鎖律の公式を見ていきましょう。

基本形(1変数の場合)

合成関数 y = f(g(x)) を微分すると:

dy/dx = f'(g(x)) · g'(x)

または、u = g(x) とおくと:

dy/dx = (dy/du) · (du/dx)

読み方・意味

  • dy/dx:yをxで微分したもの
  • dy/du:yをuで微分したもの(外側の関数の微分)
  • du/dx:uをxで微分したもの(内側の関数の微分)

「外側の微分」に「内側の微分」を掛ければOKというわけです。

なぜ「連鎖」律なのか

連鎖律という名前の由来は、複数の微分を「鎖のようにつなぐ」からです。

xが変化すると → uが変化して → yが変化する

という変化の連鎖を、微分を掛け算でつなぐことで表現しているんですね。

連鎖律の使い方|ステップバイステップ

それでは、実際に連鎖律を使って微分してみましょう。

ステップ1:外側と内側を見分ける

合成関数を見たら、まず「外側の関数」と「内側の関数」を区別します。

例:y = (3x + 5)⁴

  • 外側の関数:f(u) = u⁴(何か4乗にしている)
  • 内側の関数:u = 3x + 5

ステップ2:外側を微分する(内側はそのまま)

外側の関数を微分します。このとき、内側はそのまま残しておきます。

f(u) = u⁴ の微分は f'(u) = 4u³

uの部分は内側の (3x + 5) のままなので:

4(3x + 5)³

ステップ3:内側を微分する

次に、内側の関数を微分します。

u = 3x + 5 の微分は u’ = 3

ステップ4:掛け算する

外側の微分×内側の微分を計算します。

y’ = 4(3x + 5)³ · 3 = 12(3x + 5)³

完成です!

具体例で理解を深めよう

それでは、いろいろなパターンの例題を見ていきましょう。

例題1:基本的な多項式

問題:y = (x² + 1)³ を微分せよ

解答

外側:f(u) = u³ → f'(u) = 3u²
内側:u = x² + 1 → u’ = 2x

連鎖律を適用:

y’ = 3(x² + 1)² · 2x = 6x(x² + 1)²

例題2:三角関数

問題:y = sin(3x) を微分せよ

解答

外側:f(u) = sin(u) → f'(u) = cos(u)
内側:u = 3x → u’ = 3

連鎖律を適用:

y’ = cos(3x) · 3 = 3cos(3x)

覚え方のコツ

sin(○)の形なら、「cosにして、○の微分を掛ける」と覚えましょう。

例題3:指数関数

問題:y = e^(2x) を微分せよ

解答

外側:f(u) = e^u → f'(u) = e^u
内側:u = 2x → u’ = 2

連鎖律を適用:

y’ = e^(2x) · 2 = 2e^(2x)

覚え方のコツ

e^(○)の形なら、「eはそのまま、○の微分を掛ける」と覚えましょう。

例題4:平方根

問題:y = √(x² + 4) を微分せよ

解答

まず、√を指数の形に書き換えます:y = (x² + 4)^(1/2)

外側:f(u) = u^(1/2) → f'(u) = (1/2)u^(-1/2) = 1/(2√u)
内側:u = x² + 4 → u’ = 2x

連鎖律を適用:

y’ = 1/(2√(x² + 4)) · 2x = x/√(x² + 4)

例題5:複雑な合成関数

問題:y = sin(x²) を微分せよ

解答

外側:f(u) = sin(u) → f'(u) = cos(u)
内側:u = x² → u’ = 2x

連鎖律を適用:

y’ = cos(x²) · 2x = 2x cos(x²)

これが冒頭で出てきた問題の答えです!

例題6:3段階の合成関数

問題:y = sin((2x + 1)³) を微分せよ

これは関数が3段階になっています。

解答

一番外側から順番に微分していきます。

  1. 一番外側:sin(○) → cos(○)
  2. 中間:(○)³ → 3(○)²
  3. 一番内側:2x + 1 → 2

全部掛け算します:

y’ = cos((2x + 1)³) · 3(2x + 1)² · 2

整理すると:

y’ = 6(2x + 1)² cos((2x + 1)³)

ポイント

複雑な合成関数でも、外側から順番に微分して、全部掛け算すればOKです。

連鎖律の仕組み|なぜこれで合ってるの?

「なんで外側と内側を掛け算すればいいの?」と疑問に思いませんか?

直感的な理解

変化率(微分)は「どれだけ変化するか」を表します。

xが少し変化すると → uがどれだけ変化するか(du/dx)
uが少し変化すると → yがどれだけ変化するか(dy/du)

この2つの変化率を掛け算すれば、「xが変化したときにyがどれだけ変化するか」(dy/dx)が分かるわけです。

具体例で考える

温度の変化を例にしましょう。

  • 1時間で気温が2℃上がる(du/dt = 2)
  • 気温が1℃上がると、アイスの売上が10個増える(dy/du = 10)

では、1時間でアイスの売上は何個増える?

2℃上がる × 10個/℃ = 20個増える

これが連鎖律の考え方です!

数式での証明(興味がある人向け)

xがΔxだけ変化すると、uはΔuだけ変化し、yはΔyだけ変化します。

Δy ≈ (dy/du) · Δu(yの変化 = uの変化率 × uの変化量)
Δu ≈ (du/dx) · Δx(uの変化 = xの変化率 × xの変化量)

Δuを代入すると:

Δy ≈ (dy/du) · (du/dx) · Δx

両辺をΔxで割って、Δx → 0 の極限を取ると:

dy/dx = (dy/du) · (du/dx)

これが連鎖律の公式です。

多変数関数の連鎖律

ここまでは1変数の関数(yがxだけに依存する)の連鎖律を見てきました。でも、実際の世界では、複数の変数に依存する関数(多変数関数)がたくさんあります。

2変数関数の連鎖律

関数 f(x, y) があって、x と y がそれぞれ t の関数である場合を考えます。

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

このとき、f を t で微分すると:

df/dt = (∂f/∂x) · (dx/dt) + (∂f/∂y) · (dy/dt)

記号の意味

  • ∂f/∂x(デルエフ デルエックス):fをxで偏微分したもの(yは定数として扱う)
  • ∂f/∂y:fをyで偏微分したもの(xは定数として扱う)

覚え方

「各変数ごとに、連鎖律を適用して、全部足し合わせる」

具体例:2変数関数

問題:f = x² + xy、x = 2t、y = t² のとき、df/dt を求めよ

解答

まず、偏微分を計算:

∂f/∂x = 2x + y
∂f/∂y = x

次に、x と y の t による微分:

dx/dt = 2
dy/dt = 2t

連鎖律を適用:

df/dt = (2x + y) · 2 + x · 2t

x = 2t、y = t² を代入:

df/dt = (2·2t + t²) · 2 + 2t · 2t
= (4t + t²) · 2 + 4t²
= 8t + 2t² + 4t²
= 8t + 6t²

連鎖律の図解(木構造)

多変数関数の連鎖律は、木構造(ツリー図)で考えると分かりやすくなります。

     f
    / \
   x   y
    \ /
     t

f から t への経路が2つあります:

  1. f → x → t
  2. f → y → t

それぞれの経路で微分を掛け算して、最後に全部足し合わせます。

連鎖律の実際の応用

連鎖律は、理論だけでなく、実際のいろいろな場面で使われています。

応用1:機械学習(AI)

連鎖律が最も活躍しているのが、機械学習の世界です。

ニューラルネットワークの学習

AIの脳みそであるニューラルネットワークは、複数の層(レイヤー)が積み重なった構造をしています。

入力 → 層1 → 層2 → 層3 → … → 出力

これは、まさに何重にも入れ子になった合成関数です!

バックプロパゲーション(誤差逆伝播)

ニューラルネットワークの学習では、「誤差を出力層から入力層に向かって逆向きに伝える」という処理をします。これをバックプロパゲーション(Backpropagation)と呼びます。

この計算こそが、連鎖律の連続適用なんです。

具体例

簡単なニューラルネットワークを考えます:

入力 x → 重み w₁ で変換 → z₁ → 活性化関数 → a₁ → 重み w₂ で変換 → z₂ → 出力 y

損失(誤差)L を重み w₁ で微分したい場合、連鎖律を使います:

∂L/∂w₁ = (∂L/∂y) × (∂y/∂z₂) × (∂z₂/∂a₁) × (∂a₁/∂z₁) × (∂z₁/∂w₁)

この計算によって、「重みをどう調整すれば誤差が減るか」が分かります。これがAIの「学習」の正体です。

TensorFlowやPyTorchの自動微分

最近の機械学習フレームワーク(TensorFlowやPyTorch)は、連鎖律を自動的に計算してくれる「自動微分」機能を持っています。人間がいちいち連鎖律を計算しなくても、コンピューターが勝手にやってくれるわけです。

応用2:物理学

物理学でも連鎖律は大活躍します。

速度と加速度

物体の位置 x が時間 t の関数 x(t) のとき:

  • 速度:v = dx/dt
  • 加速度:a = dv/dt = d²x/dt²

でも、加速度を速度の関数として表すこともできます(a を v と x の関数として)。このとき、連鎖律を使います:

a = dv/dt = (dv/dx) · (dx/dt) = v · (dv/dx)

これは、速度が位置によって変化する問題を解くときに便利です。

温度の変化

金属棒の温度 T が位置 x と時間 t に依存する場合(T = T(x, t))、ある点での温度の時間変化を知りたいとき:

dT/dt = (∂T/∂t) + (∂T/∂x) · (dx/dt)

ここで dx/dt は、その点が移動する速度です。

応用3:経済学

経済学でも連鎖律は重要です。

生産関数

生産量 Y が資本 K と労働 L に依存する場合(Y = f(K, L))、時間による生産量の変化は:

dY/dt = (∂Y/∂K) · (dK/dt) + (∂Y/∂L) · (dL/dt)

これによって、「資本を増やすのと労働を増やすのと、どちらが生産量を増やすのに効果的か」などが分析できます。

需要と価格

商品の需要 D が価格 p と所得 I に依存する場合(D = D(p, I))、価格の変化による需要の変化を分析する際に連鎖律が使われます。

よくある間違いと注意点

連鎖律を使うときに、よくある間違いを紹介します。

間違い1:内側の微分を忘れる

間違った計算

y = sin(x²) → y’ = cos(x²) ❌

正しい計算

y = sin(x²) → y’ = 2x cos(x²) ⭕

内側のx²の微分である2xを掛けるのを忘れてはいけません。

間違い2:外側と内側を逆にする

間違った計算

y = (3x)² → y’ = 3 · 2(3x) = 6(3x) ❌

正しい計算

y = (3x)² → y’ = 2(3x) · 3 = 18x ⭕

「外側の微分×内側の微分」の順番は守りましょう(実際には掛け算なので順番は関係ないですが、計算ミスを防ぐため)。

間違い3:展開してから微分すれば良いと思う

確かに、展開できる場合は展開してから微分することもできます。

y = (x + 1)² を展開すると y = x² + 2x + 1 → y’ = 2x + 2

連鎖律を使うと y’ = 2(x + 1) = 2x + 2(同じ答え)

でも、複雑な式や展開できない式(sin、cos、e^xなど)では、連鎖律を使う方が圧倒的に簡単です。

例:y = (x³ + 5x² + 3x + 1)¹⁰⁰ を微分せよ

これを展開したら大変なことになります!連鎖律を使えば一瞬です:

y’ = 100(x³ + 5x² + 3x + 1)⁹⁹ · (3x² + 10x + 3)

間違い4:偏微分記号と普通の微分記号を混同する

多変数関数の場合、∂(ラウンド、デル)という記号を使います。

  • dy/dx:y を x で微分(y は x だけの関数)
  • ∂y/∂x:y を x で偏微分(y は x 以外の変数にも依存するが、x だけに注目して微分)

この違いを理解しておきましょう。

練習問題

理解を深めるために、自分で解いてみましょう。答えは下に載せています。

問題1

y = (2x + 3)⁵ を微分せよ

問題2

y = cos(4x) を微分せよ

問題3

y = e^(-x²) を微分せよ

問題4

y = √(1 + x²) を微分せよ

問題5

y = sin²(x)(= (sin(x))²)を微分せよ


解答

問題1の解答

外側:u⁵ → 5u⁴
内側:2x + 3 → 2

y’ = 5(2x + 3)⁴ · 2 = 10(2x + 3)⁴

問題2の解答

外側:cos(u) → -sin(u)
内側:4x → 4

y’ = -sin(4x) · 4 = -4sin(4x)

問題3の解答

外側:e^u → e^u
内側:-x² → -2x

y’ = e^(-x²) · (-2x) = -2x e^(-x²)

問題4の解答

y = (1 + x²)^(1/2) と書き換える

外側:u^(1/2) → (1/2)u^(-1/2) = 1/(2√u)
内側:1 + x² → 2x

y’ = 1/(2√(1 + x²)) · 2x = x/√(1 + x²)

問題5の解答

y = (sin(x))² と考える(これは2段階の合成関数)

外側:u² → 2u
中間:sin(x) → cos(x)

y’ = 2sin(x) · cos(x) = sin(2x)

(最後は三角関数の公式 2sin(x)cos(x) = sin(2x) を使いました)

よくある質問(FAQ)

Q1:連鎖律を使わなくても微分できる?

A:展開できる簡単な式なら可能ですが、複雑な式では連鎖律の方が圧倒的に楽です。

例えば y = (x + 1)² なら展開できますが、y = sin(x²) や y = e^(x³) などは展開できないので、連鎖律が必須です。

Q2:連鎖律を使うとき、どっちが外側か分からなくなる

A:「一番最後に行う計算」が外側です。

例えば y = sin(x²) なら、「x²を計算してから、その結果のsinを取る」ので、sinが外側です。

計算の順序を考えると分かりやすいです。

Q3:3段階以上の合成関数はどうする?

A:外側から順番に微分して、全部掛け算します。

y = f(g(h(x))) なら:

y’ = f'(g(h(x))) · g'(h(x)) · h'(x)

何段階でも、この原理は変わりません。

Q4:偏微分の連鎖律がよく分からない

A:「各変数ごとに、1変数の連鎖律を適用して、全部足す」と考えましょう。

f が x と y に依存し、x と y が t に依存するなら:

  • f から x を通って t に行く経路 → (∂f/∂x) · (dx/dt)
  • f から y を通って t に行く経路 → (∂f/∂y) · (dy/dt)

これらを足し合わせます。

Q5:機械学習を勉強するのに連鎖律は必須?

A:はい、バックプロパゲーション(誤差逆伝播)の理解には必須です。

ただし、TensorFlowやPyTorchなどのフレームワークが自動でやってくれるので、使うだけなら深く理解していなくても大丈夫です。

でも、「なぜそうなるのか」を理解したいなら、連鎖律の理解は欠かせません。

Q6:連鎖律を速く計算できるようになるには?

A:たくさん練習することです!

最初はゆっくりでも、何度も練習すれば、パターンが見えてきて自動的に計算できるようになります。

特に sin(○)、cos(○)、e^(○) などの基本パターンは、「○の微分を掛ける」と体で覚えましょう。

Q7:連鎖律と積の微分公式の違いは?

A:全く別の公式です。

  • 積の微分公式:y = f(x) · g(x) のとき、y’ = f'(x) · g(x) + f(x) · g'(x)
  • 連鎖律:y = f(g(x)) のとき、y’ = f'(g(x)) · g'(x)

積(掛け算)と合成(関数の入れ子)は違うので、使う公式も違います。

まとめ

連鎖律について、重要なポイントをおさらいしましょう。

連鎖律の基本

合成関数 y = f(g(x)) の微分は:

dy/dx = f'(g(x)) · g'(x)

または、u = g(x) とおくと:

dy/dx = (dy/du) · (du/dx)

「外側の微分×内側の微分」です。

連鎖律を使う手順

  1. 外側の関数と内側の関数を見分ける
  2. 外側を微分する(内側はそのまま残す)
  3. 内側を微分する
  4. 掛け算する

よく使うパターン

覚えておくと便利なパターン:

  • (f(x))ⁿ → n·(f(x))^(n-1) · f'(x)
  • sin(f(x)) → cos(f(x)) · f'(x)
  • cos(f(x)) → -sin(f(x)) · f'(x)
  • e^(f(x)) → e^(f(x)) · f'(x)
  • ln(f(x)) → f'(x)/f(x)

多変数関数の場合

f = f(x, y)、x = x(t)、y = y(t) のとき:

df/dt = (∂f/∂x) · (dx/dt) + (∂f/∂y) · (dy/dt)

各変数ごとに連鎖律を適用して、全部足し合わせます。

実際の応用

連鎖律は単なる数学の公式ではなく、実際に使われています。

  • 機械学習:ニューラルネットワークの学習(バックプロパゲーション)
  • 物理学:速度、加速度、熱伝導などの計算
  • 経済学:生産関数、需要関数の分析
  • 工学:制御理論、信号処理

最後に

連鎖律は、最初は難しく感じるかもしれませんが、何度も練習すれば必ずできるようになります。特に、簡単な例題から始めて、徐々に複雑な問題にチャレンジすることが大切です。

連鎖律をマスターすれば、微分の世界が一気に広がります。機械学習やデータサイエンスを学ぶ人にとっては、必須のスキルです。

まずは基本的な合成関数から始めて、パターンに慣れていきましょう。そうすれば、連鎖律を使った微分が楽しくなってくるはずです!

コメント

タイトルとURLをコピーしました