本文へ
StatPlayMathPlay偏微分
曲面の状態は、各ステップの数値とスライダーでも確認できます。
    // MATHPLAY 01 · PARTIAL DERIVATIVES

    「偏微分して0とおく」の意味までこの地点の坂は、いくつ?

    図は、x と y の2つの入力で高さ f(x, y) が決まる曲面です。点 P での傾きを聞かれても、1つの数では答えられません。進む向きで坂が変わるからです。

    1本の曲線の接線から始めて、同じ図を動かしながら、最小二乗法の谷底までたどります。

    1. 011本の坂
    2. 03切って測る
    3. 06接平面
    4. 07勾配
    5. 08谷底
    6. 09最小二乗法

    スクロールすると、図が次の姿に変わります。点 P はドラッグで動かせます。

    01

    1本の道なら、坂は1つ

    まずは入力が1つの場合。進める向きは右か左だけです。

    P から Δx だけ右へ進んだ点を取り、2点をオレンジの直線で結びます。その傾き Δf/Δx は、この区間の平均の坂です。Δx を縮めると直線は P での接線に近づき、その傾きが微分 f′(x) になります。

    f′(x) = limΔx→0 f(x + Δx) − f(x)Δx

    ここを見るΔx を小さくするほど、図の左上の Δf/Δx が接線の傾き +1.00 に近づきます。

    02

    地形の上では、坂は向きで変わる

    さっきの曲線は、この曲面を y = −1.00 で切った断面でした。入力が2つになると、グラフは地形のような曲面になります。

    P から向き θ へ進むと、上り坂にも下り坂にもなり、平らな向きもあります。θ(x 軸の向きから左回りに測る角度)を1周させてみてください。

    向きは無数にあり、1つずつ測るわけにはいきません。では、どの向きを測れば足りるのでしょうか。

    03

    y を止めると、曲面は1本の曲線に戻る

    01 の「1本の坂」に戻すには、y の値を1つに止めて x だけを動かします。進める道は、シアンの面で切った1本の曲線だけになります。

    ここを見る止める y を変えると切り口が入れ替わりますが、どこで止めても1本の曲線です。

    04

    切り口の接線の傾きが、∂f/∂x

    切り口を真横から見ると、01 と同じ1本の曲線です。P での接線の傾きを ∂f/∂x と書き、「x についての偏微分」と呼びます。∂ は「ラウンド」「パーシャル」などと読まれ、参考書では fx とも書きます。

    ∂f/∂x = limΔx→0 f(x + Δx, y) − f(x, y)Δx

    01 の式と違うのは、2つの項で y が同じ値のままという点だけ。計算では y をただの数として扱います。

    関数f(x, y) = x² + xy + y²
    y を数にy = −1.00 なら
    f = x² + (−1.00)x + (−1.00)²
    x で微分2x + (−1.00) ※ (−1.00)x を x で微分すると (−1.00)、定数項は 0
    y に戻すと∂f/∂x = 2x + y
    P では2 × (1.00) + (−1.00) = +1.00

    ここを見る式 2x + y に y が残るのは、この関数に xy の項があるからです。止める y を変えると、切り口は上下にずれるだけでなく傾き方も変わります。f = x² + y² なら ∂f/∂x = 2x で、y をどこで止めても変わりません。

    05

    x を止めれば、∂f/∂y

    今度は x を止めて y だけを動かします。図は90°回ってマゼンタの切り口を横から見ています。この接線の傾きが ∂f/∂y です。

    x を数にx = 1.00 なら
    f = (1.00)² + (1.00)y + y²
    y で微分(1.00) + 2y
    x に戻すと∂f/∂y = x + 2y
    P では(1.00) + 2 × (−1.00) = −1.00

    ここを見る同じ点 P でも、x 方向の坂は +1.00、y 方向の坂は −1.00。偏微分で測っているのは、ほかの入力を止め、一部の入力だけを動かしたときの変化です。

    06

    2本の接線が、1枚の平面を決める

    P を通る2本の接線を含む平面が接平面です。なめらかな曲面を P のごく近くで見ると、曲面と接平面のずれは小さくなります。

    x 方向に Δx、y 方向に Δy 進んだときの高さの変化 Δf を、2本の坂の足し算で近似します。図の階段は、x 方向とy 方向の上り下りを順に足したものです。

    Δf ≈ (∂f/∂x) Δx + (∂f/∂y) Δy

    いまの一歩:Δx = 0.40、Δy = −0.20

    接平面での変化
    +0.600
    実際の変化 Δf
    +0.720
    ずれ
    +0.120

    ここを見る「一歩を半分に」を押すと、予測は半分になり、ずれは 1/4 になります(この関数の場合)。ずれのほうが速く縮むため、P に近づくほど接平面による近似が合ってきます。参考書の全微分 df = (∂f/∂x)dx + (∂f/∂y)dy は、接平面の上での変化を表す式です。そのため、≈ ではなく = で書かれます。

    07

    どの向きの坂も、2本から作れる

    真上から見た等高線の地図です(中心が谷底)。接平面の上で向き θ へ長さ1進むと、x 方向に cos θ、y 方向に sin θ 進むので、高さは次の分だけ変わります。これがその向きの坂で、参考書では方向微分と呼ばれます。

    (∂f/∂x) cos θ + (∂f/∂y) sin θ

    02 では坂の向きが無数に見えました。ここでは、x と y の2方向の偏微分を組み合わせると、ほかの向きの坂も計算できます。

    太い実線:向きごとの坂 シアンの点線:(∂f/∂x) cos θ マゼンタの点線:(∂f/∂y) sin θ 緑の点:最大の坂

    2つの偏微分を並べた ∇f = (∂f/∂x, ∂f/∂y)(∇ はナブラ)を勾配と呼びます。いちばん急な上りはこの向きで、その坂は |∇f| = 1.41 です。

    ここを見る緑の矢印は、P を通る等高線(点線)と直角に交わります。等高線に沿う向きでは坂が0、勾配の反対向きがいちばん急な下りです。

    08

    2つの坂が、両方0になる場所

    ∂f/∂x と ∂f/∂y が両方0の点では、07 の式からどの向きの坂も0になり、接平面は水平になります。

    x 方向∂f/∂x = 2x + y = 0
    y 方向∂f/∂y = x + 2y = 0
    交点(x, y) = (0, 0)

    図のシアンとマゼンタの点線は、それぞれの偏微分が0になる場所です。2本が交わる1点で、はじめて両方0になります。

    ここを見る勾配の反対向きへ少しずつ進むと、交点に近づきます。これが勾配降下法の考え方です。両方0の点は形によって山頂や鞍点(馬の鞍のように、向きによって上りにも下りにもなる点)のこともあり、この曲面では谷底です。

    09

    統計へ:直線の当てはまりも、谷になる

    5つの点に直線 y = a + bx を引きます。点と直線の縦のずれ(残差)ei = yi − (a + bxi) を2乗して足した量が S です。

    S(a, b) = Σ ei² = Σ ( yi − a − bxi )²

    ここでの入力は x ではなく、直線を決める a(切片)と b(傾き)です。a と b を横と奥にとると、S は図のような谷になります。

    ここを見る直線を点に近づけるほど S は小さくなり、谷の上の点 (a, b) が下がります。最小二乗法は、この谷底を探す方法です。

    10

    b を止めて a だけ動かす:残差の合計

    03〜04 と同じく、b を止めて a だけを動かします。谷を切ったシアンの曲線の傾きが ∂S/∂a です。

    a で微分∂S/∂a = Σ 2( yi − a − bxi ) × (−1)
    = −2 Σ ei
    いまの値Σ ei = +2.00
    ∂S/∂a = −4.00

    かっこの中 ( yi − a − bxi ) は、a が1増えると1減ります。そのため、2乗を微分した 2( … ) に −1 がかかります(参考書では「合成関数の微分」と呼ばれる計算です)。

    ∂S/∂a = 0 は「残差の合計が0」。直線が点の上下でつり合う状態で、このとき直線は平均の点 (x, y) = (2, 3) を通ります。

    11

    a を止めて b だけ動かす:残差と x

    今度は a を止めて b だけを動かします。マゼンタの切り口の傾きが ∂S/∂b です。

    b で微分∂S/∂b = Σ 2( yi − a − bxi ) × (−xi)
    = −2 Σ xiei
    いまの値Σ xiei = +10.40
    ∂S/∂b = −20.80

    ∂S/∂b = 0 は、残差に x をかけて足すと0になること。10 の条件と合わせると、残差と x の共分散が0、つまり残差に x との直線的な傾向が残っていない状態です。

    ここを見るb を大きくしすぎると、右側の点ほど直線が上に外れ、∂S/∂b がプラスに転じます。

    12

    両方0の点が、回帰直線

    08 と同じく、谷底では2つの偏微分が両方0です。2つの条件を並べた連立方程式が、参考書で「正規方程式」と呼ばれるものです。

    ∂S/∂a = 0Σ( yi − a − bxi ) = 0
    → Σyi − n·a − b Σxi = 0
    → n·a + b Σxi = Σyi
    ∂S/∂b = 0Σxi( yi − a − bxi ) = 0
    → a Σxi + b Σxi² = Σxiyi
    この5点5a + 10b = 15
    10a + 30b = 39.4
    解b = 0.94、a = 1.12

    S(a, b) は a と b の2次式で、xi がすべて同じ値でない限りお椀型です。山頂や鞍点はなく、両方0の点はただ1つ、それが谷底です。

    連立方程式を解くと、b = Σ(xi − x)(yi − y) ⁄ Σ(xi − x)²、a = y − b x という回帰係数の公式になります。この5点では b = 9.4 ⁄ 10 = 0.94 です。

    参考書の「S を a と b で偏微分して0とおく」という1行は、この谷底の条件を書いています。

    ここを見るシアンとマゼンタの点線(それぞれの偏微分が0になる線)の交点が、回帰直線の (a, b) です。

    // BACK TO THE TEXTBOOK

    参考書に戻る前に

    このページで動かしたものと、参考書で出会う記号の対応です。

    記号呼び方このページで見たもの
    ∂f/∂xx についての偏微分y を止めた切り口の接線の傾き(04)
    ∂f/∂yy についての偏微分x を止めた切り口の接線の傾き(05)
    df = fxdx + fydy全微分接平面による高さの変化の予測(06)
    (∂f/∂x) cos θ + (∂f/∂y) sin θ方向微分向き θ の坂(07)
    ∇f勾配いちばん急な上りの向きと、その坂の大きさ(07)
    ∂S/∂a = ∂S/∂b = 0正規方程式最小二乗法の谷底、つまり回帰直線(12)

    重回帰の偏回帰係数は、ほかの説明変数を固定したまま、その変数だけを1増やしたときの予測値の変化です。予測式 ŷ をその変数で偏微分した値にあたります(09〜12 で a と b について偏微分したのとは、微分する相手が違います)。これを因果効果と読むには、交絡要因(その変数と結果の両方に影響するほかの要因)の選び方や測定、モデルの仮定を別に検討する必要があります。