Residual Networks (ResNet)
残差ネットワーク(ResNet)の力を説明します。スキップ接続が勾配消失問題を解決し、コンピュータービジョン向けのディープラーニングを可能にする方法を紹介します。
ResNetとして広く知られる残差ネットワークは、非常に深いネットワークの学習を可能にするために設計された、特定のタイプの人工ニューラルネットワーク(ANN)アーキテクチャです。2015年にMicrosoftの研究者によって発表された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とVGGの比較:**VGG(視覚幾何学グループ)ネットワークも深いCNNですが、残差接続を備えていません。そのため、ResNetと同程度の深さでは学習がはるかに困難であり、大規模な全結合層により、一般的に計算コストも高くなります。
- **ResNetとInceptionの比較:**Inceptionネットワークは幅に重点を置き、同じ層内で複数サイズのフィルターを使用して異なるスケールの特徴を捉えます。ResNetは深さに重点を置きます。Inception-ResNetのような現代のアーキテクチャは、両方の概念を組み合わせています。
- **ResNetとVision Transformer(ViT)の比較:**ViTが自己注意メカニズムを使用して画像をグローバルに処理する一方、ResNetは局所的な畳み込みに依存します。ただし、ResNetは依然として強力なベースラインであり、小規模なデータセットやリアルタイムの推論では、より高速なことがよくあります。
実装例#
PyTorchのような最新のディープラーニングライブラリを使用すると、学習済みのResNetモデルに簡単にアクセスできます。これらのモデルは、転移学習において非常に有用です。転移学習では、ImageNetのような大規模データセットで学習したモデルを、特定のタスク向けにファインチューニングします。
次のPythonスニペットは、PyTorchエコシステムの一部であるtorchvisionを使用して学習済みResNet-50モデルを読み込み、単純なフォワードパスを実行する方法を示します。Ultralytics Platformのユーザーは検出に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)で使用されるTransformerや、最新の物体検出モデルを含む、多くの高度なネットワークで標準的な構成要素となっています。ネットワーク内を情報がより自由に流れるようにすることで、ResNetは今日の人工知能を支える深く複雑なモデルへの道を切り開きました。









