統計ロードマップ
Deep Learning

ディープラーニング基礎ミニ教科書

ディープラーニングの全体像を NN → 最適化 → CNN → RNN/Transformer → 正則化 の 5 章で体系的に学べるミニ教科書。E 資格・G 検定対策にも、PyTorch を学ぶ前の概念整理にも。

Chapter 1

ニューラルネットの仕組み

ニューラルネットワーク(NN) は、生物の脳神経系を模した計算モデル。入力 → 線形変換 + 非線形活性化 → 出力 という基本ユニットを多層に重ねたものが ディープラーニング

1 つのニューロン

  • : 入力
  • : 重み(学習対象)
  • : バイアス(学習対象)
  • : 活性化関数(ReLU・Sigmoid・Tanh など)

多層パーセプトロン(MLP)

ニューロンを 層状に並べ、層と層を全結合(fully connected)で繋いだもの。入力層 → 隠れ層 × N → 出力層 の構造。

x1x2x3h1h2h3h4y1y2入力層隠れ層 (ReLU)出力層z = Wx + b → 活性化 → 次の層へ
図: 順伝播 ─ 入力 → 線形変換 + 活性化 を繰り返して出力へ
💡 なぜ多層が強力か

1 層だけでは線形分類器と同じ能力しかない(パーセプトロンの限界)。非線形活性化を挟んで多層化する ことで、論理回路のような 表現力指数増加 が起きる。XOR 問題のような『線形では解けない問題』が解けるようになる。

活性化関数

-202-101xSigmoidTanhReLULeaky ReLU
図: 代表的な活性化関数の比較
  • ReLU(): 深層でも勾配が流れる定番
  • Sigmoid: 出力 0〜1。分類の最終層に
  • Tanh: 出力 -1〜1。中央性能良好
  • Softmax: 多クラス分類の最終層(出力が確率分布に)
  • GELU / Swish: Transformer の主流
純 NumPy で 1 層 NN の順伝播
初回のみ Pyodide(~10MB)を CDN から読み込みます
Chapter 2

誤差逆伝播法と最適化

学習 = 損失を減らすようにパラメータ(重み・バイアス)を更新する こと。これを支えるのが 誤差逆伝播法(backpropagation)勾配降下法

学習の流れ

  1. 順伝播: 入力 → 各層を通って予測を出力
  2. 損失計算: 予測と正解の差(MSE・交差エントロピー等)
  3. 逆伝播: 連鎖律で各重みに対する勾配 を計算
  4. 更新: で重みを更新

損失関数

  • 回帰: MSE(平均二乗誤差)・MAE(平均絶対誤差)・Huber 損失
  • 2 値分類: Binary Cross-Entropy
  • 多クラス分類: Categorical Cross-Entropy
  • ランキング: Triplet Loss・Contrastive Loss

最適化アルゴリズム

開始SGD(振動)MomentumAdam
図: 最適化アルゴリズムごとの収束経路
  • SGD: 確率的勾配降下法。シンプル、収束遅い
  • Momentum: 慣性で振動を抑制
  • Adagrad / RMSprop: 学習率を勾配の大きさで自動調整
  • Adam: Momentum + RMSprop。現代の標準
  • AdamW: Adam に正しい weight decay。Transformer 学習で標準

学習率と Warmup

学習率(learning rate)は 最も重要なハイパーパラメータ。大きすぎると発散、小さすぎると収束しない。Cosine Annealing(滑らかに減少)+ Warmup(最初は小さく → 徐々に上げる)が現代の標準。

💡 学習率の見つけ方

Learning Rate Range Test(LR Finder): 学習率を徐々に大きくして損失をプロット。損失が最も急速に下がる手前が最適値。fast.ai 流の経験則。

Chapter 3

CNN ─ 画像処理の標準

CNN(Convolutional Neural Network) は画像処理に特化した NN。畳み込み層 + プーリング層 + 全結合層 の組み合わせで、画像から階層的に特徴を抽出する。

畳み込み層(Convolution)

