畳み込みニューラルネットワークとは何でしょうか。学問の世界から現実の世界に登場しつつあるこれは、さまざまな組み込みシステムに利用される可能性が高く、大いに関心を持つべきです。
畳み込みニューラル・ネットワーク(CNN:Convolutional Neural Networks) とは、一体何でしょうか。エンジニアリングにおけるニューラル・ネットワークの波乱万丈な歴史を考えると、関心すら覚えないのではないでしょうか。こうした最もな疑問に対し、割と簡潔に答えられると思います。
簡単に言うと、CNN とはニューラルネットワークの進化における一段階で、ビジョンプロセッシング、手書き文字認識、声紋分析、ロボティクス、ドライバーアシスタンスシステムなどのアプリケーションで重要な技術になりつつあります。非常に広範なエンベデッドシステムに適用される可能性が高く、そうした広範なアプリケーションの最新状況に通じていたいのであれば、大いに関心を持つ必要があります。CNNは、多くの場合、それらの問題に対する利用可能な最善の解決策であり、長年存在した学問の世界から現実の世界に登場する過程にあるからです。
しかし、CNNは、幾つかの重要な側面において、従来の信号処理ツールとは仕組みも設計方法もかなり異なります。そのため、CNNは当初は汎用的な技術としてではなく、特定用途向けのブラックボックスまたはフレームワークとして登場し、ユーザーであるデザインチームから複雑性の大部分が隠されることになりそうです。まず、この話から始めましょう。
i-AbraのCTO Greg Compton氏は、「CNNは、非常に強力な多対1フィルタの構築手段と考えるのが最も簡単です」と語ります。例えば「HDビデオの1フレームを取り込み、フレーム内の歩行者の有無を表す1ビットを出力するCNNデザイン」が可能ということです。
この物体認識の処理は、これまでさまざまな方法で行われてきました。最も一般的で直感的な方法はルールベースで、事前に定義した形状を画像内から検索し、形状の位置を分類器に送り、人間を表す可能性がある形状の組み合わせに関する分類器ルールを与えます。こうしたシステムは、抽象テストでは十分に機能するものの、位置、方向、照明、ノイズレベルなどが変化する実際の画像では、多くの場合、不十分です。
その対極に位置するのがニューラルネットワークです。1940年代、研究者は動物の特殊化した神経細胞の仕組みについて探求し始めました。それが1960年代までにエレクトロニクスにつながり、やがてコンピュータ、ニューロンモデルへと発展し、さらにある種の問題を解決するために小規模ネットワークに応用されるまでに至りました。それらの問題は、多くの場合、信号対ノイズレベルが非常に低い、パターンの概観が多様、または検出対象の物体の定義が不明確という特徴がありました。
1990年代になって、ニューラルネットワーク、特にディープラーニングニューラルネットワークは、画像認識や物体分類をうまく処理できることが研究者によって立証されました。しかし、ディープラーニング・ネットワークは人工ニューロンの連続層で構成され、各ニューロンは前層の全ニューロンの出力の加重和を受け取ります。非常に良好な結果が得られる可能性がある一方で、毎秒120フレームを出力する広ダイナミック・レンジHDカメラが入力の場合、すさまじい計算負荷が生じます。
計算負荷の問題を解決するため、CNNは数値処理分野の対極からこの2つのアイデアを組み合わせています。まず、データ・セットが最も多いフロントエンドでのネットワーク結合を大幅に削減するために、小型畳み込みカーネルを使用して入力画像全体から特定の視覚的特徴を検索します。そして、バックエンドのニューラルネットワークを使用して、畳み込み層から現れる特徴のパターンを解釈します。
重要なポイントがさらにもう1つあります。それは、CNNでは重要なニューラル・ネットワーク手法であるバックプロパゲーション学習(back-propagated learning)を適用して、ニューロン結合だけでなく畳み込みカーネルもトレーニングすることです。その結果、フロントエンドの畳み込み層およびサブサンプリングとバックエンドのニューラル層を結び付けたネットワークとなります(図1)。
Copyright © ITmedia, Inc. All Rights Reserved.