0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

統計学・機械学習のためのポケモン微分積分学

0
Last updated at Posted at 2025-05-29

第0章:なぜ微分積分が必要か?(ポケモンで学ぶ導入)


0-1. 機械学習における「変化率」と「最適化」

● 概念:

機械学習では、損失関数(誤差)を最小にするパラメータを求めます。そのために、関数の「どこで一番小さくなるか(極小点)」を探す必要があります。

これには「変化率」=**導関数(微分)**が必須です。


● ポケモンの例:

例えば、「ポケモンが伝説かどうか」を予測するロジスティック回帰モデルを考えます。

特攻(Sp. Atk)とすばやさ(Speed)を特徴量として、

  • 特攻が高い → 伝説っぽい?
  • すばやさも高い → さらに伝説っぽい?

としたときの 仮説関数 は:

$$
h_\theta = \frac{1}{1 + \exp\left(-(\theta_0 + \theta_1 \cdot \text{SpAtk} + \theta_2 \cdot \text{Speed})\right)}
$$

これは **シグモイド関数(ロジスティック関数)**であり、0〜1の確率を出力します。


● 微分の使いどころ:

このモデルが**「どれだけ間違っているか」**を測る損失関数:

$$
J(\theta) = -\frac{1}{n} \sum_{i=1}^{n} \left[ y_i \log h_\theta(x_i) + (1 - y_i) \log (1 - h_\theta(x_i)) \right]
$$

この関数を 最小化するには微分して傾きを調べる必要がある
よって「伝説度を予測するモデル」を作るには微分が必須


0-2. 統計モデルと確率密度の積分表現

● 概念:

連続確率分布(正規分布など)では、「ある範囲にある確率」は面積=積分で求めます。


● ポケモンの例:

たとえば、ポケモンのHPが正規分布すると仮定したとき:

  • 平均:$\mu = 70$
  • 標準偏差:$\sigma = 15$

「HPが100以上である確率」は:

$$
P(X \geq 100) = \int_{100}^{\infty} \frac{1}{\sqrt{2\pi \cdot 15^2}} \exp\left( -\frac{(x - 70)^2}{2 \cdot 15^2} \right) dx
$$

これは積分計算でしか出せない → 統計的判断には積分が必須。


0-3. 微積と線形代数・確率・統計のつながり

領域 例(ポケモン文脈) 必要な数学
微分 損失最小化、成長率、勾配降下法 導関数、偏微分
積分 確率分布、期待値、Zスコア 定積分
線形代数 種族値をベクトル化し、類似ポケモン検索 行列・内積
統計学 「HPの平均・分散・正規性」などの記述統計、推測統計 Zスコア、平均、分散
機械学習 ロジスティック回帰、線形回帰、ニューラルネット 多変数関数、最適化

0-4. 主な応用と微積との関係

応用手法 数学的操作 関連分野
最小二乗法 誤差の二乗和を最小化(微分で最小値) 回帰分析
最尤推定 対数尤度を最大化(勾配=0で解く) 統計推定
勾配降下法 $\theta := \theta - \eta \cdot \nabla J(\theta)$ 最適化
ベイズ推論 周辺尤度は積分 (\int p(x \theta)p(\theta)d\theta) 統計・積分
正規分布 密度関数が指数関数+積分 確率論
損失関数 出力と正解の誤差(例えば交差エントロピー) モデリング

まとめ

ポケモンのような具体例でも、「最強ポケモンを予測する」には、損失関数の最小化(微分)、確率分布の積分が不可欠。
統計モデル・機械学習を使いこなすには、微分積分がその基盤となる。


第1章:微分の基本と応用(導関数による変化率)


1-1. 微分の定義(極限を使った導関数)

● 数学的定義:

関数 $f(x)$ の導関数は次の極限で定義されます:

$$
f'(x) = \lim_{h \to 0} \frac{f(x+h) - f(x)}{h}
$$

これは「xがhだけ変化したときの、出力の変化率」を表します。


● ポケモンの例(攻撃力の変化率):

たとえば、レベルに応じて攻撃力(Attack)が変化するとしましょう。
Attack = $A(L) = 10 + 2L + 0.1L^2$

