全5645文字
PR
この記事は日経Robotics 有料購読者向けの過去記事ですが
日経Robotics デジタル版(電子版)』のサービス開始を記念して、特別に誰でも閲覧できるようにしています。
本記事はロボットとAI技術の専門誌『日経Robotics』のデジタル版です
本記事はロボットとAI技術の専門誌『日経Robotics』のデジタル版です

 ディープラーニングはデータの適切な表現方法(または特徴関数)を自動獲得し、多くのタスクで人が設計した表現方法を使った場合よりも高い性能を達成できることを示してきた。

 こうした表現学習の多くは何らかの教師あり学習の副産物として獲得されている。例えばImageNetの画像分類タスクで得られたモデルは画像認識の学習済みモデルとして多く使われている。

著者の岡野原大輔氏
著者の岡野原大輔氏

 しかし、教師あり学習を使って表現学習した場合、基本的にはタスクに関係する表現しか獲得されない。例えば画像分類タスクで学習した場合、分類に不必要な色情報や物体の個数といった情報は表現に含まれない可能性が高い。

 そのため、その表現を画像キャプショニングといった別のタスクに使うことが難しい。このためタスクに依存せず汎用的に使える表現を獲得する方法が求められていた。

 この最有力候補が教師なし学習による表現学習である。

 教師なし学習であれば、より汎用的に使えるような表現を獲得できるタスクを設定でき、かつ正解データを必要としないためデータをいくらでも使える。しかし、これまで教師なし学習による表現学習は教師あり学習による表現学習に大きな差をあけられていた。それが自然言語処理ではBERT(2019年10月号で解説)の登場によって大きく状況が変わった。BERTで獲得された表現を使って多くのタスクが解けるようになり、非常に大きな教師なしデータを使って、より良い表現を獲得できるようになってきている。

 そしてこれまで教師あり学習による表現学習が標準だった画像認識でも、教師なし表現学習が大きく進化してきた。特に2018年から相互情報量最大化を目指した対比符号化(Contrastive Coding)を使った教師なし表現学習のアプローチが成果を上げ始め、2019年に入ると、教師あり表現学習に匹敵する、またはそれを超えるような性能を出すようになってきている。この教師なし表現学習の最新手法であるMoCo4)は、教師あり表現学習を多くのタスクで初めて上回った。

生成モデルの問題点

 はじめに、それまで主流であった生成モデルに基づく表現学習の問題点について説明しよう。生成モデルの学習では符号$z$からデータ$x$がどのように生成されるのか$p(x|z)$を学習し、この符号$z$をデータの表現として利用する。この生成モデルでは符号はデータ全てを説明する必要がある。しかしデータには、タスクに役に立たない情報も含まれており、これらの説明に多くの表現能力を割り当てる必要がある。例えば、道路の写真が入力として与えられたとしよう。このとき、その両脇に立っている木の葉1つ1つの状態も生成時には全て正確に表現する必要がある。道路の画像を使ったタスクとしては、車や人の検出、道路のセグメンテーション、地図作成の方が、葉が右を向いている個数を数えるよりも可能性が高いだろう。このため、表現としては葉の1つ1つの状態は捨てたほうが良い可能性が高い。このようにデータの適切な表現では、データを正確に表現しなければならない一方で、必要のない情報をいかに取り除けるかが重要となる。

 そこでデータを完璧に生成するようにして表現を学習するのではなく、データを符号化し、その符号がデータの必要な情報を十分持っているかで表現を獲得する方法が提唱されている。一種の歪みありデータ圧縮ともいえる。特にInfoMaxは符号$z$と入力$x$間の相互情報量を最大化するようにして符号、つまり表現を獲得する。入力$x$と符号$c$間の相互情報量は

\[ I(x; c) = \sum_{x, c} p(x, c) \log \frac{p(x|c) }{p(x)} \]

