条件付き計算とは
Conditional Computation
入力ごとにネットワークの一部だけを選択的に計算に使うことで、パラメータ数を増やしても計算コストを抑える設計思想
概要
条件付き計算は、ニューラルネットワークの全パラメータを毎回の計算に使うのではなく、入力の内容に応じて一部のサブネットワークやパラメータだけを選択的に使う設計思想を指す。 モデル全体のパラメータ数を増やして表現力・記憶容量を高めつつ、実際の計算(推論・学習の各ステップ)で使うパラメータ数を抑えることで、パラメータ数当たりの計算コストを抑えられる点が主な狙い。 Mixture of Expertsは、条件付き計算の考え方を専門家サブネットワークの選択という形で具体化した代表的なアーキテクチャ。 どのサブネットワークを使うかを決めるRouter(ゲーティングネットワーク)と組み合わせて実現される。
歴史
条件付き計算という考え方は、2013年頃のYoshua Bengioらによる研究で、ニューラルネットワークの一部のみを確率的に活性化させる手法として論じられたことに遡る。 2017年、Google BrainのShazeerらが論文「Outrageously Large Neural Networks」でMixture of Expertsに条件付き計算を組み合わせ、大規模なスパースモデルとして実用化する道を開いた。