AIの「限界」を突破した革命児!ResNetのショートカット構造をプロが解説

こんにちは。ゆうせいです。

前回の記事では、効率性を極めたGoogLeNetについてお話ししました。しかし、AIの世界は止まることを知りません。GoogleNetが登場した翌年の2015年、さらに驚くべき進化を遂げたモデルが現れました。それが、今回ご紹介する ResNet (レズネット)です。

皆さんは「層を深くすればするほど、AIは賢くなる」と思いますか?実は、ある時期までAI研究者たちは、層を深くしすぎるとかえってバカになってしまうという奇妙な現象に頭を悩ませていたのです。その絶望的な壁を「たった一本の線」で解決してしまったのがResNetです。

ResNetが解決した「深層化の壁」

かつてのAI界には、ある深刻な問題がありました。それは「劣化問題(Degradation Problem)」と呼ばれるものです。

普通に考えれば、脳の層を10層から100層に増やせば、より複雑なことを覚えられるはずですよね。しかし、実際にやってみると、なぜか学習が全く進まなくなり、精度もガタ落ちしてしまったのです。

ここで、AI学習の鍵を握る「勾配(こうばい)」という専門用語を解説しましょう。

勾配とは

勾配とは、AIが学習する際に出る「答え合わせのヒント」のことです。

例えるなら、山頂にあるゴール(正解)を目指して下っているときに、どちらの方向に進めばより低く(誤差を小さく)なれるかを示すコンパスのようなものです。

これまでのAIは、層が深すぎると、このコンパスの針が途中で動かなくなってしまいました。これを「勾配消失(こうばいしょうしつ)」と言います。山の麓までヒントが届かないので、初期の層は何を学習すればいいか分からなくなってしまうのです。

逆転の発想!スキップ接続の正体

ResNetが発明した解決策は、驚くほどシンプルでした。それが スキップ接続 (またはショートカット接続)です。

従来のAIは、全ての層を順番に通過しなければなりませんでした。しかしResNetは「前の層の情報を、次の層を飛び越えてそのまま後ろに足し算する」というバイパス道路を作ったのです。

数式で表すと、従来の層の出力を F(x) 、入力を x とした場合、ResNetの出力は以下のようになります。

出力 = F(x) + x

この + x という部分が魔法の正体です。なぜこれが凄いのか、皆さんは分かりますか?

もし F(x) (新しく学習する部分)が全くダメな内容だったとしても、元の情報 x がそのまま後ろに伝わるため、少なくとも「前の層より悪くなること」を防げるのです。

残差学習:引き算で考える賢さ

ResNetのResは「Residual(残差)」の略です。ここには「残差学習」という非常に賢い考え方が詰まっています。

残差学習とは

残差学習とは「ゼロから完璧な答えを作る」のではなく、「今の答えと理想の答えの『差』だけを学習する」方法のことです。

例えるなら、彫刻を作るときに毎回新しい石を削り出すのではなく、すでに形ができている像に対して「あとどこを数ミリ削ればいいか」という微調整だけを行うようなものです。

理想の形を H(x) とすると、AIは F(x) = H(x) - x という「差(残差)」だけを必死に探せば良くなりました。何も変化させる必要がないときは、AIはただ「ゼロ」を返せばいいだけ。これなら、100層を超えても学習がスムーズに進むのも納得ですよね!

ResNetの名前の由来

ResNetは、日本語で「残差ネットワーク」という意味の Residual Network を略した言葉です。この Residual(残差) という言葉こそが、AIの限界を突破した最大のヒントなんです。

これまでのAIは、入力されたデータから「正解そのもの」を導き出そうと必死に学習していました。しかし、層が深くなるとその計算はどんどん複雑になり、パンクしてしまいます。

そこでResNetは考え方を変えました。 「元々の入力データと、理想の正解との間にある『差(残りカス)』だけを学習すればいいんじゃない?」と。

具体的には、入力を x 、理想の出力を H(x) としたとき、その差である F(x) = H(x) - x だけを学習のターゲットにします。

この「引き算された残りの差」が Residual です。

すでに分かっている情報(入力)をショートカットで後ろに流し、AIには「あとどれくらい微調整が必要か」という差分だけを担当させる。この引き算の美学によって、100層を超える深さが実現したのです。

皆さんも、一から全てを作り直すより、今あるものに少し手を加える方が楽だと思いませんか?その直感を形にしたのが、この名前の由来なんですよ。

ResNetのメリットとデメリット

この技術によって、AIは一気に152層という、当時としては未知の領域まで深くすることに成功しました。

メリット

  • 圧倒的な深さを実現できる:勾配がバイパスを通って最後まで届くため、1000層を超えるような超深層ネットワークも構築可能です。
  • 精度が非常に高い:深い分だけ、画像の非常に細かく複雑な特徴まで捉えることができます。
  • 転移学習に強い:汎用性が高いため、一度学習したResNetを別のタスク(医療診断や工場検品など)に再利用するのが非常に簡単です。

デメリット

  • メモリを大量に消費する:層が多いため、動作させるには高性能なGPU(計算用チップ)が必要になります。
  • 過学習のリスク:層が深すぎると、訓練データにだけ完璧に適合してしまい、未知のデータに弱くなることがあります。

皆さんの身近にある画像認識AIも、実はこのResNetをベースにしているものが非常に多いんですよ。

知識を整理しよう

ResNetの特徴を、他のモデルと比較しながら表にまとめました。

比較項目従来のCNNGoogLeNetResNet
主な工夫層を重ねる横に並べる飛び越しさせる
解決したこと基本的な認識計算の効率化深層化の限界
構造のキモ一本道インセプションスキップ接続
層の深さ浅〜中程度中程度(22層)非常に深い(152層〜)

今後の学習の指針

ResNetは現代のディープラーニングにおける「標準(スタンダード)」となりました。ここを理解した皆さんは、もう初心者卒業です!

さらにステップアップしたい方は、以下の指針を参考にしてください。

  1. DenseNetを調べる:ResNetの「足し算」を「連結(合体)」に変えた、さらに情報の結びつきが強いモデルです。
  2. Attention(アテンション)を学ぶ:最近の生成AI(ChatGPTなど)の核となる技術で、ResNetの考え方がどう進化していったかが見えてきます。
import torchvision.models as models
# 最も有名な「ResNet50」をロード
resnet50 = models.resnet50(pretrained=True)
# このモデルには、50層分の「バイパス道路」が詰まっています

バイパス一本で世界を変えたResNet。その「シンプルだけど強力なアイデア」の美しさを感じていただけたでしょうか。

セイ・コンサルティング・グループでは新人エンジニア研修のアシスタント講師を募集しています。

投稿者プロフィール

山崎講師
山崎講師代表取締役
セイ・コンサルティング・グループ株式会社代表取締役。
岐阜県出身。
2000年創業、2004年会社設立。
IT企業向け人材育成研修歴業界歴20年以上。
すべての無駄を省いた費用対効果の高い「筋肉質」な研修を提供します!
この記事に間違い等ありましたらぜひお知らせください。

学生時代は趣味と実益を兼ねてリゾートバイトにいそしむ。長野県白馬村に始まり、志賀高原でのスキーインストラクター、沖縄石垣島、北海道トマム。高じてオーストラリアのゴールドコーストでツアーガイドなど。現在は野菜作りにはまっている。