Alpha ZeroとStockfishの試合でのランダム性の原因は何でしたか?


7

私の理解では、Alpha Zeroのアルゴリズムは「学習」フェーズの後で修正されたので、すべてのポジションで同じ動きが生まれるでしょうか?完全にストックフィッシュの設定が原因で試合の変動性があったのですか、それともアルファゼロもその移動選択にランダム性の要素を表示しましたか?


2
アルファゼロで使用されるモンテカルロツリー検索は、かなりランダムに聞こえます。
hoacin

1
モンテカルロは決定論的アルゴリズムではありません。
SmallChess、2017

私の理解では、mcstはニューラルネットをトレーニングするための「学習」フェーズで使用されていましたが、アルゴリズムは実際のマッチングのために準備されていました。私はトリックを逃しているようです。
firtydank 2017

3
mctsは常に使用されていたと思います。
hoacin 2017

別の可能性としては、変動の原因となる可能性が低い場合は時間です。同じ動きで同じ時間が使用される可能性がありますが、計算を実行するために異なる時間を費やす可能性は常にあります。そのため、ある時間よりも少し速く実行され、より速い時間でより良い結果が得られました。それは遅い時間よりさらに進んだので答えます。
Benji Altman 2017

回答:


6

AlphaZeroがhttp://www.chessgames.com/perl/chess.pl?tid=91944&crosstable=1で1.d4と1.Nf3を再生したことに気づきました。可能性:

  • マルチスレッディング(ソフトウェアエンジニアであれば、決定論的ではないことを伝えることができます)
  • モンテカルロツリー検索(アルゴリズムはランダムパスを描画するため、決定論的ではありません)

モデルのパラメーターは「固定」されています(ご自身の言葉)が、実際の動きは異なる場合があります。AlphaZeroのソースコードはありませんが、マルチスレッドとMCTSが2つの主要な原因である可能性があります。


1
マルチスレッドが確定的でないとはどういう意味ですか?使い方次第ではありません。最初にどのスレッドが終了するかはわかりませんが、ほとんどの場合、実行される順序との不一致がプログラムの最終結果に影響を与えないように注意する傾向があります(または少なくとも試行する傾向があります)。
Benji Altman 2017

@BenjiAltman私はソースコードがないと書いた。あなた自身の答えのために貢献することは大歓迎です。
SmallChess

3
チェスエンジンのマルチスレッド処理は、ほとんど確定的ではありません。
SmallChess

1
@BenjiAltmanスレッドは処理を完了すると、異なる時間になる場合があります。プログラムが何らかの方法ですべてのスレッドが終了するのを待って確定的にそれらを返す場合を除き、実際の結果は、スケジューラによってどのスレッドに高い優先順位が与えられているかによって異なります。

1
@rec正解。チェスなどの高性能アプリケーションは、スレッドが終了するのを待たない(ビジネスアプリケーションではない!)ため、確定的です。たとえば、マルチコアで実行されているStockfishは100%非決定的です。
SmallChess

5

LC0の作成者はAlphaZeroの論文を非常に注意深く調査し、独自の実験を行い、次の結論に達しました。AlphaZeroは、アルゴリズムをモンテカルロツリー検索(すべてのモンテカルロメソッドは定義上、明示的にランダムです)と呼んでいますが、特定の数の移動後、明示的な非決定性を使用しません(これは15移動です)。

MCTSには、動きの選択にランダム性をもたらす可能性のある2つの異なる部分があります。

  1. AlphaZeroは、検索フェーズ中に、2つの要因に基づいて探索する移動の重みを割り当てます。ニューラルネットワークによって評価される勝率と、親と子の移動サブツリーのサブツリーサイズ統計です。最初の要素は、より有望な行が最初に評価されることを保証し、2番目の要素は、より有望な行が最終的に検索されることを保証します。MCTSの自然な実装では、これらの重み付けされた可能性の間で重み付けされたランダムな選択肢を使用します。実際には、AlphaZeroは毎回最大重量を選択するだけで、これらの中から完全に確定的に選択します。これは、このステップのランダム性が役に立たないことが判明したためであり、平均して、より重要なバリエーションからエンジンをそらすだけです。

  2. 移動フェーズでは、検索フェーズで計算された詳細かつ正確な評価がすでにある移動候補の間で重み付けされた選択を行うことができます。そのアイデアは、そのプレイに多様性を導入しようとするために少し次善の動きをすることであり、そのため毎回同じゲームをプレイするわけではありません。これはトレーニング中に特に重要ですが、より興味深いマッチ結果にもつながります。AlphaZeroがこれを行うのは最初の15移動程度だけで、その後は常に最良の移動を選択することがわかりました。この決定論は、非常に正確なエンドゲームプレーに不可欠であることが判明しました。評価の小さな違いが、引き分けと勝利の違いであることが判明しました。

これは、トレーニングと評価の両方に当てはまります。

言いかえれば、それが冒頭から出ると、そのプレーは伝統的なエンジンと同じくらい確定的です。

ただし、従来のエンジンと同じ種類のマルチスレッド化と時間制御の非決定性を持つことに注意してください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.