Deep Learningによる感情認識

目次


はじめに

本記事はDeepLearning Advent Calendar 12月22日の記事です。
間違いが無いよう注意を払っていますが、記載している内容に間違いがあれば教えていただけると幸いです。

こんにちは。京都で大学院生をやらせてもらっている、くさのと申します。
最近は、下図のような生活を送っています。


自己紹介はこれぐらいで、本題に入ろうかと思います。

今日お話するテーマである感情認識とは文字通り、人間の顔画像などから人間の感情を認識するタスクのことで、困難なタスクであることが知られています。例えば、笑ってる顔の人の画像を見て、この人は幸せそうだ。という感じの予測をするタスクです。 ちょっと大げさに言うと、機械に人間の心が理解できるかみたいな大きな問題につながっており、人間の知能を機械で再現できるかという人工知能の流れ的にそれなりに重要な問題であると言えるかと思います。

そして、2016年初めにAppleが感情認識のスタートアップを買収したというニュースをご覧になった方もいるかと思いますが、近年感情認識が流行っている様で、このページによると把握されているだけでも、感情認識系のAPIが20個以上も既にあるそうです。 Deep Learningの発展とともに、これまでマーケティングなどに有効だと分かりつつも、困難なタスクと考えられてきた感情認識分野の技術も近年実用レベルまで進歩しつつあるのでは無いのでしょうか。

このように、まさに

乗るしか無い、このビッグウェーブに!!!

との様相を呈している感情認識なのですが、上述の感情認識のAPIは当然ですが基本的にアルゴリズムは公開していない他、統一的なベンチマークの仕方も一般物体認識などと比べると自明ではなく、アルゴリズムと性能の対応がわかりにくく、専門外の人からすると波に乗りにくい印象を受けます。

目次に戻る

EmotiW2016について

そこで、今回は、その感情認識に焦点を当て、一般なシチュエーションでの感情認識のコンペティションであり、国際学会ACM ICMI 2016, Tokyoに併設して行われたEmotion Recognition in the Wild Challenge 2016(EmotiW 2016)の紹介及び、その中で行われたVideo based emotion recognition sub-challengeの優勝者のモデルがDeep Learningを上手く使ったモデルなので紹介させていただきます。

EmotiW 2016は、その名の通り、一般なシチュエーションでの感情認識のコンペティションで、2つのsub-challengeによって構成されます。1つ目が、ビデオから感情を認識する、Video based emotion recognition sub-challengeで、2つ目が、写真に写っている人の集団の感情を予測するGroup level emotion recognition sub-challengeです。 以下で、Video based emotion recognition sub-challengeについて説明します。
目次に戻る

EmotiWの詳細について

Video based emotion recognition sub-challengeでは、音声がついた短いビデオに6つの主要な感情(怒り、嫌悪、恐れ、幸福、悲しい、驚き)と中間という7つのクラスのうち1つがラベル付けされたデータセットが与えられます。そして、音声がついた短いビデオから、それに対応するラベルを予測する、多変量時系列データの分類という風に定式化されています。


一般に、感情は人間の潜在的な状態であることから、正解データを作ることが難しく、蓋然性を正確に測ることが難しい他、データ・セット依存性がかなり高く、モデルの評価も難しいのでは無いかと思っています。 しかし、今回のコンペティションの特徴は、トレーニングデータセットは映画の映像なのですが、テストデータセットはリアリティーテレビの動画も用いているそうです。リアリティーテレビの動画はより一般な状況であるゆえ、特徴モデルの一般性を測るのに寄与するとのことです。用いられたデータ数は1749個で、トレーニング(773個)、 Validation(383個)、テスト(593個)に分けて提供されたとのことです。

また、ベースラインとして主催者側から提供されるモデルは、LBPOP descriptorとSVRを用いたモデルで、Validation accuracyが38.81で、Train setで学習させた上記モデルをTest dataで評価したaccuracyが40.47%だそうです。そして、どの様なモダリティを使うかなどの制約は無く、テストデータセットでの性能のみを競うとのことです。感情認識のアプローチとしては大きく分けて3つあり、視覚入力、音声入力、生体センサからの入力なのですが、今回は音声が伴うビデオを対象とするということで、視覚入力、音声入力を用いての感情認識で競うことになるかと思います。

そして、EmotiW 2016のVideo based emotion recognition sub-challengeには、22グループが参加し、チームごとの性能は以下の様になっているそうです。横軸が正答率で、右に行けば行くほど良く、昇順にソートされており、下のチームの方が優れています。ベースラインを下回ってるチームが結構ありますが、過学習しまくってたってことなんですかね。感情認識こわい。。。








また、EmotiW2016については、こちらを参考にさせていただきました。 http://dl.acm.org/citation.cfm?id=2997638 詳しく記載されていますので、詳細を知りたい方は参照してください。
目次に戻る