このとき、レベルLにおける攻撃力の変化率(=微分)は:

$$
A'(L) = \frac{d}{dL} (10 + 2L + 0.1L^2) = 2 + 0.2L
$$

つまりレベルが上がるごとに、攻撃力の増加速度も変化します。


1-2. 合成関数と積・商の微分

● 公式(例):

  • 合成関数:$\frac{d}{dx} f(g(x)) = f'(g(x)) \cdot g'(x)$
  • 積の微分:$\frac{d}{dx}[f(x)g(x)] = f'(x)g(x) + f(x)g'(x)$

● ポケモンの例(相性倍率と攻撃力):

ダメージ = Attack × 相性補正(たとえば炎→草 = 2.0)

もし相性補正も天候や特性で変動し、複数の関数の積になる場合、
その合成関数の微分が必要になります。


1-3. 微分と接線・変化率

● 定義:

接線の傾き=その点での導関数の値。


● ポケモンの例(HP成長のグラフ):

HP = $H(L) = 50 + 3L - 0.05L^2$

$$
H'(L) = 3 - 0.1L
$$

レベルL=10での接線の傾きは:
$H'(10) = 3 - 1 = 2$

これは「このレベルではHPが1上がると、成長率は+2」ということ。


1-4. 導関数と最小・最大(最適化)

● 条件:

  • 最大 or 最小:$f'(x) = 0$
  • 増減の判定:$f'(x) > 0$:増加,$< 0$:減少

● ポケモンの例(最適レベルでの最大効果):

例:あるわざのダメージ量が次のようにモデル化されたとします:

$$
D(L) = -0.5L^2 + 8L + 100
$$

$$
D'(L) = -1.0L + 8
\Rightarrow D'(L) = 0 \Rightarrow L = 8
$$

つまりレベル8で最大ダメージ → 微分で最大化が可能


● 応用例まとめ

応用項目 微分との関係
損失関数の最小化 誤差関数の傾きを求め、最も小さい場所を探す(微分ゼロ)
勾配降下法 微分(傾き)を元に、関数を少しずつ下っていくアルゴリズム
活性化関数の微分 ニューラルネットで逆伝播に必要(例:sigmoidの微分=s(1-s))
ポケモン種族値分析 種族値関数の最大・最小、上昇スピードを調べて最適育成パターンを探ることが可能

Python簡易コード例(ポケモンのHP変化率)

import numpy as np
import matplotlib.pyplot as plt

# レベルとHP関数
L = np.linspace(1, 100, 100)
H = 50 + 3*L - 0.05*L**2
dH = 3 - 0.1*L  # 微分

# プロット
plt.plot(L, H, label='HP')
plt.plot(L, dH, label="dHP/dL (Growth Rate)", linestyle='--')
plt.xlabel("Level")
plt.ylabel("HP / Growth Rate")
plt.title("HP and Its Growth Rate (Differentiation)")
plt.legend()
plt.grid()
plt.show()

第2章:偏微分と多変数関数の最適化

● 内容

2-1. 多変数関数と偏微分の定義

  • 2変数以上の関数 $f(x, y)$ において、ある1変数を固定して他の変数で微分する操作。

  • 例:$f(x, y) = x^2 + 3xy + y^2$

    • $\frac{\partial f}{\partial x} = 2x + 3y$
    • $\frac{\partial f}{\partial y} = 3x + 2y$

2-2. 勾配ベクトルと最急降下法

  • 勾配ベクトル:全ての偏微分を並べたベクトル。
    $\nabla f(x, y) = \left(\frac{\partial f}{\partial x}, \frac{\partial f}{\partial y}\right)$

  • 最急降下法(Gradient Descent):
    $\theta_{t+1} = \theta_t - \eta \nabla f(\theta_t)$

    • $\eta$:学習率(step size)
    • $\theta$:パラメータベクトル

