読者です 読者をやめる 読者になる 読者になる

Deep Learningとオセロでガチ勝負してみた

IT

Deep Learning、最近よくわからないけど熱いですよね。

私も最初は高をくくっていました。

「たかがコンピューターに『本物のディープ』がわかるはずがない」と。

しかし決戦の日は突然やってきたのです...

というわけでDeep Learning AIと戦えるオセロを作ってみた

とりあえず成果物はこちらです。

https://acomagu.github.io/dl-reversi

自分は青(or 黒)固定で、先攻です。

上の顔文字は機械学習側の考える「勝率」を表していて、それに合わせて8パターンに変化します。

f:id:acomagu:20151105000358p:plain

簡単に仕組みを説明すると、AzureMLで作ったモデルにAWS Lambda経由でリクエストし、毎ターン一番勝率の高そうな手を指しています。 また、勝敗が決定したと同時に学習用データをAWS Lambda→DynamoDBに溜め込んでいます。

詳しくはソースコードをご覧ください。

機械学習側は基本ソースコード書かずに行けました。AzureML最強です。

f:id:acomagu:20151105000816p:plain

フロントエンドはReactで書いていますが、なんせ初めてのReactだったので最適解がいまいちわからず、forceUpdateなど本来使ってはいけなそうなメソッドを使っていて恥ずかしいです...(pull request大歓迎です←)

実際戦ってみた感想としては、学習データが悪いのか、パラメータが悪いのか、めっちゃ人間を舐め腐ってる自信ありげな顔で負けてきます。

なぜなのか...このへんどなたか突っ込んでくれると嬉しいです。

機械学習超簡単!」

...と、一部方面からスナイパーライフルで一撃されそうなことを書いてみますが...

Deep Learning理論のかけらもわからないこんなクズでも、こんなもの程度であれば割と簡単に作れてしまう時代になりました。

あとはアイディア勝負ですよね?←

というわけで今まで「興味はあるけど...:;(∩´﹏`∩);:」と静観していた方はLet's実装です。