2018年、韓国科学技術院から音の発生源を推測するAIが提案された。画像上の音の発生場所と考えられる物体をヒートマップとして可視化できるものだ。
説明だけではあまりピンとこないかもしれないので、次の動画を数秒ほどご覧頂きたい。
動画では、馬車に対して強いヒートマップが出ており、音の発生場所を上手く捉えられていることがわかる。
この研究の強みは、教師なし学習が用いられていることだ。アノテーションされていないただの動画データを学習するだけで、音声発生源を推測できることがわかる。
学会:CVPR2018
作者:Arda Senocak, Tae-Hyun Oh, Junsik Kim, Ming-Hsuan Yang, In So Kweon
所属:KAIST, MIT CSAIL, University of California
画像、音声の特徴分布が類似するように学習
この研究の要点は、音声、画像という異なる種類のデータから得られる特徴どうしを近づける学習を行うことである。たとえば、車のエンジン音と車の画像は、元のデータ形式自体は大きく異なるが、それらから類似する特徴を抽出できるように学習を行う。
モデルの概要は次のようになる。画像は論文から引用したものを編集
変数の説明は以下の通りである。
z:画像特徴量vにattentionを適用した後のベクトル
fv:zから作成されたfsと同じ次元数となる画像特徴ベクトル
fs:音声データの特徴ベクトル
h:vの奥行方向と同じ次元数となる画像特徴ベクトル
α:attention map(幅×高さ)
ネットワークの学習は次のように行われる。
①音声データ、画像データから特徴を抽出しv, fsを作成
VisualCNNでは、VGG16、SoundCNNでは、SoundNetを使用している。
②fsからvの特徴次元と同じサイズのベクトルhを作成
③hとvからヒートマップα(attention)を作成(Localization Responce)
ここではhとvでの内積計算がピクセルごとに行われている。式は以下の通り。
$$\alpha_(x,y) = v_(x,y) h^\mathsf{T} $$
④α(attention)をvに適用しzを作成、同時にfvを作成
⑤fsとfvを近づけるように学習
画像の特徴fs、と音声の特徴fvを近づけるにあたり、誤差関数としてtriplet-lossを使用している。もとの画像、音声のペアとは、全く関係ない音声データをランダムに使用し、正しい画像と音声のペアでは特徴を近づけるように、誤った画像と音声のペアではその特徴を遠ざけるように学習している。式は以下の通り。
$$ Loss=||D_+||^2+||1-D_-||^2$$
$$ただしD_\pm=\frac{\exp(||f_v-f^\pm_s||)}{\exp(||f_v-f^+_s||)+\exp(||f_v-f^-_s||)}$$
$$f_v:画像の特徴ベクトル$$
$$f_s^+:画像と正しいペアの音声の特徴ベクトル$$
$$f_s^-:画像とは無関係の音声の特徴ベクトル$$
ほとんどの場合で上手く可視化できている…が失敗例も
さまざまな画像に適用した結果はこちらである。画像は論文から引用
赤ちゃん(Baby)の例では、顔部分に強くヒートマップが表示されている。バイク(Motorcucle)の例では、人の部分を避けて、バイク部分に反応できていることがわかる。
しかし、教師なし学習では次のような失敗例も。画像は論文から引用
図の真ん中の列が教師なし学習での結果である。電車や車が映る画像には、必ず道路、線路が存在するため、その場所が発生源であるとネットワークが勘違いを起こしてしまっている。
論文では、少量の教師データを与えることでこの問題を解決できると述べている。これは、教師データとして、音の発生源と思われる物体に対してのバウンディングボックスを作成し、そのバウンディングボックスから作成されたattention mapに対して直接的に損失を計算してしまうのだ。
図の右列が教師データを加えて学習した結果である。教師なしでの学習とくらべ大きく改善できていることがわかり、車、電車が発生源であると特定できている。
本研究の結果は、画像、音声といった全く異なるデータでも、その文脈情報を統一的に扱うことができる可能性を示せている。データの枠組みを超えた学習を行ううえでの新たな可能性を広げたといえるのではないだろうか。