
イリヤ・サツケヴァー | OpenAIは大規模モデル学習によってすでにAGIを達成している
OpenAIで過去1年間に行った研究の一部についてお話しします。これはその一部で、メタ学習とセルフプレイに焦点を当てています。私が非常に好きな2つのトピックです。しかし、これはより一般的な関心を持つ聴衆向けの話だと言われましたので、深層学習が実際になぜ機能するのかについて少し話すことから始めたいと思います。
深層学習が機能する理由は自明ではありません。なぜ機能するべきなのか自明ではありません。そこで、完全に明白ではない視点を提供したいと思います。
数学的に証明できることの1つは、一般化する最良の方法は、データを説明する最良の短いプログラムを見つけ、それを使って予測を行うことです。これよりも優れた方法はないことが証明できます。
機械学習について考えるとき、概念クラス、つまりデータに基づいて何を探しているのかを考える必要があります。最良の短いプログラムを探しているなら、それ以上に一般化することは不可能です。これは証明することができ、その証明はそれほど複雑ではありません。
基本的な直感は、存在し得るどんな規則性も短いプログラムとして表現できるということです。わずかに短いプログラムでは圧縮できないデータの断片は、完全にランダムです。
したがって、短いプログラムが一般化する最良の方法であることは間違いありません。問題は、データを説明する最良の短いプログラムを見つけることが、少なくとも今日の知識では不可能だということです。最良の短いプログラムを見つける計算問題は、実際には扱いづらく、理論的には決定不能です。
では、短いプログラムの次に良いものは何でしょうか。それは小さな回路です。小さな回路も、短いプログラムと同様に非自明な計算を実行できるからです。本当に深くて幅広い回路、つまり何千層もあって何百万ものニューロンがある回路なら、内部で様々なアルゴリズムを実行できます。短いプログラムに近づきます。
そして非常に幸運なことに、データが与えられたときに最良の小さな回路を見つける問題は、バックプロパゲーションで解くことができます。
つまり、要するにデータを説明する最良の小さな回路を見つけることができるのです。小さな回路はプログラムのようなものですが、完全にはそうではありません。少し劣ります。100ステップ以下、50ステップで変換する最良の並列プログラムを見つけるようなものです。そこから一般化が生まれるのです。
なぜバックプロパゲーションがデータが与えられたときに最良の小さな回路を見つけるのに成功するのか、正確にはわかっていません。それは謎です。そして非常に幸運な謎です。過去6年間に人工知能で成し遂げられた全ての進歩を支えています。
運の要素があると思います。幸運にも機能しているのです。一般化について考えるときに私が好む有用なアナロジーの1つは、ある意味でより大きな計算能力を持つ学習モデルの方が、より良く一般化するということです。
ニューラルネットワークが深ければ深いほど、究極の最良の短いプログラムに近づき、よりよく一般化すると主張できるでしょう。これは、一般化がどこから来るのかという問題に触れようとしています。
完全な答えは、私たちが解決したい特定のデータとも関係があるため、かなり長い間わからないと思います。私たちが解決したい問題がたまたまこれらのモデルのクラスで解決可能だということは、非常に素晴らしいことです。
もう1つ述べたいのは、バックプロパゲーションアルゴリズムは最後まで私たちと共にあると思うということです。なぜなら、それが解決する問題が非常に基本的だからです。データが与えられたときに、それに最も適合する最良の小さな回路を見つけるという問題です。
将来的にこの問題を解決したくないということはあり得そうにありません。そのため、バックプロパゲーションは本当に重要だと感じています。
次に、強化学習について少し話したいと思います。強化学習は、エージェントの行動を記述するためのフレームワークです。エージェントがアクションを取り、環境と相互作用し、成功したときに報酬を受け取ります。
これが非常に一般的なフレームワークであることは明らかですが、強化学習を興味深いものにしているのは、強化学習に有用なアルゴリズムが存在することです。
つまり、強化学習のアルゴリズムがこのフレームワークを興味深いものにしているのです。これらのアルゴリズムにはまだ多くの改善の余地がありますが、すでに多くの非自明なタスクで成功することができます。
したがって、これらのアルゴリズムを押し進める価値があります。本当に優れた強化学習アルゴリズムを作れば、おそらく非常に賢いエージェントを構築できるでしょう。
強化学習問題の定式化は次のようになっています。ポリシークラスがあります。ポリシーは単に入力を受け取ってアクションを生成する関数です。任意のポリシーに対して、それを実行してその性能やコストを算出できます。
あなたの目標は、コストを最小化する(報酬を最大化する)最良のポリシーを見つけることです。
この定式化が現実と異なる点の1つは、現実では、エージェントが自分自身で報酬を生成し、唯一の真のコスト関数は生存だということです。
強化学習アルゴリズムを構築するためには、何らかの方法でポリシーを表現する必要があります。どのように表現するのでしょうか? 答えは常にニューラルネットワークを使うことです。
ニューラルネットワークがアクションを受け取り、観測を生成します。そして、パラメータの特定の設定に対して、それがどれだけ良いかを計算できます。
そして、モデルを改善するためにこれらのパラメータをどのように変更するかを計算する方法を見つけることができます。パラメータを何度も変更して小さな改善を重ねていけば、大きな改善につながる可能性があります。
実際、多くの場合、改善は問題を解決するのに十分なほど大きくなります。
現代の強化学習アルゴリズム、特にモデルフリーで今日誰もが使っているものがどのように機能するかについて少し話したいと思います。
ポリシーを取り、アクションにある程度のランダム性を加えます。つまり、通常の行動から少し逸脱します。そして、結果のコストが予想よりも良かったかどうかを単純にチェックします。
もしそうなら、それをより起こりやすくします。ところで、聴衆の中で基本的なことを知っている人はどれくらいいますか? 手を挙げてください。
OK、ここにいる聴衆は情報通のようですね。では、導入部分を少し飛ばしましょう。でも、あまり飛ばしすぎないでください。
ポイントは、ランダムに何かを行い、それが通常よりも良かったかどうかを確認し、もしそうなら、それをより多く行うということです。これを何度も繰り返します。
強化学習には2つのアルゴリズムのクラスがあります。1つはポリシー勾配と呼ばれるもので、基本的に今説明したものです。
上に美しい公式がありますが、これは単にコスト関数の微分を取り、少し数学を行うと、説明したとおりのものが得られることを示しています。
つまり、少しのランダム性を加えてランダムなアクションを取り、結果が予想よりも良ければ、将来的にそれらのアクションを取る確率を増やすのです。
もう1つはQ学習アルゴリズムで、これは少し安定性が低く、サンプル効率が少し高いです。どのように機能するかについて詳しく説明しませんが、オフポリシーという特性があります。
つまり、自分のアクションだけでなく、他の人のアクションからも学習できるということです。オンポリシーは、アクションを取っている人だけが学習できることを意味します。
一方、オフポリシーは、他の誰かのアクションからも学習できることを意味します。自分のアクションだけである必要はありません。
少し有用そうに見えますが、興味深いことに、より安定したアルゴリズムはポリシー勾配ベースのもの、つまりオンポリシーのものである傾向があります。
少なくとも今日の時点では、オフポリシーのQ学習の方が安定性が低いです。ただし、状況は急速に変化しています。
Q学習の仕組みについて少し時間を割いて説明しますが、多くの人にとってはおそらく馴染みのある内容かもしれません。
基本的に、Q関数があり、これは与えられた状態と与えられたアクションに対して、将来がどれだけ良いか悪いかを推定しようとします。
エージェントは世界で多くのアクションを取っているので、状態の軌跡があります。Q関数には、Q(s,a)が基本的にQ(s',a')に報酬を加えたものであるという再帰的な性質があります。
この再帰性を利用してQ関数を推定することができ、それがQ学習アルゴリズムになります。なぜオフポリシーなのかは説明しませんが、この発表の目的のためには私の言葉を信じてください。
ここでの可能性は何でしょうか? なぜこれが興奮するのでしょうか? 現在持っている強化学習アルゴリズムは非常にサンプル効率が悪く、探索も本当に下手です。
しかし、進歩は見られています。もし本当に優れた強化学習アルゴリズムがあれば、データ効率が非常に高く、本当に上手く探索し、多くの情報源を本当に上手く利用できるでしょう。
そうすれば、知的なエージェントを構築する上で良い形になるでしょう。しかし、まだやるべきことがあります。まだデータ効率が悪いのです。
次に、メタ学習について少し話したいと思います。これは今回の講演の重要な部分になります。メタ学習とは何かを説明したいと思います。
メタ学習の抽象的な夢、抽象的なアイデアは、学習することを学べるということです。生物進化が脳の学習アルゴリズムを学んだのと同じような方法でです。
精神的には、この問題にアプローチする方法は、1つのタスクではなく多くのタスクでシステムを訓練することです。そうすれば、突然、新しいタスクを本当に素早く解決するようにシステムを訓練したことになります。
それができれば素晴らしいことです。学習することを学べれば素晴らしいでしょう。アルゴリズムを自分たちで設計する必要がなくなります。現在持っている学習アルゴリズムを使って、残りの思考を行わせることができます。
まだそこまでは到達していませんが、メタ学習はかなりの成功を収めています。メタ学習を行う最も一般的な方法、最も魅力的な方法を説明したいと思います。
基本的に、メタ学習の問題を従来の深層学習に還元したいと言います。馴染みのある教師あり学習のフレームワークを取り、各データポイントをタスクの訓練セットからのタスクに置き換えます。
基本的に、全てのこれらのアルゴリズムは同じような高レベルの形を持っています。タスクに関する情報とタスクインスタンスを受け取るモデルがあり、予測を行う必要があります。
それを行えば、新しいタスクの説明を受け取って良い予測を行うモデルを訓練することになるのは簡単に分かります。
いくつかの非常に成功した、説得力のある成功事例があり、そのいくつかを紹介します。多くのメタ学習の研究はバークレーでも行われましたが、私は視覚的なもの、初期のものを紹介します。
注目に値すると思うものです。この図はブランドン・レイクらの論文から取ったものですが、データセットはもっと早く来たと思うので、これが正しい引用です。
ニューラルネットが批判された方法の1つは、素早く学習できないということです。これはある程度事実です。ジョシュ・テネンバウムのラボのチームが、この課題のために非常に多くの異なる文字と、各文字のごく少数の例を含むデータセットを開発しました。
これは特にニューラルネットワークへの挑戦として作られました。しかし、シンプルなメタ学習アプローチを使うと、つまりどんな文字でも素早く認識できるようにニューラルネットワークを訓練したいと言うだけで、そのアプローチは非常にうまく機能します。
これは超人的なパフォーマンスを達成することができました。私が知る限り、最高のパフォーマンスはミシャルによって達成され、ピーターとの共同研究だと思いますが、基本的に超人的です。そして、それは単なるニューラルネットです。
つまり、メタ学習は時々非常にうまく機能するのです。
メタ学習に対する非常に異なるアプローチもあります。これは大きなモデルのパラメータを学習する代わりに、アーキテクチャや、進化が行ったようなアルゴリズムそのものといった、コンパクトで小さなものを学習するアプローチに、よりずっと近いものです。
ここでは単に、アーキテクチャ空間を探索して最良のアーキテクチャを見つけると言います。これもメタ学習の一形態です。これも非常にうまく一般化します。
なぜなら、小さな画像データセットでアーキテクチャを学習すると、大きな画像データセットでもうまく機能するからです。うまく一般化する理由は、アーキテクチャに含まれる情報量が少ないからです。
これはゾフとリーによるGoogleの研究です。
つまり、メタ学習は時々機能します。生命の兆しがあります。その約束は非常に強力です。とてもやりがいがあります。ただ、全てを正しく設定すれば、既存の学習アルゴリズムで未来の学習アルゴリズムを学習できるというのは素晴らしいことでしょう。
さて、私たちが行った1つのアルゴリズムの詳細な説明に入りたいと思います。それはヒンドサイト経験リプレイと呼ばれるもので、多くの人との大規模な共同研究でしたが、主にアンドリュールによって推進されました。
これは厳密にはメタ学習ではありません。これはほぼメタ学習です。基本的に起こったのは、難しい問題をより難しくすることで、結果的に簡単になるという方法で問題を解決しようとしたことです。
1つの問題を多くの問題のフレームワークや文脈に落とし込みます。同時に解決しようとする非常に多くの問題があり、それが簡単になります。
ここでの問題は基本的に、強化学習における探索の組み合わせです。強化学習では正しいアクションを取る必要があります。正しいアクションを取らなければ学習できません。報酬が得られなければ改善できません。報酬につながらない全ての努力は無駄になります。
報酬が得られなければ改善できないのは残念です。報酬がまばらで、目標を達成しようとして失敗した場合、モデルは学習しません。では、これをどう修正すればいいでしょうか?
これは非常にシンプルなアイデアで、非常に直感的です。基本的に、出発点があり、状態Aに到達しようとしますが、代わりに状態Bに到達します。
これから何を学べるでしょうか? 状態Bに到達する軌跡のデータがあります。そこで、Aに到達しようとしたこの失敗した試みを、状態Bに到達する方法を学ぶ機会として利用できるかもしれません。
これは方向性としては非常に正しいです。経験を無駄にしないということです。しかし、これを学ぶには十分なポリシーアルゴリズムが必要です。
だからこそ、先ほどオフポリシーについて強調したのです。あなたのポリシーはAに到達しようとしますが、このデータを使って、Bに到達する別のポリシーを教えることができます。
大きなパラメータ化された関数があり、単に到達した状態を伝えるだけです。非常に直接的で直感的です。そして、非常にうまく機能します。
ヒンドサイト経験リプレイです。動画をお見せします。かなりクールです。この場合、報酬は非常にまばらでバイナリです。
報酬がまばらでバイナリであるため、これは従来の強化学習アルゴリズムにとって非常に難しくなります。報酬を見ることができないからです。
報酬を形成すれば、おそらくこれらの問題をもう少しうまく解決できるかもしれません。しかし、この研究に取り組んだ人々は、それでもまだ難しいと感じました。
しかし、このアルゴリズムは、これらのクールなタスクでうまく機能します。動画はクールに見えます。見続けましょう。
ヒンドサイト経験リプレイアルゴリズムから、非常に自信に満ちた動きが得られます。それは理にかなっています。何か起こるたびに、そこから学びたいのです。
これを全ての将来のアルゴリズムの基礎にしたいと思います。
繰り返しになりますが、これは絶対的にまばらでバイナリな報酬設定においてです。つまり、標準的な強化学習アルゴリズムは非常に不利です。
しかし、報酬を形成しようとしても、一つの発見は、報酬の形成が時には簡単ですが、時にはかなり難しいということです。
ここでは、実際の物理的なブロックで同じことが機能しています。
これは基本的にヒンドサイト経験リプレイの結果をまとめたものです。HR(ヒンドサイト経験リプレイ)が表す略語を教えてもらえますか?
見て分かるように、これらの結果の制限の1つは、状態の次元が非常に低いことです。非常に高次元の入力と非常に長い履歴を持つ一般的な環境がある場合、目標をどのように表現するかという問題があります。
つまり、表現学習が非常に重要になるということです。教師なし学習はまだ機能しませんが、かなり近づいていると思います。教師なし学習を強化学習とどのように融合するかについて考え続けるべきです。これは将来有望な分野だと思います。
次に、メタ学習を使用して、シミュレーションから現実への転移を行う別のプロジェクトについて話したいと思います。これはパンガルらによる研究で、この研究に携わった多くの人々はバークレー出身です。
残念ながら、ここに完全なリストはありません。シミュレーションでロボットを訓練し、その後物理的なロボットに展開できれば素晴らしいでしょう。シミュレーションは扱いやすいですが、ほとんどのものをシミュレートできないのも明らかです。
では、ここで何かできることはあるでしょうか? 1つの非常に単純なアイデアを説明したいと思います。
基本的に、1つのシミュレーション設定でタスクを解決するポリシーだけでなく、一連のシミュレーション設定でタスクを解決するポリシーを訓練します。
これは何を意味するのでしょうか? 摩擦係数や重力、そして考えられるほとんど全てのものをランダム化すると言います。ロボットアームの長さや質量、摩擦、サイズなどです。
あなたのポリシーには何をしたかは伝えられません。環境と相互作用することで、それを理解する必要があります。
そうすれば、少なくともシミュレーションでは何が起こっているかを把握するのがかなり上手な、堅牢なポリシーを開発することができます。
これが行われれば、結果として得られるシステムは、シミュレーションから現実世界への知識の一般化がはるかに可能になります。
これはメタ学習の一例です。なぜなら、実際には、正確な物理学を非常に素早く識別できるポリシーを学習しているからです。
これをメタ学習と呼ぶのは少し無理があるかもしれません。むしろ、堅牢で適応的でダイナミックなものですが、メタ的な側面もあります。
ベースラインの動画をお見せしたいと思います。これは、ポリシーのこの堅牢化を行わなかった場合に起こることです。
ホッケーパックを赤い点に入れようとしますが、劇的に失敗し、あまり良く見えません。
これらの堅牢化を加えると、結果はずっと良くなります。押し回されたり、行き過ぎたりしても、全く問題ありません。かなり良く見えます。
この単純な例は、シミュレーションでポリシーを訓練し、そのポリシーがシミュレーションの1つのインスタンスだけでなく、多くの異なるインスタンスを解決し、どのインスタンスなのかを把握するようにすることで、実際の物理的なロボットへの一般化に成功する可能性があることを示しています。
これは励みになります。
次に、フランツォールによる別のプロジェクトについて話したいと思います。これは階層的強化学習に関するものです。
階層的強化学習は、うまく機能すれば素晴らしいアイデアの1つです。なぜなら、今日の強化学習の問題の1つは、非常に長い時間軸を扱うのが難しいことだからです。
探索があまり方向性を持たず、望むほど速くないという問題があります。また、クレジット割り当ても難しいです。
非常に単純なメタ学習アプローチを取ることができます。基本的に、学習を高速化する低レベルのアクションを学習したいと言います。
タスクの分布があり、低レベルのポリシーのセットを見つけたいと考えます。それらを強化学習アルゴリズム内で使用すると、可能な限り速く学習できます。
そうすれば、かなり合理的な移動戦略を学習することができ、持続的な方向に進むことができます。
ここにあるのは、3つのポリシーです。高レベルのものと、このような問題を解決するポリシーを見つけるように学習されたシステムです。
これらの問題を可能な限り速く解決する特定の分布があります。これはかなり素晴らしいです。
ここで言及したいのは、高容量メタ学習の1つの重要な制限についてです。メタ学習を行う方法には2種類あります。
1つは、タスクの分布内の問題を素早く解決できる大きなニューラルネットワークを学習することです。もう1つは、アーキテクチャやアルゴリズムを学習することです。つまり、小さなオブジェクトを学習します。
アーキテクチャを学習したり、メタ学習の設定でアルゴリズムを学習したりすると、おそらく他の多くのタスクに一般化される可能性が高いです。
しかし、これは高容量メタ学習の場合、少なくともそれほど顕著ではありません。例えば、多くのタスクを解決する非常に大きな再帰型ニューラルネットワークを学習したいだけの場合、訓練したタスクの分布に非常に固執することになります。
分布から意味のある範囲外のタスクを与えると、成功しません。
少し極端な例を挙げると、システムを取り、少し数学を教え、少しプログラミングを教え、読み方を教えたとします。化学ができるでしょうか?
少なくともこのパラダイムでは、明らかにはできません。なぜなら、タスクが訓練時とテスト時で同じ分布から来る必要があるからです。
これが機能するためには、アルゴリズムの一般化能力をさらに改善する必要があると思います。
最後に、セルフプレイについて話して締めくくりたいと思います。セルフプレイは本当にクールなトピックです。長い間存在してきました。非常に興味深く、魅力的で、謎めいていると思います。
私が知る限り、最も初期のセルフプレイの研究から始めたいと思います。それはDDギャムで、1992年に行われました。タロの単著研究です。
この研究では、Q学習とセルフプレイを使用して、バックギャモンの世界チャンピオンを打ち負かすニューラルネットワークを訓練しました。2017年や2018年には馴染みのある話に聞こえるかもしれませんが、これは1992年のことです。当時のCPUは33MHzくらいだったと思います。
このプロットを見ると、異なる隠れニューロン数での時間に対する性能を示しています。赤い曲線が10個の隠れユニット、緑の曲線が20個の隠れユニット、そして紫の曲線まであります。
基本的に、25年間で変わったのは、ゼロの数と隠れユニットの数だけです。実際、彼らは専門家を驚かせる非conventional戦略も発見しました。これは本当にすごいことで、この研究が将来をこれほど見据えていたことに驚きます。
このアプローチは基本的に休眠状態でした。人々は少し試してみましたが、本当に復活したのはDeepMindのAtari結果によってです。AlphaGo Zeroでも非常に説得力のあるセルフプレイ結果がありました。
全く知識がない状態から、全ての人間を打ち負かすほど強力な囲碁プレイヤーを訓練することができました。私たちのDota 2の結果も同じです。ゼロから始めて、大量のセルフプレイを行いました。
セルフプレイがなぜ本当に興味深いのか、少し話したいと思います。このようなことが可能になるからです。セルフプレイは、エージェントの無限の複雑さ、洗練さ、社会的スキルにおける無限の策略を支える可能性のある、非常に単純な環境を作ることを可能にします。
知的なエージェントを構築する上で関連性があるように思えます。
1994年のカール・シムズによる人工生命の研究があります。そこでも、すでに非常に馴染みのあるものが見られます。形態も進化した小さな進化生物が見られます。ここでは、小さな緑のキューブを所有するために競争しています。
これも1994年に、小さなコンピューターで行われました。他の私たちが知っている有望なアイデアと同様に、それを前進させるのに十分なコンピューターがありませんでした。
しかし、これは大規模なセルフプレイで得られる可能性のあるものだと思います。このコンセプトを少し復活させようとした私たちの研究をお見せしたいと思います。
この動画をお見せします。これはB.サラドらによる研究で、生産的な夏のインターンシップでした。ここに音楽がありますが、消します。実際、つけておいてもいいかもしれません。いや、やっぱりできません。
ポイントは何でしょうか。この場合は単なる相撲リングという超シンプルな環境があり、エージェントに「相手のエージェントがリングの外に出たら+1ポイントを得る」と伝えるだけです。
個人的にこれが好きな理由は、これらのものが生きているように見えるからです。ゲームに留まるためだけに学習した複雑な行動の幅があります。
想像力を働かせれば、ええ...このセルフプレイは対称ではありません。また、これらのヒューマノイドは少し不自然です。痛みを感じず、疲れることもなく、多くのエネルギー制約もありません。
おっ、ブロックしました。それは良かったです。それもかなり良いですね。ここでの目標は推測できますね。それはナイスなかわし方でした。
これは例です。欲しいのは、これらのセルフプレイ環境を取り、エージェントにセルフプレイから何らかのタスクを行うように訓練し、そしてエージェントを外に出して私たちにとって有用な何かをさせることです。
それが可能であれば素晴らしいと思います。ここには最小限のテストがあります。相撲レスリングのエージェントを取り、リングの中に孤立して置きます。友達はいません。
そして、大きな力を加えて、バランスを取れるかどうかを見ます。もちろん、バランスを取ることができます。なぜなら、押そうとする相手に対して訓練されてきたからです。
そのため、一般的に力に抵抗するのが非常に上手です。ここでの高レベルのアイデアは、忍者を取り、料理人になるように学習させるようなものです。
忍者はすでに非常に器用なので、非常に優れた料理人になるのは比較的簡単なはずです。これがここでの高レベルのアイデアです。まだ起こっていませんが、1つ質問したいことがあります。
そして、この研究の方向性における重要な質問の1つは、一度成功すれば、環境そのものとは異なる、私たちにとって有用なタスクを解決できるようなタイプのセルフプレイ環境をどのように設定できるかということです。
これがゲームとの大きな違いです。ゲームでは目標は実際に環境に勝つことですが、それは私たちが望むものではありません。
私たちが望むのは、単に賢くなることに一般的に優れ、問題を解決すること、つまり「私の宿題をする」タイプのエージェントです。
1枚のスライドをお見せしたいと思います。これは興味深いと思います。
セルフプレイに関して、ニューラルネットのハードウェア設計者が巨大なコンピューターを構築し、このセルフプレイが大規模にスケールアップされたと想像してみてください。
生物進化について注目すべき点の1つは、社会的な種は脳が大きくなる傾向があり、より賢くなる傾向があるということです。
関連する2つの種があり、1つが社会的で1つがそうでない場合、社会的な方がより賢くなる傾向があることがわかっています。
人間の生物学的進化は過去数百万年で本当に加速したことがわかっています。おそらく、その時点で人間が環境に対して十分に有能になったからだと思います。
これは少し推測的ですが、私の理論では、人間はライオンを恐れなくなり、最大の関心事は他の人間になりました。他の人々が自分のことをどう思っているか、どんな噂をしているか、自分が序列のどこに位置しているかといったことです。
このような環境が大きな脳への動機を生み出したと思います。科学ではよくあることですが、自分の仮説を支持する証拠を見つけるのは非常に簡単です。私たちもそうしました。
Scienceという雑誌に、社会的環境が大きくて賢い脳の発達を刺激するという主張を支持する論文があります。彼らが提示する具体的な証拠は、賢い社会的な類人猿と賢い鳥(カラスなど)の収斂進化です。
彼らは非常に異なる脳構造を持っているにもかかわらず、明らかに類似した認知機能を持っています。
この主張について75%しか確信がありませんが、鳥は私たちと同じ種類の皮質を持っていないと pretty確信しています。なぜなら、進化的な分岐が遠い過去に起こったからです。
これは興味深いと思います。少なくとも興味をそそるものだと思います。
エージェントの社会を作り、それをスケールアップし続けることで、おそらく賢いエージェントを得ることができるでしょう。
セルフプレイで訓練された環境に関する1つの観察で締めくくりたいと思います。これは、4月から8月にかけての時間の経過に따른私たちのDOTAボットの強さを示すプロットです。
基本的に、バグを修正し、セルフプレイ環境をスケールアップし、計算量を増やすだけで、システムの強さが非常に急速に向上します。
セルフプレイ環境では理にかなっています。コンピューターがデータなので、より多くのデータを生成できます。
挑発的な質問で締めくくりたいと思います。十分にオープンエンドなセルフプレイ環境があれば、エージェントの認知能力が超人的なレベルまで極めて急速に向上するでしょうか?
この注釈で発表を終わります。ご清聴ありがとうございました。
質問応答セッションを始める前に、1つ重要なことを言いたいと思います。これらの研究の多くは、バークレーの多くの人々、特にピーター・アベールとの共同研究で行われました。それを強調したいと思います。
素晴らしい。最後のスライドを見せてもらえますか? 非常に重要な結論のように見えましたが、非常に速く通り過ぎてしまいました。
これは少し推測的で、本当に質問です。ここでの具体的な説明は、何らかの大規模なセルフプレイの結果として、本当に賢い人間レベルのエージェントが得られると信じるなら、DOTAの経験で見たような、エージェントの能力の同じような急速な増加も経験するだろうかということです。
一般的に、計算能力をデータに変換できるので、より多くの計算を投入すればこのものはより良くなります。
つまり、それは一般的な発言です。明らかに、より多く計算すればより良い結果が得られます。しかし、これら2つのパネルの違いをよく理解できませんでした。
それは本当に、フィールドと能力における進歩の限界はどこにあるのかという質問に帰着します。
言い換えれば、正しいアルゴリズムが与えられた場合(現在はまだ存在しませんが)、一度それらを手に入れたら、システムの実際の能力の向上はどのように見えるでしょうか?
限界は、例えば階層的強化学習を理解し、概念学習を理解し、教師あり学習が良い形になり、そして巨大なニューラルネットハードウェアが到着し、人間の脳よりもはるかに大きな巨大なニューラルネットを持つことから来るのでしょうか?
これは起こるでしょう。時間の経過とともにプロットはどのように見えるでしょうか?
つまり、私たちはまだ始まりのほんの一部しか見ていないと予測しているのですね。
では、質問を受け付けましょう。すでに手を挙げているのが見えますね。ありがとうございます。
階層について言及されましたが、このカーブの傾きを増加させるような階層的セルフプレイの例はありますか?
私たちは階層的セルフプレイを試していません。これは、DOTAボットの経験からの発言です。基本的に誰にでも負ける状態から始まり、真のスキル指標(Eloレーティングのようなもの)が、最高の人間に至るまでほぼ直線的に上昇しました。これはセルフプレイシステムの一般的な特性である可能性があると思います。
このゲームはどれでしたか?
DOTAです。
他に質問はありますか?
イリヤさん、こんにちは。素晴らしい講演でした。ありがとうございます。環境に関する質問があります。相撲レスリングの環境を超えて、どのような環境を研究するのが良いと考えていますか?
良い環境を作るためには2つの方法があると思います。1つは、私たちが気にかけている問題を解決しようとすることから自然に生まれる環境です。もう1つは、多くのことを構築できるオープンエンドな環境を考えることです。
今日私たちが持っている環境の多くは、少し不満足な特徴があります。それは、非常に狭い領域であり、その狭い領域内でタスクを実行したいということです。
しかし、興味深い環境の中には、その深さに制限がないものがあります。これらの例には、プログラミング、数学、そしてMinecraftさえも含まれます。
Minecraftでは、より複雑な構造を構築することができます。最初、人々はMinecraftで小さな家を建て、次に大きな城を建て、今では街全体を建設し、Minecraft内にコンピューターさえ構築している人々を見つけることができます。
明らかに、Minecraftには明白な課題があります。それは、エージェントに何をさせたいのかという問題です。これに対処する必要がありますが、方向性としては、これらは考えるべき良い環境だと思います。
ここにも質問がありますね。
これは最後の質問と似ていますが、複雑な非エージェントオブジェクトや非エージェントエンティティが環境にある場合、セルフプレイの効果がどのようになるのか気になります。
例えば、相撲環境では、セルフプレイエージェントが非常に複雑になり、非常に複雑な戦略を使用できるのは、非常に複雑な戦略を使用する他のエージェントと競争するために必要だからです。
代わりに、別のエージェントではなく、訓練されない非常に単純なエージェントに対して作業を行い、非常に複雑なシステムを通じてこの環境で多くの機械を操作しなければならない場合、それはセルフプレイの効果にどのように影響しますか?
私は、それは少し具体的な状況に依存すると思います。確かに、複雑な環境や何らかの方法で生成された複雑な問題がある場合、かなり有能なエージェントを開発する必要があります。
セルフプレイアプローチで興味深いのは、自分自身で課題を生成することです。課題がどこから来るかという問題に対する答えが得られます。
マイクに問題があるようです。
マイクに問題があるようには見えませんが、確認してみましょう。
とにかく、続けましょう。他に質問はありますか?
はい、少し前に戻りますが、ヒンドサイト経験ポリシーについて話されました。赤い点Aに到達しようとして、代わりに点Bに到達した例を挙げ、それを訓練に使用すると言われました。
もう少し詳しく説明していただけますか? DDPGにあまり詳しくないので、それが理解する上で重要かもしれません。
私が疑問に思っているのは、どのようにしてあらゆる経験を、このように球を打つことがこの動きに変換されるというように、報酬ベースではない方法で変えるのかということです。
基本的に、目標状態によってパラメータ化されたポリシーがあると言います。つまり、実質的にあらゆる可能な目標に対して1つのポリシーのファミリーがあります。
そして、状態Aに到達しようとするポリシーを実行し、代わりに状態Bに到達したとします。そこで、「これは状態Bに到達するポリシーの素晴らしい訓練データだ」と言います。
これが基本的な方法です。より詳細については、オフラインで話し合うことができます。
わかりました。では、2つの質問があります。1つは非常に単純な質問で、再びHRに関するものです。
タスクが難しい場合、例えば野球の速球を打つようなものです。最高の人間でも38%程度しかできません。
危険なのは、ミスした場合に「ミスしようとしていた」と言って、ミスする方法の訓練例として扱ってしまうことです。
これは正しくありません。実際には最適なアクションを行っているのですが、単に知覚がボールを十分速く追跡できないだけです。これが最善のことです。
このようなタスクでは問題が発生しそうです。
最初の質問に答えましょうか、それとも2つ目の質問を聞きましょうか?
そうしましょう。
この方法はまだ完璧ではありませんが、実際に成功しようとしているときにミスをした場合の質問については、はい、その状態に到達しない方法についての多くのデータがあります。
つまり、到達するのが難しい特定の望ましい状態に到達しようとします。それを試みて別の状態に到達します。そこで、「よし、このシステムをこの状態に到達するように訓練しよう。でも次回は、まだ望ましい状態に到達したいと言おう」と言います。
つまり、その特定の問題に対しては、このアプローチはタスクがもう少し連続的な場合、つまり徐々に改善できるような場合ほど有益ではありません。
例えば、プログラミングの文脈では、シンプルなプログラムをプログラミングすることを学び、異なるサブルーチンを書くことを学び、徐々に能力を向上させていきます。到達できる状態のセットを徐々に増やしていきます。
非常に狭い状態があり、それに到達するのが非常に難しい場合、このアプローチは役立ちませんが、状態に連続性がある場合はこのアプローチが役立つことに同意します。
2つ目の質問はセルフプレイに関するものです。タイトルを見たとき、あなたが言おうとしているのは次のようなことだと思いました。
アルファ碁を考えてみましょう。既存の世界チャンピオンと対戦させてアルファ碁を訓練しようとしたら、最初の5000万ゲームで1回も勝てないので、何も学習できないでしょう。
しかし、自分自身と対戦させることで、常に50%の勝率があります。つまり、どれほど下手でも、常に勾配信号が得られます。これは非常に重要です。
質問は、本質的に報酬信号を得るのが難しいタスクに適用できる魔法のような手法はあるのでしょうか?
例えば、スパイダーソリティアを考えてみましょう。普通の人がスパイダーソリティアをプレイするのを見ると、最初の100ゲームで負けて、諦めてしまいます。「これは不可能だ、このゲームは嫌いだ」と言います。
十分に上手くないので報酬信号がないのです。スパイダーソリティアを2人用ゲームに変換し、何らかの方法でそのゲームで常に勾配信号を得られるようにする方法はありますか?
それは非常に良い質問です。あなたの言ったことは非常に良い指摘です。
あなたの質問に詳しく答える前に、セルフプレイの重要な点の1つについても話したいと思います。それは、常に同程度に強い相手がいるということです。
これは何を意味するかというと、潜在的に無限の改善への動機があるということです。非常に有能なエージェントがあっても、相手も同じくらい有能なので、システムは適切に設計されていれば、改善し続ける動機づけがあります。
これも強調すべき重要な点だと思います。これは探索問題がはるかに簡単になる理由でもあります。相手と一緒に戦略空間を探索するからです。
実際、安定性のために1つの相手だけでなく、小さなファミリーの相手を持つことが重要です。これが基本的に重要です。
2つ目の質問、つまり報酬が得られない場合どうするかという質問については、問題が十分に難しい場合、タスクに関する深いドメイン知識や副次的な情報なしには多くのことはできないと思います。
しかし、複数のグループが追求している1つのアプローチは、探索のための非対称セルフプレイを使用することです。
予測器があり、それは何が起こるかを予測しようとします。そして、予測器を驚かせるようなアクションを取ろうとするポリシーがあります。
予測器は基本的に、異なるアクションの結果について意見を持っています。そして、アクターは予測器を驚かせる空間の領域を見つけようとします。
これは一種の自己プレイです。正確には自己プレイではなく、より競争的な敵対的なシナリオです。エージェントは空間全体をカバーするように動機づけられています。
これは、スパイダーソリティアのような難しいタスクを解決する方法についての質問に答えるものではありません。実際に非常に優れている必要がある場合、それは難しいと思います。
しかし、少なくとも一般的にどのように前進するかについての一般的なガイドを提供することはできます。
ここにも質問がありますね。
新しいアーキテクチャに関して、何が興味深いと思いますか? 例えば、DNC論文のように、ニューラルネットにメモリ構造を追加するなどの取り組みがありますが。
一般化やメタ学習に関して私たちが望むことを実際に達成する上で、新しいアーキテクチャがどのような役割を果たすと考えていますか?
これは非常に良い質問です。アーキテクチャに関する質問です。
本当に良い新しいアーキテクチャを見つけるのは非常に稀だと言えます。アーキテクチャ空間での本当のイノベーションは稀です。
過去数年間でアーキテクチャ空間における最大のイノベーションは、ソフトアテンションだったと言えます。ソフトアテンションは確かにアーキテクチャにおける大きな進歩です。
しかし、基本的なアーキテクチャが非常に優れているため、アーキテクチャ空間でイノベーションを起こすのも非常に難しいです。
私の意見では、より良い一般化は単にアーキテクチャを改善することによっては達成されないと思います。これはデータに裏付けられた意見ではありません。
より良い一般化は、学習アルゴリズムを変更し、おそらくモデルについての考え方のパラダイムさえも変更することによって達成されると思います。
最小記述長や圧縮などのアイデアがより一般的になると思います。しかし、これらは自明ではない問題です。
基本的に、アーキテクチャは、実際に難しい問題に対して良い新しいアーキテクチャを見つけることができる場合に重要だと思います。
速球を打つことを学ぶためのカリキュラム学習について、遅い球から始めてはどうでしょうか?
確かに、カリキュラム学習は非常に重要なアイデアです。人間がそのように学習し、私たちのニューラルネットワークもカリキュラムから恩恵を受けるのは嬉しい驚きです。
セルフプレイの素晴らしい点の1つは、カリキュラムが組み込まれていることです。それは本質的なものです。セルフプレイで失うのは、セルフプレイを特定の点に向ける能力です。
質問があります。素晴らしい動画を見せていただきました。レスラーやロボットなどのものですが、深層学習と同様に、全体の基礎となる線形代数のフレームワークがあると思います。
線形代数以外に何かあるのでしょうか? ニューラルネットについて言えば。
それは単に2つのエージェントを取り、強化学習アルゴリズムを適用するだけです。強化学習アルゴリズムは、パラメータを更新する方法が少し異なるニューラルネットです。
つまり、全て行列の乗算だけです。
つまり、できるだけ速く大きな行列を乗算したいということですね。
もう1つ質問があります。
転移学習について少し言及されましたが、その重要性について。概念抽出とその転移について、どう思われますか? それが可能だと考えているか、あるいは現在誰かが取り組んでいるのでしょうか?
それは、概念抽出という言葉で正確に何を意味しているかによって大きく異なると思います。確かに、私たちの転移学習能力はまだ初歩的なレベルで、ある領域から本当に高レベルな概念を抽出し、それを別の領域に適用できる方法はまだ持っていません。
それに取り組むためのアイデアはありますが、重要なタスクで本当に説得力のあるものはまだありません。少なくとも今のところはありません。
本当に多くの質問がありましたね。その理由は、あなたが非常に簡潔で簡単な回答をしてくださったからです。そのことに感謝します。
では、大きな拍手でお礼を言いましょう。ありがとうございました。