ポーカーとAI

最近はAIの開発をしていまして、最近はAlpha Zeroの話をよく書いてました。

Alpha Go Zeroの論文の翻訳 その4

 

で、これを読んだ人から疑問をもらいまして

「後藤さんが取り組んでるようなAIって、囲碁みたいな完全情報ゲームにしか使えないんでしょ?」

と言われました。

そんなことはありません。応用次第で、いろんなことに使えますよ!

それに、AIと言っても、本当に幅広いのです。

 

加えて、AIが使える分野は完全情報ゲームだけではなく、不完全情報ゲームでも実績を上げ始めているので、それは証明されている、と思います。

 

で、不完全情報ゲームと言えば、ポーカー、麻雀などですが、最近、テキサスホールデムというポーカーのゲームにはまってるので、ちょうどそのテキサスホールデムをAIでやるという話を書いておきます。

不完全情報ゲームのポーカーで人間を倒したAI「Libratus」が採っていた戦略が論文で公開される

 

なぜ人間はポーカーでAIに負けたのか? 日本トッププロが解説する“違和感” (1/2)

 

ニュースなどで報じられているカーネギーメロン大学のAI

Libratus

 

さんについては、論文とかしか情報がなさそうなので、おいておいて…(;^ω^)

Deep Stack

 

さんのサイトを見ました。で、動画も見ました…が、英語、むずい… 一回見ただけじゃあまりわからなかった(;^ω^)

その場で行う再計算(re-solving)、の完全にゲームを計算して推理するのではなく、ある程度の当て水量でゲームをするDeepStack’s “intuition”(本能的にという意味) 、Sparse lookahead Trees(完全に計算するのではなく、ある程度のツリーで計算する)など、がミソと書いてますね。

へぇぇ~ なるほど(´ω`)

だいぶ、人間っぽい!!

 

ちなみにポーカーの戦略の組み合わせは、10の160乗あるらしいです。(ー_ー) 10の160乗は、宇宙全体の物質の数より多いらしいです( ゚Д゚)

 

なんとプログラムもダウンロードできるので、時間あれば見てみたいなと思ってます。

実際のゲームの動画もあるので、見てみると、特徴としては、微妙な手で微妙な金額を賭けてくる、ということでしょうか?

もっとポーカー好きで詳しい人が見れば人間とは違うところがわかるのでしょうが、私はまったくのシロートなので、そんぐらいしかわかりませんでした。


なんというか、手が強いとか、弱いとかより、いかに報酬を最大化するか、ということに気を配るべき、というのも思いましたね~。

 

話はそれますが、Deep Stackのサイトの中で、ジョン・F・ノイマンという有名な科学者の名言(?)がありまして、

“Real life consists of bluffing, of little tactics of deception, of asking yourself what is the other man going to think I mean to do.”

 

「現実の人生は、ブラフや、戦略や欺瞞や、自分自身への自分がすることにより、他人がどう思うかという問いかけによってなりたっている」

というのが紹介されています。ふっ 深いィィィィ

 

ジョン・F・ノイマンは、ITの方なら、「ノイマン式コンピューター」という言葉を聞いたことがある方もいるかもしれませんが、そのノイマンさんです。

超天才のノイマンでしたが、ポーカーがあまり得意ではなく、そのためにゲーム理論を考え出した…などと言われております。

へぇぇ

ノイマンさんの方に興味が移ってしまい、色々調べていると、本当にすごい人ですね。

私の仕事的な興味とすれば、モンテカルロ法、マージソートもノイマンが考案したものらしい。SUGEEE

Wikipediaさんの抜粋ですが

「ENIACとの計算勝負で勝ち、「俺の次に頭の良い奴ができた」と喜んだ。」

「赤狩りのときには、エドワード・テラーと対立してロバート・オッペンハイマーを擁護し、さらにソ連のスパイだったクラウス・フックス水素爆弾を共同で開発していたこともあり、非難されている。また、日本に対して原爆投下の目標地点を選定する際には「京都が日本国民にとって深い文化的意義をもっているからこそ殲滅すべき」だとして、京都への投下を進言した。このような側面を持つノイマンは、スタンリー・キューブリックによる映画『博士の異常な愛情』のストレンジラヴ博士のモデルの一人ともされている。」

らしいです。へぇぇ。(´ω`)

 