2-3. ヘッセ行列と凸最適化(簡易)

  • ヘッセ行列(Hessian):2階の偏微分を並べた行列。
    $H_f(x, y) = \begin{bmatrix} \frac{\partial^2 f}{\partial x^2} & \frac{\partial^2 f}{\partial x \partial y} \ \frac{\partial^2 f}{\partial y \partial x} & \frac{\partial^2 f}{\partial y^2} \end{bmatrix}$
  • 凸関数であれば、ヘッセ行列が正定値 $\Rightarrow$ 最小点の存在が保証される。

● 応用例

線形回帰:損失関数の偏微分によるパラメータ更新

  • 目的:$y = X\beta + \epsilon$
  • 損失関数(最小二乗誤差):
    $J(\beta) = \frac{1}{2}(y - X\beta)^T(y - X\beta)$
  • 勾配:
    $\nabla J(\beta) = -X^T(y - X\beta)$
  • 更新式:
    $\beta \leftarrow \beta - \eta \nabla J(\beta)$

ロジスティック回帰の導出と勾配

  • 仮定:$p(y=1|x) = \sigma(w^T x) = \frac{1}{1 + e^{-w^T x}}$
  • ロス関数:交差エントロピー誤差
  • 勾配:
    $\nabla L(w) = X^T(\sigma(Xw) - y)$

