質問: 146 $に変わります。 私はMLを使用して、パターンを見つけることができるかどうかを調べるために事前に生成されたターンを供給することによってこれを試して予測したいと考えました。複雑な変数はほとんどありませんので、あまり複雑ではないはずです。理想的には、MLがゲームのプレイ方法を学ぶことを望みます。 私はどのようなタイプのMLがこの種の問題に適用できるのだろうかと思いますか?私がゲームを簡単にしたとしても、どこから始めるべきかはわかりません。私は過去に作ったより複雑なゲームを持っているので、MLを同様に適用しようと思っています。
回答: このゲームで出力される数値には、いくつかの異なるデータサイエンスとMLテクニックがあります。あなたは人間の選手のスタイルを分析しようとすることができます。実際の金額を無視して期待利益/損失のテーブルを生成し、$ x \ gt wか$ x \ leかどうかを知るだけで、プレーヤーがそれを見なかったとしても$ x $の確率分布を見積もることができます十分な例からw $。 あなたの最終的な目標が、コンピュータがどのようにそのようなゲームを*再生*するかを調べることである場合、明確な機械学習の選択肢は強化学習(RL)です。コンピュータがゲームをする唯一の方法ではありません。これには非常に多くの最適化手法があります。しかし、それは機械学習手法であり、データ観測から学習します。また、多くのバリエーションでは、特定の位置からの勝利の可能性や今後の報酬の予測など、興味深い数値解析が含まれています。 RLは単一のアルゴリズムではなく、単一の手法でもありません。代わりに問題を構成する方法であり、そのような問題を解決するすべての方法がRLとみなされます。 RLが機能するには、マルコフ決定プロセス(MDP)のような枠組みが必要です。良いニュースは、あなたのゲーム例とそれに類するものが既にMDPの良い例であるということです。 RLでは、エージェントがゲームをする方法をその*ポリシー*と呼びます。 RLの通常の目標には、特定のポリシーのパフォーマンスの測定、または最善のポリシーの発見が含まれます。 だから、どこから始めるの?まず、あなたのゲームでRLプロセスを試してみたいのであれば、おそらくいくつかのことをすべきです: * Understand what in the game is the *State*, what are the *Actions* and what are the *Rewards*. + The state is anything that the agent knows about and can affect the outcome. Probably the only thing to worry about here is the current funds $f$, although this may not have a huge influence unless $w$ can always go up to $f$. Note each value is treated as a *different* state. + The action is the agent's choice of both $w$ and $g$ - note each specific combination is considered a *different* action. If there are a large number of actions, this can make learning harder, requiring more advanced RL algorithms, so I recommend initially you try variations of your game with limited number of choices. + The most obvious choice of reward is the change to $f$ at the end of each turn. It doesn't have to be though, it depends on what you consider a "winning condition" to be for the game. See below. * Simplify the game options a little. Set a small limit to possible ranges of $x, w, g$. This will make it easier to try things out initially. * Set a clear goal that you want to achieve, and make sure that the game structure works for that. You may need to adjust the game representation for even simple change such as "get the most reward in 10 turns" - because that might encourage large wagers at certain steps, and the agent will need to know how many turns it has left (so your state becomes combination of $(f, t)$. Another variation that may work is to set the goal of getting to a certain amount of funds, such as 1000. In which case, the reward would not be the increase in $f$, but actually be +1 for getting to that target, and 0 for any other result. That might radically change the behaviour of the agent, which could be interesting to experiment with. * Look up simple Reinforcement Learning algorithms. I suggest you start with tabular methods - perhaps Monte Carlo Control, or Q-Learning. They can typically be implemented in a few tens of lines in Python/Numpy. A useful resource for RL is Sutton & Barto's *Reinforcement Learning: An Introduction*. The draft of the second version is free to download.