この記事では、近年注目されているマルチモーダルAIの分野で重要な研究テーマの1つであるfusion、すなわち、複数モーダルの統合方法について解説します。
マルチモーダルの重要性
近年、複数のモダリティを処理するマルチモーダルAIの重要性が高まっています。重要性が高まっているのには理由がありまして、既存のシングルモーダルAIに比べ、より正確に処理することが可能だからです。例えば、画像認識するAIは、入力として画像のみを扱いますし、音声認識するAIは、入力として音声のみを扱います。このように、単一種類の入力を扱うAIをシングルモーダルAIと呼びます。一方で、画像や音声など、複数の種類の入力を同時に扱うAIをマルチモーダルAIと呼びます。
マルチモーダルAIでは、単一のモーダルからでは正しく推論できないものに対しても、複数のモーダルの情報を統合的に処理することで、正しく推論できるようになるため、シングルモーダルAIに比べて正確に処理ができるのです。
マルチモーダルAIについて興味がある方は、以下の記事をご参考ください。
上のリンクの記事では、マルチモーダルAIの研究テーマには5つあり、具体的には、
- Representation
- Translation
- Alignment
- Fusion
- Co-learning
あることを紹介しました。これらのテーマは全て重要なのですが、この記事では、複数のモーダルを結合する方法を扱うFusionに注目して、説明します。
fusion方法を考える意義
fusionとは
fusionとは、複数のモダリティどのように統合するかを研究するテーマです。例えば、波形データと画像データがあったとき、これらの生データを1つのベクトルにまとめて、処理するのは果たして賢い方法でしょうか?もっと賢い統合方法はないでしょうか?これを考えるのがfusionです。
正則化とは
正則化とは、機械学習の過学習を防いだり、精度を向上させるために使用する制約のことです。正則化として代表的なものに、Lp正則化があります。また、ニューラルネットワークで使用されるドロップアウトも、正則化です。
fusionと正則化の関係
fusionには、複数のモダリティを統合する方法を設計することも含まれ、これはニューラルネットワークのアーキテクチャの設計にも深い関係があります。アーキテクチャをうまく設計することは、学習器の汎化および精度向上に繋がるため、正則化として解釈することができます。
fusionとパラメータ数の関係
ニューラルネットワークは、その表現能力の高さゆえ、パラメータ数が冗長である傾向があります。fusion方法を設計することで、適切にネットワークを設計することができれば、パラメータの冗長性を減らすことができます。
さまざまな結合方法
この記事で紹介するfusion方法は以下の通りです。
- 古典的なfusion方法
- early fusion
- late fusion
- 最近のfusion方法
- joint fusion
- dense fusion
それぞれについて説明をする前に、表記の定義をしておきます。ニューラルネットワークを、モデルの出力を担うものと、担わないもの(=特徴ベクトルを生成するだけ)にわけ、それぞれ、Model、NNと表記することにします。
- Model:分類もしくは回帰をするニューラルネットワーク(出力を担う)
- NN:任意の特徴空間に写像するニューラルネットワーク(出力を担わない)
early fusionとlate fusion
古典的な手法は、early fusionとlate fusionがあり、異なるモーダル同士がどこで統合されるかによって決まります。early fusionは、NNを介さずに複数のモーダルが統合されたものを単一のModalに入力するもので、late fusionは、それぞののモーダルを専用のModelを通した後、出力の直前で統合されるものです。
ポイントをまとめると、
- Modelへの入力直前で統合しており、かつ統合前にNNによる変換を受けていないのがearly fusion
- それぞれのModelの出力直後で統合しており、かつ統合後にNNによる変換を受けていないのがlate fusion
early fusionは、Modelへの入力直前で統合しており、かつ統合前にNNによる変換を受けていません。
late fusionは、それぞれのModelの出力直後で統合しており、かつ統合後にNNによる変換を受けていません。ただし、それぞれの出力は平均化層などのAggregation層を介すことがあります。
intermediate fusion(joint fusion)
intermediate fusion(joint fusion)では、どれかのモーダルがNNによる変換を受けたのち、統合されてModelに入力されます。
下図に2パターンを示します。左側は、2つのモーダルがそれぞれNNにより特徴ベクトルに変換され、それぞれの特徴ベクトルを統合したものをModelに入力しています。右側は、2つのモーダルのうち片方のみが、NNにより特徴ベクトルに変換され、その結果と、もう片方のモーダルを統合したものを、Modelに入力しています。
dense fusion
dense fusion[1]は、early fusion、intermediate fusion、late fusionを組み合わせて、階層的に特徴ベクトルを統合していく方法と考えることができます。それぞれのモーダルから個別に特徴を抽出しつつ、結合した場合の特徴も抽出し、Modelに入力させるものとなっています。
まとめ
ここまでで紹介した4つのfusionについてまとめると以下のようになります。
まだ紹介しきれていませんが、slow fusionや common space fusionなど、さまざまなfusion方法が提案されています。もし、他のfusion方法に興味がありましたら、ぜひ調べてみてください。
具体例
1つだけ具体例を紹介します。入力として、心拍、脳波、顔画像を受け取り、感情クラスを出力する機械学習モデルの構造を考えてみたいと思います。最もナイーブな方法は、心拍および脳波のある時刻の数値と顔画像データをベクトル化したものをconcatして、クラス分類器に入力することです。しかし、これでは高精度が得られるとは考えにくいですよね。そもそも、波形データに対して画像データの情報が多すぎます。これでは、波形データの変化の特徴が、画像データのピクセルのノイズに埋もれてしまうでしょう。また、波形データでも、特徴があらわれる周期が異なることが予想されます。そのため、それぞれのデータをある程度、上位の概念の特徴ベクトルに変換してから結合するのが良いでしょう(intermediate fusion)。例えば、以下の図のような構造が考えられます。波形データについては、それぞれRNN(再起型ニューラルネットワーク)に入力し、画像データについてはCNNを通してからRNNに入力して、それぞれを特徴ベクトルに変換することが考えられます。そして、これらをconcatして、全結合層に入力しクラスを推定する方が、良いアーキテクチャでしょう。
さいごに
ここまで、fusionについて幾つか紹介してきました。最後に、これだけは頭の片隅に置いてから、別の記事に移動して欲しいと思っていることを記載します。それは、
fusionはその設計によって、モデルの精度を上げることもあるし下げることもあるので、モデルの精度が伸び悩んだら、fusionを見直して欲しい
ということです。もちろん、fusion以外にも色々な要因があるとは思いますが、fusionについて少しでも知ってもらえたら幸いです。最後までお読みいただきありがとうございました。
参考文献
[1] Di Hu, Feiping Nie and Xuelong Li. "Dense Multimodal Fusion for Hierarchically Joint Representation." ICASSP 2019-2019 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP), pp. 3941–3945, 2019.
[2] Shih-Cheng Huang, Anuj Pareek, Saeed Seyyedi, Imon Banerjee, and Matthew Lungren. "Fusion of medical imaging and electronic health records using deep learning: a systematic review and implementation guidelines." npj Digital Medicine, Vol. 3, 2020.
[3] Chi Thang Duong, Remi Lebret and Karl Aberer. "Multimodal Classification for Analysing Social Media." 2017.