1.

ディープラーニングとは?CNN・RNN・Transformer・LLM の入門

編集

本稿は ディープラーニング (Deep Learning / DL) に関する記事です。

この記事の要点
  • ディープラーニングは「多層ニューラルネット」を使う機械学習。画像・音声・言語の非構造化データで圧倒的
  • 主要アーキテクチャ: MLP / CNN / RNN-LSTM / Transformer / Diffusion / GAN / VAE
  • 2017 年の Transformer 登場以降、自然言語処理だけでなく画像・音声まで席巻し、LLM / 生成 AI の土台に
  • 典型ワークフロー: 事前学習 (大量データ) → ファインチューニング (用途別) → デプロイ
  • 必須: GPU / TPU自動微分勾配降下法誤差逆伝播
  • 主要フレームワーク: PyTorch(主流)/ TensorFlow / JAX
  • 失敗の代表: 勾配消失 / 過学習 / 過剰なリソース消費 / 学習データの偏り

ディープラーニングとは?

ディープラーニング (深層学習) は、機械学習の一分野で、多層のニューラルネットワークを使ってデータから自動的に特徴量と予測ロジックを学習する手法です。「深層」とは、ネットワークの層が多い (Deep = 何十〜数百層) という意味です。

古典機械学習が人が特徴量を設計するのに対し、ディープラーニングは特徴量設計までモデルが自動で行うのが本質的な違いで、これにより画像・音声・自然言語といった非構造化データで人間を超える精度を達成しました。

ニューラルネットの基本

要素役割
ニューロン (ノード)入力に重みをかけて合計し、活性化関数を通す最小単位
層 (Layer)ニューロンの集まり。入力層 / 中間 (隠れ) 層 / 出力層
重み (Weight)学習で更新されるパラメータ
バイアス (Bias)各ニューロンに加える定数
活性化関数非線形性を導入。ReLU / GELU / Sigmoid / Softmax
損失関数予測と正解の差を測る。交差エントロピー / MSE
勾配降下法損失を減らす方向に重みを更新。SGD / Adam / AdamW
誤差逆伝播 (Backpropagation)連鎖律で勾配を計算するアルゴリズム
エポック / バッチ学習の単位(全データ 1 周 / 小分け)

主要アーキテクチャ

アーキテクチャ得意なデータ代表用途
MLP (多層パーセプトロン)表形式・低次元分類・回帰(古典タスク)
CNN (畳み込みニューラルネット)画像・空間データ画像認識・物体検出・セグメンテーション
RNN / LSTM / GRU時系列・短〜中文長の系列翻訳・音声 (Transformer 登場以前の主流)
Transformer系列・マルチモーダル全般LLM・画像 (ViT)・音声 (Whisper)・動画
Encoder-Decoder系列 → 系列翻訳・要約
GAN (敵対的生成ネット)画像画像生成(旧主流。現在は Diffusion)
VAE (変分オートエンコーダ)画像・潜在表現表現学習・生成
Diffusion Model画像・動画・音声Stable Diffusion / DALL·E / Sora の中核
GNN (グラフニューラルネット)グラフ構造分子・SNS・推薦
Autoencoder任意次元削減・異常検知

Transformer がもたらしたもの

補足: 「Attention is All You Need」(2017)
Google の論文で提案された Transformer アーキテクチャは、Self-Attention(自己注意機構)を中核に、系列内の任意の位置同士の関係を並列に学習できる構造です。RNN の逐次計算と違って GPU で大規模並列化でき、学習データとパラメータ数を増やすほど性能が伸びる「スケーリング則」が成立する点が革命的でした。

これにより BERT (2018) や GPT (2018〜) が誕生し、近年の LLM・生成 AI のすべてが Transformer の上に建てられています。さらに画像 (ViT)、音声 (Whisper)、動画、マルチモーダル (Gemini / GPT-4o / Claude) と適用範囲も急拡大しました。

現代 DL の典型ワークフロー: 事前学習+ファインチューニング

段階内容担当
事前学習 (Pretraining)大量の未ラベルデータで汎用表現を学習(自己教師あり学習)大企業・研究所(数千〜数万 GPU)
ファインチューニング (SFT)少量のタスク特化データで微調整個人〜中堅企業でも可能
RLHF / DPO人間の好みデータで応答品質を整える主要 LLM ベンダー
LoRA / QLoRA軽量ファインチューニング(一部パラメータのみ更新)個人 GPU でも可能に
蒸留 (Distillation)大モデルの知識を小モデルへ転送本番デプロイ向け軽量化
量子化 (Quantization)INT8 / 4-bit で省 VRAM 化推論時の最適化

画像系の代表モデル

モデルタスク
LeNet / AlexNet / VGG / ResNet / EfficientNet画像分類(CNN 系の歴代)
Vision Transformer (ViT)画像分類(Transformer 系)
YOLO / DETR / Faster R-CNN物体検出
U-Net / SegFormer / SAMセグメンテーション
Stable Diffusion / DALL·E / Midjourney画像生成 (Diffusion ベース)
CLIP画像とテキストの結合埋め込み(マルチモーダルの基礎)

