ResNetとは?意味・仕組み・活用例をわかりやすく解説

AIの初心者
「ResNet」って何のことですか?深層学習の用語でよく見ますが、少し難しそうです。

AI専門家
ResNetは、画像認識などで使われる深層学習モデルの一つだよ。たくさんの層を重ねても学習しやすいように、「残差学習」という工夫を取り入れているんだ。

AIの初心者
層をたくさん重ねるほど賢くなりそうですが、深くすると何か問題が起きるんですか?

AI専門家
その通り。深くすると情報や勾配が伝わりにくくなることがある。ResNetは「スキップ接続」という近道を作り、重要な情報を後ろの層へ届けやすくしているんだ。
ResNetとは。
ResNetは「Residual Network」の略で、日本語では残差ネットワークと呼ばれます。深層学習、とくに画像認識でよく使われるニューラルネットワークで、残差ブロックとスキップ接続によって深いモデルを学習しやすくした構造が特徴です。

ResNetを理解するうえで大切なのは、「層を深くすれば必ずうまくいくわけではない」という点です。深いニューラルネットワークは複雑な特徴を表現しやすい一方で、学習中の情報が途中で弱くなったり、不要な変換を重ねて精度が下がったりすることがあります。ResNetはこの問題に対して、入力を後ろの層へ直接渡す経路を用意し、学習の流れを安定させます。
ResNetとは何か
ResNetは、畳み込みニューラルネットワーク(CNN)の一種として広く使われてきた深層学習モデルです。CNNは画像の輪郭、模様、部品、物体全体のような特徴を段階的に取り出すのが得意で、ResNetはそのCNNをより深く積み重ねやすくしたものと考えると理解しやすくなります。
名前に含まれるResidual、つまり「残差」は、入力そのものではなく、入力に対して追加で学ぶべき変化分を指します。通常の層が「入力を別の表現へ変換する」ことを学ぶのに対し、ResNetの残差ブロックは元の入力にどのような変化を足せばよいかを学ぶ形になります。
この考え方により、モデルが不要な変換を無理に学習する必要が減ります。もしある層で大きな変換が必要なければ、入力をほぼそのまま後ろへ流せばよいため、深いネットワークでも性能が落ちにくくなります。
残差学習が必要になった背景
深層学習では、層を重ねるほど複雑な特徴を扱えるようになります。画像であれば、浅い層では線や角、色の変化を捉え、深い層では目、車輪、道路、顔、物体全体のような抽象的な情報を捉えられるようになります。
しかし、単純に層を増やすだけでは学習が難しくなります。代表的な問題が勾配消失です。ニューラルネットワークは誤差を後ろから前へ伝えながら重みを調整しますが、層が非常に深いと、その調整信号が前の層へ届くころには弱くなってしまうことがあります。反対に信号が大きくなりすぎる勾配爆発も問題になります。
さらに、深くしたネットワークが浅いネットワークより悪い性能になる「劣化問題」もあります。これは単なる過学習とは異なり、訓練データに対しても性能が上がりにくくなる現象です。ResNetは、スキップ接続によって情報と勾配が通りやすい道を作り、この深層化の難しさを和らげました。
| 問題 | 起きること | ResNetの対策 |
|---|---|---|
| 勾配消失 | 前の層へ学習信号が届きにくくなる | スキップ接続で勾配の通り道を作る |
| 劣化問題 | 層を増やしても訓練性能が上がりにくい | 入力をそのまま伝えやすくし、不要な変換を避ける |
| 計算量の増加 | 深いモデルほど学習や推論が重くなる | 用途に応じてResNet-18やResNet-50などを選ぶ |
残差ブロックとスキップ接続の仕組み

ResNetの中心になる部品が残差ブロックです。残差ブロックでは、入力データが通常の畳み込み層や活性化関数を通る経路と、入力をほぼそのまま後ろへ送るショートカット経路に分かれます。そして最後に、変換された結果と元の入力を足し合わせます。
式で書くと、基本的な考え方は次のようになります。
\( y = F(x) + x \)ここで、x は入力、F(x) は畳み込み層などで学習する変化分、y は出力です。通常のネットワークが「xからyを直接作る」ことを学ぶのに対し、ResNetは「xに何を足せばyに近づくか」を学びます。
この構造には二つの利点があります。一つ目は、重要な情報を後ろの層へ失わせずに渡しやすいことです。二つ目は、もし追加の変換があまり必要ない場合、F(x)を0に近づければ、出力は入力に近い形になります。つまり、恒等写像に近い動きを取りやすくなります。
深いネットワークで精度を上げやすくなる理由