局所特徴を抽出するフィルタ

カーネル(フィルタ) を画像にスライドさせて、局所領域の重み付き和 を計算。

主要パラメータ: - カーネルサイズ: 3×3 が標準 - ストライド: スライド幅。2 以上で出力サイズが小さくなる - パディング: 端に 0 を詰めてサイズ調整 - チャネル数: 出力の特徴マップ数

プーリング層(Pooling)

  • Max Pooling: 領域内の最大値を取る。位置不変性を獲得
  • Average Pooling: 領域内の平均
  • Global Average Pooling(GAP): 各チャネル全体の平均。最終層の全結合代わりに使うと過学習を抑制
CNN(畳み込みニューラルネット)の典型構成入力32×32×3Conv30×30×16Pool15×15×16Conv13×13×32Pool6×6×32FlattenFC128FC10→ Softmax畳み込み層プーリング全結合(FC)
図: CNN: Conv → Pool → Conv → Pool → FC → Softmax

代表的アーキテクチャの変遷

  • LeNet(1998): 手書き数字認識の元祖
  • AlexNet(2012): ImageNet 革命。GPU 使用 + ReLU + Dropout
  • VGG(2014): 3×3 conv を深く積む
  • ResNet(2015): スキップ接続で 100 層超を実現
  • EfficientNet(2019): 幅・深さ・解像度を均衡良くスケール
  • Vision Transformer(2020): CNN を捨て Transformer のみで画像を
💡 ResNet の革命 ─ スキップ接続

層を深くすると勾配消失で逆に悪化していたのを、ショートカット接続(入力をそのまま足す)で解決。100 層 → 1000 層 が現実的になり、画像認識精度が飛躍的に向上。最新の Transformer や Diffusion でも標準で使われる発想。

PyTorch で簡単な CNN(参考)
import torch.nn as nn

class SimpleCNN(nn.Module):
    def __init__(self, num_classes=10):
        super().__init__()
        self.features = nn.Sequential(
            nn.Conv2d(3, 32, 3, padding=1), nn.ReLU(), nn.MaxPool2d(2),
            nn.Conv2d(32, 64, 3, padding=1), nn.ReLU(), nn.MaxPool2d(2),
            nn.AdaptiveAvgPool2d(1),
        )
        self.classifier = nn.Linear(64, num_classes)

    def forward(self, x):
        x = self.features(x).flatten(1)
        return self.classifier(x)
Chapter 4

RNN・LSTM・Transformer ─ 系列データ

テキスト・音声・時系列など 順序のあるデータ を扱うアーキテクチャ。RNN → LSTM → Transformer と進化してきた。

RNN(Recurrent Neural Network)

再帰構造で系列を扱う

前のステップの出力を次の入力に渡す 構造で、可変長の系列に対応。

問題: 長期依存で 勾配消失/爆発。長い文章の文脈を保持できない。

LSTM / GRU ─ ゲート機構

  • LSTM(Long Short-Term Memory): 入力ゲート・忘却ゲート・出力ゲートで情報を選択的に保持
  • GRU(Gated Recurrent Unit): LSTM を簡略化、計算が軽い
  • 用途: 機械翻訳・音声認識・時系列予測

Transformer ─ 現代の主役

2017 年論文「Attention is All You Need」で発表。RNN を完全に捨て、Self-Attention のみで系列を処理

ThecatsatonmatThecatsatonmat0.50.20.10.10.10.10.50.20.10.10.10.30.40.10.10.10.10.20.40.20.10.40.10.10.3QueryKey
図: Self-Attention: トークン間の注目度行列
Input XConcat + W_OQ · K^⊤softmax· VHead 1Q · K^⊤softmax· VHead 2Q · K^⊤softmax· VHead 3Q · K^⊤softmax· VHead 4Multi-Head Self-Attention各 head が独立に Q ・ K ・ V を計算 → 並列実行 → 結合
図: Multi-Head Attention: 複数視点で並列に attention
  • 並列計算可能 → 大規模学習に向く
  • 長距離依存 を直接捉える
  • LLM(GPT・BERT・Claude) の基盤
  • 派生: ViT(画像)・Whisper(音声)・AlphaFold2(タンパク質)
