東京大学松尾・岩澤研究室 鈴木雅大氏に聞く
第2回 世界すべてをモデル化することの難しさ
深層生成モデルとは何か
先ほどお話に出てきた深層生成モデルとはどういうものでしょうか。
鈴木 先ほど申し上げたように、ニューラルネットワークが階層的な構造になっているのがディープラーニングの重要な点です。階層がネットワークアーキテクチャとして構造の中に入っている。つまり、データを階層的に認識したり生成するので「ディープ(深層)」と呼ばれるわけです。一方、生成モデルという以前からあった研究領域では、比較的単純な確率分布を使ってデータの分布を学習して、データを生成したりデータから潜在変数を求めることが研究されていました。しかし、データが複雑になると単純な分布では捉えきれないという問題があり、画像など複雑なデータに応用することができませんでした。それがディープラーニングが出てきてから、複雑なデータにも対応できる生成モデルが発展しました。多層ニューラルネットワークによってデータの分布を捉えるように学習することで、画像や動画なども生成できるようになったわけです。先ほどお話したVAEでは、学習後にデコーダを画像などを生成するモデルとして用いることができます。
拡散モデルも深層生成モデルの手法の1つと言われていますが、拡散モデルについてどうしてもイメージしにくいのですが。
鈴木 誤解を恐れず非常に単純化して説明すると、まず画像があって、画像にノイズを何回も入れ続けるんですね。ノイズを何回も入れつづけると最終的に完全なノイズになります。そして今度は、その完全なノイズを元の画像に復元していくわけです。つまり、画像から一旦ノイズにして、ノイズからまた画像に戻す。ただし、拡散モデルがオートエンコーダと違うところは、ノイズを入れたりノイズから復元する処理を1回じゃなくて何回も何回も繰り返していくところにあります。あと拡散モデルと呼ばれていますが、画像からノイズに移る方が拡散過程で、ここについては通常学習しません。実際に学習しているモデルは完全なノイズから何回も繰り返して元に戻す逆拡散過程の部分です。そこを使ってわれわれは画像生成をしているわけです。
戻し方を学んでいくわけですね。
鈴木 そうです。どうノイズから戻すかを学習する。
拡散モデルでノイズをいっぱい入れて、完全なノイズになった画像を紹介されていましたけど、あれは抽象化ともまた違うのでしょうか。1回抽象的にして具体的に戻すということなのかと思ったのですが。
鈴木 そう捉えていただいても問題ないと思います。オートエンコーダと違うのは、オートエンコーダの場合には、画像があったときに、潜在変数でそのサイズ(次元)をぎゅっと縮小するんですよ。縮小した後に元のサイズに戻すことをしているんですけど、拡散モデルの場合、画像も拡散過程によって得られたノイズもサイズは基本一緒なんです。そういう意味で、オートエンコーダのように圧縮された特徴が得られているかというと、必ずしもそういうわけではない。
拡散モデルにおいて、自然言語処理に用いられてGPTのような高度な大規模言語モデル開発の契機になったトランスフォーマー(Transformer)はどう関係してくるのでしょうか。
鈴木 ノイズから元に戻すときに、何回も戻すと言いましたが、その1回の処理を多層ニューラルネットワークで学習します。そのネットワークとしてトランスフォーマーが使われることがあるということです。トランスフォーマーのネットワークによってちょっと画像からノイズが除去されるんですね。要するに少しノイズが入ってないやつに戻るんですけど、何回も何回もそれを繰り返します。イメージとしてはトランスフォーマが何回も何回も入ってくる感じです。
トランスフォーマーを使うということは、スケール則と関連していて、データの量次第で学習の効果が上がるからということですか。
鈴木 おっしゃる通りです。トランスフォーマーを用いることで、大規模なデータ、特に動画生成の話になってくるとより効果的になると思います。