CNNでフィルタを用いる理由と画像認識における役割

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

画像認識の分野で広く活用されている畳み込みニューラルネットワーク(CNN)では、入力画像に対してフィルタと呼ばれる小さな数値の枠組みを適用します。一般的な全結合型のニューラルネットワークとは異なり、CNNが画像処理においてフィルタを採用する背景には、画像特有のデータ構造を効率的に処理するための明確な理由が存在します。畳み込み処理の基礎概念、フィルタを用いる目的、長所と短所を順を追って解説します。

畳み込み処理とフィルタの基本概念

画像データは、縦と横に並んだ多数のピクセル(画素)によって構成されています。各ピクセルには色の濃淡を表す数値が割り振られており、コンピュータは画像を巨大な数値の並びとして受け取ります。

フィルタの働きをルーペの走査に例える

CNNで用いられるフィルタ(カーネル)は、縦3マス、横3マスなどの小さな正方形の枠組みです。このフィルタの動作は、格子状に並んだタイル全体を、手元にある小さな正方形の虫眼鏡(ルーペ)でのぞき込みながら、端から順に少しずつずらして確認していく作業に例えられます。

ルーペには特定の模様に反応する特殊なレンズがはめ込まれています。画像の左上から右下へと少しずつ移動させながら、その局所的な範囲のピクセル値とフィルタの数値を掛け合わせて足し合わせます。この計算手順によって、レンズの模様と一致する箇所で大きな数値が出力され、画像の中に存在する縦線、横線、角といった部分的な特徴が抽出されます。

CNNでフィルタを用いる理由

従来の全結合層ではなく、画像処理において局所的なフィルタを通過させる手法には、データの性質に基づいた理由があります。

空間的な位置関係の保持

一般的な全結合型ニューラルネットワークに画像を入力する場合、縦横に広がったピクセルデータを1列の長い配列に平坦化して扱います。しかし、1列に並び替える処理を行うと、隣り合っていたピクセル同士の上下左右の距離感が失われます。

画像における情報は、近接するピクセル同士の関連性に宿ります。フィルタを用いることで、画像の縦と横の2次元的な並びをそのまま維持した状態で計算を進められます。

局所受容野による特徴抽出

人間の視覚も、視野全体を一瞬で均等に把握するのではなく、細部の局所的な輪郭や模様を認識した上で全体の形状を判断しています。フィルタを局所的な領域にのみ作用させる仕組みを局所受容野と呼びます。

浅い層に配置されたフィルタは輪郭や色の変化といった細部を検出し、層が深くなるにつれてそれらを組み合わせた目や鼻、最終的には顔全体といった抽象度の高い形状を認識できるようになります。

パラメータ共有による位置不変性の獲得

CNNの畳み込み層では、1枚の画像全体に対して同一のフィルタをスライドさせながら計算を行います。この仕組みをパラメータの共有と呼びます。

猫の耳を検出するフィルタが存在する場合、その耳が画像の左上に写っていても、右下に写っていても、同じフィルタが反応して特徴を検出できます。被写体の位置が画面内で移動しても正しく認識できる性質を位置の不変性と呼びます。全結合層では位置ごとに異なる重みを用意する必要があるのに対し、CNNは1つのフィルタで画像全体の特徴を捉えることが可能です。

フィルタ処理の計算手順

3×3のフィルタを用いた畳み込み計算の形式を確認します。入力画像の特定の3×3領域をX、対応するフィルタの重みをWとすると、抽出される値Sは各要素の積の総和として導出されます。

S = \sum_{i=1}^{3} \sum_{j=1}^{3} X_{i,j} W_{i,j} + b

ここで、bは全体にかさ上げを行うバイアス値です。この局所的な内積計算を、フィルタを一定の間隔(ストライド)でずらしながら画像全体に対して反復します。

全結合層では、仮に入力画像が100×100ピクセル(合計10,000要素)の場合、次の層のノードが100個あれば1,000,000個の重みが必要になります。一方、3×3のフィルタを用いるCNNでは、重みの数はわずか9個で済みます。

フィルタを用いる手法の長所と短所

CNNにおいてフィルタを採用することに伴う運用上の特性を整理します。

長所

  • パラメータの共有により学習対象となる重みの総数が大幅に減少し、メモリの消費量と計算コストを抑制できます。
  • 重みの数が制限されることで、過学習(手元の学習データに過剰に適応して汎化性能が低下する現象)の発生を防止できます。
  • 抽出したい対象物が画像内のどの位置に出現しても、同じフィルタで同等に反応できます。

短所

  • フィルタが局所的な領域のみを順次走査するため、画像全体にまたがる離れた要素同士の長距離な関連性を1回の処理で捉えることが困難です。
  • 平行移動には耐性を持ちますが、画像の回転や極端な拡大縮小に対しては、データ拡張(回転や拡大した画像をあらかじめ学習させる処理)を行わないと認識率が低下しやすい傾向があります。

まとめ

CNNにおけるフィルタの役割と畳み込み処理への理解を深めるための学習手順は次の通りです。

  1. 水平方向の輪郭を強調するフィルタと垂直方向の輪郭を強調するフィルタの数値配列を確認し、手計算で畳み込みを行った際の出力値の変化を確かめる。
  2. フィルタの走査間隔を調整する「ストライド」や、画像の端の情報を保護する「パディング」が、出力される特徴マップのサイズに与える影響を計算式で把握する。
  3. 畳み込み層の後に配置され、位置のずれに対する耐性をさらに高めながら情報量を圧縮する「プーリング層」の役割へと学習を進める。

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

投稿者プロフィール

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

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