として定義される。カナダMicrosoft Research MontréalのR Devon Hjelm氏らはInfoMaxをディープラーニングを使った非線形関数を使えるよう拡張し、相互情報量の推定とその最大化を同時に行うDeepInfoMax1)を提唱した。そして獲得された表現が有効であることを示している。

 この相互情報量を最大化するというアイデアは入力と符号間だけでなく、共通の情報を持つと考えられる異なるデータ間や同じデータの異なるビュー間に対しても適用できる。ビューというのは異なる視点や、異なるモダリティ(カメラと深度センサなど)を表す。

 このように異なるデータやビュー間の相互情報量を最大化した場合には、1つのデータにだけ見られる撹乱要素起因の情報(画像における照明条件、視点位置など)を捨てて、共通して見られる情報(物体や環境の状態)を捉える表現を獲得できる。一般に共通して見られる情報の方が有益な場合が多いため、よりロバストで汎用的な表現を獲得することが期待できる。例えば、グーグルDeepMind社のA. van den Oord氏ら2)らは異なる情報間の相互情報量最大化による表現学習としてContrastive Predictive Codingを提唱した。同氏はPixelRNNやWaveNetの提案者としても有名である。彼らは予測問題として過去の履歴の情報と、未来の情報間の相互情報量を最大化するようにすることで表現を獲得することを提案した。

 2つに限らず複数のビュー間の相互情報量最大化をすることで、より共通して表れる表現を獲得できることも示されている3)。この場合、より多くのビューを使うほど、各データと符号間の相互情報量はむしろ減り、それにも関わらずその表現を使ったタスクの性能が向上しているのがみられた。これは、より重要な情報だけを抽出できるようになっているためと考えられる。

対比損失による相互情報最大化

 それではここから、具体的にどのようにして学習されているのかについてみていこう。与えられたデータセット中で、共通の情報を持っていると考えられるデータのペア$(u,v)$を用意する。何が共通かは学習設計者が与える。例えば時系列データにおいて、ある時刻のデータとその直後のデータは共通の情報を持っていると考えられる。画像では画像の一部分のパッチと画像全体は共通の情報を持っていると考えられる(象全体が写っている画像の場合、その一部分のパッチ、例えば大きな耳が写っているパッチと象全体の画像は象という共通の情報を持っている)。また、入力に対して意味を変えないような変換、例えば左右反転や明度変換などを適用する前と適用した後のデータは共通の情報を持っていると考えられる。

 次に、共通の情報を持っているデータのペア$(u, v)$をニューラルネットワークによる符号化器$E_q,E_k$を使って変換してクエリ$q=E_q(u)$とキー$k_{+} =E_k(v)$を得る。また同じデータ集合からランダムにデータをサンプリングし、同じ符号化器$E_k$を適用して変換して$\{k_1,\ldots, k_K\}$を得る。$k_{+}$はポシティブキー、$k_1, \ldots,k_K$はネガティブキーと呼ぶことにする。また、簡略化のために$k_{+}$を$k_0$とし、さきほどの得られたキーとあわせて$\{k_0,k_1, \ldots, k_K\}$というキーの集合を考える。

 これらのクエリとキー集合を使ってクエリとポジティブキー間の相互情報量を最大化する。この最大化に対比損失(Contrastive Loss)を使う。対比損失は$q$が$k_{+}$と近く、それ以外のキー$k_1, \ldots,k_K$と離れている場合に小さくなるような損失関数である。

\[\mathcal{L}_q = - \log \frac{\exp(q \cdot k_{+} /\tau)}{\sum_{i=0}^K \exp(q \cdot k_i / \tau)}\]

ここで$\tau$はハイパーパラメーターであり分布の温度を表す。この損失は$k_{+}$を正解とした(K+1)クラスのSoftmaxを使った分類問題と一緒である。この損失関数の最小化は$q$と$k$間の相互情報量の下限の最大化となることが分かっている。このようにして獲得された符号化器の結果を入力の表現として使うことができる。

