教科書 › 第II部 AIモデルの系譜
CHAPTER 17
畳み込みという発明
画像を普通のニューラルネットで扱うと、すぐに破綻する。100×100の画像なら入力は1万個。次の層も1万個なら、重みは1億個必要になる。しかも画像を1ピクセルずらしただけで、まったく別の入力として扱われてしまう。
この2つの問題を同時に解いたのが畳み込み
である。発想の出発点は、1960年代の生物学にあった。ヒューベルとウィーゼルは、猫の視覚野の細胞が視野の狭い一部だけに反応し、しかも特定の向きの線に強く反応することを発見した。
これを模したのが、福島邦彦が1980年に発表したネオコグニトロン
である。そして1998年、ヤン・ルカンがこれに誤差逆伝播法を組み合わせ、LeNetとして郵便番号の読み取りに実用化した。
畳み込みは何をしているのか
小さな窓(たとえば3×3)を用意し、画像の左上から順にスライドさせる。窓の中の9ピクセルに、それぞれ重みを掛けて足し合わせる。この結果を新しい画像として出力する。窓の重みの組み合わせをカーネル
またはフィルタ
と呼ぶ。
この仕組みが持つ3つの性質が、決定的に重要である。
- 重み共有
- 画像のどこを見るときも同じ重みを使う。だから重みの数が劇的に少なくて済む。3×3なら9個で足りる。
- 位置不変性
- 同じ特徴が画像のどこにあっても、同じように検出される。猫が右にいても左にいても猫として認識できる。
- 局所性
- 近くのピクセル同士の関係だけを見る。画像においてはこれが自然な仮定になる。
この3つを、モデルにあらかじめ組み込まれた前提=帰納バイアスという。「画像とはこういうものだ」という知識を構造として与えているので、少ないデータでも学習が進む。後でViTの話をするときにこの言葉が効いてくる。
畳み込み層を重ねると、浅い層では線や角といった単純な特徴を、深い層ではより複雑な形やパターンを捉えるようになる。間にプーリング
という縮小操作を挟むことで、扱う解像度を段階的に下げつつ、1つの出力が見ている範囲(受容野)を広げていく。
コメント
コメントにはログインが必要です