そういえば、ゲーム会社で働く友人から、

「歴史上の人物で、そんなに有名じゃないけど、聞けば、あー、あの人ね(´ω`)ってなる人教えて~」

って聞かれてた。今って歴史上の人物がカードになるカードバトルとか、とにかく流行じゃないですかwww 歴史上の有名人、枯渇してきてるよな~。

ノイマンさん使ったらどうですかね?中二病的要素は非常に多いと思われ。あっ、でも有名じゃないか。

 

博士の異常な愛情、見てみたいですね。しかし、キューブリックの映画って怖いんだよな(´ω`)

Smart動態管理 Android版4系での不具合

昨日のGoogle Playからのアップデート(9.0.3)でSmart動態管理 Android版4系で起動しなくなる、という不具合がありまして、誠に申し訳ございませんでした。

実は私自身が担当して修正した箇所でした。

もちろん、弊社で起こることのすべて私の責任ですが、これはもう、ド直球で私に責任があります。

朝から多くのお客様にご迷惑をおかけしました。

午後には9.0.4を急きょリリースし、修正ができております。

重ねてお詫び申し上げます。

今後ともSmart動態管理を何卒よろしくお願いいたします。

アートアクアリウム行ってきました

アートアクアリウム行ってきました!

OLYMPUS DIGITAL CAMERA

もう、3年越しぐらいの希望がかなった!!⊂(^-^)⊃

去年もおととしも、行ってみて、2時間待ちとかだったのであきらめてたんですが、今年はファストパス的なやつ買ったりして、並ばずさくっと入れましたo(>▽<)o

中はかなり混んでましたけど…。

おおお 芸術~ 美しい!!

 

というのにプラス小さいころ、ずっと金魚飼ってて、本当に金魚が好きだった~。

金魚って、大きくてフリフリしてたり、色がいっぱい混じってる高級な金魚ほどすぐ死んでしまうのよね。。ρ(。・_・、)

