Ultralytics YOLO27: ウェイトリストに登録する
YOLOのライセンス
Ultralytics用語集に戻る

Residual Networks (ResNet)

残差ネットワーク(ResNet)は、スキップ接続を通じて各ブロックの入力を出力に加算し、非常に深いネットワークの学習を可能にします。ブロック、派生モデル、コードを解説します。

残差ネットワーク(ResNet)は、残差ブロックで構成される深い畳み込みニューラルネットワーク(CNN)です。残差ブロックでは、ショートカット接続によって各ブロックの入力を出力に加算します。そのため、各ブロックは入力への補正だけを学習すればよく、50層、152層、さらには1,000層を超えるネットワークも安定して学習できます。Microsoft ResearchのKaiming He、Xiangyu Zhang、Shaoqing Ren、Jian Sunは、2015年の論文Deep Residual Learning for Image RecognitionでResNetを発表しました。残差ネットワークのアンサンブルは、ImageNetのILSVRC 2015 分類タスクで、トップ5誤差3.57%を達成して優勝しました。その後、残差接続はTransformerやリアルタイム物体検出器を含む、ほとんどのディープアーキテクチャで標準的な要素になりました。

劣化問題#

ResNet以前は、単純な畳み込み層の積み重ねに層を追加すると、やがて結果が悪化しました。ResNetの著者らは、56層の単純なネットワークが20層のネットワークより学習誤差が大きいことを示しました。そのため、過学習では性能低下を説明できませんでした。深いネットワークは、追加の層を恒等写像に設定すれば浅いネットワークと同等の性能を得られるはずでしたが、勾配降下法ではその解を見つけられませんでした。著者らはこの問題を劣化問題と名付けました。勾配消失問題は、重みの正規化初期化とバッチ正規化によってすでに大部分が解消されていたため、深い単純ネットワークでも収束はしましたが、より悪い解に到達していました。

残差ブロックの仕組み#

残差ブロックはy = F(x) + xを計算します。ここでxはブロックの入力、Fは通常、バッチ正規化とReLUを備えた2層または3層の畳み込みからなる小さな層のまとまりです。ブロックにとって最適な写像が恒等写像に近い場合、層が学習するのはFをゼロに近づけることだけであり、恒等写像を一から学習するよりはるかに簡単です。また、ショートカットによって、各ブロックを通じて勾配が直接逆方向に伝わります。恒等ショートカットはパラメーターを追加せず、計算量もほとんど増やしません。ブロックでチャネル数を変更する場合や、ストライド2でダウンサンプリングする場合は、xとF(x)の形状が一致しなくなるため、1×1畳み込みでショートカットを新しい形状に射影します。

ResNet-18とResNet-34は、この基本的な2層畳み込みブロックを積み重ねます。ResNet-50、ResNet-101、ResNet-152では、3層の畳み込みからなるボトルネックブロックを使います。1×1畳み込みでチャネル数を減らし、3×3の畳み込みで処理し、2つ目の1×1畳み込みでチャネル数を元に戻すことで、深いモデルのコストを抑えます。ResNet-50のパラメーター数は約2,560万です。原論文ではCIFAR-10で1,202層のネットワークも学習し、学習誤差を0.1%未満にしましたが、テスト誤差は7.93%で、110層ネットワークの6.43%を上回りました。著者らは、この差を小規模なデータセットでの過学習によるものとしました。

ResNetの派生モデル#

  • Pre-activation ResNet: 同じ著者らによる2016年の続編では、各畳み込みの前にバッチ正規化とReLUを移動し、ショートカット経路を純粋な恒等写像にしました。また、CIFAR-10で1,001層のネットワークを学習しました。
  • ResNeXt: 各ボトルネックを、cardinalityと呼ばれる幅の狭い多数の並列経路に分割することで、同じ計算コストで精度を高めます。
  • Wide ResNet: 幅を広げたブロックを少数使用し、幅を深さの一部の代わりにできることを示しています。
  • 最新化されたResNet: ConvNeXt(2022)は、大きなカーネル、レイヤー正規化、GELU活性化関数を採用してResNetの設計を更新し、Vision Transformerと競合できるようにしました。

事前学習済みResNetの利用#

事前学習済みResNetは、転移学習の一般的なベースラインやバックボーンとして、今もよく使われています。torchvisionのResNetモデルには、ImageNetの重みと対応する前処理が含まれているため、画像分類は数行で実行できます。

import urllib.request

import torch
from torchvision.io import decode_image
from torchvision.models import ResNet50_Weights, resnet50

# Load ResNet-50 with ImageNet weights and its matching preprocessing
weights = ResNet50_Weights.DEFAULT
model = resnet50(weights=weights).eval()
preprocess = weights.transforms()

# Download and decode a sample image
data = urllib.request.urlopen("https://ultralytics.com/images/bus.jpg").read()
image = decode_image(torch.frombuffer(bytearray(data), dtype=torch.uint8))

# Classify the image and report the most likely ImageNet class
with torch.no_grad():
    probs = model(preprocess(image).unsqueeze(0)).softmax(dim=1)
score, index = probs.max(dim=1)
print(f"{weights.meta['categories'][index.item()]}: {score.item():.2f}")

