スーツ姿のプロダクトマネージャー

ITで新しいプロダクトを生み出したいすべての人を応援するブログです。

カプセルネットワークとニューラルネットワーク

ディープラーニング(深層学習)が今のAIブームの牽引役であることは間違いありません。特に画像認識などの画像系データに強い技術ですが、テキストや時系列データへの応用例も徐々に増えてきました。

f:id:ku2t:20180228165848p:plain

ところで、現場ではどうかというと、使えるときは使える人、なるべく使わないで済ます人、積極的に使う人に分かれる印象です。
その効果を経験した人や若い方は、ディープラーニングを好む印象があります。しかし、必ずしも教師データが多いとも限らないので、シンプルなモデルを使う場面も多々あります。

さて、そんなディープラーニングですが、少し前にWIRED.jpにこのような記事が上がっていました。

 

キャッチーなタイトルですが、後輩から紹介されてディスカッションしたところです。

技術的にも期待できるし、何よりも日々こうした改善が積みあがっていることにワクワクします。

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

ディープラーニングが一般に注目されるようになったのは、畳み込みニューラルネットワーク(CNN)の成功があったからですが、そのCNNはどのようなが特徴あるのでしょうか。

多層のニューラルネットワークでは、様々な工夫によりデータの特徴を上手く学習し、パラメータを効率よく推定することができます。その工夫については、以下のような記事が参考になるでしょう。

畳み込みニューラルネットワークの特徴の一つに、「データの重要な特徴を残しながらデータを圧縮する」プーリング層の存在があります。これは、一見データの情報を間引いているように見えますが、位相のズレを吸収する効果があります。

つまり、画像データを学習する場合、画像に含まれる人物などの物体の位置がどこにあっても、同一のものとして学習ができるということです。これは実に素晴らしい話で、画像の学習だけでなく、周期性を持った数値データの学習にも効果を発揮することがあります。

ところで、このプーリング層について、著名なAI研究者であるGeoffrey Hinton教授はこのようにコメントしました。*1

"The pooling operation used in convolutional neural networks is a big mistake and the fact that it works so well is a disaster."

Geoffrey Hinton

そもそもプーリング層を使うのが間違いということです。それはどういうことでしょうか? 

数学的な背景はリファレンスをご覧いただくとして、イメージとしては以下のようなものです。畳み込みニューラルネットワークでは、上で書いたように位地のズレを吸収してくれるのですが、(c)のように回転している場合には別のものとして学習してしまうという問題があります。

f:id:ku2t:20180225093833p:plain

画像の中の物体認識

このため、学習を行う際には、回転を含めて多様性に富んだデータを学習される必要があり、データが大量に必要となるひとつの要因となっています。

また、上の図は単純に左右に回転させたものですが、奥方向にも同様のことが言えます。今はこうした問題に対処するために、データを加工して増やしながら学習する様々な手法が使われているのですが、根本的な解決策ではありませんでした。

カプセルネットワークは、この問題に真正面から取り組んだもので、プーリング層の処理や学習方法を根本から見直すことで、回転に対する耐性を高めるような手法です。

これは、ディープラーニングの学習効率化だけでなく、適用領域を広げる可能性を秘めていて、非常に気になりますね。

カプセルネットワークを通してCNNの特徴を見る

カプセルネットワークを通して改めて理解したことは、畳み込みニューラルネットワークが非常によくできているということです。

畳み込み層を何層も置くことで入力データの空間的な特徴を捉えながら、位地ズレを吸収することができます。つまり、画像のように2次元のデータがあって、「目で見た感じ」で認識できる問題は、得意であるということです。

ところで、社内の研究員の話として、

画像データはデータ構造的に簡単。だからCNNのやり方がうまくはまったんだろう。

というコメントが印象深いです。一見、数字の並びや文字よりも、画像データの方がなんとなく「複雑そうだ」と思えるのですが、ピクセルをベースにして規則正しく配置されている画像の方がよほど(構造的には)単純だというのです。

業務SE上がりのデータサイエンティストである私には、いきなりこの直感を持つことはできなかったのですが、説明されればなるほどと思いました。

逆に言えば、そうした手法の特性を深く理解することが、ディープラーニングの新しい応用を見つけていくことにつながるのだと感じました。

そして、基礎研究者は原理の解明や技術の改良に、私のようなビジネスサイドにいる人間は、実用領域を見極めて社会に広げていく…ということができればと考えています。

 

リファレンス

 

*1:このコメントはいくつかWebページで引用させていますが、どこで書かれたものかをググってみると、AMA Geoffrey Hinton : MachineLearningにたどり着きました。