YOLO Vision Shenzhen
深セン
今すぐ参加
用語集

Residual Networks (ResNet)

Residual Networks (ResNet) の能力を探りましょう。スキップ接続が勾配消失問題を解決し、コンピュータビジョンのためのディープラーニングを可能にする方法を学びましょう。

Residual Networks、広くResNetsとして知られるものは、非常に深いネットワークのトレーニングを可能にするように設計された、特定の種類の人工ニューラルネットワーク (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アーキテクチャの堅牢性は、幅広い視覚タスクにおいて頼りになる選択肢となっています。

  • Medical Image Analysis: ヘルスケアにおいて、高解像度スキャンにおける微妙な異常を特定することは極めて重要です。ResNetベースのモデルは、医用画像における腫瘍detectなどの病状をdetectするために頻繁に採用されており、ネットワークの深さがMRIやCTデータにおけるきめ細かいパターンを識別するのに役立ちます。
  • Autonomous Vehicles: 自動運転車は、歩行者、標識、および障害物を識別するために、カメラフィードからの信頼性の高い特徴抽出を必要とします。ResNetはしばしば 自動車AIアプリケーションにおける object detectionシステムのバックボーンとして機能し、 安全なナビゲーションに必要な豊富な視覚的特徴を提供します。

ResNetと他のアーキテクチャの比較

ResNetを他の一般的なアーキテクチャと区別することは、その特定の有用性を理解するために有用です。

  • ResNet vs. VGG: VGG(Visual Geometry Group)ネットワークも深層CNNですが、残差接続を欠いています。その結果、ResNetに匹敵する深さで学習させるのがはるかに難しく、大規模な全結合層のため、一般的に計算コストが高くなります。
  • ResNet vs. Inception: Inceptionネットワークは、同じ層内で複数のサイズのフィルターを使用して異なるスケールの特徴を捉えることで、幅に焦点を当てます。ResNetは深さに焦点を当てます。Inception-ResNetのような現代のアーキテクチャは、両方の概念を組み合わせています。
  • ResNet vs. Vision Transformer (ViT): ViTが自己注意メカニズムを使用して画像をグローバルに処理するのに対し、ResNetは局所畳み込みに依存します。しかし、ResNetは強力なベースラインであり続け、小規模なデータセットやリアルタイム推論ではしばしば高速です。

実施例

PyTorchのような現代の深層学習ライブラリは、事前学習済みResNetモデルへのアクセスを容易にします。これらのモデルは、ImageNetのような大規模データセットでトレーニングされたモデルが特定のタスク向けにファインチューニングされる転移学習にとって非常に貴重です。

以下のpythonスニペットは、事前トレーニング済みのResNet-50モデルをロードする方法を示しています。 torchvision (PyTorchエコシステムの一部)であり、シンプルな順伝播を実行します。一方、〜のユーザーは Ultralyticsプラットフォーム よく使用される場合があります。 YOLO26 detectにおいて、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は今日の人工知能を支える深く複雑なモデルへの道を開きました。

共にAIの未来を築きましょう!

未来の機械学習で、新たな一歩を踏み出しましょう。