写真に写った市バスに最も近い、ImageNetの1,000クラスのうちの1つとしてminibus: 0.25が出力されます。独自のタスクでは、最後の全結合層を置き換え、新しいラベルでファインチューニングすると、残差段階がImageNetで学習した特徴を再利用できます。

  • VGGなどの単純なネットワーク: VGGはショートカットを使わずに3×3畳み込みを積み重ね、重み層は最大19層です。ResNet-152はVGG-19の8倍の深さがありながら、複雑さは低く抑えられています。
  • Highwayネットワーク: ResNetと同時期に開発され、ショートカットを閉じられる学習可能なゲートを追加します。ResNetの恒等ショートカットは閉じられることがなく、パラメーターも追加しません。
  • DenseNet: ショートカットを1つ追加する代わりに、ブロック内のそれ以前のすべての層の出力を連結します。チャネル数が増える一方で、特徴を再利用できます。
  • U-Net: スキップ接続でエンコーダーの特徴マップをデコーダーまで運び、そこで連結します。個々のブロックを囲むのではなく、離れた段階同士を接続します。
  • Vision Transformer(ViT): 畳み込みを自己注意機構に置き換えますが、他のTransformerと同様に、各注意サブレイヤーとフィードフォワードサブレイヤーの周囲には残差接続を維持します。

最新モデルにおける残差接続#

残差という考え方は、特定のResNetアーキテクチャを超えて広く使われています。大規模言語モデル(LLM)では各層が注意機構とフィードフォワードの出力を残差ストリームに加算し、ほとんどのCNN検出器は残差ブロックをバックボーンに使用しています。YOLO26では、入力チャネル数と出力チャネル数が一致する場合、C3k2ブロックはx + F(x)を返すボトルネックモジュールで構成されています。また、Ultralyticsパッケージには、ResNet-50およびResNet-101をバックボーンに使用するBaiduのRT-DETR設定も含まれています。ResNetの論文はCVPR 2016の最優秀論文賞を受賞し、2025年のNatureによる分析では、21世紀で最も引用された論文に選ばれました。

ソリューションを見る

スポーツにおけるコンピュータービジョン

スポーツにおけるコンピュータービジョン

Ultralytics YOLOが、選手やボールの追跡、パフォーマンス分析、コーチングへの知見、アスリートのリハビリを通じて、スポーツビジョンをどのように支えるかをご紹介します。
詳しく見る
航空画像向けコンピュータービジョン

航空画像向けコンピュータービジョン

Ultralytics YOLOを使用して、ドローンや航空画像をリアルタイムの知見に変換し、農業、水産養殖、自然保護、地理空間分析に活用できます。
詳しく見る
航空宇宙分野のコンピュータービジョン

航空宇宙分野のコンピュータービジョン

Ultralytics YOLOを活用して航空宇宙分野でコンピュータビジョンを導入し、航空機検査、滑走路上のFOD検出、空港の地上業務、複合材の欠陥検出に活用できます。
詳しく見る
セキュリティ分野のコンピュータービジョン

セキュリティ分野のコンピュータービジョン

Ultralytics YOLOモデルであらゆる施設を保護しましょう。ビジョンAIは、周辺監視、脅威検知、ナンバープレート認識、職場の安全管理を支援します。
詳しく見る
ロボティクス分野のコンピュータービジョン

ロボティクス分野のコンピュータービジョン

Ultralytics YOLOモデルで、よりスマートなマシンを実現しましょう。ロボティクスにおけるビジョンAIは、自律ナビゲーション、認識、物体追跡、リアルタイム制御を支援します。
詳しく見る
物流におけるコンピュータービジョン

物流におけるコンピュータービジョン

Ultralytics YOLOモデルで物流を効率化しましょう。ビジョンAIにより、荷物検査、仕分け、車両追跡、倉庫のリアルタイム安全監視を実現します。
詳しく見る
小売業におけるコンピュータービジョン

小売業におけるコンピュータービジョン

Ultralytics YOLOモデルで小売のあり方を変革しましょう。ビジョンAIにより、在庫追跡、棚の監視、行列管理、より高度な顧客インサイトを実現します。
詳しく見る
医療分野におけるコンピュータービジョン

医療分野におけるコンピュータービジョン

Ultralytics YOLOモデルで医療ソリューションを構築しましょう。医療分野のビジョンAIは、医用画像処理の高速化、より高度な診断、患者モニタリングを実現します。
詳しく見る
製造業におけるコンピュータービジョン

製造業におけるコンピュータービジョン

Ultralytics YOLOモデルで製造を最適化しましょう。ビジョンAIは、品質管理、欠陥検出、PPE準拠、組立ラインの自動化を推進します。
詳しく見る
自動車分野におけるコンピュータービジョン

自動車分野におけるコンピュータービジョン

Ultralytics YOLOモデルで自動車分野にコンピュータービジョンを導入しましょう。ビジョンAIは、道路の安全性、運転支援、車両の自動化を向上させ、よりスマートな道路を実現します。
詳しく見る
農業におけるコンピュータービジョン

農業におけるコンピュータービジョン

Ultralytics YOLOモデルでスマート農業にビジョンAIを導入しましょう。作物のモニタリング、家畜の追跡、精密農業を支援し、より高く効率的な収量を実現します。
詳しく見る

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

機械学習の未来に向けた歩みを始めましょう