畳み込みニューラルネットワークとは

畳み込みニューラルネットワーク(卷积神经网络:CNNまたはConvNet)とは,何段もの深い层を持つニューラルネットワークで,特に画像认识の分野で优れた性能を発挥しているネットワークです。このネットワークは「畳み込み层」や「プーリング层」などの几つかの特徴的な机能を持った层を积み上げることで构成され,现在幅広い分野で活用されています。

畳み込みニューラルネットワーク

この畳み込みニューラルネットワークは,主に一般物体認識と呼ばれる画像認識のタスクで優れた性能を持つアルゴリズムとして使われているものですが,この圧倒的な性能の他に,転移学習による効率的なネットワークの学習方法が確立されたことなどもこの技術が普及した大きなきっかけになったと言えるでしょう。次節からは,この畳み込みニューラルネットの具体的な仕組みについてみていきます。

畳み込みニューラルネットワークの仕组み

畳み込み层

一般的なニューラルネットワークでは层状にニューロンを配置し,前后の层に含まれるニューロン同士は网罗的に结线するのが普通ですが,この畳み込みニューラルネットワークではこのニューロン同士の结合をうまく制限し,なおかつウェイト共有という手法を使うことで,画像の畳み込みに相当するような处理をニューラルネットワークの枠组みの中で表现することに成功しています。この层は「畳み込み层」と呼ばれ,この畳み込みニューラルネットワークでは特に重要な意味を持っています。

畳み込み层

プーリング层

また,この畳み込みニューラルネットワークにおいて,もうひとつ大きな存在感を発揮しているのが,“プーリング層”と呼ばれる層の存在です。畳み込みニューラルネットワークにおいて,“畳み込み層”が画像からのエッジ抽出等の特徴抽出の役割を果たしているとすると,「プーリング层」はそうした抽出された特徴が,平行移动などでも影响を受けないようにロバスト性を与える役割を果たします。畳み込みニューラルネットワークは,特に画像のカテゴリ分类(一般物体认识)で优れた性能を発挥するネットワークとして知られていますが,例えば写真に写った动物が犬か猫かをカテゴリ分类したい场合,犬と猫が正しく识别できることが重要であり,犬が左端に映っているか,右端に映っているかはあまり重要ではありません。つまり,そうした画像のカテゴリ分类というタスクにはあまり重要でない位置に关する情报を巧妙に削ぎ落としてやっているのが,この「プーリング层」と呼ばれる层の役割になります。

同じカテゴリとして识别したい2つの画像

正规化线形ユニット(线性整流单元)

また,この畳み込みニューラルネットワークには,従来のニューラルネットワークではあまり使われることのなかった区分線形な関数,正規化線形ユニット(整流线性单位)と呼ばれる关数が活性化关数として使われています。従来のニューラルネットワークでは,ステップ关数を钝したようなロジスティックシグモイド(物流乙状结肠)关数などが使われることが多かったのですが,この正規化線形ユニット(整流线性单位)を使うことで,畳み込みニューラルネットワークの学习速度が6倍程度まで高速化したとの记录もあり,こうした细かな改良もこの畳み込みニューラルネットワークの発展には大きく寄与していると言えるでしょう。

代表的な活性化关数

畳み込みニューラルネットワークの発展と応用

ILSVRC(ImageNet大型视觉识别挑战赛)

この畳み込みニューラルネットワークは,近年のディープラーニング(深层学习)のブームが访れるはるか前,1979年に発表された福岛氏らのネオコグニトロンに起源を持ち,1990年代にLeCunらによって更に発展させられた技术ですが,その可能性に大きなスポットライトが当たったのは,2012年の世界的な画像认识のコンテストILSVRC(ImageNet大型视觉识别挑战)においてでした。このILSVRCではImageNetと呼ばれる大规模な画像データベースでのカテゴリ分类(一般物体认识)の精度が竞われます。この2012年のILSVRCに​​おいて,カナダのトロント大学のヒントン氏のチームが発表したAlexNetは,既存の手法を大幅に上回る记念碑的な性能を発挥し,翌年以降にこのコンテストの上位に入赏したアルゴリズムの多くが,畳み込みニューラルネットワークの枠组に沿った手法となりました。2015年年には人间の认识精度を上回る精度を叩き出すネットワークも出現しています。

GPGPU(图形处理单元上的通用计算)

現在の畳み込みニューラルネットワークが大きく発展するきっかけとなった要素としては,GPUの存在も欠かすことができないでしょう.CPUによる並列演算ではなかなか効率的に高速化させることができなかった畳み込みニューラルネットワークが一気に加速するきっかけとなったのは,このGPUの演算性能にあると言っても過言ではありません。とはいえ,現代の優れた演算性能を持つGPUを持ってしても,畳み込みニューラルネットワークの学習は決して簡単な計算とは言えない部分がありました.2012年にヒントン氏たちの発表したAlexNetはImageNetの100年万枚以上の画像データを学習させるのに,NVIDIA®的GeForce®GTX580 2机を使い,5〜6日间の时间が必要だったと言われています。现在では更にGPUの性能は向上していますが,それでもゼロから畳み込みニューラルネットワークを学习させるのは决して容易いタスクとは言えません。そこで,现在畳み込みニューラルネットワークを利用する场合によく用いられる手法が,転移学习と呼ばれる手法です。