ニューラルネットにおける重みの更新

  • 誤差逆伝播法(Backpropagation)により、

    • 各重みについて偏微分を行い、
    • 勾配を計算し、
    • 最急降下法で更新。
  • 活性化関数の導関数($\sigma'$)が必要。


※ピカチュウが標高 $h(x, y)$ メートルの山を登るイメージで説明可能:

  • $x$:東西方向、$y$:南北方向の位置(単位は m)
  • $\nabla h(x, y)$:ピカチュウの位置における一番急な登り方向(勾配ベクトル)
  • ピカチュウは最急な下り方向($-\nabla h(x, y)$)へと進んで谷底(最小値)を目指す。
  • 山の形が凸なら、どの方向に歩いても必ず谷にたどり着ける(最適解の存在)

第3章:積分の基本と統計的解釈 〜ポケモンと学ぶ〜

● 内容

3-1. 定積分と不定積分の定義

  • 不定積分:関数 $f(x)$ の原始関数 $F(x)$ を求める操作。

    $$
    \int f(x)dx = F(x) + C
    $$

  • 定積分:区間 $[a,b]$ の範囲での面積。

    $$
    \int_a^b f(x)dx
    $$

3-2. 面積=確率の解釈(確率密度関数の直感)

  • ポケモンのすばやさ(Speed)の分布を例に:

    • すばやさが $x$ である確率は0だが、ある範囲(例:80~100)にある確率は面積として定義される。
    • 正規分布(ガブリアスなど)なら、曲線下の面積が「その範囲にいる確率」。

3-3. 変数変換と積分(u変換)

  • 複雑な関数をシンプルな変数に置き換えて積分しやすくする技法:

    $$
    u = g(x) \Rightarrow \int f(g(x))g'(x) dx = \int f(u) du
    $$

3-4. 正規分布と積分(誤差関数)

  • ポケモンの「体力(HP)」の分布を正規分布としたとき、

    $$
    f(x) = \frac{1}{\sqrt{2\pi\sigma^2}} \exp\left(-\frac{(x - \mu)^2}{2\sigma^2}\right)
    $$

    この関数の積分が「確率」となる。


● 応用例

確率密度関数の積分:全体が1になること

  • 例:すばやさの確率分布 $f(x)$ に対して、

    $$
    \int_{-\infty}^{\infty} f(x) dx = 1
    $$

期待値の定義:積分で表す

  • ポケモンのこうげき値 $X$ の期待値は:

    $$
    \mathbb{E}[X] = \int_{-\infty}^{\infty} x f(x) dx
    $$

ベイズ推論における周辺尤度

  • ポケモンのタイプ分布や、隠れた特性(Hidden Ability)に関する推論では、

    $$
    p(x) = \int p(x|\theta)p(\theta)d\theta
    $$

    のような積分を利用。


第2章:偏微分と多変数関数の最適化

● 内容

2-1. 多変数関数と偏微分の定義

  • 2変数以上の関数 $f(x, y)$ において、ある1変数を固定して他の変数で微分する操作。

  • 例:$f(x, y) = x^2 + 3xy + y^2$

    • $\frac{\partial f}{\partial x} = 2x + 3y$
    • $\frac{\partial f}{\partial y} = 3x + 2y$

2-2. 勾配ベクトルと最急降下法

  • 勾配ベクトル:全ての偏微分を並べたベクトル。
    $\nabla f(x, y) = \left(\frac{\partial f}{\partial x}, \frac{\partial f}{\partial y}\right)$

  • 最急降下法(Gradient Descent):
    $\theta_{t+1} = \theta_t - \eta \nabla f(\theta_t)$

    • $\eta$:学習率(step size)
    • $\theta$:パラメータベクトル

2-3. ヘッセ行列と凸最適化(簡易)

  • ヘッセ行列(Hessian):2階の偏微分を並べた行列。
    $H_f(x, y) = \begin{bmatrix} \frac{\partial^2 f}{\partial x^2} & \frac{\partial^2 f}{\partial x \partial y} \ \frac{\partial^2 f}{\partial y \partial x} & \frac{\partial^2 f}{\partial y^2} \end{bmatrix}$
  • 凸関数であれば、ヘッセ行列が正定値 $\Rightarrow$ 最小点の存在が保証される。

● 応用例

線形回帰:損失関数の偏微分によるパラメータ更新

  • 目的:$y = X\beta + \epsilon$
  • 損失関数(最小二乗誤差):
    $J(\beta) = \frac{1}{2}(y - X\beta)^T(y - X\beta)$
  • 勾配:
    $\nabla J(\beta) = -X^T(y - X\beta)$
  • 更新式:
    $\beta \leftarrow \beta - \eta \nabla J(\beta)$

ロジスティック回帰の導出と勾配

  • 仮定:$p(y=1|x) = \sigma(w^T x) = \frac{1}{1 + e^{-w^T x}}$
  • ロス関数:交差エントロピー誤差
  • 勾配:
    $\nabla L(w) = X^T(\sigma(Xw) - y)$

ニューラルネットにおける重みの更新

  • 誤差逆伝播法(Backpropagation)により、

    • 各重みについて偏微分を行い、
    • 勾配を計算し、
    • 最急降下法で更新。
  • 活性化関数の導関数($\sigma'$)が必要。


※ピカチュウが標高 $h(x, y)$ メートルの山を登るイメージで説明可能:

  • $x$:東西方向、$y$:南北方向の位置(単位は m)
  • $\nabla h(x, y)$:ピカチュウの位置における一番急な登り方向(勾配ベクトル)
  • ピカチュウは最急な下り方向($-\nabla h(x, y)$)へと進んで谷底(最小値)を目指す。
  • 山の形が凸なら、どの方向に歩いても必ず谷にたどり着ける(最適解の存在)

第4章:関数近似とテイラー展開

● 内容

4-1. 関数の近似とテイラー展開

  • 関数 $f(x)$ を点 $a$ の近傍で多項式で近似する方法:

    $$
    f(x) \approx f(a) + f'(a)(x - a) + \frac{f''(a)}{2!}(x - a)^2 + \cdots
    $$

4-2. 一次近似とニュートン法

  • 一次テイラー展開による近似:

    $$
    f(x) \approx f(a) + f'(a)(x - a)
    $$

  • ニュートン法:

    $$
    x_{n+1} = x_n - \frac{f(x_n)}{f'(x_n)}
    $$

4-3. 誤差評価と収束性

  • 近似誤差の評価:高次の項が小さければ精度が高い。
  • 収束性の条件:導関数の挙動に依存。

● 応用例

ニュートン法による最適化

  • 損失関数の極小値を求める際、2階導関数を使って効率的に最適点を探る。

活性化関数や損失関数の近似評価

  • sigmoid関数やReLUをテイラー展開して、ニューラルネットの解析に利用。

確率分布の近似(正規近似、ロジスティック近似)

  • 二項分布を正規分布で近似する(中心極限定理)など。
  • ポケモンの命中率や急所率の計算にも応用可能。
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?