機械学習に必要な数学的知識(微分編)

この記事では機械学習の仕組みについて理解する上で必ず必要になってくる数学的な知識について解説しています。私も数学は高校生の頃の数Ⅱまでしか学んでいなかったのでかなり苦戦しました。今回は美文について解説していますので参考にしてみてください。

常微分

常微分とは?

常微分とは、1つの変数に対する関数の変化率を表します。たとえば、関数 \(y = f(x)\) があるとき、 \(x\) の微小な変化に対する \(y\) の変化を調べるものです。

具体例

簡単な例として、 \(y = x^2\) という関数を考えます。 \(x\) が少し変化したとき、 \(y\) がどれだけ変わるかを知るために微分を使います。この場合、微分係数は \(\frac{dy}{dx} = 2x\) となります。

なぜ重要か?

機械学習では、モデルの予測と実際の値との差(損失)を最小化するために、微分を使ってパラメータを調整します。微分が変化の方向と大きさを教えてくれるからです。

偏微分

偏微分とは?

偏微分は、複数の変数を持つ関数で、1つの変数だけを変化させて他の変数は固定したときの変化率を調べます。

具体例

関数 \(z = f(x, y) = x^2 + y^2\) を考えます。 \( x\) に関する偏微分は \(\frac{\partial z}{\partial x} = 2x \) 、 \( y\) に関する偏微分は \(\frac{\partial z}{\partial y} = 2y\) となります。

なぜ重要か?

機械学習モデルは多くの場合、多数のパラメータ(変数)を持ちます。各パラメータが損失にどのように影響するかを理解するために、偏微分を使います。

合成関数

合成関数とは?

合成関数は、2つ以上の関数を組み合わせた関数です。つまり、ある関数の出力を別の関数の入力として使います。

具体例

関数 \(y = f(u)\) と \(u = g(x)\) があるとき、合成関数は \(y = f(g(x))\) となります。

なぜ重要か?

機械学習、特にニューラルネットワークでは、多くの関数が層状に重なっています。これらは合成関数として表現されます。

合成関数の微分

合成関数の微分とは?

合成関数の微分は、チェーンルール(連鎖律)を使って求めます。これは、合成関数の微分をその構成要素の微分に分解する方法です。

チェーンルールの公式

合成関数 \(y = f(g(x))\) の微分は以下のようになります:

\[
\frac{dy}{dx} = \frac{dy}{du} \times \frac{du}{dx}
\]

ここで、\( u = g(x)\) です。

具体例

\( y = (3x + 2)^2\) の微分を求めます。

  1. 内側の関数:\( u = 3x + 2 \)
  2. 外側の関数:\( y = u^2 \)
  3. 微分:
  • \( \frac{du}{dx} = 3 \)
  • \( \frac{dy}{du} = 2u \)
  1. 合成関数の微分:
  • \( \frac{dy}{dx} = \frac{dy}{du} \times \frac{du}{dx} = 2u \times 3 = 6(3x + 2) \)

なぜ重要か?

ニューラルネットワークの学習では、誤差を逆伝播させてパラメータを更新します。このとき、チェーンルールを使って各層の微分を計算します。

合成関数の偏微分

合成関数の偏微分とは?

複数の変数と合成関数が組み合わさった場合、偏微分とチェーンルールを組み合わせて微分を行います。

具体例

関数 \(z = f(u, v) \)、\( u = g(x, y) \)、\( v = h(x, y)\) とします。\( z\) の \(x\) に関する偏微分は:

\[
\frac{\partial z}{\partial x} = \frac{\partial f}{\partial u} \frac{\partial u}{\partial x} + \frac{\partial f}{\partial v} \frac{\partial v}{\partial x}
\]

なぜ重要か?

複雑なモデルでは、出力が多くの中間変数に依存します。これらの変数に対するパラメータの影響を理解し、効率的に計算するために、合成関数の偏微分が必要です。

まとめ

微分は、関数の変化を数値的に理解するための強力なツールです。機械学習では、モデルの最適化やパラメータの調整に微分が欠かせません。高校で学ぶ微分の知識を活かして、機械学習の基本的な仕組みを理解することができます。


補足:この解説では、複雑な数式を避けて直感的な理解を重視しました。興味があれば、実際に微分計算を行ってみたり、機械学習のアルゴリズム(例えば勾配降下法)について調べてみると、さらに理解が深まるでしょう。

常微分は、1つの変数に対する関数の変化率を調べるための方法です。基本的には、変数がどれだけ変わったときに、関数がどのように変化するかを計算します。高校で学ぶ基本的な微分のルールを使うことで、簡単に計算ができます。

