画像認識の目!Convolutional層(畳み込み層)が特徴を見つけ出す仕組み
こんにちは。ゆうせいです。
AIが写真を見て「これは猫だ!」「これは車だ!」と一瞬で判断できるのはなぜだか分かりますか?その秘密を握っているのが、今回ご紹介する「Convolutional層(畳み込み層)」です。
前回学んだDense層が「情報をまとめて結論を出す脳」だとしたら、今回のConvolutional層は「特定の形を見逃さない鋭い目」の役割を果たしています。
Convolutional層(畳み込み層)とは?
Convolutional(コンボリューショナル)とは「畳み込み」という意味です。
画像の中から、縦の線、横の線、あるいは丸いカーブといった「特徴」を探し出すのが得意な層のことです。
みなさんは、暗い部屋で懐中電灯を使って探し物をしたことはありますか?ライトが当たっている狭い範囲だけをじっくり見て、少しずつ照らす場所をずらしていきますよね。畳み込み層も、これと全く同じ動きをします。
専門用語の解説:フィルタ(カーネル)
フィルタとは、画像の上を滑らせる「小さな窓」のようなものです。
例えば「縦の線に反応するフィルタ」を画像全体にスライドさせると、縦の線がある場所だけが強調された新しい画像が出来上がります。
高校の授業で、色付きの下敷きを重ねて特定の文字だけを浮き上がらせたことはありませんか?あの下敷きこそが、AIにとってのフィルタなのです。
畳み込みの計算を体感してみよう
畳み込み層では、画像データの上にフィルタを重ねて、重なり合った数字同士を掛け算し、最後に全部足し合わせるという計算を行っています。
専門用語の解説:畳み込み演算
もし の範囲をスキャンしているなら、計算式は以下のようになります。
計算結果
画素
フィルタ
画素
フィルタ
この計算を画像全体で行うことで、元の画像から「エッジ(輪郭)」などの重要な情報だけを抜き出した「特徴マップ」が作られます。
Convolutional層のメリットとデメリット
画像処理において最強と言われるこの層にも、得意・不得意があります。
メリット
- 位置がズレても大丈夫:猫が写真の右上にいても左下にいても、フィルタがスライドして見つけ出すため、正しく認識できます。
- パラメータが少なくて済む:Dense層と違い、小さなフィルタを使い回すため、計算の無駄を大幅にカットできます。
デメリット
- 計算コストが高い:大きな画像に対してたくさんのフィルタをかけると、スマホなどでは動作が重くなることがあります。
- 全体像の把握は苦手:あくまで「局所的な特徴」を見るのが仕事なので、全体のレイアウトを判断するには、その後の層にバトンタッチする必要があります。
現場でよく使われるテクニック
Convolutional層を使うときは、セットで以下の設定を調整することが多いです。
- ストライド:フィルタを何マスずつ動かすかという「歩幅」のことです。
- パディング:画像の端っこもちゃんとスキャンできるように、周りに
などの余白を付け足す処理です。
今後の学習の指針
Convolutional層が「画像の特徴を抽出する専門家」であることが理解できたでしょうか?
この層を何枚も重ねることで、最初は単純な「線」だったものが、次第に「目」や「耳」になり、最終的に「顔」として認識されるようになります。
次へのステップアップとして、以下のテーマに触れてみてください。
- 抽出した情報をギュッと凝縮する「プーリング層」の役割を調べてみる。
- 畳み込みニューラルネットワーク(CNN)の代表的なモデル(VGG16やResNetなど)の名前を検索してみる。
セイ・コンサルティング・グループでは新人エンジニア研修のアシスタント講師を募集しています。
投稿者プロフィール