この狭い水槽や鉢の中で、よく金魚平気で生きてるな~とも思いながら、見てました。
生命のあるもの以上に美しいものないですよね~。(`・ω・´)

って、仲の良い女友達に話したら、後日彼女が行って

「そんなによくなかった!」

って言われちゃった(;’∀’)

私は話を盛りすぎなのかー?!

今年も、浴衣5着をちゃんと着切るぞ!!まだ2着しか消化していないので、ムズゲー化してます…。

働き方改革っていうアレ

働き方改革っていうのが進んでますね。

しかし、いつも不思議に思うんですが、残業規制ってするだけで、残業って減るんですか??

そんなに世の中の普通の会社の人々は、夏休みのノビタ君みたいに、締め切りがないからダラダラやってたり、付き合い残業をされたりしているわけなんですか?

残業規制があったほうがいいとは思うんですけどね。そこが一番不思議なんですよ~。

 

というのも、私は一番忙しかったのは新卒で入った外資系の会社ですけど、ほんっとうにめちゃくちゃ忙しくって。

9時半ごろから仕事を始めて、夜の9時に帰れればいいほうだし、他の人は大体終電か、終電をわざと逃してタクシーとかってのが多かったですね。

でも、付き合い残業なんてしている人もいないし、さぼってるわけでもなく、みんな仕事中はほんっとうに一生懸命やっててもそれぐらいにしか終わらなかったんですよ。

今思うと、あの会社にはシステムがなかったので(ITの会社だったのに)、なんでも人力でやっていて、人がやることだから、ミスだらけ、そのカバーでまた人員がさかれって悪循環ばっかりでしたね。。。

なので、私は残業ばっかりで忙しい~!!って会社さんの話を聞くと、残業規制だけで残業が減るものなの??( ゚Д゚)とおもっちゃうのです。

 

なので、残業対策にはシステムを入れるのが一番じゃないですかね。

 

で、弊社のSmart動態管理は配送会社さん向けに特化したシステムなので、業務効率が上がります!

Smart動態管理についてのお問い合わせはこちらから

OLYMPUS DIGITAL CAMERA

 

三崎に行ってきた話

人狼仲間のH君の仕切りで、人狼いつもやってるメンツで三崎でまぐろ食べる→油壷マリンパークへ行くというツアーをしてきました!

って、もう2か月も前の話なんだけど(;’∀’)

まずは横浜で集合して!京急でしゅっぱーつ。

三崎について…

なんか、おしゃれなスポットが随所に…

 

港!

この写真、自分でもめっちゃ好きなんだけど。

緑&赤&白がイタリアみたいじゃない?www

これも好きw

ジャスミン~💛 かわいい、かわいいよ!!o(>▽<)o

こちらは激キュートなN嬢。

飛んでますね!⊂(^-^)⊃

タイタニックごっこをしているはずが、後ろに何人もいた件w

タコを干してる店があって、

「食べたーい」

とか言ってたら、なんと本当に食べさせてくれた!すごいホスピタリティに感謝。

無事マグロ食べて…

マグロ食べてる間も、ワードウルフするうちら。どんだけゲーム好きなの…w

 

突然チューされたw

こ、こんなところで!大胆ね!ジャス!!

この恋…センチメントル…!!(*^^*)

 

油壷マリンパーク!

私、こういうちょびっとさびれた施設好きですねwww

なんか、そういうところの方が、楽しいって思うときに、施設のおかげで楽しいんじゃなくって、メンツが楽しいから楽しい、って心から時間を楽しめる気がするからw

 

この写真、Jに

「ほかの人は、サメに飲み込まれて大変ってなってるのに、あきさんはサメの口の中でも誰かを襲おうとしている!」

って言われた…。その発想はなかったわ。

 

どこからか聞こえる、ミスチルのSign…。

「これは、もしかして…?!」

「そう、ジャス、うちら、今、オレンジデイズの中やで」

…って、このネタ前も使ったな。。。( ・∀・)

ちなみに、私の最近のブログに乗ってる写真、全部、この緑のTシャツにキャップだな…。

すみません、これしか服持ってないんですよ…(´・ω・)

…嘘ですけどね!

とにかく、一日楽しかったので、幹事のH君、一緒にいってくださった皆様に感謝×感謝です⊂(^-^)⊃

Smart動態管理の導入企業社数が、1800社になりました

昨日(2018/8/7)の時点でSmart動態管理の導入企業社数が、1800社になりました。

 

https://doutaikanri.com/smart%e5%8b%95%e6%85%8b%e7%ae%a1%e7%90%86%e3%81%ae%e5%b0%8e%e5%85%a5%e7%a4%be%e6%95%b0%e3%81%8c1800%e7%a4%be%e3%82%92%e8%b6%85%e3%81%88%e3%81%be%e3%81%97%e3%81%9f/

 

ご導入頂いた皆様、ありがとうございます。

日々業務をしていると、至らない点も多々あるとよく思います。

弊社の全員が、その点をカバーするためにがんばってます。

そして、より高度な機能、使い勝手の向上に取り組んでいます。

近日中に、新機能が発表できる…予定です。

 

「動態管理」という分野も、大企業さんが多数参入されています。

その中でも、弊社製品を選んでいただいたことに心から感謝を申し上げます。

Smart動態管理は、特に配送業に特化した動態管理です。それが、ほかの動態管理と違う面だと思います。

機能面で配送業さん向けの機能が充実していますので、ご選択の際には、それがポイントにもなっているのではないでしょうか。

特に、人手不足は配送業界において大きな問題で、それを解決する一つの手段になっているかとも思います。

 

また、業界の中でのパイオニアでありつづけるという気概を持って、他社さんが取り組まないことにもどんどん取り組んでいきたいと考えていますので、これからもご期待ください。

 

Smart動態管理にご興味のある方は、下記のマンガをご一読ください。m(_ _)m

 

Smart動態管理マンガ

 

今日は若干涼しい過ごしやすい日ですね。⊂(^-^)⊃

しかし、まだ暑さが戻ってきそうですので、体調にはくれぐれもお気をつけてお過ごしください。

 

山に行った話

4月のことなんですけどね(^_^;

ハイキングに連れてって頂きました!

鎖場とかがあって、スリル満点!

最初は怖かったですけど、最後の方はだんだん慣れてきました。天気がよく、新緑がきれいでよかったです⊂(^-^)⊃

ファイトー!!

いっっぱー〇!

その後、芝桜を見に行く…

新宿でジンギスカン食べて、お台場回って帰るという山の中から都会まで、全部入りで楽しめた、とっても楽しい日でした!⊂(^-^)⊃

この日、なんと6時半に集合して、解散したの12時半なんだよね(^_^;

よく、遊んでたな💛

 

企画してくださって、N君、運転してくださったS君、Aちゃん、Nちゃん、本当にありがとう~m(_ _)m

それにしても…

最近、インドアでゲーム(特に人狼)ばっかりしてます(^_^;

せっかくの夏!

山 or 海で楽しみたいな~ o(>▽<)o

特に、なんか山とか高原に行きたいです。緑の中で風を感じたい…(*^^*)

Alpha Go Zeroの論文の翻訳 その4

途中で挫折しそうだったこのシリーズ…。

Alpha Go Zeroの論文の翻訳 その3

の続きでございます。

またまた、間違いなどありましたら、指摘してください。m(_ _)m

原文はこちら。
https://www.nature.com/articles/nature24270.epdf

 

論文本体はもう翻訳し終わってますが、付録みたいなのがまだでした。

今回は、その付録

METHODS

の翻訳です。

ハァハァ(´Д`)ハァ… がんばろう…!!