転移学习(迁移学习)

この手法は,畳み込みニューラルネットワークをゼロから学習させる代わりに,他のタスクで学習を行わせたネットワークを元に自分たちのタスクに適用させる(再学習させる)ことで学習のための計算コストを節約するものになります。この転移学習は,学習コストだけでなく,学習に必要なデータ点数も大幅に抑えることができるため,ディープラーニングの学習では欠くことのできない手法のひとつになっています。更に,畳み込みニューラルネットワークの再学習を行わずに,その一部だけを画像の特徴抽出器として使うような使い方もなされます。こうして畳み込みニューラルネットワークを利用することで得られる特徴量は“CNN特徴量”などとも呼ばれ,畳み込みニューラルネットワークによって計算された特徴量を別の分類器(例えば,サポートベクターマシーン:支持向量机など)で分类することで画像のカテゴリ分类を非常に简単に行うことができます。画像认识の分野では,従来からさまざまな画像特徴量が利用されてきましたが,CNN特徴量にはそのような人が人工的に作った特徴量が取り出すことのできなかったさまざまな画像の特徴を含んでいるとされています。

AlexNetとSVMの組み合わせで転移学習を実現した例

こうした転移学習によく使われるネットワークとしては,2012年にヒントン氏たちが発表したAlexNet, 2014年にオックスフォード大学のチームが発表したVGGなどがありますが,MATLAB®ではアドオン机能を使って简単にこうしたネットワークを利用することができます。

复数GPU /クラスタによる高速化

一方で,こうした転移学習などの手法を使ったとしても,依然としてネットワークの学習は必要であり,学習を高速化させることの重要性が高いことは変わりありません。そういった観点からは,現在複数のGPUやクラスタによる高速化なども行われています.MATLABでは,ネットワークの学習の際にオプションとして,“执行环境”というパラメータを设定することで,复数のGPUを使った学习やクラスタを使った学习等に柔软に対応させることができるようになっています。

パラメータの最適化

また,ニューラルネットワークの扱いを难しくしている要素のひとつにそのパラメータの多さがあります。畳み込みの段数をどれくらいにするか,あるいは畳み込みのパッチの大きさをどれくらいにするか,收束计算の际の学习率をどれくらいに设定するかなど,かなりの数のパラメータが存在します。こうした学习器のパラメータの最适化は,ニューラルネットワークに限らず,机械学习の分野では非常に重要なトピックとなっていますが,学习に膨大な计算资源が必要となるニューラルネットワークでは,特にこうしたパラメータの最适化は重要となります。従来,机械学习の分野では,こうした学习器の最适化にグリッドサーチと呼ばれるシンプルな方法が取られることも多かったのですが,近年ではベイズ最适化と言われるより洗练された方法が使われることも増えてきました。ベイズ最适化は,一般的にはブラックボックス关数の最适化に使われるアルゴリズムですが,こうした最适化の手法をうまく使うことで,ニューラルネットワークの最适なパラメータを效率よく,自动的に探索するような手法も试されるようになってきています。

畳み込みニューラルネットワークによる回帰

画像のカテゴリ分类のタスクでその优れた性能を知られる畳み込みニューラルネットワークですが,画像を入力とした回帰のタスクにも畳み込みニューラルネットワークは使うことができます。画像を入力として离散値を予测するのが分类のタスクだとすると,画像を入力として连続値を予测するのが回帰のタスクになります。画像を入力として,画像に映る文字の回転角を推定したり,人间の关节の座标値を推定したりといったタスクをこなすことが可能です。

数字の画像の回転角を予测させた例

MATLABを使用した畳み込みニューラルネットワーク

深度学习工具箱™を使うことで,簡単に畳み込みニューラルネットワークを試してみることができます。畳み込みニューラルネットワークをゼロから構築して学習させるだけでなく,学習済みのネットワークを利用した転移学習により,より少ないデータ点数でネットワークを学習させることや,并行计算工具箱™とのNVIDIA GPUを合わせて使うことにより,学习を高速化することも非常に简単です。统计和机器学习工具箱™を使えば,ベイズ最適化といった新しい機械学習の手法にも触れてみることができます。また,現在では畳み込みニューラルネットワークの技術をベースにR-CNN(CNN的地区特性)と呼ばれる物体検出の手法も発展してきています。このR-CNNは,その高速版のアルゴリズムである快速R-CNN更快的R-CNNと合わせて,计算机视觉工具箱™で利用することができます。

参考:物体検出物体认识パターン认识予测分析データアナリティクスMATLAB GPUコンピューティング