読者です 読者をやめる 読者になる 読者になる

オタクの情弱日記

情弱が色々書くブログ

Fully-CNNがもたらしてくれたもの

 12/17 身内アドベントカレンダー向け

注: この記事はFully-CNNの紹介をする上でDeepの歴史やこれまでの功績をかいつまんで概観するに留まります。Deep そのものの技術や細かい手法の話には触れません。

Deep Learningがもたらしたもの

ここ数か月、巷で「人工知能人工知能」と言葉だけが独り歩きしている。その人工知能を実現する上で特に注目が集まっている機械学習の手法が、Deep Learning であると言っていいだろう。

 

Deep Learningそのものは流行り廃りを繰り返し、GPUなどのリソースが豊富なこの時代になって再度注目を浴び始めた。今のDeep Learning ブームの起爆剤となったのは、2012年の一般物体認識コンペティション ILSVRCにおいて Krizhevsky らのCNN (Convolutional Neural Network) を用いた手法が、従来の手法に大差をつけてたたき出した結果であった。ここからDeepへの期待が飛躍的に高まり、画像への応用、特にComputer Vision の分野においてはスタンダードな手法と言ってよいところまできている。研究が進むとともに、データセットフレームワークなども充実してきており、Deepはより身近な存在になってきたように思う。

f:id:kaid_lc:20161217184822p:plain

KrizhevskyらのCNNモデル。Krizhevsky et al., ImageNet Classification with Deep Convolutional Neural Networks, NIPS2012 より画像を引用。

 

 

Deep で出来ることとして、まず第一に分類問題が挙げられる。上記のような、CNNによって画像から特徴を抽出、ベクトル化し、それをクラス分類するという問題に長けている。Deep Learningは、簡単に言ってしまえば「すべての学習データにフィッティングするような」「大規模な非線形関数」を作っている手法である。例えば分類問題でいうなら、猫の画像を入力として与えたときに「猫」のラベルがきちんと出力されてほしい、犬なら犬、といったようなことを大量の学習データ(この場合では画像とそのラベル)から学習させ、その識別が可能な非線形関数を求めるということである。

 

学習データを変えることで自然言語、音声など、様々な問題への適用が提案され、多くのジャンルでも同様に良い認識精度をあげている。

Fully-CNNがもたらしたもの

近年、Fully-CNNという、畳み込み層のみから構成されるネットワークモデルが提案された。最初は2015年の Long らの研究 [ Long et al. Fully Convolutional Networks for Semantic Segmentation CVPR2015] やNoh らの研究[ Noh et al. Learning Deconvolution Networks for Semantic Segmentation ICCV2015]は、タイトルの通りセグメンテーションを行うために利用されていた。

 

従来用いられてきたCNNのモデルは全結合層を持つため、画像サイズが固定であるという欠点があった。全ての層が畳み込み層で構成されるFully-CNNは、入力画像と出力画像のサイズが同じ、入力画像のサイズが可変という特徴を持つ。また、「画像」を入力として「正解ラベル」を教師データとする従来の分類問題とは違い、何よりも「画像」をターゲットとして「画像」を入力とする学習が可能となったことが一番の貢献である。これにより様々な画像間の関係を直接一つの関数で表すことができるようになった。

f:id:kaid_lc:20161217192453p:plain1枚の画像間で学習させた結果。かいぢうのイラストを使用。極端な例だが、このように画像間の関係を学習することができる。

 

従来、画像の編集などの技術はピクセルごとの処理やパッチベースでの処理など、何らかの制約のもとにユーザーが指定、目的の処理を行うというものが多かった。Fully-CNNがもたらしたこの「大規模な非線形関数」を「画像間の対応関係」に利用するという考え方は、様々な解像度の画像に対し、自動で目的の処理を行うフレームワークを作ることができるという貢献をもたらした。その特に顕著な例が、2016年にSIGGRAPHで発表されたラフスケッチの線画化と白黒画像のカラー化であった。

シモセラ・エドガー ラフスケッチの自動線画化

飯塚里志 — ディープネットワークを用いた大域特徴と局所特徴の学習による白黒写真の自動色付け

これらはそれぞれ「ラフ」と「線画」、「白黒画像」と「カラー画像」のペアを大量に用意し、その対応関係を学習させることで、テストデータに対しても目的の処理を行ってくれるようなフレームワークを作ることが可能であることを示した。

f:id:kaid_lc:20161217195248p:plain

Simo-serra et al. Learning to Simplify: Fully Convolutional Networks for Rough Sketch Cleanup より引用。論文内で使用されているFully-CNNモデル。従来の分類に使用するネットワークモデルと異なり、全結合層を持たない。

 

ただ、これらのような手法も、結果だけを見れば目覚ましいものがあるが、実際の学習ではDeep Learningそのものにつきまとう困難が多い。Deepはネットワークの構造そのものに始まり、学習係数やフィルタ枚数、サイズなどのハイパーパラメータが多く、その最適化は試行錯誤や経験則の域を出ない。近年ではBatch NormalizationやADADELTAなど(引用略)によって学習をスムーズ、効率的に行えるような最適化手法などが提案されてきているが、それでも最終的に人間が実際に学習させ、テストさせ、うまくいくかどうかを確認するまでは結果の保証がなされない。Fully-CNNは問題の設定からデータの用意、学習の最適化など、非常に難しいが、また同時に夢のある手法でもある。

 

最近ではDCGANのような画像生成モデルなどが話題を呼んでいるように、機械学習・画像分野の技術革新はめまぐるしい。その中でも、Fully-CNNは画像の編集などの主にグラフィクスの分野において、今後も注目の集まる技術だと考える。

 

私も引き続きFully-CNNで何か面白いことができないかと考え中でございます。コミケの原稿があるので、今日はこの辺で失礼します。

 

コミケ1日目東U38ab, きてね!(小声)