💡 Attention の直感

Self-Attention は『入力の各トークンが他のどのトークンに注目すべきか』を学習する仕組み。文章の中の代名詞が指す先・関連語の関係性を、固定的な構造ではなく データから動的に学ぶ のがポイント。

Chapter 5

正則化と過学習対策

ディープラーニングは 過学習(overfitting)しやすい ─ 表現力が高すぎて訓練データを丸暗記してしまう。正則化 でこれを抑制。

1. Weight Decay(L2 正則化)

損失関数に 重みの二乗和ペナルティ を追加して、重みが大きくなりすぎないようにする。。AdamW では正しい重み減衰として組み込まれている。

2. Dropout

ニューロンをランダムに無効化

学習時に 確率 p で各ニューロンの出力を 0 に する。

効果: - 共適応(co-adaptation)を防ぐ - 暗黙のアンサンブル効果

標準値: p = 0.5(全結合層)・p = 0.1〜0.2(畳み込み層)

推論時: dropout を解除し、出力を p 倍にスケーリング(または学習時に 1/(1-p) 倍する Inverted Dropout)

入力層隠れ層 (p=0.5)出力層学習時に確率 p で各ニューロンを脱落 → アンサンブル効果で過学習抑制
図: Dropout: 学習時にランダムにニューロンを脱落

3. Batch Normalization

各層の入力を標準化

ミニバッチごとに 平均 0・分散 1 に標準化し、学習可能なスケール ・シフト を加える。

効果: - 学習が高速・安定 - 大きな学習率を使える - 軽い正則化効果

現代の代替: Layer Normalization(Transformer 標準)・Group Norm(小バッチ向け)

Batch Normalization活性化(σ²,μ大)標準化μ=0, σ²=1↓ 学習可能なスケール γ・シフト βy = γ·x̂ + β次の層へ各ミニバッチで標準化 → 内部共変量シフトを抑制 → 学習が高速・安定
図: BatchNorm: 標準化 + 学習可能なスケール・シフト

4. データ拡張(Data Augmentation)

  • 画像: 回転・反転・クロップ・色調変更・Cutout・Mixup
  • テキスト: 同義語置換・Back Translation
  • 音声: SpecAugment・ピッチシフト
  • 新発想: GAN や Diffusion で合成データを生成

5. Early Stopping

検証損失が改善しなくなった時点で学習を停止。Keras なら EarlyStopping コールバック、PyTorch Lightning でも標準機能。

0学習量(エポック / 複雑度)誤差早期終了の理想点過学習の領域 →訓練誤差検証誤差
図: 学習曲線: 検証誤差の最小点で早期終了

6. 転移学習・ファインチューニング

事前学習済みモデル(ImageNet の ResNet、大規模テキストの BERT)を使い、自分のタスクに合わせて少し再学習 する。少データでも高精度 を実現する強力な手法。Hugging Face Hub が事前学習モデルの共有プラットフォーム。

🛠 実務での組み合わせ

画像分類の標準パターン: ImageNet 学習済み EfficientNet(or ResNet) + AdamW + Cosine LR + データ拡張(RandAugment) + Mixup + Early Stopping。これだけで 多くのデータセットで 90% 超 が出せる。

LLM ファインチューニング: LoRA(Low-Rank Adaptation)で省メモリに重みを少しだけ更新する手法が標準。

次のステップ

  • [E 資格 教科書](/certs/e-shikaku/textbook) ─ より体系的な深層学習
  • [G 検定 教科書](/certs/g-test/textbook) ─ 概念ベースで網羅
  • [プログラミング入門](/programming) ─ PyTorch / scikit-learn で実装
  • [時系列分析](/time-series) ─ 系列データの伝統的アプローチ
  • [ブログ: Transformer の数学](/blog/transformer-math)