MoCo

 この対比損失を使った表現学習は、画像のような高次元空間の中でクエリとキーから成る離散の辞書を作っているようにみなせる4)。この辞書では関係するもの同士は近く、関係しないものは遠く離れるように学習される。この場合重要なのは、クエリは全てのネガティブキーと十分引き離されていることである。実際、学習時に使うネガティブキーの数は増やせば増やすほど表現学習の性能が向上することが分かっている。一般にミニバッチ内の別のサンプルをネガティブキーとして使う場合が多いが、この場合ネガティブキーの数はバッチサイズに制限されてしまう。

 そのため、過去に一度計算されたキーを貯めておき、それをネガティブキーとして使う方法も提案されていた。このアプローチをメモリーバンクとよぶ。この手法の問題点は符号化器が更新されるたびに全てのキーが変わってしまうので、過去に計算済みのキーが本来のキーと大きくずれており、結果として性能が大きく劣化してしまうことである。

 米Facebook社のK. He氏らが提唱したMoCo2)はこの問題を2つのアイデアで解決した。同氏はResNetやMask R-CNNの提唱者としても知られる。MoCoはネガティブキーをミニバッチからではなくキューに貯めたものを使うようにした。キューは毎回の更新時に現在のミニバッチで使ったポジティブキーをネガティブキーとして追加し、一番古いものを捨てる。これにより今の符号化器に似た符号化器で得られたキーを使うようにした。キューの導入によってバッチサイズよりもずっと大きな数のネガティブキーを使えるようになった(実験ではネガティブキーは65536個を使っている)。2つ目はキーの符号化器をクエリの符号化器のモーメンタムで更新するようにし、学習途中のキーの一貫性を保つようにした。具体的にはキーの符号化器のパラメータを$\theta_k$、クエリの符号化器のパラメータを$\theta_q$とした時、$\theta_k$を以下のように更新する。

\[\theta_k \leftarrow m \theta_k + (1 - m) \theta_q\]

 獲得された表現の評価は、この表現を事前学習済みモデルとして様々なタスクを教師あり学習した時の性能で評価される。MoCoで学習したモデルは、ImageNetの教師あり学習で事前学習して得られたモデルを使った場合と9つのタスクで比較した場合、7つのタスクでMoCoの性能が上回り、はじめて教師なし学習による表現学習が教師あり学習による表現学習を上回った。

今後の教師なし表現学習

 教師なし表現学習は画像認識でも少なくとも既存の教師あり表現学習に匹敵する性能を上げるようになってきた。一方で課題がいくつか残っている。

  1つ目はデータを増やすことによる性能向上がまだ見られない点である。もともと教師なし学習の最大のメリットは教師あり学習よりもずっと大きなデータを使えることにあった。現在のモデルではそれだけ多くのデータを扱えるほどの表現力がないという可能性は十分あるが、この場合大きなモデルを大きなデータセットで学習させるという難しさが出てくる。

  2つ目は学習の目的関数のより深い理解である。現在の学習は相互情報量最大化を近似して最適化していると捉えられているが、よりタイトに相互情報量を近似できる推定器を使ったとしても性能は向上せず、それよりも符号化器や推定器の構造の方が重要だと分かってきている。教師なし表現学習においても未知の帰納バイアスが存在しているとみられる5)。教師なし表現学習の技術が確立されたら、汎用な表現を獲得する以外にも、データだけは手に入るような問題やタスクに特化した表現をその場で学習することも増えてくるだろう。

1)R. D. Hjelm, et al., “Learning Deep Representations by Mutual Information Estimation and Maximization,” ICLR 2019, https://arxiv.org/abs/1808.06670
2)A.van den Oord et al.,“Representation Learning with Contrastive Predictive Coding,”
3)Y. Tian et al., “Contrastive Multiview Coding,” https://openreview.net/pdf?id=BkgStySKPB, https://arxiv.org/abs/1906.05849
4)K. He and et al.,“Momentum Contrast for Unsupervised Visual Representation Learning,” https://arxiv.org/abs/1911.05722
5)M. Tschannen and et al.,“On Mutual Information Maximization for Representation Learning,” https://arxiv.org/abs/1907.13625
岡野原 大輔(おかのはら・だいすけ)
Preferred Networks 代表取締役副社長
岡野原 大輔(おかのはら・だいすけ) 2006年にPreferred Infrastructureを共同創業。2010年、東京大学大学院博士課程修了。博士(情報理工学)。未踏ソフト創造事業スーパークリエータ認定。東京大学総長賞。