AIの仕組みを理解する|第4回:画像認識の仕組みと畳み込みネットワーク
■ 導入:AIはどうやって「見る」のか
スマホのアルバムが自動で「猫」「食べ物」と分類してくれるのは当たり前になっているが、
そもそもコンピューターはどうやって画像を「見て」いるのか。今回はCNNの仕組みを整理する。
「AIが画像を認識する」という事実は、今や当たり前のように受け入れられています。しかし少し立ち止まって考えると、これは驚くべきことです。そもそも、コンピューターにとって画像とは何でしょうか?
コンピューターが扱う画像の正体は、数字の集まりです。たとえば縦28×横28ピクセルの白黒画像があるとすると、それは784個の数字(各ピクセルの明るさを0〜255の値で表したもの)が並んだデータにすぎません。カラー画像なら赤・緑・青の3チャンネル分の数字が重なります。
「では、その数字の羅列から、どうやって『猫』や『犬』を見分けるのか」——この問いに答えるのが、今回のテーマ「畳み込みネットワーク(CNN: Convolutional Neural Network)」です。
■ 1. 普通のニューラルネットワークでは画像に限界がある
まず、「なぜ通常のニューラルネットワークでは画像認識に限界があるのか」を理解しておきましょう。
前回の第3回で触れたように、テキスト生成AIはTransformerという設計を使っています。一方、画像認識には別の設計が必要です。その理由は、画像データの特性にあります。
たとえば、1000×1000ピクセルのカラー画像は、300万(3,000,000)個の数字で構成されています。これをそのまま通常のネットワークに入力すると、最初の層だけで何十億もの計算が必要になり、処理が現実的でなくなります。また、「猫の顔が画像の左上にあっても右下にあっても、猫は猫だ」という位置の不変性が、普通のネットワークでは扱いにくいという問題もあります。
これらの課題を解決するために生まれたのが、CNNです。
■ 2. 畳み込み:小さな「フィルター」で画像をスキャンする
CNNの核心にある操作が「畳み込み(Convolution)」です。難しい名前ですが、直感的には非常にシンプルな仕組みです。
想像してみてください。あなたが虫眼鏡を持って、大きな絵の上を少しずつずらしながらスキャンしているとします。その虫眼鏡は「縦線を検出する」「横線を検出する」「特定のテクスチャを見つける」といった特定のパターンを探すフィルターです。
CNNでは、このフィルターを「カーネル」と呼びます。たとえば3×3ピクセルの小さなカーネルが、画像全体をスライドしながら「この領域にエッジはあるか?」「丸みを帯びた形はあるか?」といった特徴を抽出していきます。
重要なのは、このカーネルは学習によって自動的に決まるという点です。人間が「こういうフィルターを使え」と指定するのではなく、大量の画像データを見ることで、CNNが「猫の認識に有効なフィルター」を自然と学習していくのです。
また、カーネルは画像全体で共有されるため、猫が画像のどこにいても同じフィルターで検出できます。これが、先ほどの「位置の不変性」という課題を解決する仕組みです。
■ 3. 層を重ねる:抽象化の階層
CNNが強力な理由のひとつは、畳み込み層を複数重ねることで、特徴の「抽象化」が進む点にあります。
最初の層では、画像の中の「エッジ(輪郭線)」や「色のグラデーション」といった低レベルな特徴を検出します。次の層では、それらを組み合わせて「円形」「三角形」といった形状を認識します。さらに深い層になると、「目の形」「耳の形」「鼻の形」といった、より複雑な特徴を捉えるようになります。そして最終的な層では、これらの特徴を総合して「これは猫である」という判断を下します。
人間が絵を見て「猫だ」と判断するとき、目・耳・ひげ・全体的な輪郭を組み合わせて認識していることと、驚くほど似た構造です。
CNNには畳み込み層のほかに「プーリング層」と呼ばれる層もあります。プーリングは、検出された特徴マップをざっくりと縮小する操作で、細かな位置のずれを吸収しながら、重要な情報を保持します。これにより、猫の耳が少し傾いていても「耳がある」という情報は残ります。
■ 4. なぜ2012年以降、画像認識は革命的に進化したのか
CNNのアイデア自体は1980年代から存在していました。しかし、本格的に注目を集めたのは2012年のことです。
この年、ImageNetという大規模な画像認識コンテストで「AlexNet」と呼ばれるCNNが他のすべての手法を大幅に上回る精度を記録し、世界を驚かせました。AlexNetの成功を支えた要因は3つあります。
第一に、大量の学習データです。ImageNetには100万枚以上の画像があり、この膨大なデータがCNNの学習を支えました。第二に、GPU(グラフィックス処理ユニット)の活用です。画像の並列処理が得意なGPUを機械学習に転用することで、それまで数ヶ月かかっていた学習が数日で済むようになりました。第三に、「ReLU」と呼ばれる活性化関数の採用です。これにより、深い層まで学習信号が届きやすくなりました。
この成功以降、VGG・ResNet・EfficientNetなど、さらに高精度なアーキテクチャが次々と登場しました。現在の画像認識AIは、多くの分野で人間の目を超える精度に達しています。
■ まとめ
画像認識の仕組みを整理しましょう。
・コンピューターにとって画像は「数字の集まり」。CNNはその数字から意味のある特徴を自動的に抽出する・「畳み込み」では小さなフィルター(カーネル)が画像全体をスキャンし、エッジや形状などのパターンを検出する・層を重ねることで、低レベルな特徴(エッジ)から高レベルな特徴(顔のパーツ)へと段階的に抽象化が進む・2012年のAlexNet以降、大量データ・GPU・改良されたアルゴリズムの組み合わせで、画像認識の精度が飛躍的に向上した
スマートフォンの顔認証、医療画像の診断支援、自動運転の障害物検知——これらすべての根底に、この「畳み込み」という優れた設計が存在しています。
■ 次回予告
第5回では「AIはなぜ間違えるのか?過学習と汎化」を取り上げます。どれだけ高精度なモデルでも間違いを犯すのはなぜか、そしてAIをより汎用的に育てるための考え方を、直感的に解説します。
他にもAIの仕組みをシリーズで解説しています。
XとnoteでもAI・データ分析の実務Tipsを発信中です。