自然言語・音声系の代表モデル

モデル用途
Word2Vec / GloVe単語埋め込み(古典)
seq2seq + Attention翻訳(Transformer 以前)
BERT双方向 Transformer。文の理解タスク
GPT 系自己回帰 Transformer。生成タスク
T5 / FLAN-T5Encoder-Decoder Transformer
Llama / Mistral / Qwen / GemmaOSS LLM
Whisper音声認識 (OSS)
Wav2Vec2 / HuBERT音声表現学習

必要なハードウェアとフレームワーク

用途推奨
学習 (小規模実験)NVIDIA RTX 3060 (12GB) 〜 4090 (24GB)、Apple Silicon (MPS)、Google Colab
学習 (中規模)RTX 4090 / RTX 6000 Ada、AWS p4 / Lambda Labs、複数 GPU
学習 (LLM 大規模)H100 / B200 多数 + DeepSpeed / FSDP、TPU
推論CPU でも可、GPU で高速、ONNX Runtime / vLLM / TensorRT
主流フレームワークPyTorch(研究実装の事実上の標準)
本番運用TensorFlow / TFLite、ONNX Runtime
研究 (Google 系)JAX / Flax
事前学習モデル利用Hugging Face Transformers

最小サンプル: PyTorch で MLP

import torch, torch.nn as nn, torch.optim as optim

# データ (例)
X = torch.randn(1000, 20)
y = (X.sum(dim=1) > 0).long()

# モデル
model = nn.Sequential(
    nn.Linear(20, 64), nn.ReLU(),
    nn.Linear(64, 2),
)
loss_fn = nn.CrossEntropyLoss()
opt = optim.AdamW(model.parameters(), lr=1e-3)

# 学習ループ
for epoch in range(20):
    logits = model(X)
    loss = loss_fn(logits, y)
    opt.zero_grad(); loss.backward(); opt.step()
    if epoch % 5 == 0:
        print(f"epoch {epoch}: loss={loss.item():.4f}")

応用分野(2026年現在)

  • 大規模言語モデル (LLM): ChatGPT / Claude / Gemini / Copilot
  • 画像生成 / 動画生成: Stable Diffusion / Midjourney / Sora / Veo
  • 音声認識 / 合成: Whisper / ElevenLabs / Suno
  • マルチモーダル: 画像 + テキスト QA (LLaVA / Gemini)
  • 科学・医療: AlphaFold (タンパク質構造)、AI 創薬、医療画像診断
  • 自動運転: 物体検出、経路計画、模倣学習
  • レコメンド: 動画配信・EC・広告
  • ゲーム / ロボット: AlphaZero、操作学習

運用上のヒント

Tips
  • 事前学習モデルから始める: ゼロから学習は非現実的。Hugging Face の事前学習モデル + ファインチューニング
  • 小さく試す: フルデータ・大モデルでいきなり走らせない。データ 1% / 小モデルで動作確認
  • 混合精度 (bf16 / fp16): 学習速度 2 倍、VRAM 半分
  • 学習率スケジューリング: warmup + cosine annealing で安定
  • 勾配クリッピング: 学習が発散したら導入
  • Early Stopping: 過学習前に止める
  • データ拡張: 画像は flip / crop / mixup、テキストは back-translation
  • 実験管理: W&B / MLflow / TensorBoard でハイパラとメトリクスを残す
  • 再現性: シード固定 + 依存ライブラリのバージョン固定

注意点

よくある落とし穴
  • 勾配消失 / 勾配爆発: 深い RNN で起きやすい。LSTM / 残差接続 / 正規化で対処
  • 過学習: パラメータが多すぎる。Dropout / Weight Decay / Early Stopping
  • データ漏洩: 前処理時に train と test を混ぜない
  • 不均衡データ: 多数クラスに引きずられる。クラス重み / オーバーサンプル
  • GPU 不足: 大型モデルはフル精度で 8 GB GPU には載らない。LoRA / 4-bit / 蒸留
  • 学習データの偏り: モデルがそのまま差別的予測を出す
  • ベンチマーク汚染: LLM の学習データに評価セットが含まれていることがある
  • 環境再現困難: CUDA / cuDNN / Python / 各ライブラリのバージョン整合
  • 本番のレイテンシ・コスト: 学習時の精度だけで判断しない

学習ロードマップの例

  1. 機械学習 の基礎を押さえる(特に教師あり / なし、評価指標)
  2. AI に必要な数学(線形代数 + 微積 + 確率)
  3. PyTorch の公式チュートリアルで MLP / CNN を実装
  4. 畳み込み (CNN) と画像分類 → 転移学習
  5. Transformer の仕組みを学ぶ(Attention is All You Need)
  6. Hugging Face Transformers で BERT / GPT 系を使う
  7. LoRA / QLoRA でファインチューニング
  8. RAG・エージェントを LangChain / LlamaIndex で実装

関連

編集
Post Share
子ページ

子ページはありません

同階層のページ

同階層のページはありません