Reinforcement learning

ポリシーの繰り返しは、昔からあるアルゴリズムで、ポリシーを改善する一連の流れである。

どのように実現するかというと、ポリシーの測定と、ポリシーの改善(ポリシーの測定を使う)を繰り返し行って、ポリシーを改善していくのである。

ポリシー改善のシンプルなアプローチ方法としては、どん欲にバリュー関数に沿って、手を選んでいくというのがある。

広大な選択肢の空間では、大体でやる、というのが必須である。

分類をベースとした強化学習はシンプルなモンテカルロ探索を使ってポリシー改善をしている。

ゲームを最後まで行ってみる。平均的に価値が最大になる手だけが正の値で、それ以外の手は負の値として、トレーニングのサンプルが記録される。

こうやって、ポリシーは手を正か負かに分類さて、次のゲームに使われる。

このやり方の後継版のようなことを、Alpha Go Zeroでも、γが0に近い場合、ポリシー部分のトレーニングアルゴリズムで使っている。

 

最近の例で行くと、分類ベースのポリシー改善は(CBMPIというらしい)、ポリシーの測定をゲームの結果に向かって回帰するバリュー関数で行っている。(これもAlpha Go Zeroでやっていることに近い)

この手法は、テトリスなどでは非常に良い結果を残している。

しかし、これらの研究結果はシンプルなゲーム結果とか手作りの近似的な関数に頼っていた。

 

Alpha Go Zeroのセルフプレイのアルゴリズムは、前述のやり方によく似ている。

ポリシーの改善は、ニューラルネットワークのポリシーで始まり、MCTSベースのポリシーの推薦と、より強いポリシーを探索してまたニューラルネットワークに返す。

これらのステップはニューラルネットワークをトレーニングして、探索の確率を、セルフプレイの結果に近づけていくことにより達成される。

 

グオさんは、同じくMCTSの結果をニューラルネットワークに入れることを試みた。

探索結果に回帰するバリューネットワークを使うか、MCTSによる分類のどちらかによってである。

