2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AIの仕組みを理解する|第4回:画像認識の仕組みと畳み込みネットワーク

2
Posted at

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を発信中です。

X:@yuunaai17
note:https://note.com/regal_vole5659

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?