生成モデル
この記事では、機械学習における教師なし学習技術の枝である生成モデルを強化または使用するという共通のテーマを共有する四つのプロジェクトについて説明します。 この記事では、私たちの仕事を説明することに加えて、生成モデルについてもう少し詳しく説明します:それらが何であるか、なぜ重要なのか、そして
OpenAIのコアの願望の一つは、私たちの世界の理解をコンピュータに与えるアルゴリズムと技術を開発することです。あなたが世界についてどれだけ知っているかを忘れるのは簡単です。
: あなたは、それが3D環境、移動、衝突、相互作用するオブジェクト、歩く、話す、考える人々、放牧、飛ぶ、走る、または樹皮の動物、天気、バスケットボールの試合に勝った人、または1970年に起こったことについての言語でエンコードされた情報を表示するモニターで構成されていることを理解しています。
この膨大な量の情報は、原子の物理的な世界やビットのデジタル世界のいずれかで、そこにあり、大部分は簡単にアクセスできます。 唯一の難しい部分は、データのこの宝庫を分析し、理解することができるモデルとアルゴリズムを開発することです。
生成モデルは、この目標に向けた最も有望なアプローチの一つです。 生成モデルを訓練するために、我々は最初にいくつかのドメインで大量のデータを収集します(例えば、何百万もの画像、文章、または音などを考える)。)そして、そのようなデータを生成するためにモデルを訓練します。 このアプローチの背後にある直感は、Richard Feynmanの有名な引用に従います:
“私が作成できないもの、私は理解していません。”
—Richard Feynman
トリックは、我々が生成モデルとして使用するニューラルネットワークは、我々がそれらを訓練するデータの量よりも有意に小さ
生成モデルは、多くの短期的なアプリケーションを持っています。 しかし、長期的には、カテゴリやディメンションなど、データセットの自然な特徴を自動的に学習する可能性があります。
画像を生成する
これを例でより具体的にしましょう。 ImageNetデータセットに1.2万枚の画像など、画像の大規模なコレクションがあるとします(ただし、これは最終的にはインターネットやロボットからの画像や 各画像のサイズを幅と高さが256になるように変更すると(一般的に行われているように)、データセットは1つの大きな1,200,000x256x256x3
(約200GB) ここでは、このデータセットからいくつかの例の画像があります:これらの画像は、私たちの視覚的な世界がどのように見えるかの例であり、これらを”真のデータ分布からのサンプル”と呼んでいます。
これらの画像は、私たちの視覚的な世界がどのように見えるかの例であり、私たちはこれらを”真のデータ分布からのサンプル”と呼んでいます。 このような画像をゼロから生成するために訓練したい生成モデルを構築します。 具体的には,この場合の生成モデルは画像を出力する一つの大きなニューラルネットワークであり,これらを”モデルからのサンプル”と呼ぶ。そのような最近のモデルの1つは、Radford et al. (以下に示す)。 このネットワークは、一様分布から引き出された100個の乱数を入力として受け取り(これらを赤のコードまたは潜在変数と呼びます)、画像を出力します(こ コードが段階的に変更されると、生成された画像も同様に変更されます—これは、モデルがいくつかの例を暗記するのではなく、世界がどのように見えるか
ネットワーク(黄色)は、deconvolutional layer(畳み込み層の逆)、fully connected layerなどの標準的な畳み込みニューラルネットワークコンポーネントで構成されています。:
DCGANはランダムな重みで初期化されるため、ネットワークに接続されたランダムなコードは完全にランダムな画像を生成します。 しかし、ご想像のとおり、ネットワークには微調整できる数百万のパラメータがあり、目標は、ランダムコードから生成されたサンプルを学習データのように 別の言い方をすれば、モデル分布が画像空間の真のデータ分布と一致するようにしたいと考えています。
生成モデルのトレーニング
新たに初期化されたネットワークを使用して、異なるランダムコードで始まるたびに200個の画像を生成したとします。 問題は、ネットワークのパラメータをどのように調整して、将来的にはもう少し信じられるサンプルを生成するように奨励する必要があるかです。 私たちは単純な監視された設定ではなく、200個の生成された画像に明示的に希望するターゲットを持っていないことに注意してください。 この問題を回避する1つの巧妙なアプローチは、生成的敵対ネットワーク(GAN)アプローチに従うことです。 ここでは,入力画像が実数であるか生成されているかを分類しようとする第二の判別器ネットワーク(通常は標準畳み込みニューラルネットワーク)を導入した。 たとえば、200個の生成された画像と200個の実画像を判別器に供給し、2つのソースを区別するための標準的な分類器として訓練することができます。 しかし、それに加えて、ここではトリックです—私たちはまた、我々はその200サンプルを少し判別のために混乱させるために発電機のパラメータを変更す 判別子は実際の画像と偽の画像を区別しようとしており、ジェネレータは判別子にそれらが本物であると思わせる画像を作成しようとしています。 最終的に、発生器ネットワークは、判別器の実画像と区別できない画像を出力しています。
これらの分布を照合する方法は他にもいくつかありますが、以下で簡単に説明します。 しかし、我々はそこに着く前に、以下はあなたのトレーニングプロセスのための視覚的な感覚を与えるために生成モデルからのサンプルを示す二つのア
どちらの場合も、ジェネレータからのサンプルはノイズとカオスから始まり、時間の経過とともに収束してより妥当な画像統計が得られます:p>
これはエキサイティングです—これらのニューラルネットワークは、視覚的な世界がどのよう これらのモデルは通常約100万個のパラメータしか持たないため、ImageNetで訓練されたネットワークは200GBのピクセルデータを100MBの重みに(損失なく)圧縮しなければならない。 たとえば、近くのピクセルが同じ色を持つ可能性が高いこと、または世界が水平または垂直のエッジ、または異なる色の塊で構成されていることを学 最終的には、モデルは、より多くの複雑な規則性を発見することができます:背景、オブジェクト、テクスチャの特定の種類があること、それらが特定の可能性の高い配置で発生すること、またはそれらがビデオなどで時間の経過とともに特定の方法で変換されること。数学的には、真のデータ分布\(p(x)\)からのサンプルとして、例\(x_1,\ldots,x_n\)のデータセットを考えます。 下の画像の例では、青い領域は、高い確率で(あるしきい値を超える)実際の画像を含む画像空間の部分を示し、黒い点はデータポイントを示します(それぞれ ここで、私たちのモデルは、単位ガウス分布(赤)から点を取り、(決定論的)ニューラルネットワーク—私たちの生成モデル(黄色)を介してそれらをマッピングすることに 私たちのネットワークはパラメータ\(\theta\)を持つ関数であり、これらのパラメータを微調整すると、生成された画像の分布が微調整されます。 次に、我々の目標は、真のデータ分布と密接に一致する分布を生成するパラメータ\(\theta\)を見つけることです(たとえば、kl発散損失が小さいことによって)。\(\theta\) したがって、緑色の分布がランダムに始まり、その後、パラメータ\(\theta\)を繰り返し変更して、青色の分布とよりよく一致するように引き伸ばして絞ることを想像することができます。
生成モデルへの三つのアプローチ
ほとんどの生成モデルは、この基本的な設定を持っていますが、詳細が異なります。 ここでは、バリエーションの感覚を与えるための生成モデルアプローチの3つの一般的な例を示します:
- 生成敵対ネットワーク(GANs)は、すでに上で説明したように、トレーニングプロセスを二つの別々のネットワーク間のゲームとして提起します。 判別子が2つの分布の差に気づくたびに、ジェネレータはパラメータをわずかに調整して、最後に(理論的には)ジェネレータが真のデータ分布を正確に再現し、判別子が無作為に推測して差を見つけることができなくなるまで、それを遠ざけるようにします。
- 変分オートエンコーダー(Vae)は、データの対数尤度の下限を最大化している確率的グラフィカルモデルの枠組みの中でこの問題を形式化することを可能に
- PixelRNNなどの自己回帰モデルは、代わりに、前のピクセル(左と上)が与えられた個々のピクセルの条件付き分布をモデル化するネットワークを訓練します。 これは、画像のピクセルをchar-rnnに差し込むのと似ていますが、Rnnは1Dの一連の文字ではなく、画像上で水平方向と垂直方向の両方で実行されます。
これらのアプローチにはすべて長所と短所があります。 例えば、変分オートエンコーダーは、潜在変数を持つ洗練された確率的グラフィカルモデルにおいて、学習と効率的なベイズ推論の両方を実行することを可能にする(例えば、最近の比較的複雑なモデルのヒントについては、DRAW、またはAttend Infer Repeatを参照)。 しかし、生成されたサンプルはわずかにぼやけている傾向があります。 GANsは現在、最も鮮明な画像を生成しますが、不安定なトレーニングダイナミクスのために最適化することはより困難です。 PixelRNNは非常に単純で安定した学習プロセス(softmax損失)を持ち、現在は最高の対数尤度(つまり、生成されたデータの妥当性)を与えます。 しかし、サンプリング時には比較的非効率的であり、画像に単純な低次元コードを容易に提供することはできません。 これらのモデルはすべて研究の活発な分野であり、我々は彼らが将来どのように発展するかを見て熱望しています!
私たちの最近の貢献
私たちはOpenAIの生成モデルに非常に興奮しており、最先端を進める4つのプロジェクトをリリースしました。 これらの貢献のそれぞれについて、我々はまた、技術的なレポートとソースコードをリリースしています。
Gan(コード)の改善。 第一に、上記のように、GANsは他の方法とは異なり、非常にきれいで鮮明な画像を生成し、これらのテクスチャに関する貴重な情報を含むコードを学習する しかし、GANsは二つのネットワーク間のゲームとして定式化されており、それは重要です(そしてトリッキー!)それらをバランスに保つために:例えば、それらは解の間で振動することができ、または発電機は崩壊する傾向がある。 今回、Tim Salimans、Ian Goodfellow、Wojciech Zarembaたちの研究グループは、GANトレーニングをより安定させるためのいくつかの新しい手法を導入しました。 これらの手法により、Ganをスケールアップし、素敵な128x128
ImageNetサンプルを取得できます:
Our CIFAR-10 samples also look very sharp – Amazon Mechanical Turk workers can distinguish our samples from real data with an error rate of 21.3% (50% would be random guessing):
In addition to generating pretty pictures, we introduce an approach for semi-supervised learning with GANs that involves the discriminator producing an additional output indicating the label of the input. このアプローチは私達が非常に少数の分類された例の設定のMNIST、SVHNおよびCIFAR-10の最新式の結果を得ることを可能にする。 例えば、MNISTでは、完全に接続されたニューラルネットワークを持つクラスごとに99.14%の精度を達成し、60,000のラベル付き例をすべて使用して完全に教師付き 標識された例は実際に得るのが非常に高価であり得るので、これは非常に有望である。
生成敵対ネットワークは比較的新しいモデル(わずか二年前に導入)であり、我々はさらにトレーニング中にこれらのモデルの安定性を向上させるには、よ
Vae(コード)を改善します。 この研究では、Durk KingmaとTim Salimansは、変分推論の精度を向上させるための柔軟で計算的にスケーラブルな方法を導入します。 特に、ほとんどのVaeは、これまでのところ、すべての潜在変数が独立している粗近似事後を使用して訓練されています。 最近の拡張では、各潜在変数をチェーン内の他の潜在変数に調整することによってこの問題に対処していますが、これは導入された逐次依存関係のた 逆自己回帰フロー(IAF)と呼ばれるこの研究のコア貢献は,以前の研究とは異なり,豊富な近似事後の計算を並列化し,それらをほぼ任意に柔軟にすることを可能にする新しいアプローチである。私たちは、いくつかの例を示しています32x32
下の画像のモデルからの画像サンプル,右側にあります. 左側には、比較のための描画モデルからの以前のサンプルがあります(バニラVAEサンプルはさらに悪化し、よりぼやけて見えます)。 ドローモデルはわずか一年前に出版され、生成モデルの訓練における急速な進歩を再び強調しています。P>
infogan(コード)。 今回、Peter Chenたちは、InfoGANを導入した。InfoGANは、画像の解かれた解釈可能な表現を学習するGANの拡張である。 通常のGANは、モデル内のデータ分布を再現するという目的を達成しますが、コード空間のレイアウトと構成はあまり指定されていません。 InfoGANは、表現変数の小さなサブセットと観測の間の相互情報を最大化することを含む新しい目的を追加することによって、この空間に追加の構造を このアプローチは非常に顕著な結果を提供します。 たとえば、下の3D面の画像では、コードの1つの連続した次元を変更し、他のすべてを固定します。 提供された5つの例(各行に沿って)から、コード内の結果の寸法が解釈可能な寸法をキャプチャし、モデルがカメラアングル、顔のバリエーションなどがあ、これらの機能が存在し、重要であることを言われていない:
We also note that nice, disentangled representations have been 以前に達成された(例えば、KULKARNI et al.しかし、これらのアプローチは追加の監督に依存していますが、私たちのアプローチは完全に教師なしです。
次の二つの最近のプロジェクトは、強化学習(Rl)の設定(OpenAIで焦点の別の領域)にありますが、それらは両方とも生成モデルコンポーネントを含みます。
ベイジアンニューラルネットワーク(コード)を介した深い強化学習における好奇心駆動探査。 高次元および連続的な空間における効率的な探査は、現在、強化学習における未解決の課題である。 彼らはランダムにやりがいのある状況につまずくまで、効果的な探査方法がなければ、私たちのエージェ これは多くの単純なおもちゃのタスクでは十分ですが、ロボット工学で一般的なように、これらのアルゴリズムを高次元の行動空間を持つ複雑な設定に適用したい場合は不十分です。 今回、Rein Houthooftたちは、生成モデルの不確実性を用いた探査の実用的なアプローチであるVIMEを提案した。 VIMEはエージェントを自発的にさせる;それは積極的に意外な状態行為を追求する。 我々は、VIMEは、ポリシー検索方法の範囲を改善することができ、スパース報酬(エージェントが任意の指導なしで移動プリミティブを学習しなければならない例)と、より現実的なタスクに大幅な進歩を遂げることを示しています。P>
最後に、jonathan hoたちが模倣学習のための新しいアプローチを提示する、生成的敵対的模倣学習(code)というボーナスプロジェク ジョナサン-ホーは、夏のインターンとしてOpenAIで私たちに参加しています。 彼はスタンフォード大学でこの仕事のほとんどをしましたが、私たちはRlへのGANsの関連した非常に創造的なアプリケーションとしてここに含 標準の強化学習設定では、通常、エージェントの望ましい動作を記述する報酬関数を設計する必要があります。 しかし、実際には、これは時々、詳細を正しく取得するために高価な試行錯誤のプロセスを伴うことができます。 対照的に、模倣学習では、エージェントは例のデモンストレーション(例えば、ロボット工学のテレオペレーションによって提供される)から学習し、報酬関数を設計する必要がなくなります。div>
一般的な模倣アプローチには、最初に報酬関数を学習し、その報酬でrlを実行する二段階のパイプラインが含まれます。 このようなパイプラインは遅くなる可能性があり、間接的であるため、結果のポリシーがうまく機能することを保証することは困難です。 この作業は、GANsへの接続を介してデータからポリシーを直接抽出する方法を示しています。 その結果、このアプローチは、AntやHumanoidなどのハードOpenAIジム環境での専門家のデモ(報酬なし)からポリシーを学ぶために使用することができます。
今後
生成モデルは急速に進歩している研究分野です。 これらのモデルを進め、トレーニングとデータセットをスケールアップし続けるにつれて、最終的には完全にもっともらしい画像やビデオを描写するサン これは、オンデマンドで生成されたアートや、”make my smile wider”などのPhotoshop++コマンドなど、複数のアプリケーションで使用されることがあります。 付加的な現在知られている適用は分類されたデータが高価である場合のイメージのdenoising、inpainting、超解像、構造化された予測、補強学習の調査、およびニューラルネットワークの前訓練を含んでいる。
しかし、この作業のより深い約束は、生成モデルを訓練する過程で、コンピュータに世界とそれが何で構成されているのかを理解することです。
Leave a Reply