画像分類モデルの系譜:AlexNet から Vision Transformer まで
画像に何が写っているかを当てる画像分類を学びます。基礎層では、画像認識にはどんなタスクがあるか、そして分類モデルが年々進化して精度を上げてきた流れをつかみます。深掘り層では、AlexNet から始まる代表モデルの系譜をそれぞれが持ちこんだしくみのレベルまでたどり、Vision Transformer までを説明できるようになります。
ねらい
このレッスンでは、画像に何が写っているかをコンピュータに当てさせる、画像分類を学びます。
基礎
画像認識にどんな種類のタスクがあるのか、そして画像を分類するモデルが年ごとに進化して精度を上げてきた、という流れをつかみます。前提となる知識がなくても、ここは読み切れます。
1. 画像認識には、いくつかの種類があります
画像認識と一口にいっても、答えさせることが違ういくつかのタスクがあります。まずは代表的な3つを身近な例で押さえます。
1つ目は、画像に何が写っているかをカテゴリの名前で答えるタスクです。これを物体識別(ぶったいしきべつ)といい、画像分類とも呼びます。1枚の写真を見て「これは犬」「これは車」と、あらかじめ決めたカテゴリのどれかに振り分けます。
2つ目は、写っている物体が画像の「どこ」にあるかまで求めるタスクです。これを物体検出(ぶったいけんしゅつ)といいます。写真の中の犬を四角い枠で囲み、その枠に「犬」という名前を付けます。
3つ目は、画像を画素(がそ)の単位で塗り分けるタスクです。画素とは、画像を作る一つひとつの点のことです。このタスクをセグメンテーションといいます。
物体検出とセグメンテーションは、それぞれ後のレッスンで詳しく扱います。このレッスンが受け持つのは、1つ目の物体識別、つまり画像分類です。
あらかじめ決めた一般的なカテゴリの範囲で、写っている物体が何かを認識することを一般物体認識(いっぱんぶったいにんしき)といいます。ここでいう「一般的」とは、この特定の1匹の犬、といった個体ではなく、犬というカテゴリを当てる、という意味です。画像分類は、この一般物体認識の代表的なタスクです。
ポイント
画像認識には、カテゴリを当てる物体識別(画像分類)、位置まで求める物体検出、画素単位で塗り分けるセグメンテーションがあります。このレッスンは画像分類を扱います。
2. 分類モデルは、年ごとに進化してきました
画像分類のモデルは、一度で完成したのではありません。研究者たちが毎年のように新しいしくみを持ちこみ、少しずつ精度を上げてきました。
大きな流れは2つあります。1つは、ネットワークをより深く、より賢い形にして、精度そのものを上げていく流れです。もう1つは、スマートフォンのような小さな機器でも動くように、軽く速くしていく流れです。精度を追う流れと、軽さを追う流れが、並んで進んできました。
身近なたとえでいうと、車の進化に似ています。一方では、より速く、より力強いエンジンを積んだ車が作られます。もう一方では、燃費がよく街乗りに向いた小さな車が作られます。どちらも大切で、目的に合わせて選ばれます。画像分類のモデルも同じで、精度を最優先にする場面と、軽さを最優先にする場面で、選ばれるモデルが変わります。
ここまでの要点
- 画像認識には、画像分類、物体検出、セグメンテーションなどのタスクがあり、このレッスンは画像分類を扱います。
- 画像に写る物体をカテゴリで当てることを一般物体認識といい、その代表が画像分類です。
- 分類モデルは年ごとに進化し、精度を追う流れと、軽さを追う流れが並んで進んできました。
まずは全体像をつかめれば十分という人は、ここで区切って大丈夫です。「画像分類は写っているものをカテゴリで当てるタスク」「モデルは毎年進化して精度と軽さを高めてきた」と押さえられていれば、この先の深掘りに進む土台はできています。
発展
ここからは、画像分類の代表モデルを古いものから新しいものへ順にたどり、それぞれがどんなしくみを持ちこんで精度や効率を上げたのかをくわしく見ます。第5章で学んだ畳み込みニューラルネットワークや、スキップ結合、自己注意といった部品が土台になります。
3. 深さで精度を上げた時代:AlexNet から VGG、GoogLeNet へ
代表モデルの系譜は、2012年の AlexNet から語り始めるのが分かりやすいです。
AlexNet は、深い畳み込みニューラルネットワークを大規模な画像認識コンテストに持ちこみ、それまでの手法を大きく上回りました。活性化関数に ReLU 関数を使って学習を速め、ドロップアウトで過学習を抑え、当時のグラフィックス処理装置(GPU)で大量の計算を回した点が特徴です。深いネットワークが画像認識に効くことをはっきり示した出発点です。
続く VGG(ブイジージー)は、構造を単純にそろえた点が特徴です。小さな3かける3の畳み込みだけを積み重ね、層を深くしていきました。小さな畳み込みを重ねると、少ないパラメータで広い範囲の特徴を捉えられます。構造が単純で分かりやすいため、今も土台のモデルとしてよく引き合いに出されます。
GoogLeNet(グーグルネット)は、幅の異なる畳み込みを1つのまとまりの中で並列に走らせる工夫を持ちこみました。このまとまりをインセプションモジュールといいます。さらに、1かける1の畳み込みで計算量を抑え、深いのに軽いネットワークを実現しました。深さを増やすと精度は上がりますが、計算量とパラメータも増えます。GoogLeNet は、その両立を狙ったモデルです。
理解の確認
AlexNet は、深い畳み込みニューラルネットワークが画像認識に効くことを示した出発点です。VGG は小さな畳み込みを積み重ねて構造を単純にそろえ、GoogLeNet はインセプションモジュールと1かける1の畳み込みで、深さと計算量の両立を狙いました。
4. 深さの限界を越えた ResNet と、その仲間たち
層を深くするほど精度が上がるなら、どこまでも深くすればよいはずです。ところが実際には、ある深さを越えると、かえって精度が落ちる現象が起きました。学習がうまく進まなくなるのです。
この壁を越えたのが ResNet(レズネット)です。ResNet は、いくつかの層をとび越して入力をそのまま先の層へ足しこむ、スキップ結合というしくみを使います。スキップ結合の中身は第5章で学びました。ここで大切なのは、この工夫のおかげで、百を超える層を持つ非常に深いネットワークでも学習できるようになった、という点です。ResNet の登場で、深さの壁は大きく後退しました。
ResNet を土台に、いくつもの改良モデルが生まれます。
Wide ResNet(ワイド・レズネット)は、層を深くする代わりに、各層の幅、つまり扱う特徴の数を広げたモデルです。むやみに深くしなくても、幅を広げることで高い精度を出せて、学習も速くなることを示しました。
DenseNet(デンスネット)は、各層が、前のすべての層の出力を受け取る形にしたモデルです。前の層で得た特徴を後の層でくり返し使えるため、少ないパラメータでも精度を保てます。
SENet(エスイーネット)は、特徴のチャンネルごとに重要度を測り、大事なチャンネルを強め、そうでないチャンネルを弱めるしくみを持ちこみました。画像全体の情報をいったん集約し、どのチャンネルを重視するかを学習して、特徴を調整し直します。注目すべき情報に重みを付けるこの考え方は、注意の考え方に通じます。
理解の確認
ResNet は、スキップ結合によって、非常に深いネットワークでも学習できるようにしたモデルです。Wide ResNet は深さの代わりに幅を広げ、DenseNet は前のすべての層の出力を受け取って特徴を使い回し、SENet はチャンネルごとの重要度を学習して特徴を調整します。
5. 効率を設計する時代:EfficientNet と軽量モデル
精度が高まるにつれ、計算量やパラメータの多さが課題になってきました。そこで、精度と効率のバランスをどう設計するかが焦点になります。
EfficientNet(エフィシェントネット)は、ネットワークの深さ、幅、入力画像の解像度という3つの要素を決まった比率でまとめて拡大する考え方を持ちこみました。どれか1つだけを増やすのではなく、3つをそろえて増やすと、少ない計算量で高い精度が出せることを示しました。
スマートフォンのような小さな機器で動かすための、軽量なモデルもあります。
MobileNet(モバイルネット)は、畳み込みを2段階に分ける工夫で計算量を大きく減らした、軽量モデルの代表です。この工夫は、第5章で学んだ、畳み込みを空間方向とチャンネル方向に分けて行う手法です。精度をなるべく保ったまま、計算を軽くします。
MnasNet(エムナスネット)は、モデルの構造そのものを人が手で決めるのではなく、探索で自動的に見つける手法を使いました。この、ネットワークの構造を自動で探し出す手法を NAS(Neural Architecture Search)といい、ナスと読みます。MnasNet は、その探索の目標に、精度だけでなく実機での処理速度も含めた点が特徴です。速く動くことを条件に加えて、機器上で使いやすい構造を探し出します。EfficientNet の土台となる構造も、この NAS で見つけられました。
理解の確認
EfficientNet は、深さと幅と解像度をそろえて拡大することで、効率よく精度を上げました。MobileNet は畳み込みを分ける工夫で軽量化し、MnasNet は NAS という自動の構造探索を実機の速度も条件に加えて使いました。
6. 畳み込みに頼らない Vision Transformer
ここまでのモデルは、いずれも畳み込みを土台にしていました。そこへ、まったく別の発想が持ちこまれます。
Vision Transformer(ビジョン・トランスフォーマー)は、頭文字をとって ViT(ヴィット)とも呼ばれます。ViT は、画像を小さなパッチ、つまり四角い断片に分け、その並びを文章中の単語の並びのように扱います。そのうえで、第5章で学んだ Transformer の自己注意のしくみで、パッチどうしの関係を捉えます。畳み込みが近くの画素どうしの関係を積み上げていくのに対し、自己注意は離れたパッチどうしの関係も直接扱えます。
ViT は、大量のデータで学習させると、畳み込みを土台にしたモデルに並ぶか、それを上回る精度を出せることを示しました。画像認識が、畳み込みだけのものではなくなった転換点です。
理解の確認
Vision Transformer は、画像をパッチに分けて単語の並びのように扱い、Transformer の自己注意でパッチどうしの関係を捉えるモデルです。大量のデータで学習させると、畳み込みを土台にしたモデルに並ぶ精度を出せることを示しました。
7. 画像の基盤モデルへ
ここからは、現在の画像認識がどこへ向かっているかを手法を軸に短く触れます。製品やモデルの名前は入れ替わりが速いため、時点を添えて例として挙げます。
Vision Transformer の登場後、Transformer と畳み込みの良い点を組み合わせる設計が広がりました。畳み込みの構造を現代的に見直した ConvNeXt(コンブネクスト)のように、両者は互いに影響し合っています。
もう1つの流れは、ラベルの付いていない大量の画像から、あらかじめ特徴の捉え方を学ばせる、自己教師あり事前学習です。DINO(ディノ)系の手法(2021年ごろ)のように、正解ラベルなしで学んだ特徴が、さまざまなタスクに使えることが示されています。事前学習の考え方そのものは、後の転移学習のレッスンで詳しく扱います。
こうして、幅広いタスクの土台として使える大きな画像モデル、いわゆる画像の基盤モデルへと発展が続いています。基盤モデルの考え方も、後のレッスンで扱います。
理解度の確認
説明できる項目にチェックを入れましょう。すべて確認できたら、完了ボタンで記録します。
分からなかった点・気になった点
読み込み中です。