Doomの創設者として知られるジョン・カーマックが、現在取り組んでいるAGI(汎用人工知能)研究について詳しく解説している。彼のキャリアの変遷から、Keen Technologiesでの研究、Atariゲームを使った強化学習の実験、実際のロボットを使ったゲームプレイの挑戦まで、技術的な詳細とともに語られている。現在のLLMの限界や強化学習の未解決問題、新しいベンチマークの必要性についても言及されており、AGI実現に向けた現実的な課題と研究の方向性が示されている。

ジョン・カーマックのAGI研究への転身
皆さん、こんにちは。この講演は「AIのビジネス」というセッションには少し場違いかもしれないと先に謝っておきます。私たちはベンチャー資金を受けていますが、基本的には研究に取り組んでいるからです。そのため、他の講演よりも少し技術的な内容になるでしょう。
Keen Technologiesが数年前に発表されて以来、少し秘密主義的だという印象を持たれていることは承知しています。しかし、意図的に秘密にしているわけではありません。資金調達をしているわけでも、製品を販売しているわけでもないのです。ただひたすら研究に集中してきただけですが、ついに私たちの方向性について少しお話しできることを嬉しく思います。
また、私は35年のキャリアで一度もスライドデッキを作ったことがありませんでした。これが初めてなので、中学生のプロジェクトのような出来映えだったら申し訳ありません。
背景として、私は1990年代初頭にID Softwareを設立し、多くの基礎的なビデオゲームを制作し、ファーストパーソンシューターというジャンルを定義してきました。
ここで関連性があるのは、オリジナルのQuakeまたはそのGL Quakeバリアントが、GPUの初期採用の主要な推進力となったことです。最近のNvidiaに関する数冊の本でも、この点が特に指摘されており、私はこのことを大変誇りに思っています。これが現在のAI世界につながっているのです。その後、Quake 3 ArenaのようなゲームがDeep Mind Labで使用されました。
暴力的な要素はすべて除去され、一般的なタスク作業用にサニタイズされましたが、ここでもAIとの小さなつながりがあります。その後半では、Armadillo Aerospaceで垂直離着陸ロケット船の開発にも時間を費やしました。興味深いことに、SpaceXとほぼ同じ年に設立されましたが、一般的な成功ははるかに少ないものでした。
しかし、そこには私が語るのを楽しむいくつかの教訓があります。講演後に時間があれば、詳しくお話しできます。その後、Oculusで現代のバーチャルリアリティ時代の基礎技術の大部分を確立しました。
これは、あらゆる部分でのレイテンシの最小化と、モバイルシステムで動作するのに十分なコスト効率を実現する方法を見つけることに関する大きなシステムエンジニアリングタスクでした。現在のOculus Questについては非常に誇りに思っています。私たちが成し遂げたことを誇りに思っています。しかし、最終的にはMetaとは袂を分かつことになりました。主な理由は、私がそこにいる間に、OpenAIの創設者たちであるサム、グレッグ、イリヤが私をリクルートしようとしたからです。
AIへの関心の芽生え
当時の私はAIの専門家ではなかったため、このことには非常に光栄に思いました。私はビデオゲームや知覚、分析の専門家でしたが、AIで起こっている興味深いことにはあまり注意を払っていませんでした。しかし、彼らに促されて腰を据えて文献を読み、現状を把握し、どのように参入できるかを考え始めました。そしてそれは本当にエキサイティングでした。これを見て、これは実際に今誰もが取り組める最も興味深いことだと思ったほどでした。
私のような立場の人間、深い技術的背景を持ち、何でもやりたいことをやる自由がある人間にとって、これが実際に取り組みたいことであることは明らかでした。最初は「ヴィクトリア朝の紳士科学者モード」と呼んでいたスタイルで始めました。つまり、十分に裕福な人間として、一人で科学を行い、さまざまなことを研究するという考えでした。
しかし、多くの人から「いや、会社を立ち上げるべきだ。リソースを確保すべきだ。もっと人を雇うべきだ」と押し切られ続けました。最終的に私は折れて、ベンチャーマネーを受け取り、現在は6人の研究者が会社で働いています。
私にとって本当に素晴らしい旅路でした。実際の驚きの一つは、Richard Suttonとの協力でした。新しい技術に参入する際の「幼虫期」と呼んでいる読書・研究段階で、彼の教科書を2回読み通したのですが、1〜2年後に彼が実際に私とこのプロジェクトで働きたがっていることを知りました。アルバータ計画と私の考え方には強い一致があります。
LLMの限界と強化学習の重要性
LLMがすべてで、クールな子たちはみんなLLMスタートアップを立ち上げて、巨額の資金を調達している現在の状況があります。そこで起こっていることすべてに驚き、興奮しており、これらの技術の日常的なユーザーでもありますが、私は依然としてLLMが完全な答えにはなり得ないと根本的に見ています。
これらのトランスフォーマーベースのモデルは、人間の脳の働き方ではありません。それらが行うことは、魔法的ではありますが、猫や犬、ましてや小さな子供が行う基本的なことの多くを扱っていません。多くの人は、これらのLLMがすべての本を読み、インターネット全体を読んでいると想像していますが、そうではないことを理解していません。人類のすべての知識を巨大なブレンダーに入れて、そこから訓練しているのです。
それは魔法的で、本当にうまく機能しますが、何か新しいことを学ばなければならない状況に置かれたとき、ここにいる多くの研究者が取り組んでいる基本的なことがまだ理解されていません。これらのことに対する答えの見通しさえありません。
これが私にとっての変化でした。これまで私が行ってきたことはすべて、何らかのエンジニアリングでした。以前にされたことよりも新しいまたは優れたことをしていたとしても、見通しがありました。エンドポイントが何かを知っており、何をしなければならないかについてかなり明確な考えを持っていました。しかし、これは科学を行うことであり、今は誰も持っていない知識を見つけようとすることです。
ゲームシミュレーションへの取り組み
しかし、これがすべての出来事の時期であり、次の数年間で物事が実際に起こる時期だと感じています。私はバーチャル環境とゲームの明らかな背景を持っているので、シミュレーションとゲームでの作業というこのアイデアは、私がやっていたことから自然に流れてきました。これは依然として非常に有効な方向だと思います。
現実に触れて、シミュレーションの限界となるものを見つけるという別の側面もあります。しかし当時、ビデオ理解は、ゲームプレイと強化学習でのこれらすべての問題と結びつく必要なステップの一つになると思っていました。
通常のTV内容とインタラクティブゲームが散在する無限のビデオウォールを想像していました。継続的な環境で複数のゲームをプレイすることを学習し、内在的報酬とこれらすべての標準的な目標を持つエージェントを設定しようとしていましたが、静的なビデオフィードから学習する能力も持つように散在させました。人間の乳児がそうするように。
技術的なアプローチの変遷
結果として、ある意味で予測可能ないくつかの失敗をしたと思います。私はMr. Low-levelとして始めました。アセンブリコードやCUDAカーネルを書き、すべてを行う人間として。これは私の核となる強みの一つと見なされていました。
AI研究を始めたとき、最初のいくつかのプログラムセットはその観点から構築されました。非常に細かい部分を学び、何かがどのように実装されているか、どのように異なって行われるかを正確に知ることには大きな価値があります。
しかし、振り返ってみると、これは間違いだったと思います。カスタムCUDAカーネルからcublasの使用、cudnnの使用、libtorchの使用、そして最終的に他の皆と同じようにPyTorchを使用するまでの移行を見ることができます。これは良いことです。
また、おそらく必要以上に長く大規模クラウド利用を避けていました。再び、物理的なハードウェアに対する少しの偏見がありました。手で触れることができ、ファンの回る音を聞くことができるGPUで何かを実行するという考えが好きでした。最終的にクラウドインスタンスを立ち上げ、リモートシステムでVisual Studio Codeを使用することに移行する前に、ノートブックでの作業に時間をかけすぎました。
Atari環境での研究
もう一つは、少し対照的になるために、誰も取り組んでいなかったSega Master Systemをゲーム選択として始めたことです。Atariから比べると複雑さが少し上がりますが、比較する他のベースラインが何もないのは間違いでした。
また、ビデオ理解は実際に待つことができると決めました。私が現在未解決の科学として見ているこれらの核心的な問題の多くは、ゲームのセットだけで扱うことができます。必ずしも単一のゲーム学習ではありませんが、異なるゲームのセットから豊かな環境を構築し、これらの挑戦的な科学問題に対処することができます。
おそらく退屈ではありますが、Atariに落ち着くことにしました。Atari学習環境はアルバータで生まれ、動的強化学習で起こったことの多くを支えています。もはや終わったのではないか、ホットな研究が向かうべき場所ではないのではないかという感覚が少しあります。
しかし、私は実際に必要なものがすべて揃っていると思います。重要な側面の一部は、100以上の異なるオプションの多様性があることです。研究者による偏見がないことは過小評価されていると思います。研究者が自分のベンチマークを構築し、プレイする自分の環境を構築するときはいつでも、アルゴリズムにとって困難になると思われることをしないように偏見を持つことは避けられません。
解決しようとしている問題がありますが、常に他の副作用の全体的なホストがあります。自分で構築すれば、アルゴリズムにひどいことをしないものを構築することになります。これは人間性の本質です。
Atariゲームは人間がプレイするために構築されました。この研究が存在する前に構築されました。したがって、私たちが引き受ける挑戦の偏見のないサンプルとしてそこに存在します。
一つのゲームで壮観なパフォーマンスを得て、変更を加えてそこでは良くなるが、別のゲームでは悪くなるという巨大な挑戦があります。この豊かさは、私たちが行いたいことの多くに十分だと思います。
現在のAtari研究の状況
標準的なAtariゲーム、DQNから12年ほど前からテストされている方法では、一つのエージェントを取り、2億フレームで訓練するという体制で行われています。これは多くのプレイ時間です。24時間365日ゲームを実行するのに丸1か月のようなものです。
スコアに関しては、MuzeroやMuZeroのような最新のエージェントは、ほぼすべてのゲームで高度に超人的なスコアを生成しています。解決されたように見えることがあります。どんな人間よりもうまくこれらのゲームを破壊できるようです。
しかし、迅速な学習は良いことであり、あまり愛されていないベンチマークであることは理解していますが、過去数年間人々が行ってきたAtari 100Kベンチマークは、これに対処する本当に良い方法だと思います。本質的に2時間のゲームプレイしかゲームのプレイ方法を学ぶのに与えないということです。
これははるかに挑戦的になり、これらの非常に優れた世界的なエージェントを取って、2時間しかないと言うと、それらは決して印象的には見えません。これらのゲームはすべてひどく見え始め、興味深いこと、ましてや超人的なことをするポイントに到達するまでに時間がかかります。
現実世界との相互作用
環境の選択のスペクトラムでは、一方では、非常に焦点を絞った特定のことをテストする合成学術環境であるグリッドワールドのようなものから始めることができますが、明らかにそれは非常に限定的です。もう一方では、自動運転車のような洗練された現実世界の相互作用を持つことができます。これは現実世界のすべての問題の試金石であり、強化学習ではなく、一般的な機械学習に結びついています。
その間には、Atariがこれらすべてのゲームの祖父のようなもので、シンプルで一般的にシーンベースのゲームであるゲームのスペクトラムがあります。
よくある質問は、PokemonやMinecraftのような、今日人々がプレイする現代的なものではなぜダメなのかということです。人々をグリッドワールドに押しやるのと同じ議論ですが、より単純な環境で問題を解決したり取り組んだりできるなら、おそらくそうすべきです。その上に不必要な複雑さを持つよりも。
しかし、これらの現代的なゲームに取り組む人々は、ピクセルを超えて内部データ構造を見る誘惑が非常に大きいです。正直に言うと、私はそれをチートと見なしています。比較的合理的な時間で興味深く見えることをエージェントにやらせる方法ですが、困難な問題のほとんどを回避しています。
インベントリや位置などをチェックしていると、経験の歴史を通じてトラックを維持することを心配していません。だから、Atariはこれらすべての困難な問題に対して解決からはほど遠いのです。
リアルタイム学習の課題
Atari研究コミュニティでプレイしている人々の幅広いコミュニティに私が押したい大きなポイントの一つは、現実はターンベースのゲームではないということです。現在の古典的なRLシステムでは、エージェントがあり、環境を呼び出して「これが私がしたことです。私の行動の結果として何が起こったか教えてください」と言うシミュレーション環境があります。
そして、それは新しい観察と報酬をプッシュバックします。これはチェスや囲碁のようなボードゲームと非常に似ています。RLはそこで本当に壮観に成功しました。しかし、これは現実世界の相互作用の多くとは違います。
チーターやホッパーのような連続的なRLタスクには、これらの複雑さの多くがありますが、これらは研究玩具問題に調整されており、他の豊かさの一部を持っていません。
Atariの作業に取り組んでいる人には、RL環境を逆転させることを推し進めています。環境がエージェントを呼び出すと考えてください。エージェントは単に呼び出されるだけです。環境はおそらく続行し、ビジネスを続けます。
次の行動を考え出すのに本当に長い時間がかかると、その後に多くのことをやっていることでしょう。実際にリアルタイムで作業している場合、このすべての時間を費やすことができないという問題があります。
過去数年間に起こった本当に壮観な結果の一部は、8のような再生比率から来ています。実際に行動を起こすよりも8倍多く訓練し、これらははるかに長い時間がかかったり、何日も実行してゲームプレイの時間を生成する拡散モデルや他のものを構築したりします。
これらは技術レベルから興味深いですが、現実世界で行動する問題を解決することとはかなりかけ離れています。特にレイテンシは多くのアルゴリズムにとって致命的です。これらのアルゴリズムの多くは、取られた行動に条件付けられているからです。
私は世界モデルを構築している、または自己予測表現を構築していて、それは環境に告げているこの行動に条件付けられていると言います。それは素晴らしく機能します。あなたを待っているシミュレータで素晴らしい能力を提供します。観察を得て、行動を起こし、それを処理し、報酬と次の観察を与えます。
しかし、その行動が実際に効果を持つまでに1ダース以上のフレームがかかる場合、次の報酬でのこの単純な条件付けは全く機能しません。単なるランダムノイズになります。そして、これらの壮観なアルゴリズムはほぼ完全に崩壊します。
ロボットによるAtariゲームプレイの実験
現実からの感知が他にどのように違うかという他の質問があります。私たちはこれを一種のスタントとして行いましたが、いくつかの異なる方法で私たちにとって非常に価値のある学習体験でした。人間がゲームをプレイするようにゲームを実際にプレイするために何が必要か、シミュレーションではなく、というアイデアです。
「シンギュラリティは数年後に近い、ロボットがすべてをやることになる」と言っている人々に私が言ってきたことの一つは、次のダンシングロボットのデモンストレーションを取って、ジョイスティックを拾い上げて、以前に見たことのないビデオゲームをプレイすることを学ぶように頼んでみてということです。
これらは、これらのタイプのシステムで起こることに近い能力ではありません。効果的にそれを行うための器用さとループでのレイテンシを必ずしも持っていないだけでなく、これらのことの一部を学習する基本的な問題は依然として困難です。
正確に必要なものだけを供給されるのではなく、周りで起こっている他のすべてのことがある環境でそれを学習することは挑戦です。
これは、カーテンのそばにあるデモで見ることができます。皆さんにぜひ見に行ってもらいたいのですが、これはカメラ、小さなロボットサーボ、そこに詰め込まれたジョイスティックがあり、特に興味深いわけではないRLエージェントを実行しているセットアップです。しかし、今朝学習を開始しました。
現在はかなり平凡なパフォーマンスになっています。数日間実行させれば、どんどん良いパフォーマンスになるでしょう。しかし、これはシミュレーションでうまく機能するRLエージェントを現実世界で適切に動作させるために何をする必要があるかのテストでした。
この作業をオープンソース化する予定です。物理的な側面、ジョイスティックコントローラーの3Dプリンターファイル、フレームワーク、RLエージェント、その中のすべてのものの両方です。昨日ここで公開でセットアップするだけで十分に学んだので、公開する前にもう数回の反復を行う予定ですが、最終的にはすべて公開されるでしょう。
システム設計の詳細
このシステム設計で興味深い選択がいくつかあります。ほとんどのAtariゲームは、コンソールに手を伸ばして小さなリセットレバーを引いてリスタートする必要がありますが、少なくともその多くは、死んだ後にジョイスティックのファイアを押すだけでリスタートできます。
ジョイスティックだけでプレイしてリスタートできる、そのように機能する1ダースほどのゲームを見つけました。コンソール自体に別のサーボを追加する必要がありませんでした。Centipede、Up and Down、Q*bert、Defender、Ms. Pac-Man、Qix、Atlantis、Battlezoneがあります。
ここで機能する他のものもいくつかありましたが、スコアの可用性に関連する他の興味深い理由で失格にしなければなりませんでした。現在実行している計算は、ゲーマー用ラップトップだけです。
ラップトップは少し苛立たしいものです。昨夜、なぜパフォーマンスが下がっているのかで髪の毛を引っ張るような思いをしました。フル充電されておらず、GPUをスロットルする省電力モードになっていたからです。このような惨めなことを扱うすべてのことです。
しかし、ラップトップで16GB 4090相当のGPUを取得でき、これはフレームスキップ4レベルでほとんどの古典的な深層RLアルゴリズムを実行するのに十分です。計算には最適化のための楽しいことがたくさんあり、常に計算とレイテンシの最適化のウサギの穴に引き込まれる誘惑を感じます。
しかし、いくつかの簡単なことだけ。CUDAグラフの大きなファンです。そこで実行されている全体は、グラフへの一つのCUDA呼び出しで、すべてを行います。ポリシー評価を行い、次のセットのものの訓練を行っている間に現実世界の残りを続行させるために早期終了します。これは物事を行う非常に効率的な方法でした。
かなり標準的なライブストリーミングカメラセットアップがありますが、カメラで注意すべきことがいくつかあります。それらの一部は完全な60フレーム/秒を持っていないか、本当に低レイテンシの非圧縮ストリームが欲しいところでJPEG圧縮を行います。
1080でネイティブに動作しますが、Atariには必要ありません。Atariスクリーンは160×210の非常に低解像度です。しかし、スクリーン周りのタグ、スコアボックス、その他さまざまなものを識別するために高解像度で実行したい理由があるかもしれません。
60フレーム/秒はかなり重要でした。最初は、ラップトップのウェブカメラを使用できることを期待していました。ラップトップを開いて、スクリーンに向けて、そこで動作させるということです。しかし、それは30フレーム/秒でした。受け入れられませんでした。
画像処理とレイテンシの課題
スキャンアウトの問題のセットを予想していました。カメラとディスプレイで作業する人は誰でも、常にGen Lock問題があることを知っています。スクリーンは理論的には60で、カメラは60で更新されているかもしれませんが、位相が合っておらず、常に少しずつドリフトしています。
フルフィールドモーションを持つスクロールゲームの問題はより大きいでしょう。しかし、Atariで問題を引き起こした唯一のものは、再び触れる大きなもので、このスコアボックス識別でした。時々、報酬が何になるかを知るためにスコアを見ており、それが半分に分割されて、そのための数字認識器を混乱させます。
スクリーンを見る矯正は興味深いことでした。何もしないことから始めました。ウェブカメラを下に向けて、スクリーンを見て、背景に他のすべての物があり、何もルーティングされておらず、それでも問題なく学習します。基本的なConvNetsは、そこにあるかもしれないランダムな歪みを学習することに本当に驚くほど弾力的です。
しかし、これを取って異なる場所で再利用できることを希望するなら、スクリーンから欲しいものを正確に引き出すことができる必要があります。多くの異なる実験を行いました。April tagsと呼ばれる、ロボティクス関係者がよく使用する小さなフィデューシャルを投入しました。
それらを、私たちが気にするゲームフィールドの周りのスクリーンにステッカーで貼りました。それらを識別し、スクリーンの美しく矯正された画像を引き出すことができました。これは本当にうまく機能しました。カメラを動かしても、どこでもスクリーンを追跡し続けました。
これは、ヒューマノイドロボットが身を乗り出してゲームをプレイすることを使用すると想像するようなものです。しかし、ステッカーは反射するもので、スクリーンは発光するものなので、照明条件の変化がそれをかなり不安定で使用困難にしたという悲惨な問題がありました。また、そのためにより高い解像度を求めたくなりました。1080では大丈夫でした。
私たちがやりたいこと、そしてここでの会議から戻った後におそらく戻ってやることは、より一般化されたスクリーン検出を行うことです。このゲームの背景フィールドがどのように見えるかを知っており、それを識別し、そこからすべてを矯正し、スクリーンに向けるだけで、すべてを理解するはずです。
しかし、それはもう少し作業が必要になるでしょう。出力側では、最初に試すことは小さなデジタルIOを配線することです。これらのRLエージェントはすべて、18の異なる可能性、9つの異なるジョイスティック、上下のボタンから「これがあなたの行動です」と吐き出します。
Atariジョイスティックは素晴らしくシンプルなものです。USBスペックのような現代的なコントローラーとは違います。これらのラインをグラウンドに引き下げるだけで、それがジョイスティックが行うことです。これはかなり簡単でしたが、再び、それは本当にリアルではありません。物理レベルではなく、コンピュータレベルでコンピュータと話しているようなものです。
だから、今私たちが持っているのは「Robotroller」と呼んでいる、文字通りAtariジョイスティックを突き刺す小さなロボットのものです。2軸とファイアボタン用の3つのサーボがあります。これは追加のレイテンシを加えますが、予想されることです。
しかし、考えていなかった少し驚くべきことは、対角軸から別の対角軸に移動するとき、物理的なもので問題があることです。その間に中間ステップがあります。ファントムアクションがあり、ファイアボタンは他の2つの軸とは独立しています。
Atlantisのようなゲームで問題があります。スクリーンの側にあるこれらのタレットから撃つようなゲームです。ジョイスティックを押してファイアボタンを押します。エージェントは「この側から撃ちたい」と言って、そのように撃ちますが、物理システムで実行すると、ジョイスティックは移動しようとしていますが、ジョイスティックが完全に移動する前にファイアを押して、ひどい結果になります。
これは、人々がAtariを行う標準的な方法が観察を供給するだけであるケースの例ですが、これは報酬だけでなく行動も供給する必要がある例です。つまり、報酬ではなく、行動です。過去に何をしようとしたかを知る必要があります。
ここでは、右側に押し渡すように頼んだ後、数フレーム経過するまでファイアを押さないことを学習する必要があります。
私が多く言及する別の例は、古いコナミコードです。古参の人は、上上下下左右ボタンを覚えているでしょう。古いニンテンドーゲームでチートコードアクセスを得るためのものです。人々が使用する標準的なAtariインターフェースが実際に発行することは決してできないタイプのものです。どのボタンを押したかを正確に知らないからです。
観察に影響を与えないため、観察不可能な状態の一部です。頑健性の問題があります。これまでにサーボとジョイスティックを消耗しました。これらのことを一晩中座らせて、ジョイスティックを至る所に押しながら回転させるとき、特にRLエージェントが訓練の初期にプレイする傾向のある方法で。多くの前後の振動のようなものです。
RLアルゴリズムがスコアがひどいから失敗したのか、実際にジョイスティックのボタンの一つを消耗したのかを見つけることが別のポイントでした。
Kurumは、実際のレイテンシを見る本当に素晴らしいタイミングを行いました。これらは、小さな数字で考えることに慣れている人々にとって衝撃的に高く見えますが、ロボットコントローラーでは、一方から他方に移動するのに約180ミリ秒のエンドツーエンドレイテンシを見ています。
カメラと実際の処理で、システムにさらに多くのレイテンシがある可能性があります。処理が15ヘルツレートで行われていることは分かっており、処理に60ミリ秒以上かかることは確実にありません。しかし、その後とその前に行われる全体的なチェーンが積み重なって、非常に多くに見えます。
もちろん、これは私がバーチャルリアリティで行ったことで、良い戦いを戦い、すべてを下げて、モーション・ツー・フォトンレイテンシがわずか20ミリ秒になるようにしたことです。これは、人々が頭を動かすことで病気になることを引き起こさないための限界のようなものでした。私たちはここでもそれと戦い、本当に遠くまで下げようとすることができました。
興味深いことは、Atari 2600 Plusと呼ばれるこの現代的なシステムを使用していることです。その中には、Stellaを実行している小さなRaspberry Piのようなものが入っています。オリジナルのAtariシステムの再構築のようなものではありません。だから、実際のAtari 2600を取り出して、チャンネル3でCRTモニターに接続するのと比較して、このシステムだけで50ミリ秒追加されます。
しかし、要点は、これらは大体人間のような数字だということです。これを行ったことがなければ、人間のレイテンシテストやクリックレイテンシテストで検索を行うべきです。小さなウェブサイトに行くと、色を点滅させて、できるだけ速くクリックするようなものがあります。
実際にテストベッドに注目する価値のあるレイテンシがありますが、150から200ミリ秒のような数字が得られます。だから、これらは学習するのに狂った数字ではありません。
報酬システムの課題
驚くべきことに、このプロジェクトの最も問題のある側面となったのは、強化学習アルゴリズムには報酬が必要だということでした。追いかける報酬が必要です。通常、これらはALが内部メモリ位置を見て、「あなたのスコアが上がった。ここで報酬を与えるつもりだ」と言うことから来ます。
しかし、私たちの状況では、スクリーンを見て、そのための報酬を与えるためにスコアが何かを把握しなければなりませんでした。これは、シンプルに見えます。MNISTのように、永遠にこれをやっているのではないでしょうか。これはAIが単にやることではないでしょうか。
スクリーンショットを取ることができます。ChatGPTにこのスクリーンのスコアは何かと尋ねることができ、教えてくれるでしょう。しかし、異なる位置の異なるゲームでサンプリングする比較的少ないデータでこれを行うことは、実際にはかなり困難であることが判明しました。
これはハードコアMLエンジニアリングではありませんが、私たちがまだ完全に通り抜けていないシステムエンジニアリングです。まだこここでの問題で少し混乱しています。小さなスコアボックスを識別し、数字を見つけるためにモデルを実行します。
しかし、今朝、あそこのデモテーブルのテーブルクロスが少し移動していることを発見し、私たちの小さなスコアボックスから右に移動していました。モデルを実行している畳み込みネットには影響しませんでしたが、スコア検出器がこれで問題を抱えていました。だから、それはまだあまり素晴らしくないので苛立たしいです。
私たちが行った少し中途半端なことの一つは、カスタムな小さなデブボックスを作ったことです。実際のAtariではありませんが、Atariジョイスティックポートがあり、これらの追加のフィデューシャルをスクリーン上に投げることができるので、カメラを持つことができます。
現実世界の照明やすべてを扱うすべての挑戦を依然として持っていますが、スコア問題を少し簡単にします。だから、実際のハードウェアで実行するほどクールではありませんが、これらの問題の一部に取り組むことができます。
学んだ教訓と今後の展望
この側面から学んだこと、これは決して主要な目標ではありませんでした。数か月前に、Upper Boundの前に何か楽しいものをまとめることができるかと決めただけで、価値のある努力であり、皆を一緒にして製品プッシュのように感じさせました。
ConvNetsは、異なる量のグレア、異なるスクリーンを見ることに関して、現実世界の問題に対して基本的に問題なく機能します。その場での学習は素晴らしく機能します。異なる場所への転送を必ずしも実証していませんし、照明条件やモニターの曲率など、何にも気にしない内部の不変表現が何かを言うためには、まだ興味深い小さな挑戦のセットがあると予想しています。
標準的なTD学習アルゴリズムは、追加のレイテンシで問題なく機能します。ゲームによって異なります。速いボールが下に飛んでくるBreakoutのようなゲームでは、それに非常に敏感で、物を追加することでスコアがかなり急激に下がりますが、他の多くのゲーム、Ms. Pac-Manはレイテンシにあまり敏感ではありません。
人間がプレイする方法では、決定を下すずっと前にジョイスティックを押します。しかし、BBF、より大きく、より良く、より速いAtari 100Kのような頂上の犬を取ったとき、100Kフレームで本当に本当に印象的な学習スコアを生成します。
しかし、そこに数フレームのレイテンシを追加するだけで、それは崩壊します。再び、私たちのエージェントは、ここで特に特別なものではありませんが、Rainbowよりもはるかに速く学習しますが、BBFほど速くはありません。
しかし、BBFに数フレームのレイテンシを追加すると、それははるかに下になります。すべての研究者に、環境の直前に遅延キューを追加してもらいたいです。何フレーム遅延するかを上下に調整できる小さな柔軟な遅延キューを置いてください。
しかし、行動条件付けに到達する前に他の場所に一致する遅延キューを追加することでこれを解決することは誰にもしてほしくありません。すべての行動を観察の一部として供給し、異なることが変わるにつれてそれを理解させるような、より良いソリューションが欲しいです。
途中のファントムアクションや異なる行動軸が同期していないという行動パス問題は、少し興味深い問題です。そして、それでもまともな学習を行います。
あそこのデモの一つは今朝再開されました。一つは一晩中実行されていましたが、テーブルクロスがスコアを移動させる小さな問題がありました。しかし、これは小さな整数時間数で、合理的にうまくプレイしています。
そこで人間レベルのスコアではありませんが、数日間プレイさせると、そこまで上がります。古典的なRLアルゴリズムの基本的なアイデアは、このもののためのロボティクス環境で機能し、人間レベルのパフォーマンスは実行可能に見えます。
重要な未解決問題への取り組み
しかし、今私たちが取り組んでいる本当のことは、これらすべての主要なRLタスクです。これらの他の何人かの講演が同じ基本的なことについて話したもの、これらが未解決の基本問題であるからです。私たちはそれに良い挑戦をしており、Atariゲームのスイートの文脈でそれが行われるでしょう。
逐次マルチタスク学習について、人々が最初にAtariゲームがプレイされることを聞いたとき、このモデルは57のAtariゲームをプレイし、すべてうまくプレイすると聞きます。一部の人々は最初に、いや、それぞれが訓練されるということを実現しませんでした。Breakoutをプレイするモデル、Pongをプレイするモデルを作ることができます。非常に似たゲームでも、他のゲームは全くうまくプレイしません。
興味深いことに、順番に学習しようとするだけなら、5時間Breakoutを学習してから5時間Pongを学習し、Breakoutに戻ると、大部分が破壊されています。少し速く戻ってきます。すべてがなくなっているわけではありませんが、非常に人間的でないシステムです。
スコアを特定の方法で正規化する限り、すべてを同時に一緒に訓練すると、うまく機能することが解決されています。しかし、再び、人間の働き方ではありません。解決方法がわからない現実の問題があります。
私の見解では、モデルに知らせるためにタスクIDを渡すのはチートでもあります。「これは新しいタスクです。重みを交換し、モデルの層を変更するべきです」のように。与えられたものを取るだけのモデルである必要があります。ゲームの真新しいレベルに行くことと真新しいゲームに行くことの間に道徳的な違いはないからです。
取り組む必要がある継続学習には依然として挑戦があります。多くの研究者でさえ完全に理解していないと思うことの一つは、このような継続学習を非常に挑戦的にするモデルへのすべての更新で起こるダメージです。
数億または数十億のフレームでゲームを訓練するかもしれないが、行うすべてのオプティマイザーステップが本質的にすべての重みを変更するという考えです。フィードフォワードReLUネットワークを持っている場合、重みの4分の1が変化していますが、畳み込みとバッチでは、すべての重みが変化しており、これはすべての観察への応答がすべて変化していることを意味します。
あなたの小さなミニバッチに基づいて何かをしたことを望み、そこでのパフォーマンスを向上させていますが、他のすべてに影響を与えています。理想的には、これが実際に他のすべてを助けている、または最悪でもランダムウォークであるいくつかの正の転移学習があるでしょうが、ランダムウォークでさえ数億フレーム後に意味不明に連れて行きます。
これは、リプレイバッファーの美徳についてRichと少し議論するポイントの一つです。巨大なリプレイバッファーは私たちのために解決するでしょうか。トンのメモリがあります。28テラバイトのNVMEデータとストレージがあり、そこに物を置くことができます。それだけで解決するでしょうか。
ここで数週間以内にその実験を実行する予定です。うまくいくかどうかを確認します。しかし、それについてやらなければならないよりスマートなことがあります。それの別の挑戦は、主観的エージェント時間で1年前に学んだことがある場合、それでもかき回して、それから学習している場合、オフラインRL問題の中にいることです。
オフラインRLは、変更しているものをテストしていないため、はるかに困難です。「うわあ、これを壮観なものにブートストラップした」という一種の一貫したファンタジーを持つことができます。来月実際に戻ってこれをプレイするとき、良いでしょうが、ひどいことになる可能性が高いです。だから、それでいくつかの他の挑戦があります。
それに関連するのは転移学習です。これらのRLエージェントをすべて起動するだけなら、バカのように見えます。「何をしているのか」というように。Ms. Pac-Manをプレイするのを見に歩いて行って、数時間の訓練後でも「なぜゴーストに走り込んだのか、なぜ理由もなくそこで前後に移動したのか」のようになります。
モデルは、これらが初めて目を開いた乳児のようなものだということです。それは実際にかなり印象的で、数時間で、背後に追加の訓練なしで立ち上がって走り始める子鹿のようです。
しかし、10のゲームをそれぞれ1か月間プレイして、新しいゲームに到達した場合、まともにプレイできるべきです。ゲームがどのように機能するか、進歩するために何をする必要があるかを理解でき、ジョイスティックでランダムにつまずくのではないはずです。
しかし、これはほぼすべてに対して完全に失敗しています。これを始めるか、OpenAIがSonic the Hedgehogゲームを使用した”Gotta Learn Fast”という挑戦を行ったことを発見しました。Atariよりも少し現代的なゲームです。
アイデアは、既存のすべてのゲームで訓練させ、その後、以前に見たことのない真新しいマップでテストするというものでした。これは本当に優れたテストのように見えました。誰も転移学習を実証しませんでした。勝者は単にRainbowを実行し、その100万ステップで学習するための合理的な調整を行いました。
その後、Gatoエージェント、すべてのAtariゲームをプレイすることを学習するトランスフォーマーベースで興味深く見えました。まず第一に、実際にはプレイすることを学習しませんでしたが、別のエージェントの事前訓練された出力を模倣することを学習しました。
しかし、彼らは負の転移学習を実証しました。1ダースのエージェントで訓練されたゲームを取り、ファインチューニングを通じて新しいゲームを学習したいと言った場合、完全に最初から訓練するよりも困難でした。
だから、明らかに理解していない何かがあります。これは問題です。これは、古いモデルを忘れていたとしても、新しいものをより速く学習するべきだからです。継続的な忘却とは少し異なります。それらは一緒に結びついていますが、少し別の問題です。
Atariゲームに基づいて、それらを順番に配列し、最後のサイクルでテストする新しいベンチマークの背後に研究コミュニティの牽引力を得ることを望んでいます。MLでのベンチマーキングの問題は、本当にすべての進歩を推進している数字を追いかけることです。
しかし、ほとんどの場合、これらはAtari数値のすべてのレポートのような、一種のアドホックに指定されたベンチマークでした。誰かが自分の訓練フレームワークを作り、しばらくAtariで作業し、数字を投稿します。研究論文からさえしばしば除外される、または再現可能でない重要な小さな詳細がすべてあります。
極めてシンプルなインターフェースを通じてエージェントを呼び出すハーネスを作ることに価値があると思います。「エージェント、ここがあなたの観察です、ここがあなたの報酬です、あなたの行動を教えてください」のようなもので、環境はそれに対するコントロールなしに続行します。
これが今後これらの問題に対処する正しい方法だと思います。そして、それについてのすべての詳細はスティッキーアクションを持つべきで、決定論的でないものです。すべての異なる可能性の間を行き来できるように完全なアクションセットを使用するべきで、今後数か月でこれらの実験の束を行う予定ですが、実際にコミュニティの賛同を得て、他のことに対して私たちをベンチマークしているより多くの人を引き込むことができることを望んでいます。
スパース報酬と探索の課題
スパース報酬は、現実で他の主要なことの一つです。ビデオゲームの報酬の密度を持つことはほとんどありません。時には1秒に複数回、スコアアップ、スコアアップと言っています。
古典的に、皆が最も問題を抱えていたAtariゲームは、困難な探索ゲームと呼ばれるPitfallやMontezuma’s Revengeのようなゲームでした。これらは報酬信号を得ることなしに数分間プレイするかもしれないゲームで、エージェントがやっていることすべてが得るまでつまずいているなら、それが本当に良いスコアを提供し始めるのに200億フレームを必要とした実行の一部を得た方法です。
そこで行われる必要がある重要なことがあります。ビデオゲームでさえ、人間は通常RLエージェントがするほどスコアを見ていないことは注目に値します。実際にゲームをプレイするとき、死んだときにスコアを見ます。ゲームオーバーのとき、どうしたかを見るためにスコアを見ます。何か異常なことが起こったときかもしれませんが、通常は行動に集中しています。
スコアはコーナーで上がっているようなものです。歴史的に興味深いことに、私の古いビデオゲームDoomは、実際にスコアを持たない最初の主要なアクションゲームでした。そこまで、私たちの以前のすべてのゲーム、Commander KeesやWolfensteinでは、私たちはアーケードの人々でした。だから、ライフとスコアがありました。ライフを使い切りました。別の25セントを入れなければならないようなものでした。
家でこれらのゲームに、ゲームを所有していて、それが最良のプレイを指示する方法ではないかもしれないことを実現するのにそれほど時間がかかったのは少し面白いことでした。しかし、現代のゲームは一般的にそのようなスコアを持っていません。
だから、これらの内在的報酬と好奇心により多く向かい、ゲームまたはエージェントに正確に何を追求しようとしているかを理解させる必要があります。
探索は、古典的なDQNアプローチが100アクションごとにランダムアクション、イプシロングリーディのような別のものです。これは明らかに人間の働く方法ではありません。今、ポリシーベースのアクション、ポリシーベースのモデルは少し良く機能します。Q*bertの側面から落ちるような悲劇的なことをするのを避けることができます。時々アクションが非常に非常に重要です。
Q*bertレベルの端に座っているたびに、間違ったアクションを打つと、死にます。連続的な方法で上下に移動しているPongとは対照的で、それほど重要ではありません。
しかし、現代のゲームコントローラー、そこにXboxコントローラーの写真のように、Atariは18の離散アクションスペースで大丈夫です。ジョイスティック用の9方向、1つのボタンです。追加するすべてのボタンは、そこでのアクション数を2倍にします。追加するすべての新しいジョイスティックは、それを9倍します。
これらの一部がアナログ入力であるという事実を無視しても、現代のXboxコントローラーには100万以上のアクションが可能です。明らかに、それは離散アクションスペースにはならず、そのようにモデル化するつもりはありません。
各軸のようなアクションの因数分解で実験を行いました。これは、異なるレイテンシのためのRobotrollerの問題をある程度対処しますが、興味深いことです。
しかし、時間スケールは別の興味深いことです。伝統的にAtariゲームは、1つのアクションを作り、4回繰り返すこのフレームスキップ4体制で機能します。これは、前後に移動しているだけの強化学習エージェントの特徴的なブザーを引き起こします。
人間は明らかにより指向性のある目標を持っています。レベルのその端に到達したい、そのアイテムを取りに行きたいのような。これはRL研究のオプションが適用される場所のようですが、Atariゲームへの有用な応用をまだ見ていません。試すつもりです。
Atariが残念ながら良くないことの一つは、モデルに再帰が必要だということです。脳は再帰ニューラルネットワークです。先行情報をより限定的な状態に消化し、それを維持し、継続的な更新を行います。
しかし、Atariでは、ほとんどがプレイフィールドなので、handful of framesを取って、その履歴を提供するという標準的な実践がうまく機能します。まだ再帰の導入から実際の利益を見ていません。おそらくそのためにいくつかの異なるタスクを見つけなければならないでしょう。
時間がほぼ尽きました。実際にnitty-grittyの技術的詳細であるこれらすべてのことがあり、おそらくこれらを投稿し、後でそれについて話すことになるでしょうが、質問に行き、それがタイマーがゼロまでカウントダウンする際に指示することができます。
質疑応答
拍手
マイクはありますか。こんにちは、ジョン。講演ありがとうございます。
提案したベンチマークについて疑問に思っています。Atari 100Kについて非常に批判的だった一つのことは、人々が訓練プロセスの長さに最適化し始めるという事実です。ステップサイズを上げることができ、ステップサイズを上げれば100Kまでに良いものにヒットすることを知っているが、200K訓練すればこれが機能するという意味ではない、ということです。
ここで示したビジョンは本当に好きですが、スイープの実行を開始してから、この非常に短い時間枠があるとき、速く学習することに焦点を当てることで、そこでチートする場所を非常に注意深く示したこのタイプの過最適化に自分自身を開放していませんか。
これは常にAtari 100Kについての私の不満でした。チートするのが少し簡単すぎるように感じます。また、探索にも少し結びついていますよね。短い時間枠では、その時間枠内に強打をヒットするかどうかがはるかに運の問題になります。だから、このパフォーマンスの分散にも自分自身を開放しています。
この種のことについてのあなたの考えを聞きたいと思います。
はい、それらは非常に現実の問題で、これらは皆とディスカッションを持ちたいことです。通常、分散は巨大で、より長い時間訓練することを言いたいのですが、実験速度が十分に速い必要があるもので、実際に実験を行うことができるようにする必要があります。
あなたのアイデアが良いかどうかを判断するのに1か月かかるようなものを持つことはできません。だから、おそらく8つのゲーム、3サイクルというこのアイデアは、1つのAtari 100Kを実行する計算とほぼ同じです。
人々に「いや、それ以上を処理できる」と言われることに開かれていますが、物事に取り組んでいる多くの人々が「それはすでにリソースを束縛するのに少しストレッチです」と言うと疑っています。異なる数字で統計的確実性を持つために20の異なるシードを行う必要があることを知っているからです。
単一実行は異なる数字で野生の分散を持つことができます。BBFのモデルリセットが20Kごとにあるような実際のもののように、その時点でパフォーマンスが急落するため、愛していません。
持ちたいことの一つは、明示的な評価フェーズなしです。大きなベンチマーキングでMuZeroが正しく行ったと思うのは、フルアクションセット、スティッキーアクション、専用の評価ではなく、訓練の最後の200エピソードのようなものでした。
だから、最後のセットのエピソードのようなものを考えています。モデルリセットを行っている場合、平均に投げ込まれるいくつかのゼロスコアを得て、少なくとも部分的にそれを罰するでしょう。
正確な切り替えに関して、エピソード境界で正確に切り替えるか、切り捨てるかという問題があります。興味深いことが起こるからです。ランダムに切り捨てて、特にそれを処理しない場合、エージェントには青天の霹靂のように彼らを破壊したように見えるでしょう。
私たちがそれを行っているときに重要な負の訓練を見ました。しかし、明示的な終了信号を渡すことができます。だから、100Kステップごとに変更すると言って、完全なエピソードを訓練させてそれらが整列していないようにすることを考えることはおそらく良いでしょう。
しかし、これについて開かれています。しかし、悪いベンチマークでも、ベンチマークなしよりも良いと思います。何かを測定する必要があります。他の何かに対して測定されていない抽象的な事柄でのランダムな結論であれば、価値の蜃気楼を持つのは簡単すぎると思います。
だから、ベンチマークを全く実行しないよりも、人々がベンチマークをゲーミングしてもらいたいです。だから、それをチート証明にするよりも、バイインの方が私にとって重要です。そして、コミュニティの approbation を使います。「それは完全にチートです。誰もそれに注意を払うべきではありません」のように。
少しカーテンを引き戻してくれてありがとうございます。明示的なスコア対内在的報酬の違いについて話しました。人間の内在的報酬を引き付ける対話型システムを構築する多くの経験があります。スコアを見ることさえしないでプレイするようなもの。
機械の内在的報酬を設計することと人間を引き付けるものとの違いについて考えがありますか。人間の好奇心から輸送すべきでないものはありますか。
それは非常に興味深い質問です。人類は模倣しようとしている知能の存在証明だからです。だから、人類の癖のいくつを模倣してそれを示そうとするかという質問で、模倣すべき明らかなものがあると思います。
エージェンシーを何らかのレベルで報酬するというこのアイデアのように。何かをコントロールしていて、何かを起こしていることを知ること。そして、視覚フィールド効果について何かがあります。最も、小さなピクセルの調整は、画面全体の巨大な爆発よりも報酬が少ないのような。
しかし、具体的なものに入ると、それほど明確ではありません。人間の心を報酬ハックするようなものがあり、オンラインギャンブルや、それを最大化するために強化スケジュールを解決できる異なるもののようなものがあります。それはおそらく理想的ではありません。
最終スコアがメインドライバーであるのがおそらく最良だと思います。最終スコアを改善するなら、それは良い内在的報酬だと言います。すべてスパース報酬にする場合、報酬を与えない場合、スコアの読み方を学習し、スコアアップが良いことだと決定するかもしれません。
モデルがそれを見つけたり、他の何らかの方法を見つけたりしたら、私はそれで完全に幸せでしょう。しかし、最終的にスコアがおそらく私たちが見るべき正しい指標です。スコアを改善しない場合、理論的に興味深いかもしれませんが、おそらくそれに対する実際の良い報酬ではありません。


コメント