Residual Networks (ResNet)
残差ネットワーク(ResNet)の能力を探ります。スキップ接続が勾配消失問題をどのように解決し、コンピュータビジョンのディープラーニングを実現するかを学びましょう。
Residual Networks(ResNetsとして広く知られています)は、極めて深いネットワークのトレーニングを可能にするために設計された、人工ニューラルネットワーク(ANN)アーキテクチャの一種です。2015年にマイクロソフトの研究者によって発表されたResNetは、ディープラーニングにおける勾配消失問題として知られる重大なボトルネックを解決しました。従来のネットワークでは、層を積み重ねると、モデルの重みを更新するために必要な信号が層を逆伝播するにつれて減衰するため、パフォーマンスの停滞や低下を招くことがよくありました。ResNetは「スキップ接続」(または残差接続)を導入し、データが1つ以上の層をバイパスして、後続の処理ステージへ直接流れるようにしました。この革新により、より深いネットワークを効果的にトレーニングできることが証明され、コンピュータビジョン(CV)における大きなブレークスルーとなり、現代のアーキテクチャの基礎概念となりました。
核心的な概念:残差学習#
ResNetの最大の特徴は「残差ブロック」です。標準的な畳み込みニューラルネットワーク(CNN)では、各層が入力から出力への直接のマッピングを学習しようとします。ネットワークが深くなるにつれて、この直接のマッピングを学習することはますます困難になります。
ResNetは、学習の目的を異なる形で定式化することでこのアプローチを変更します。各層のスタックが基礎となるマッピング全体を学習することを期待するのではなく、残差ブロックは、入力と所望の出力の間の「残差」(つまり差分)を学習するよう層に強制します。元の入力は、スキップ接続を介して学習された残差に加算されます。この構造上の変更は、恒等写像(入力をそのまま渡すこと)が最適な場合、ネットワークが残差をゼロに近づける学習を容易に行えることを意味します。これにより、ディープラーニング(DL)モデルの最適化がはるかに容易になり、数十層から数百層、あるいは数千層へとスケールさせることが可能になります。
主要なアーキテクチャのバリエーション#
誕生以来、いくつかのResNetのバリエーションがAIコミュニティにおける標準的なベンチマークとなっています。
- ResNet-50: 「ボトルネック」設計を採用した50層のバージョンです。この設計では、1x1の畳み込みを使用して次元を削減してから復元し、高い精度を維持しながらネットワークの計算効率を高めています。
- ResNet-101およびResNet-152: それぞれ101層および152層を持つ、より深いバリエーションです。これらは、より複雑な特徴マップをキャプチャするために計算リソースがより高い複雑さを許容する場合によく使用されます。
- ResNeXt: ResNetの進化版で、「カーディナリティ」次元を導入し、残差ブロックを複数の並列パスに分割することで効率とパフォーマンスを向上させています。
実社会での応用#
ResNetアーキテクチャの堅牢性は、幅広い視覚タスクにおいて選ばれる理由となっています。
- 医療画像解析: ヘルスケアにおいて、高解像度スキャン内の微小な異常を特定することは極めて重要です。ResNetベースのモデルは、医療画像における腫瘍検出などの状態を検出するために頻繁に使用され、ネットワークの深さがMRIやCTデータ内のきめ細かなパターンの識別を助けます。
- 自動運転車: 自動運転車は、歩行者、標識、障害物を特定するために、カメラフィードからの信頼性の高い特徴抽出を必要とします。ResNetは、自動車分野におけるAIアプリケーションの物体検出システムのバックボーンとして機能することが多く、安全なナビゲーションに必要な豊富な視覚的特徴を提供します。
ResNet対その他のアーキテクチャ#
ResNetの具体的な有用性を理解するために、他の一般的なアーキテクチャと区別することは有益です。
- ResNet vs. VGG: VGG(Visual Geometry Group)ネットワークもディープなCNNですが、残差接続を持っていません。その結果、ResNetと同等の深さでトレーニングすることがはるかに難しく、大きな全結合層を持つため、一般的に計算コストが高くなります。
- ResNet vs. Inception: Inceptionネットワークは幅に焦点を当てており、同じ層内で複数のサイズのフィルターを使用して異なるスケールの特徴を捉えます。ResNetは深さに焦点を当てています。Inception-ResNetのような現代のアーキテクチャは、両方の概念を組み合わせたものです。
- ResNet vs. ビジョン・トランスフォーマー(ViT): ViTは自己注意メカニズムを使用して画像をグローバルに処理しますが、ResNetはローカルな畳み込みに依存しています。ただし、ResNetは強力なベースラインであり続け、小規模なデータセットやリアルタイムの推論ではより高速であることがよくあります。
実装例#
PyTorchのような現代のディープラーニングライブラリを使用すると、事前トレーニング済みのResNetモデルに簡単にアクセスできます。これらのモデルは転移学習において非常に価値があり、ImageNetのような大規模なデータセットでトレーニングされたモデルが特定のタスク向けにファインチューニングされます。
次のPythonスニペットは、torchvision(PyTorchエコシステムの一部)を使用して事前トレーニング済みのResNet-50モデルをロードし、単純なフォワードパスを実行する方法を示しています。Ultralytics プラットフォームのユーザーは検出にYOLO26をよく使用するかもしれませんが、ResNetのような基盤となるバックボーンの概念を理解することは、高度なカスタマイズにとって重要です。
import torch
import torchvision.models as models
# Load a pre-trained ResNet-50 model
resnet50 = models.resnet50(weights=models.ResNet50_Weights.DEFAULT)
resnet50.eval() # Set model to evaluation mode
# Create a dummy input tensor (batch_size, channels, height, width)
input_tensor = torch.randn(1, 3, 224, 224)
# Perform a forward pass to get predictions
with torch.no_grad():
output = resnet50(input_tensor)
print(f"Output shape: {output.shape}") # Expect [1, 1000] for ImageNet classes現代のAIにおける重要性#
YOLO26のような新しいアーキテクチャは、最高速度と精度を実現するために高度に最適化された構造を採用していますが、残差学習の原則は依然として至る所に存在します。スキップ接続の概念は、自然言語処理(NLP)で使用されるトランスフォーマーや最新の物体検出モデルなど、多くの高度なネットワークにおける標準コンポーネントとなっています。ResNetは、情報がネットワーク内をより自由に流れるようにすることで、今日の人工知能を支えるディープで複雑なモデルへの道を切り拓きました。






