Deep Learning (DL)
深層学習(DL)は、多層のニューラルネットワークで生データから特徴を学習する機械学習の手法です。仕組み、主要なアーキテクチャ、用途を解説します。
ディープラーニング(DL)は機械学習(ML)の一分野であり、何層にも積み重ねたニューラルネットワークを学習させ、ピクセル、音声波形、テキストなどの未加工データから直接特徴を学習します。「ディープ」はネットワークの層の深さを指します。各層が直前の層の出力を変換することで、エンジニアが特徴を手作業で設計しなくても、画像のエッジからテクスチャ、オブジェクト全体へと特徴の階層をネットワーク自ら構築します。ディープラーニングは、現代のコンピュータービジョン、音声認識、大規模言語モデル(LLM)、生成AIを支えています。
ディープラーニングの仕組み#
ニューラルネットワークはレイヤーの連なりです。各レイヤーは入力に学習済み重みの行列を掛け、バイアスを加え、その結果をReLUなどの非線形な活性化関数に通します。非線形性があることで、深いネットワークが有効になります。非線形性がなければ、どれだけレイヤーを積み重ねても、単一の線形変換にまとめられてしまいます。
学習では、ネットワークの出力が学習ラベルに一致するように重みを調整します。各ステップでは、データのバッチをネットワークに順伝播させ、損失関数で誤差を評価し、誤差逆伝播法で各重みが誤差にどれだけ寄与したかを計算します。その後、確率的勾配降下法(SGD)やAdamなどのオプティマイザーが、誤差を減らす方向に各重みを少しずつ調整します。これを多数のエポックにわたって繰り返すと、ランダムな重みが有用な特徴に変わります。以下のPyTorchの例では、円の内側にあるかどうかでラベル付けした点を使って、単一の線形レイヤーと3層ネットワークを学習させます。
import torch
from torch import nn
torch.manual_seed(0)
# Points inside a circle are class 1: no straight line separates the classes
x = torch.rand(1000, 2) * 2 - 1
y = (x.pow(2).sum(dim=1) < 0.5).float().unsqueeze(1)
# A single linear layer versus stacked layers with nonlinear activations
models = {
"linear": nn.Linear(2, 1),
"deep": nn.Sequential(nn.Linear(2, 16), nn.ReLU(), nn.Linear(16, 16), nn.ReLU(), nn.Linear(16, 1)),
}
for name, model in models.items():
optimizer = torch.optim.Adam(model.parameters(), lr=0.01)
for step in range(500):
loss = nn.functional.binary_cross_entropy_with_logits(model(x), y)
optimizer.zero_grad()
loss.backward() # backpropagation computes gradients for every layer
optimizer.step()
accuracy = ((model(x) > 0) == y).float().mean()
print(f"{name}: {accuracy:.1%} accuracy")線形モデルの精度は60.8%で、円の外側にある点の割合に近い値です。直線の境界では領域を囲めないためです。ディープモデルは99.9%に達します。隠れ層がデータから学習した曲線に決定境界を変形させるためです。Ultralytics YOLO26も、はるかに大きな規模で同じループを使って学習されます。利用可能な場合、model.train()はGPU上でラベル付き画像の順伝播、損失計算、誤差逆伝播を実行します。
ディープラーニングと機械学習#
ディープラーニングは機械学習の一部であり、主な違いは特徴量の出所です。決定木、サポートベクターマシン、勾配ブースティング木などの従来型アルゴリズムは、取引額や単語数など、人が定義した特徴量から学習します。ディープネットワークは特徴量自体を学習するため、画像、音声、テキストなどの非構造化データに強みがあります。その能力にはコストも伴います。ディープモデルは通常、はるかに多くのラベル付きデータを必要とし、GPUなどのアクセラレーターで学習し、推論過程の説明性も低くなります。表形式データでは、XGBoostなどの勾配ブースティング木が依然として強力な競合手法です。また、転移学習では、大規模なデータセットで事前学習したネットワークを利用して学習を始めることで、ディープモデルに必要なデータ量の差を縮められます。
主なアーキテクチャ#
- 畳み込みニューラルネットワーク(CNN): 学習済みの小さなフィルターを画像上でスライドさせ、フレーム内のどこにあっても同じパターンを認識します。CNNはリアルタイム物体検出や画像セグメンテーションの基盤です。
- リカレントニューラルネットワーク(RNN): 隠れ状態を保持しながら、系列を一度に1ステップずつ処理します。LSTMなどの派生モデルは、Transformerが登場するまで音声認識や翻訳を主導していました。
- Transformer: 自己注意機構を使い、系列内のすべての要素と他のすべての要素との関係を並列に計算します。2017年に登場し、LLMやVision Transformer(ViT)を支えています。
- 拡散モデル: 段階的にノイズを除去するよう学習し、ランダムノイズから画像、動画、音声を生成します。
簡単な歴史#
ディープラーニングの基礎となる考え方は、数十年前から存在しています。誤差逆伝播法は、David Rumelhart、Geoffrey Hinton、Ronald Williamsによる1986年の論文で広く知られるようになりましたが、ImageNetのような大規模なラベル付きデータセット、それらを学習できるだけの高速なGPU、ReLU活性化関数やドロップアウトなどの技術という3つの要素が揃うまでは、ネットワークは浅いままでした。2012年、AlexNetはImageNetのトップ5エラー率を15.3%まで下げ、次点の26.2%を大きく上回り、ほぼ一夜にして分野全体がディープネットワークへと移行しました。Hinton、Yann LeCun、Yoshua Bengioはこの業績により2018年のチューリング賞を受賞し、2024年のノーベル物理学賞は、人工ニューラルネットワークによる機械学習を可能にする発見に対して、HintonとJohn Hopfieldに授与されました。ネットワークの深さも増し続けました。残差接続によってResNetは152層のネットワークを学習できるようになり、そのアンサンブルは2015年のImageNet画像分類チャレンジでトップ5エラー率3.57%を達成して優勝しました。










