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

 深層学習(ディープラーニング)はタスク毎に異なるネットワークアーキテクチャを使ってきた。

 画像認識であればCNN(畳み込みニューラルネットワーク)、自然言語処理であればRNN(回帰結合型ニューラルネットワーク)、表データや座標など入力が構造を持たないようなタスクに対してはMLP(多層パーセプトロン)、化合物などグラフ構造を持つ場合はグラフNN(ニューラルネットワーク)といったようにだ。

著者の岡野原大輔氏
著者の岡野原大輔氏
[画像のクリックで拡大表示]

 こうしたネットワーク構造は問題が持つ特徴(局所性、制約、入力変換に対する同変性、不変性)を捉えており、問題に対する事前知識をモデルに埋め込む帰納バイアスとして有効である。帰納バイアスは少ない学習データで汎化するのに重要な役割を果たしている。

 しかし、最近になって、Transformerと呼ばれるネットワークアーキテクチャが様々なタスクに広く適用することができ、それぞれの分野で最高精度またはそれに近い精度を達成できることが分かってきている。Transformerは本連載の2018年10月号、2019年10月号でも紹介している。

 Transformerは機械翻訳の分野で提案され、従来のRNNベースの手法を上回る性能を達成した。他の自然言語処理でも適用されるようになり、最近ではBERTやGPT-3など大量の言語データを使った事前学習においてもTransformerやそれに類したモデルが有効であると分かってきた。グラフNNもTransformerが使っている注意機構との相性が良く、広く使われていた。そして、最後に残っていた大きな画像認識分野においても、Transformerを使って、従来使われていたCNNのResNetやEfficientNetなどと並ぶ性能が達成できてきたと報告されている。

 Transformerとは何か、どのような改善がなされているか、今後Transformerが全タスクを席巻していくのかについてみていこう。

Transformerとは

 はじめにTransformerは、どのようなネットワークアーテクチャなのかについておさらいしよう。入力は$m$個の要素の集合$\mathbf{x}_1,\mathbf{x}_2,\mathbf{x}_3 \ldots,\mathbf{x}_m$から成る(太字は列ベクトルとする)。自然言語処理では各単語から求められた特徴ベクトルであり、グラフ問題では各頂点、画像では画像パッチ毎に求められた特徴ベクトルや検出した物体などが対応する。

 Transformerは注意機構を使って自分の計算結果から必要な情報を読み取る自己注意機構を利用する。具体的には学習可能な行列$W^Q$、$W^K$、$W^V$を用意し、要素毎にクエリ$\mathbf{q}_i= \mathbf{x}_i ^T W^Q$、キー $\mathbf{k}_i = \mathbf{x}_i^T W^K$、値$\mathbf{v}_i = \mathbf{x}_i^TW^V$を計算する。これら行列は全ての位置で共通である。次に、$i$番目の要素がどの位置から値を読み取るかを決めるため、クエリとキー間の内積$\mathbf{q}_i^T\mathbf{k}_j$を計算する。内積が大きい値であるほど、その位置から情報を読み取ることを表す。そして正規化として内積に読み取り先(先程の添字$j$)にわたってSoftmax関数を適用し、確率のように重みは非負かつ合計値が$1$になるように正規化しておく。また、内積の大きさはランダムなガウシアンで初期化したベクトル間の場合、次元数の平方根に比例するので、内積をキーの次元数$d_k$の平方根で割っておく工夫が、実用上重要である。まとめると、$i$の位置で$j$の位置から情報を読取る重みは

\[ a_{i, j} = \text{softmax}(\mathbf{q}_i^T \mathbf{v}_j / \sqrt{d_k}) \]

と計算される。softmaxは添字$j$に沿って適用される。そして、重み$a_{i,j}$に従って各値を足し合わせた$\mathbf{z}_i = \sum_j a_{i, j}\mathbf{v}_j$を位置$i$の計算結果とする。

 従来のネットワークでは情報の流れ方は事前に設計した通りにしか流れないが、(自己)注意機構では入力データに応じて流れ方を変えることができる。さらに、遠距離の情報も必要があれば1ステップで読み取ることができる。もしある位置の情報がその後の処理に重要であれば、その要素との内積を大きくするように、クエリとキーが更新される。

 上記の操作は全て行列積と要素毎の操作の組み合わせで

\[ Z = \text{softmax}(Q^T K/\sqrt{d_k})V \]

のように計算することができる。ここで$Q, K,V$はそれぞれクエリ、キー、値のベクトルを列毎に並べて作られた行列である。GPUやディープラーニング向けアクセラレーターが得意とする行列積を使って実現するため、計算効率も高い。このような計算を複数並列に行い、それらの結果を統合するマルチヘッドを使う場合が一般的である。

 これらの計算において、各要素がどの位置にあるのかという情報は考慮されていない。位置を考慮するために、位置情報を特徴ベクトルに符号化しておき利用する。

 Transformerはこの自己注意機構を使った符号化器(encoder)と復号化器(decoder)から成る。符号化器は複数層からなり、入力を自己注意機構を使って符号ベクトルに変換しておく。復号化器は自己注意機構に加えて、通常の注意機構を使って符号化器が作った情報を読み込み、処理をしていく。

