世の中には膨大な量のデータがあふれていて,その中から適切な情報を引き出すために,Googleなどの検索サービスがあります.テキストデータだけではなく,画像データの検索も利用していると思います.画像検索は応用の1つになりますが,このようなビッグデータを解析するのは,なかなか難しい問題です.深層学習(ディープラーニング)の登場によって,ビッグデータの解析や新技術開発が進んでいます.ここでは,その一例として,膨大な顔画像データセットから属性(年齢,性別,髪型など)を推定する顔属性推定について説明します.
ディープラーニングでは,深いニューラルネットワークが使われます.まずは,簡単にニューラルネットワークについて説明します.脳の神経細胞であるニューロンを単位とするネットワークのことをニューラルネットワークと呼びます.図1の左側のように,ニューロンは,入力された電気信号に応じて発火するという単純なものです.このニューロンをネットワークのように繋ぐことで脳が構成されています.このニューロンやニューラルネットワークの数学モデルが図1の右側にある人工ニューラルネットワークです(神経回路網と数学モデルで異なるため「人工」とつけることがあります).数学モデルのニューラルネットワークでは,ニューロンをユニットと呼び,ユニットを繋いでネットワークを形成します.
複雑で難しい問題を解くためには,ユニットをたくさん並べて深いネットワークとする必要があります.図2のように層(列)を深くしたものがディープニューラルネットワークです,ニューラルネットワークは,入力と出力の正しい関係を用いて重み $w$ (図1参照)を学習により最適化します.このときに,層が深くなることで最適化ができなくなる問題がありました.それを解決したのが深層学習(ディープラーニング)です.深層学習により深いニューラルネットワークを学習することができるようになりましたが,画像を入力とした場合は,そうもいきませんでした.入力が画素数となるため,最適化する重みの数が膨大となり,学習できなくなります.これを解決したのが次で説明する畳み込みニューラルネットワークです.
畳み込みニューラルネットワーク (Convolutional Neural Network: CNN) では,図3のように畳み込み層で特徴を抽出し,全結合層で識別を行います.畳み込み層では,フィルタ処理により,識別に有効な特徴を抽出します.フィルタの係数(重み)をニューラルネットワークと同様に学習によって最適化します.全結合層は,先ほど説明したディープニューラルネットワークと同じです.CNNにより画像認識などの精度が大幅に向上しました.
ImageNetと呼ばれる大規模な画像認識用データセットが公開され,そのデータセットを用いた画像認識のコンペ(ImageNet Large Scale Visual Recognition Challenge (ILSVRC))が開催されています.図4を見てわかるようにCNNが登場する前の2011年までは識別誤差が20%を超えていましたが,2012年にCNNがはじめて使われ,10ポイントも誤差が低下しました.2012年以降は,様々なCNNの手法が提案され,2015年以降は,人間を超える精度を達成しました.従来の画像認識では特徴量を設計して使っていましたが,ILSVRC2012でのCNNの成功により,膨大な画像データセットを使った学習で特徴量を自動設計する手法が主流となりました.
前置きが長くなってしまいましたが,ここから本研究室で取り組んでいる顔属性推定について紹介します.顔の属性には,どのようなものがあるでしょうか?例えば,髪の毛の色,顔の形,ひげ,眼鏡など様々な属性が思い浮かぶと思います.各属性は,異なる特徴を持っているため,属性推定のための特徴を設計することは困難です.そこで,これまでに説明してきたディープラーニングの出番です.属性推定では,CelebAデータセットがCNNの学習と評価に使われています.図5に示すように40種類の属性が定義されています.これらの属性を持っているかどうかをCNNを使って推定するのが顔属性推定の問題になります.
本研究室では,属性間に関係性があることに注目して,40種類の属性をクラスタリングして樹形図で表しました.それに基づいて提案した顔属性推定用のCNNがDendroNet(文献[1])です.図6に示すように大域的な特徴から局所的な特徴を抽出できるような構造になっています.さらに,ネットワーク構造を学習により顔属性推定に最適化する手法も提案しました(文献[2], [3]).
本研究室で提案している手法を用いたデモシステムを開発しています.今回は,オンラインオープンキャンパスということなので,結果をお見せします.図7は,我らが青木教授の顔写真です.この顔写真を入力すると棒グラフで結果が表示されます.赤がその属性を持っていることを示し,青が持っていないことを示しています.青木教授の場合は,ストレートヘア,黒髪,目の下のたるみ,大きな鼻,ネクタイ,男性という属性を持っているという結果でした.顔写真を見ると,その通りですね.このように,大規模な画像データセットと問題に応じたラベルがあれば,ディープラーニングを使うことで問題を解くことができます.
本研究室で取り組んでいるビッグデータ解析の1つであるプランクトンの自動分類について紹介します.プランクトンは,海・湖・沼などの水圏の生態系の底辺にあり,水質と密接に関係しています.例えば,ある湖に生息しているプランクトンの種類や数を調べることで,現在の水質を確認することができます.一方で,専門家が時間をかけてプランクトンの分類する必要があるため,水質予報のための課題となっています.そこで,ディープラーニングの登場です.東北大学大学院生命科学研究科との共同プロジェクトで図8のようなプランクトン画像データベースを作成しています.このデータベースには,ブランクトンの分類階級に基づいた階層的なラベルが付けられています.プランクトンは,わずかな違いで名前が異なるため,階層的なラベルを使うことで高精度に分類することができます(文献[4]).
少し長くなってしまいましたが,ディープラーニングを用いたビッグデータ解析について簡単に紹介しました.大規模なデータセットと正解ラベルがあればディープラーニングで問題を解けるようになってきましたが,研究としては,そこがスタートラインです.そこからどう性能を向上させるか,新しい問題に取り組むかが次の研究課題になっています.