画像認識では、浅い層と深い層で扱う特徴が変わります。浅い層はエッジや色の変化など単純な特徴を捉えます。中間の層では模様や部品のような特徴を扱い、深い層では物体の形や文脈に近い抽象的な特徴を扱います。
ResNetは深いネットワークを安定して学習させやすいため、こうした段階的な特徴抽出を活かしやすくなります。たとえば、車の画像を分類する場合、浅い層では輪郭やタイヤの丸い形を捉え、深い層では車体全体の構造や背景との関係を捉えます。
ただし、深ければ常に最適というわけではありません。データが少ない場合や、スマートフォン、組み込み機器、リアルタイム処理のように推論速度が重要な場合は、軽いモデルのほうが適していることもあります。ResNetの強みは、深いモデルを扱いやすくした点にありますが、実際の選定では精度、速度、メモリ、学習データ量のバランスを見ます。
画像認識での主な使いどころ

ResNetは、画像認識のさまざまなタスクで使われてきました。代表的なのは画像分類です。画像に写っている主な対象が犬なのか、車なのか、料理なのかといったカテゴリを推定します。
次に、物体検出があります。これは、画像の中に何が写っているかだけでなく、それがどこにあるかも推定する技術です。自動運転では歩行者、車両、標識などを検出する必要があり、こうした用途でCNN系のバックボーンが使われてきました。
さらに、セグメンテーションでは、画像をピクセル単位で分類します。医療画像で臓器や病変の領域を見つける、製造現場で傷や異物の領域を検出する、といった応用があります。ResNetは単体の分類モデルとしてだけでなく、検出やセグメンテーションの特徴抽出器として使われることも多いモデルです。
ResNetの種類と選び方

ResNetには、ResNet-18、ResNet-34、ResNet-50、ResNet-101、ResNet-152など複数の種類があります。数字はおおむねネットワークの層の深さを表します。一般に、数字が大きいほど表現力は高くなりやすい一方、計算量やメモリ使用量も増えます。
学習や実務では、まず目的に合う大きさを選ぶことが重要です。小規模なデータセットや高速な推論が必要な場面では、ResNet-18やResNet-34のような軽めのモデルが候補になります。より複雑な画像や高い精度を狙う場面では、ResNet-50以上が検討されます。
| 種類 | 特徴 | 向いている場面 |
|---|---|---|
| ResNet-18 | 比較的軽量で扱いやすい | 学習用、小規模データ、速度重視 |
| ResNet-34 | 軽さと表現力のバランスがよい | 標準的な画像分類の試作 |
| ResNet-50 | 実務や研究でよく使われる代表的な構成 | 精度と汎用性を両立したい場合 |
| ResNet-101/152 | より深く表現力が高いが計算量も大きい | 十分な計算資源があり高精度を狙う場合 |
学習・実務で押さえたい注意点
ResNetを学ぶときは、「スキップ接続があるから無限に深くできる」と考えないことが大切です。スキップ接続は深層化を助けますが、モデルが大きくなるほど学習時間、推論時間、メモリ消費は増えます。データ量が不足している場合は、過学習にも注意が必要です。
また、ResNetは画像認識の基本として今も重要ですが、すべてのタスクで最新・最良という意味ではありません。近年はVision TransformerやConvNeXtのようなモデルも使われています。それでもResNetは構造が理解しやすく、実装例や事前学習済みモデルが豊富で、比較対象としてもよく使われます。
初心者がまず押さえるべきポイントは、ResNetが「層を深くしたモデル」そのものではなく、深いモデルを学習しやすくするための設計思想を持つモデルだという点です。残差ブロック、スキップ接続、入力に変化分を足すという考え方を理解できれば、他の深層モデルの構造も読みやすくなります。
今後の展望
ResNetは画像認識の発展に大きく貢献し、その後の多くのモデル設計にも影響を与えました。残差接続の考え方は、画像分野だけでなく、自然言語処理や音声処理などの深いニューラルネットワークにも広く取り入れられています。
今後もResNetそのものが使われ続ける場面はありますが、それ以上に重要なのは、ResNetが示した「深いモデルでも情報を通しやすくする」という設計原理です。新しいモデルを学ぶときにも、どのように情報を伝え、どのように学習を安定させているかを見ると、構造の意味を理解しやすくなります。
自動運転、医療画像診断、製造業の外観検査、衛星画像解析など、画像を扱う分野では高精度な特徴抽出が欠かせません。ResNetはその基礎を学ぶうえで、今も有用な入口になるモデルです。
更新履歴
| 日付 | 内容 |
|---|---|
| 2025年1月31日 | 初回公開 |
| 2026年5月12日 | 残差ブロックの式と用途別の選び方を補い構成を更新 |
