2.

微積分とは?AI 学習を支える勾配降下法・連鎖律・自動微分の基礎

編集
この記事の要点
  • 微積分は「変化」を扱う数学。AI の学習はすべて損失関数を微分してパラメータを少しずつ更新する仕組み
  • 特に重要なのは 偏微分 / 連鎖律 (chain rule) / 勾配。これが バックプロパゲーションの中身
  • ライブラリの 自動微分 (autograd) が中で微積分を肩代わりしてくれるが、原理を知らないとデバッグできない
  • 厳密な ε-δ 論法までは不要。「微分 = 接線の傾き = 局所変化率」が腹落ちすれば足りる

 

本稿は AI / 機械学習に必要な微積分 の入門です。AI の学習プロセスは「誤差を微分して、勾配方向にパラメータを少し動かす」の繰り返しなので、微積分が中核にあります。

なぜ AI に微積分が必要なのか

AI モデルの学習は、ほぼ例外なく以下のループです。

ステップやっていること
1. 順伝播 (Forward)入力からモデルの予測値を計算
2. 損失計算予測値と正解の誤差(損失 Loss)を計算
3. 逆伝播 (Backward)損失を各パラメータで偏微分(勾配を計算)
4. パラメータ更新勾配の反対方向に少しだけパラメータを動かす

3 と 4 がまさに微積分。この更新を何百万回も繰り返すことでモデルが賢くなります。

最低限おさえる概念

概念意味AI での使われ方
微分 (derivative)関数のある点での接線の傾き1 パラメータの最適化
偏微分 (partial derivative)多変数関数を 1 変数だけで 微分各パラメータの寄与を測る
勾配 (gradient)すべての偏微分を並べたベクトル ∇fパラメータを動かす方向
連鎖律 (chain rule)合成関数 f(g(x)) の微分 = f\'(g(x)) · g\'(x)多層ネットの勾配計算(バックプロパゲーション)
勾配降下法 (Gradient Descent)勾配の反対方向にパラメータを更新ほぼ全ての学習アルゴリズムの土台
ヤコビ行列 (Jacobian)ベクトル → ベクトル関数の偏微分行列多次元の連鎖律
ヘシアン (Hessian)2 階偏微分の行列2 次最適化(Newton 法など)
テイラー展開関数を多項式で局所近似最適化アルゴリズムの理論基盤
積分 (integral)面積・確率の合計期待値・確率密度の周辺化

勾配降下法とは(一番大事)

パラメータ w を、損失 L(w) が小さくなる方向に少しずつ動かすアルゴリズムです。

意味
w ← w - η · ∇L(w)w を勾配 ∇L の反対方向に、学習率 η ぶんだけ動かす

これだけで ニューラルネットも線形回帰もロジスティック回帰も学習できるのが、勾配降下法の強力さです。

派生手法違い
SGD (確率的勾配降下法)全データではなくランダムな 1 サンプル / ミニバッチで勾配を近似
Momentum過去の勾配方向に慣性を持たせる(坂を転がるイメージ)
AdaGrad / RMSPropパラメータごとに学習率を自動調整
AdamMomentum + RMSProp。現代の事実上の標準

連鎖律とバックプロパゲーション

ニューラルネットは 関数の合成 (L = f3(f2(f1(x)))) なので、L を w で微分するには連鎖律が必要です。

例: L = (y - σ(w·x))²
∂L/∂w = ∂L/∂σ · ∂σ/∂(w·x) · ∂(w·x)/∂w = -2(y - σ) · σ(1 - σ) · x

これを各層ごとに後ろから順番に計算するのが バックプロパゲーション (誤差逆伝播) です。手で書くと辛いですが、PyTorch / TensorFlow の 自動微分が中で全部やってくれます。

自動微分(autograd)の実装例

import torch

# 勾配を計算したい変数
w = torch.tensor(2.0, requires_grad=True)
x = torch.tensor(3.0)

# 関数
y = w * x + 1
loss = (y - 10) ** 2

# 微分
loss.backward()

# w についての勾配
print(w.grad)  # = 2 * (y - 10) * x = -18

学習のステップ

段階学ぶ内容
1. 微分の意味接線の傾き = 一瞬の変化率」が直感的に分かる
2. 多変数の偏微分2 変数関数の偏微分が計算できる
3. 連鎖律合成関数の微分を 外から内へ 連鎖律で求められる
4. 勾配降下法勾配の反対方向に動かすと最小化できると分かる
5. 自動微分PyTorch の backward() が連鎖律を自動でやっていると分かる

つまずきやすいポイント

  • 勾配の符号: 損失を減らしたいので勾配の反対方向に進む。プラスマイナスを間違えると損失が爆発する
  • 学習率 η の大きさ: 大きすぎると発散、小さすぎると収束が遅い
  • 勾配消失: ディープなネットで勾配が 0 に近づく問題(sigmoid 多用、ReLU で改善)
  • 勾配爆発: 反対に勾配が大きくなりすぎる問題(勾配クリッピング、層正規化で対処)
  • 局所最適解: 勾配降下法は大域最適とは限らない場所で止まる。ただし高次元では実用上問題になりにくい(鞍点が主な障害)

使える教材・ライブラリ

種類名前
教科書(日本語)マセマ 微分積分 キャンパス・ゼミ」 / 「ヨビノリ たくみ: 大学微分積分」
動画3Blue1Brown 「Essence of Calculus」(直感重視で秀逸)
AI 視点の教材「ゼロから作る Deep Learning」(斎藤康毅) — バックプロパゲーションを Python で実装
自動微分ライブラリPyTorch / TensorFlow / JAX(autograd)

関連

編集
Post Share
子ページ

子ページはありません

同階層のページ
  1. 線形代数
  2. 微積分
  3. 確率統計
  4. 情報理論
  5. 最適化

最近更新/作成されたページ