AlphaZero:Google の AI が 24 時間以内にチェスと囲碁を制覇
ボード ゲーム (チェスのような) は、人工知能の歴史の中で広く研究されている分野です。チューリング、バベッジ、フォン・ノイマン、シャノンのような先駆者は、チェスのゲームを分析してプレイするための理論、アルゴリズム、ハードウェアを開発しました。そしてここ数年、囲碁や将棋など、より複雑なゲームで人間を上回るパフォーマンスを発揮する同様のプログラムが登場しました。
Google の Deepmind は、ボードゲームで人間に勝つという点で驚異的な実績を持っています。 2015 年、彼らのプロジェクト AlphaGo は、人間 (プロの囲碁プレイヤー) に勝った最初のコンピューター囲碁プログラムとなりました。そして今、彼らはチェスのゲームを自ら学習し、ほぼ 4 時間で人間や他のコンピューター プログラム (ストックフィッシュやディープ ブルーを含む) に勝つことができる AlphaGo プログラムを開発しました。
従来の(ボードゲームの)AI プログラムは、その分野に合わせて高度に最適化されており、人間の介入なしに他の問題に一般化することはできません。一方、AlphaZero プログラムは、いくつかの困難な領域で超人的なパフォーマンスを達成できます。ゲームのルール以外の事前知識がなく、ランダムなプレイから始めた AlphaZero は、チェス、将棋、囲碁のゲームで 24 時間以内に超人的なプレイ レベルに達し、いずれの場合も世界最高のプログラムを破りました。彼らはこれをどのように行ったのか、そしてその正確な結果はどうなったのでしょうか?調べてみましょう。
方法論
2017 年 10 月、Deepmind は、同社の AlphaGo Zero アルゴリズムが、ディープ畳み込みニューラル ネットワークを使用し、強化学習のみによってトレーニングされ、超人的なパフォーマンスを達成したと発表しました。エンジニアは同じアプローチを使用して、AlphaZero と呼ばれる汎用アルゴリズムを構築しました。これは、 従来のゲームプレイアルゴリズムで使用されていたドメイン固有の拡張と手作りの知識をディープニューラルネットワークに置き換えます。 そしてタブララサ強化学習アルゴリズム .
AlphaZero は汎用のMCTSを使用します。 アルファベータ検索ではなく、(モンテカルロ木検索) アルゴリズムを使用します。 それ自体と対戦することで値の推定値と手の確率を学習し、学習した情報を検索のガイドに使用します。
AlphaGo Zero アルゴリズムとの違い
AlphaGo Zero アルゴリズムは、バイナリの勝ち負けの結果を考慮して、勝利確率を推定し、最適化します。一方、AlphaZero は、引き分けやその他の潜在的な結果を考慮して、予想される結果を推定し、最適化します。
囲碁ゲームのルールは、反射と回転に対して不変です。この事実は、AlphaGo とその上級バージョン AlphaGo Zero の両方で 2 つの方法で非常にうまく活用されています。
- ポジションごとに 8 つの対称を作成して、トレーニング データを強化します。
- MCTS アルゴリズムでニューラル ネットワークによって計算される前に、ランダムに選択された反射または回転によって位置を変換します。これにより、計算がさまざまなバイアスにわたって平均化されます。
チェスや将棋の場合、ルールは非対称であり、一般に対称性を仮定することはできません。 AlphaZero では、トレーニング データは拡張されず、MCTS 中にボードの位置は変換されません。
AlphaGo Zero は、以前の反復で最高のプレーヤーを使用してセルフプレイ ゲームを生成します。各反復の完了後、新しいプレーヤーのパフォーマンスが最高のプレーヤーと比較して評価されます。 55% の差で勝った場合、最高のプレーヤーが交代し、新しいプレーヤーによってセルフプレイ ゲームがさらに生成されます。ただし、AlphaZero は、反復が完了するまで一時停止するのではなく、単一のニューラル ネットワーク (継続的に更新) を維持します。
AlphaZero の最適化とトレーニング
AlphaZero は、ゲーム固有の最適化を行わずに、すべてのゲームでハイパーパラメーターを使用します。探索を確実にするために、ノイズ係数が統合されており、そのタイプのゲームの正当な手の数に比例して調整されます。
AlphaGo Zero と同様に、盤面の状態は空間面によってエンコードされ、アクションは各ゲームの基本ルールに基づいて空間面または平面ベクトルによってエンコードされます。
開発者は、AlphaZero をチェス、将棋、囲碁に適用しました。 3 つのゲームすべてに同じネットワーク アーキテクチャ、ハイパーパラメータ、設定が使用されました。アルゴリズムの個々のインスタンスはゲームごとにトレーニングされます。ランダムに初期化されたパラメータから開始して、セルフプレイ ゲームの構築に 5,000 個の第 1 世代 Tensor Processing Unit を使用し、ニューラル ネットワークのトレーニングに 64 個の第 2 世代 Tensor Processing Unit を使用して、700,000 ステップのトレーニングが実施されました。
参照:arxiv.org
結果
図からわかるように、チェスで 300,000 ステップ (4 時間後) を実行した後、AlphaZero は Stockfish を上回りました。 110,000 歩 (2 時間以内) で Elmo を上回りました。そして、165,000 ステップ (8 時間後) で AlphaGo Lee を上回りました。
AlphaZero の完全にトレーニングされたインスタンス (3 日間トレーニング) は、AlphaGo Zero、Elmo、および Stockfish に対してテストされ、手ごとに 1 分の時間レートで 100 試合をプレイしました。結果は非常に印象的でした (以下の表に記載)。
AlphaGo Zero と AlphaZero は 4 つの Tensor Processing Unit を備えた単一マシンを使用し、Elmo と Stockfish は 64 スレッドと 1 GB のハッシュ サイズを使用して最高のパフォーマンスを発揮しました。 AlphaZero はそれらすべてを破り、Elmo には 8 ゲームを失い、Stockfish には 1 も負けませんでした。
Google の開発者は、AlphaZero での MCTS 検索のパフォーマンスも調査しました。毎秒、将棋では 40,000 件、チェスでは 80,000 件の局面を検索しますが、エルモでは 3,500 万件、ストックフィッシュでは 7,000 万件です。 AlphaZero は、ディープ ニューラル ネットワークを使用して、最も有望なオプションにさらに選択的に焦点を当てます。あるいは、より人間に近いアプローチとも言えます。
読む:評価に基づく 15 のベスト チェス エンジン
AlphaZero はまだ初期段階にありますが、その目的に向けた重要な一歩となります。同様のアプローチを、タンパク質の折り畳み、新素材の発見、エネルギー消費量の削減など、他の構造化された問題にも適用できれば、その成果は私たちの将来にプラスの影響を与える可能性があります。
産業技術