この試みは、アタリのゲームをニューラルネットワークを使って解くことに使われた。しかし、MCTSが固定されていて、ポリシーの反復がなかったことと、訓練されたニューラルネットワークを利用していなかった。

 

Self-play reinforcement learning in games.

 

我々のアプローチは、完全情報ゲームで、ゼロサムゲームには直接応用ができるだろう。

その後の一文、ちょっと意味がわかんなかったです。(^_^;

We follow the formalism of alter­ nating Markov games described in previous work12, noting that algorithms based  on value or policy iteration extend naturally to this setting39.

 

セルフプレイ+強化学習という手法は、以前も碁につかわれたことがある。

「ニューロ碁」はバリュー関数にニューラルネットワークを使っていたし、碁の知識をベースにした洗練されたアーキテキチャーを持っていた。

このニューラルネットワークは、タイミングをずらした学習で、セルフプレイの次の手でのテリトリー(碁の陣地のことでしょうね)を予想していた。

関連した試みで、「RL碁」はバリュー関数を線形の組み合わせではなく、3×3の石の置き方のパターンを数え上げる方法だった。そのニューラルネットワークはタイミングをずらした学習で、セルフプレイの勝者を予想するというものだった。

「ニューロ碁」も、「RL碁」も、弱いアマチュアのレベルにしかならなかった。

MCTS自体もセルフプレイの強化学習ともいえる。

探索木のノードはポジションに応じたバリュー関数を持っている。これらのバリューはセルフプレイのシミュレーションでの勝者を予想する。

MCTSのプログラムは碁ではそれなりに強いアマチュアレベルまでは達成している。しかし、それは手作りの早くゲームを終わらせる関数を作ったりしていて、ポリシーも手作りの関数でできている。

セルフプレイの強化学習のアプローチは、チェス、チェッカー、バックギャモン、オセロ、スクラブル、つい最近ではポーカーで非常によいパフォーマンスを残している。

すべての例で、バリュー関数は回帰、あるいはタイミングをずらした、セルフプレイの結果による学習でトレーニングされている。

トレーニングされたバリュー関数は、アルファ・ベータサーチ(シンプルなモンテカルロ探索)あるいはの counterfactual regret  minimization中で評価関数として使われる。

しかし、これらの手法は手作りの特徴入力を使ったり、手作りの特徴のテンプレートを使ったりしている。

加えて、学習のプロセスで教師あり学習を最初の「重み」を算出するために使ったり、手作業でコマの価値を出したり、手作業で手の制限をしたり、すでにある別のプログラムを使って敵手の戦績を作ったりしている。

最も成功し、広く使われている強化学習の手法は、ゼロサムゲームの分野で、最初に登場した。それは、タイミングをずらした学習で、最初にチェッカーのプログラムで使われた。一方で碁にはMCTSがつかわれていた。

しかし、似たようなアルゴリズムは、その後ビデオゲームやロボティクスや、産業用、レコメンデーションシステムなどで使われた。

 

AlphaGo versions.

 

我々は、Alpha Goの3つのバージョンを比べてみることにする。

(1)AlphaGo Fanは以前公開したプログラムで、ファン フイさんと2015年に対戦したプログラム。176GPUも使っていた。

(2)AlphaGo Leeは2016年3月にリーセドル氏に4-1で勝利したプログラム。

これは公開していないが、AlphaGo Fanとだいぶ似ている。しかし、公正な比較のためにいくつかのカギとなる違いを上げておく。

最初に、バリューネットワークは、ポリシーネットワークによるものではなく、素早いゲームの結果によってトレーニングされていた。

これらは何度も繰り返される。

次に、ポリシーとバリューのネットワークは、もともとの論文に書かれているより大きい。

256個の平面のレイヤーのある、12個の畳み込みネットワークと、さらに反復回数が多かった。

このバージョンはGPUでなく、48TPUを利用し、探索の間にニューラルネットワークをより早く評価できるようになっていた。

(3) AlphaGo Masterは2017年の1月に人間のトッププレーヤーを60-0で負かしたプログラムである。

このプログラムは公開されておらず、この論文に載っているのと同じニューラルネットワークと、強化学習とMCTSのアルゴリズムを使っている。しかし、まだ手作りの特徴とAlpha Go Leeと同じゲームを最後まで行う手法、そしてトレーニングは教師あり学習により初期化されていた。

(4) AlphaGo Zero この論文のプログラムである。セルフプレイの強化学習であり、ランダムな重みを最初に使い、ゲームを最後まで行わず、教師は必要ない。ただ単に、ボードの状態があればよいのである。Google Cloud上のたった4TPUしか使わない。

 

まだ続くよ!

 

K君歓迎会

めちゃくちゃ暑い日が続きますね!

私、暑いの好きなんで、こういうのは好きです⊂(^-^)⊃

ただ、冷房の効いている室内と、外の往復が体に本当に厳しい…(つД`)

いっそのこと、冷房がなければと思うぐらいです。みんなに反対されるけどね。

さてさて、弊社に新メンバーが加わりました!

 

長坂彼方(かなた)君です。↓

長い坂の彼方に何があるのか…。

なんてパワーネームなんだ…。(`・ω・´)

 

なんと、人狼で知り合って情報学部というのと、見込みがありそうな学生さんだったので、私がスカウトしました.゚ヽ(*´∀`)ノ゚

人狼って仕事にも役立つなぁ!⊂(^-^)⊃

飲み込み早いし、テキパキと要領のよい方です。

 

歓迎会は先月のことでしたが…

合わせ鏡のある居酒屋でスタート!

2次会はボーリング。

スポーツエリートで、ボーリングでは常に200点越えをたたき出すSがいなかったため、平均点70点前後の大変レベルの低い争いwww

ま、楽しかったからいっかo(>▽<)o

OCテックノートができました。

弊社の新しいオウンドメディア、OCテックノートができました!

OCテックノート

 

パチパチパチパチ。(๑•̀ㅂ•́)و✧

実は、以前、「でじうぃき」って名前で運営していたWikiで作った情報サイトがあったのですが、それをWordPressに移行した形になります。

理由は、「でじうぃき」はPukiwikiというWikiのクローンでできていましたが、もう10年ぐらい前からあるので、劣化が激しかったからです…。

Pukiwikiも進化しないしね…。

移行はちょっと大変だったんですけど、弊社のMが移行プログラムを書いてくれました。ありがとう!⊂(^-^)⊃

こだわったのは、コードが見やすいこと。

どうでしょうか?

 

でじうぃきは、名刺を渡したりすると、

「あ、このロゴ見たことあります」

って言ってもらえることが多かったりして、それなりに世間の役にたってたのかなと思ったりしました。

 

んで、OCテックノートはどういう位置づけかっていうと、いわゆる、ITの会社が運営するテックブログとは違います。

もっと現場に近い形で、じゃんじゃん書いて、じゃんじゃん検索してもらえるサイトを目指しています。(๑•̀ㅂ•́)و✧

誰かがノートのはしっこに書いたことが、誰かの役にたてばいいな~。っと。

でじうぃきから変わらない方針ですね。

 

この業界って、日本語情報ってやっぱり全然少ないんですよね。

なので、Stack Overflow見て解決したことでも、誰かが日本語で書き直してくれると、助かりませんか?

私的には大変ありがたいです。

 

後は、

「みんなが!驚くような!最先端かつ全く間違いのない記事を書いてやるぜ!!ハハハ (゜∀゜)」

とか思っていると、おそらく永遠に書く日が来ません。。。(´ω`)

なので、勉強中でもいいし、間違っててもいいので、アウトプットすることが大切と思っています。⊂(^-^)⊃

アウトプットしていると、間違ってると誰かが教えてくれて、それが自分の進化につながりますからね!

それがこの業界っぽいじゃないですか!

 

後は、アウトプットすると、アウトプットした分、自分のものになるって側面ありますよね。