CNNとは

CNNとは、画像の認識を得意とするAIの仕組みで、ニューラルネットワークの一種です。日本語では「畳み込みニューラルネットワーク」と呼ばれます。写真に何が写っているかを見分ける技術の主役で、2012年にディープラーニングのブームに火をつけたAlexNetも、このCNNの一種でした。

どうやって画像を見分けるのか

CNNは、画像を一気に丸ごと見るのではなく、小さな窓で少しずつ走査して特徴を拾っていくのが特徴です。まず浅い段階で「線」や「模様」のような単純な特徴をつかみ、層が深まるにつれて「目」「タイヤ」といった部品、さらに「顔」「車」といった全体へと組み上げていきます。単純な手がかりを積み上げて、複雑なものを認識する。人がものを見るときの段階的な捉え方に近い、と考えるとわかりやすいでしょう。ただし、どの段階で何を拾うかを人が一つずつ教え込むわけではありません。大量の画像から、学習を通じて自分で身につけていきます。

画像認識の主役技術

CNNは、写真の分類や、医療画像から病変を見つける用途など、画像を扱うAIで広く使われてきました。ここで押さえたいのは、CNNはChatGPTのような対話AIが広まるより、ずっと前から活躍してきたということ。1990年代末には、CNNを組み込んだ文書の読み取りシステムが、米国の小切手全体の1割超を読み取っていました。AIには文章を扱うものだけでなく、画像を見分けるものもあり、CNNはその中心を長く担ってきた技術です。

Topic源流は1980年の日本。足りなかったのは「学び方」

CNNの源流は、NHKの研究所にいた福島邦彦が1980年に発表した「ネオコグニトロン」です。深層学習を切り開いたルカン、ベンジオ、ヒントンの3人も、2015年の総説でそう書いています。同じ総説によれば、両者の構造はある程度似ていました。ネオコグニトロンに欠けていたのは、正解に合わせて入口から出口までをまとめて調整する、誤差逆伝播法のような学び方です。その学び方を畳み込みの構造と組み合わせ、米国郵便公社から提供された手書きの郵便番号を読ませたのが、1989年のルカンらの研究でした。

CNNに関するよくある質問

「畳み込み」とは、何をしているのですか?
小さなフィルターを画像の上でずらしながら、同じ模様の見つけ方を画像のあらゆる位置で使い回す処理です。ある模様が画像の一か所に現れるなら、ほかのどこにでも現れうる、という画像の性質を利用しています。計算の中身が数学の「畳み込み」にあたるため、この名が付きました。
2012年のAlexNetは、何がすごかったのですか?
約100万枚・1,000種類に分けられた画像を見分ける競技会(ImageNet)で、それまでの最良の手法の誤り率をほぼ半分にしました。画像処理用の半導体(GPU)を効率よく使ったことや、手持ちの画像を変形して学習用の例を増やす工夫などが、成功を支えました。
CNNは画像専用の技術ですか?
いいえ。音声や文章のような「並び」のデータにも使われてきました。1990年代の初めには、音声を聞き分ける用途(音素の認識)に、1次元のCNNの原型が使われています。

あわせて読みたい記事