Yolo 深圳
深セン
今すぐ参加
用語集

Residual Networks (ResNet)

残留ネットワーク(ResNet)の力を探求しましょう。スキップ接続が消失勾配問題を解決し、コンピュータビジョンにおける深層学習を可能にする仕組みを学びます。

残差ネットワーク(通称ResNet)は、極めて深いネットワークの学習を可能にするために設計された人工ニューラルネットワーク(ANN)アーキテクチャの一種である。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と他のアーキテクチャの比較

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

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

実施例

PyTorch のような現代的な深層学習ライブラリは、事前学習済みResNetモデルへのアクセスをPyTorch 。これらのモデルは転移学習において非常に有用であり、大規模データセット(例:ImageNet)で学習されたモデルを他のタスクに転用できます。 ImageNet で学習されたモデルを特定のタスク向けに微調整する手法において非常に有用です。

Python 、事前学習済みResNet-50モデルをロードする方法を示しています。 torchvision (PyTorch の一部) を使用し、単純なフォワードパスを実行します。 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

現代人工知能における重要性

YOLO26のような新しいアーキテクチャは最高速度と精度を実現するために高度に最適化された構造を採用しているが、残差学習の原理は依然として広く普及している。スキップ接続の概念は現在、自然言語処理(NLP)で使用されるトランスフォーマーや最新の物体検出モデルを含む多くの先進ネットワークにおける標準的な構成要素となっている。ネットワーク内での情報の流れをより自由にすることを可能にしたことで、ResNetは現代の人工知能を支える深層で複雑なモデルの道を開いた。(NLP) や最新の物体検出モデルなど、多くの先進ネットワークにおいて標準的な構成要素となっている。 ネットワーク内での情報の流れをより自由にすることを可能にしたことで、ResNetは現代の人工知能を支える 深層で複雑なモデルへの道を開いたのである。

Ultralytics コミュニティに参加する

AIの未来を共に切り開きましょう。グローバルなイノベーターと繋がり、協力し、成長を。

今すぐ参加