こうした離散表現は元の連続量を近似しているため情報を大きく失っているように思えるが、組み合わせることで驚くほど元の情報を正確に保存することができる。なぜ離散値で表現しても元の情報を復元できるかというと、多様体仮説にあるように、画像データ全体は画像より少ない次元数を持つ多様体から生成されていると考えられ、各離散値に対応する埋め込みベクトルがこれらの多様体上の領域を代表点として十分カバーし近似できているためと考えられる。
一方で、離散値列の代表は言語データであり、各単語が離散値であり文は離散値列である。こうした言語データはGPT-3を代表とするようにTransformerを使った自己回帰モデルによる生成モデルを学習することでデータ生成や補間、条件付け生成だけでなく様々なタスクに有効な特徴を獲得することができると示されてきた。
さきほど連続量を持ったデータも情報をほとんど失わずに離散値列に変換できることを示した。以降では言語データと同じようにみなせるということでこれらの離散値をトークン、そして離散値列をトークン列とよぶことにする。そしてこれらのトークン列の生成モデルを言語データの生成と全く同じようにTransformerを使った自己回帰モデルを使って学習できる。生成されたトークン列は復号化器でほぼ損失の無い形で元の形に戻せる。この連続量をトークン列にして生成モデルを学習し、元の連続量に戻すというアプローチは画像2)、音声/音楽3)、動画4)生成などに適用され、元のデータの生成モデルを実現できることが示された。しかも高次元データの場合、連続量を直接扱う生成モデルと比べ、トークン化した場合、生成品質やその多様性、条件付け生成などで大きく成功している。なぜ成功しているのかについて以降で解説する。
離散表現には多くの利点がある
離散表現を使った生成モデルには多くの利点がある。ここでは代表的な5つの利点を挙げよう。
1つ目は生成モデルを学習しやすい。連続表現を使った生成モデルの学習は一般に難しい。その理由は観測していないデータを列挙することが難しいためである5)。最尤推定やエネルギーモデルでは観測データの尤度を上げ(エネルギーを下げ)、観測していないデータの尤度を下げる(エネルギーを上げる)必要がある。高次元データでは観測していないデータを列挙することが不可能であり、高次元の呪いでも説明がつくように、ほんの一部の領域が尤度が高くなっていたとしてもそれを見つけることは難しい。
これに対し、離散表現+自己回帰モデルを使った場合は離散値の種類数は多くても数百から数千程度なので全列挙することができ、全ての非観測事例を列挙して、それらの尤度を明示的に下げることができる。さらに不確実性も離散表現の方が自然に扱え、可能性のある離散値に確率を割り当てることは可能であるが、高次元の連続表現でこうした確率を正確に割り当てることは難しい。
2つ目に生成モデルの正則化として有効である。生成モデルを学習する際、誤って尤度が高いデータが発生してしまわないよう、尤度が高い(エネルギーが低い)領域の容量に制限をかけておくことが有効であり、疎な表現を使ったり離散値を使うことで制限できる。
3つ目にモダリティの異なる様々なデータを統合できる。例えばDALL-E2)では、キャプション付き画像データを使ってテキストで条件付けして画像を生成するモデルを考えている。テキストと画像を統一的な生成モデルで扱うことは難しいが、画像をトークン列に変換しておき、テキストと画像のトークン列をつなげた1つのトークン列に対して生成モデルを学習する。これによってキャプションに対応する画像生成が実現される。
4つ目は効率的な保存が実現できる。トークンは疎なベクトルとみなすことができ、連続ベクトルを保存するのと比べて非常にコンパクトに保存しておける。例えば文献2)は256x256のフルカラー画像を、32*32でそれぞれが8192(213)種類のトークンに離散化しており、無圧縮で192Kバイト(=256*256*3byte)の画像を1.7Kバイト(=32*32*13/8byte)で保存できる。
5つ目は自己回帰モデルなど自身の予測を条件付けに用いて繰り返し予測を行う場合のDriftingを防ぐことができる。高次元で予測を繰り返していく時、各予測に誤差が含まれるため、長い時間予測を行う場合、予測がずれてくる現状が起きる。これに対し離散化されている場合は高次元由来の誤差が含まれにくいため、長期間予測しても誤差が大きくならず、大きく間違えることが少ない。
離散表現は学習が難しい
一方で離散化は学習で様々な問題がある。ニューラルネットワーク(NN)の学習は誤差逆伝搬法を使い、その際には用いる計算はすべて微分可能で勾配が消失しないことが求められる。一方で離散化処理は微分が計算できない/もしくは消失する。例えば離散化処理の例として連続なスカラー値$x$を受け取り、その符号が正なら$+1$、負なら$-1$を返す$\text{sign}(x)$という関数を考えてみよう。この関数の微分は$x \neq 0$では$0$、$x=0$で$+\infty$となりすべての位置で微分が消失するか発散する。
この問題に対して大きく2つ方法がある。Straight Through Estimator(STE)は前向き処理はそのまま離散化処理を行い、誤差逆伝搬時は離散化処理を省略し、そのまま誤差を伝搬させる。この場合、正しい勾配を使わず学習するが多くの問題で学習できることがわかっており、前述のVQ-VAEもSTEを利用している。また、シグモイド関数を使った学習で射影勾配法を適用した場合、誤差逆伝搬時はシグモイド関数がキャンセル消去されSTEと同じ形をとり、離散化処理がシグモイド関数を急峻にしたものと考えるとSTEは正しい射影勾配法を実現しているとみなせる6)。
もう1つの方法がGumbel Softmaxである。Gumbel SoftmaxはSoftmaxで定義する確率分布からのサンプリングを近似し、変数変換トリックを使った微分を可能としながら、温度パラメータを下げていく時に離散化処理に一致するような関数である。学習初期には温度を高くし、学習終盤に温度を$0$に近づけていくことで学習中は勾配を発生させながら離散化処理を実現する。
離散表現と言語
離散表現は詳細を捨てた抽象的な表現とみなすこともでき、究極的には言語データのような抽象的な思考や推論の実現につながると考えられる。まだ離散表現上での操作や計算は発展途上だがグラフNNや注意機構などを組み合わせていき、離散表現上で様々な処理ができるようになることが期待される。
2)A. Ramesh et al.,“Zero-Shot Text-to-Image Generation(DALL-E),” https://arxiv.org/abs/2102.12092
3)P. Dhariwal et al.,“Jukebox: A Generative Model for Music,” https://arxiv.org/abs/2005.00341
4)W. Yan et al.,“VideoGPT: Video Generation using VQ-VAE and Transformers,” https://arxiv.org/abs/2104.10157
5)Y. LeCun,“The Energy-Based View of Self-Supervised Leanring,” GTC 2021, https://drive.google.com/file/d/1tHIYoh_2ZRGOvwPGtSEact520ABEgV1R/
6)“Optimizing with constraints:reparametrization and geometry,”https://vene.ro/blog/mirror-descent.html
Preferred Networks 代表取締役 最高執行責任者