1. 常微分の基本的な考え方

関数 ( y = f(x) ) の常微分とは、変数 ( x ) が微小に変化したときに、それに伴って ( y ) がどれだけ変化するかを表します。この変化率を導関数と呼び、次のように表します。

\[
\frac{dy}{dx} \quad \text{または} \quad f'(x)
\]

この記号は、「( x ) に対して ( y ) の変化率を計算する」という意味です。

2. 基本的な微分のルール

微分にはいくつかの基本的なルールがあります。これらを使って、さまざまな関数の微分を計算します。

(1) べき乗関数の微分

関数 ( y = x^n ) の微分は次のように求めます:

\[
\frac{d}{dx} x^n = n \cdot x^{n-1}
\]

  • \( y = x^3 \) の場合:
    \[
    \frac{dy}{dx} = 3x^2
    \]
  • \( y = x^2 \) の場合:
    \[
    \frac{dy}{dx} = 2x
    \]

(2) 定数倍の微分

定数 ( c ) がかかった関数 ( y = c \cdot f(x) ) の微分は、次のように定数をそのまま残して微分します:

\[
\frac{d}{dx} [c \cdot f(x)] = c \cdot \frac{d}{dx} f(x)
\]

  • \( y = 5x^2 \) の場合:
    \[
    \frac{dy}{dx} = 5 \cdot 2x = 10x
    \]

(3) 和や差の微分

2つの関数 ( f(x) ) と ( g(x) ) の和または差の微分は、それぞれの関数を個別に微分して計算します:

\[
\frac{d}{dx} [f(x) + g(x)] = \frac{d}{dx} f(x) + \frac{d}{dx} g(x)
\]

  • \( y = x^2 + 3x \) の場合:
    \[
    \frac{dy}{dx} = 2x + 3
    \]

(4) 積の微分(積の法則)

2つの関数の積 ( y = f(x) \cdot g(x) ) の微分は次のように求めます:

\[
\frac{d}{dx} [f(x) \cdot g(x)] = f'(x) \cdot g(x) + f(x) \cdot g'(x)
\]

  • \( y = x^2 \cdot (3x + 1) \) の場合:
    \[
    \frac{dy}{dx} = 2x \cdot (3x + 1) + x^2 \cdot 3 = 2x(3x + 1) + 3x^2
    \]

(5) 商の微分(商の法則)

2つの関数の商 \( y = \frac{f(x)}{g(x)} \) の微分は次のように求めます:

\[
\frac{d}{dx} \left( \frac{f(x)}{g(x)} \right) = \frac{f'(x) \cdot g(x) – f(x) \cdot g'(x)}{g(x)^2}
\]

  • \( y = \frac{x^2}{3x + 1} \) の場合:
    \[
    \frac{dy}{dx} = \frac{2x(3x + 1) – x^2 \cdot 3}{(3x + 1)^2}
    \]

(6) 三角関数の微分

三角関数の微分は次のようになります:

  • \( \frac{d}{dx} \sin(x) = \cos(x) \)
  • \( \frac{d}{dx} \cos(x) = -\sin(x) \)
  • \( \frac{d}{dx} \tan(x) = \sec^2(x) \)

  • \( y = \sin(x) \) の場合:
    \[
    \frac{dy}{dx} = \cos(x)
    \]

3. 常微分の例題

いくつかの関数の微分を実際に計算してみましょう。

例1: ( y = x^3 – 2x^2 + 5x ) の微分

  1. ( y = x^3 ) の微分は ( 3x^2 )
  2. ( -2x^2 ) の微分は ( -4x )
  3. ( 5x ) の微分は ( 5 )

よって、総合的な微分は:

\[
\frac{dy}{dx} = 3x^2 – 4x + 5
\]

例2: ( y = \frac{1}{x} ) の微分

これは ( x^{-1} ) として扱います:

\[
\frac{dy}{dx} = \frac{d}{dx} x^{-1} = -x^{-2} = -\frac{1}{x^2}
\]

例3: ( y = \sin(x) \cdot \cos(x) ) の微分(積の法則)

積の法則を使います:

\[
\frac{dy}{dx} = \cos(x) \cdot \cos(x) + \sin(x) \cdot (-\sin(x)) = \cos^2(x) – \sin^2(x)
\]

4. まとめ

常微分は、1つの変数に対して関数がどのように変化するかを調べるための基本的な計算です。上記の基本的なルールを使って、さまざまな関数の微分を計算することができます。機械学習や物理学、経済学など、さまざまな分野で微分が応用されていますので、これらのルールを覚えておくと役に立ちます。

コメント

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