Transformerの各分野への広がり

 前述のようにTransformerは自然言語処理で最初に広く使われるようになった。それが2020年に入ってTransformerを使ったモデルが画像分類や、物体検出などでもCNN(ResNet,EfficientNet)に匹敵する性能を達成するようになってきた。

 例えば、物体検出においてはDETR1)とよばれる手法が、物体検出のSOTAの1つであるFaster R-CNNに匹敵する性能を達成し、また物体と背景全てをセグメンテーションするpanopticセグメンテーションも同様にして処理することができることを示した。DETRの速度はCNNを使った手法にまだ大きく劣っているが、後述するような速度面の工夫が適用され今後改善されることが期待されている。

 画像分類もVision Transformer2)とよばれる手法が登場した(図1)。これは画像をサイズが16x16のパッチに分割し、それぞれのパッチをMLPで特徴ベクトルに変換した後にTransformerの符号化器のみ利用し、その結果をMLPで読み取り分類する。あたかも16x16パッチを単語に置き換え、その単語列から画像が何であるかを分類しているかのようなものだ。訓練データ数が少ない場合はCNNベースの手法が勝っているが、訓練データ数が大きくなり、帰納バイアスの影響が少なくなってくるとTransformerを使った手法が精度面ではほぼ匹敵する性能を達成すると報告されている。さらに計算効率が高いことから、事前学習コストはCNNベース手法の1/4に抑えられることが報告されている。

図1 Vision Transformerのネットワークアーキテクチャ
図1 Vision Transformerのネットワークアーキテクチャ
画像パッチ毎に特徴を計算した後にTransformerの符号化器で分類する。(図:A. Dosovitskiy et al., "An Image is Worth 16x16 Words: Trans-formers for Image Recognition at Scale," https://arxiv.org/abs/2010.11929より引用)
[画像のクリックで拡大表示]

 また、元々可変個の集合を扱うのが得意なため、グラフ情報や点群情報、複数の物体を扱うのにも適しており、Transformerや自己注意機構を使った手法が多くの最高精度を達成するようになっている。

Transformerの効率改善

 Transformerの大きな問題は計算量である。入力がN個の要素から成る場合、それぞれの要素と他の全ての要素との内積や重みを計算する必要があるため、計算量は$\mathrm{O}(N^2)$かかってしまう。CNNやRNNは局所的な接続に限定することで計算量を$\mathrm{O}(N)$に抑えられている。

 この計算量を減らすための研究も近年多く報告されている。代表的なBig Bird3)は注意対象を疎なランダム位置、局所的な周辺情報、全位置が注意対象であるルーティングのような役割を持つ定数個の特殊な要素を組み合わせることで計算量を$\mathrm{O}(N)$に抑えながら、Transformerと同じ表現力を持つことができ、実験結果としても性能はほぼ匹敵している。数千や数万といった長い系列の遠距離の関係を扱うことができ、遺伝子配列DNAの遺伝子発現を調整するプロモーター領域をほぼ完璧に予測できるようになっている。

 また、Transformerを簡略化する提案もされている。例えばLambdaNetwork4)は入力全体で計算した特徴ベクトルを全ての要素に適用し、位置依存の処理は限定することで全体の計算効率を改善しつつ、表現力などを高めている。Attention Free Transformer(AFT)はヘッド数を次元数と一緒にし、各ヘッドが1次元しか対応しないようにすることで、計算を要素ごとの演算にできるようにし、キーと値間の計算を先にすることで計算量を線形に抑えることができている。このようにした場合も同じ性能を達成できると報告している5)

全てのアーキテクチャがTransformerになるのか

 ここまでみたようにTransformerは自然言語処理では既存手法を上回り、他分野でも広く使われ、画像認識などでは学習データが多く存在する場合に匹敵する性能が達成できることが分かっている。それでは今後全ての分野でTransformerが使われるようになるのだろうか。

 帰納バイアスの観点からすると、各タスクにより特化したアーキテクチャを利用したほうがTransformerのような汎用のモデルを使うよりも汎化性能が高く、また最適化もしやすいだろう。しかし、一つのアーキテクチャで多くの分野が解けるようになる利点はいくつかある。

 1つ目はTransformerに対し、個別に開発されているアーキテクチャよりも多くの研究開発投資がなされることで急速に改善され、それぞれの専用モデルの性能を上回る可能性である。計算機においても専用機の性能を汎用機が上回ることが多くあったが同じことが起きる可能性がある。

 2つ目はTransformerに特化したようなハードウエアなどが登場してくる可能性である。個別タスク毎に専用アクセラレーターを作った場合、市場は限られているがTransformerであれば多くのタスクに使えるため市場は大きく、開発投資を回収できる可能性がある。

本記事はロボットとAI技術の専門誌『日経Robotics』のデジタル版です
本記事はロボットとAI技術の専門誌『日経Robotics』のデジタル版です

 現段階では、個別のアーキテクチャが勝つか、Transformerがさらに発展し全分野を席巻するか断定できない状況である。さらにはTransformerが発見されたのはたった3年前なので全く別のモデルが登場してくる可能性がある。今後の動きに注目が必要である。

1)N. Carion et al.,“End-to-End Object Detection with Transformers,” ECCV 2020.
2)“An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale,” ICLR 2021 under review, https://openreview.net/forum?id=YicbFdNTTy
3)M. Zaheer et al.,“Big Bird: Transformers for Longer Sequences,” https://arxiv.org/abs/2007.14062, NeurIPS 2020 accepted.
4)“LambdaNetworks: Modeling long-range Interations without Attention,” ICLR 2021 under review, https://openreview.net/forum?id=xTJEN-ggl1b
5)“An Attention Free Transformer,” ICLR 2021 under review, https://openreview.net/forum?id=pW--cu2FCHY
岡野原 大輔(おかのはら・だいすけ)
Preferred Networks 代表取締役 最高執行責任者
岡野原 大輔(おかのはら・だいすけ) 2006年にPreferred Infrastructureを共同創業。2010年、東京大学大学院博士課程修了。博士(情報理工学)。未踏ソフト創造事業スーパークリエータ認定。東京大学総長賞。