優勝者のモデルの解説

優勝者はIQIYIという会社のチームです。IQIYは、中国のBaidu(百度)の子会社で、無料動画サイトを運営している会社だそうです。このチームのモデルは、Video-based Emotion Recognition Using CNN-RNN and C3D Hybrid Networks というもので、http://dl.acm.org/citation.cfm?id=2997632に詳しく記載されています。動画や音声をうまく特徴として使い、Deep Learningを用いて学習させ、最終的に複数モデルをアンサンブルしたようなモデルです。 モデルを簡単に説明させていただくと、以下のようになります。

まず、ビデオから音声と画像の集合を切り分ける。画像は前処理をした後、2つのモデルに渡される。1つ目が、空間方向のCNNで視覚特徴を取った後、隠れ層のベクトルをLSTMに渡し逐次的に画像集合を処理させる、CNN-RNNを用いて予測する。2つ目が、空間方向と時系列方向の両方を畳み込む3次元Convolutionを行うCNNである、C3Dを組み、フレームの系列を直接入力し、予測させる。 そして、音声は、音声特徴を作り、線形カーネルを用いたSVMで予測させる。 これら3つの予測を重み付けし、最終的な予測結果を出すとの流れになっています。学習は、それぞれのモデルを独立して学習させ、最後に各自の性能に合わせて重み付けをします。









このようになっています。


ちなみに、CNN-RNNのCNNには、VGG-16-Face modelをFER2013のface emotion datasetを用いてpre-trainさせ、LSTMの1イテレーションごとに、16個の顔特徴がランダムに選ばれる用設計し、LSTMは128次元のembedding出力を持ちます。C3Dの方では、それぞれのビデオで、16枚の顔の系列が入力として選ばれ、C3Dでは8個のConvolution層、5個のmax-poolings層、2個の全結合層があり、soft-max層を伴い出力されるそうです。また、16枚の顔の系列は、8フレームごとに、1枚ずつサンプリングしていき生成します。

そして、最終的に、CNN-RNNとC3Dのアンサンブルのさせ方で精度を比較した結果が以下のようになります。






CNN-RNNと3個のC3Dの組み合わせが一番精度が出たようですね。CNN-RNNの個数が変わってもあまり精度が変わらないのに、C3Dの個数が変わると精度が変わるのは奇妙ですね。C3Dの方が、空間情報を保持した上で、時系列方向に畳み込みが出来ていて、いい特徴を取りやすいってことですかね。心当たりがあるのが、画像から心拍・呼吸の情報を読み取ることができ、それらの情報が感情推定に有用であることは知られています。これは、EmotiW2016のKeyNote Talkでも話しているDr. Daniel McDuffさんの研究なのですが、空間情報を保持した上で、時系列に畳み込みが出来ると、心拍情報・呼吸情報に基づいた感情推定で行われているのと似たような操作が出来るので、そういった情報も寄与しているのかなと思います。

この、レポートhttp://dl.acm.org/citation.cfm?id=2997632 想像以上に充実してい、示唆に富む、実用上参考になりそうな情報が一杯書いてあるので、感情認識に興味が有る方や、仕事でやる必要がある方などは読んでみると面白いかと思います。そして、実装もhttps://github.com/lidian007/EmotiW2016に公開されています。
目次に戻る

他のチームのモデルとの比較

また、他のチームとのモデルの比較としては、
2~4位のチームの違いとしては、そもそもビデオの時系列情報は含めず画像からの感情予測であったり、音声を特徴として用いていなかったり、Deep Learningを使わないもののビデオと音声を特徴にした予測などがありました。(ざっと見なので間違っていたらすみません。) 今回のEmotiW2016では、モデルを提出する際、モデルについて記載した論文が義務づけられているそうで、1位以外の論文もネットに公開されているので、気になる方は参考にしてください。

印象としては、動画や音声の特徴を上手く取り入れ、Deep Learningの枠組みに落とし込んで解いたIQIYIのチームが勝ったのでは無いかという感じです。(彼らはアンサンブルも取り入れていたし、このようなアプローチは必然的に計算資源も膨大になると思うので、計算資源の勝利という見方もできなくもないかも…!笑)

目次に戻る

感想

感想としては、今回のケースは、対象が感情という予測しにくいラベルで、音声が伴う動画という扱いにくいデータが約千個という小さなデータセット、かつトレーニングとテストの性質が異なるという極めて困難な状況だと思います。 そのような状況下であっても、学習のさせかたを工夫するとDeep Learningが上手く適用でき、約6割程の正解率をあげられることを知り、Deep Learningの適用範囲がやはり広がってきているのだなと実感しました(小並)

長文でしたが、最後までお付き合いいただきありがとうございました。

0 件のコメント :

コメントを投稿