こんにちわ! AI ポッドキャスト、シーズン42は2023年6月24日に開催した ZOOMライブの模様です。
この日のテーマは「最近の話題から」です。
エピソード4は、今日の話題のパート1「強化学習」その2、「実践 AlphaZero」でオセロ対決です。
このブラウザでは再生できません。
再生できない場合、ダウンロードは🎵こちら
ビデオ見れる人はこちらからご覧ください。
(以下は、OpenAI の Whisper を使って文字起こししたものを修正したものです。)
** 注:以下は未編集の草稿です **
こんにちわ! AI FORUM です!
はい、みなさんこんばんは 、です。6月ね、もう後半、今日土曜ですけども。で、前回アナウンスしたように、今日は月末の土曜日開催、1回目ですね。6月の24日になってます。AI FORUM 今日開催です。
でα0をターゲットにしてググってみました誰か多分あのソースコードも実装している人いるだろう、いました、えっと このサイトね、LitHub α0 Generalっていうのがあります、で、まあコードはね論文が出たら誰かしら実装しようと思うのはあの、思うんで 海の山とも海のものとも山のものともわからないものがいくらでも、GitHubには転がってるんで どれぐらい信用に足るものかっていうのは、きちんと抑えとかなきゃいけないんですが いろいろ見てたらこの著者の人ね、あのーは スタンフォードのコンピューターサイエンスの学生さんでそれこそ、であの チュートリアルっていうかねブログ、詳細のブログを書いているその人自身だったと、でじゃあ信用できるやんと思ってこのソースコードをちょっと動かしてみようっていうのを、えっとまず直近のゴール設定にしてみました、ねっ、で、教科学習でなんか僕はね 触手が動かなかったっていう話をずっとしましたが、自分のモチベーションをね あの上げるためにまず気持ち上げ上げにするために、でα0でしょ なんかボードゲームでしょ だから、で学習済みモデルがどうも公開されているみたいなので 分かったとまずこの、α0実装の で学習された対戦ね、素晴らしいモデルとちょっと対戦してどれぐらい自分が歯が立たないのかっていうのを体験、するところから始めよう 思ったと、ね コードはあると、モデルもあると さあどうするって言った時に、失業者の壁がね立ちはだかったわけです、ねあの、gpu が乗った pc をですねあの、失ってしまったんですね 2080 ti が乗ってた pc が僕専用で使える pc があったんですけども今は、この目の前にある古い古ぼけた10年以上前の macbook pro、しかない状況 なのであのねみんな使う google コラボ、google コラボでやってみよう α0でまず、自分人間対戦してみよう ということをやってみました、ねもうソースコードはここレポジトリあるんでジャンプしてみれば、github サイトね、そうね、ありました で学習いずれは学習もマスターしたいんだけどまずはね、あの対戦してみたいかね クローンしてきて、じゃあ走らせてみようどうやって走らせんだっていう話ね、google コラボのノートブック開いて ギットクローンしました、でねえっと、あとでこのあのここちょっと僕きちんと解説のテキストを書く時間がなかったんでスクショだけで、8言葉済ませますが あとで時間あったら公開する資料にはもうちょっと詳しくかもしれませんが、えっとギットアップのドキュメント 通りにやろうと思ったんですが、あのね、完璧に 何が大変だったかちょっと解説しとくとそのあの説明する前ね、ドキュメントに従ってなんかやれば多分トレーニングとかあとインタラクティブに対戦するとかも 8、コラボじゃなくて ちんとターミナル上でパイソンがあって、gpu があってっていう環境でできるんであればうまく動く 行動になっているのは確かなんですけども、いかんせん 僕は今失業者の壁に立ちはだあの阻まれていて、google コラボじゃないと、フリーで使えない今ねそうそこしかあの gpu のサービスとかあの漁ってないのでまだ環境はないんで google コラボでやりたいどうしてもやりたい、google コラボっていうのはジュピターみたいなもんねインタラクティブで ターミナルも今は有料お金を払えばコラボもターミナルを使えるみたいね、だから あのそれが使える人は、僕が言ってる苦労は多分ないんですね だけど、コラボのインタラクシーあのシェルの上でなんかうまく 8、アルファゼロのモデルと対戦するということをやりたい どうするって話で、やったことは8対戦スクリプトっていうのが p i y ドット p y っていうファイルはあるんですねここあの、クローンしてきたフォルダーのディレクトリの下にファイル意識ありますけどもこの pit ドット p y っていうのが、インタラクティブに対戦するスクリプトインタラクティブにもコンピューター対 コンピューターで対戦するにもできる8インフェランスの部分のスクリプトなんですけども、これ実行すると人間を8オッポーネントに設定してやると 8ターミナルだったら多分きちんとどうやるのかな、数字を入れるのかな自分の手を打って次コンピューター i じゃあ僕次声を打つよっていうことは多分できるインターフェースが入ってるんだろうけども、ターミナルが使えないとどうするんだろうっていう話ね この p i y の、コードの中身を全部セルに展開して必要なコードを実行していきましょうということをやって、実際にこのアルファゼロとオセロで僕が戦って 戦いましたっていうのが今日の皆さんに紹介する話です、であの必要なコードはあのさっきの p i y . p y、ファイルからコピペしてきてねセルを実行し順次実行すればいいですね まずインポートして8、環境設定しておいて、オセロミニオセロミニオセロじゃなくてフルの押せるね8かけ8のオセロにする で人間とコンピューターが対戦すると、いう設定を設定しといてみたいなことを やりますんでね大事なのはインタラクションの部分でどうどうなっているのかよくわかんなかったんで、とにかくも 速字的にね、行動あの順番に実行していって うまく走らせるということをやりましたで細かいことは端折って、8年、ねっ みんなファミリアなこれ出発点のボード、ここでまずコンピューター先 の設定に、あの今してるのでコンピューター先ですよってコンピューターが手をあの次どういう ふうに打ちますかっていうのは、8この16番のセルで、コンピューター考えて結果を出してくる26っていう数字場所に打てっていうふうに 言ってきてるん、26って何って思いますけどもこれは8かけ8なんで2次元座標を インデックシングしてるだけですね、なので、そうも解読してね、26ってのを打った結果はどうなるかって言うと26っていうのはこの場所ね で先がコンピューターが丸で僕はバツ、このコンピューターに対してさあ俺は今から頑張るぜっていうふうなことを インタラクティブにやってみたと、ねプログラム的にどういうふうにするんだっていうのは、デフォルトでヒューマンプレイヤーを選択してるんだけども 8行動順番に実行していくと8、なんか手を返してきてくれたんですね20に次に打てっていうふうに言われたんだけど 俺は20じゃないところに打ちたいと思ってね、34っていう手を僕は打ちたいんだって実際に打ってみたと 34ての何かっていうと、ここの場所ね 842の場所、42がなんで30になるのかっていうのは4かける8プラス2ですね、8で次コンピューターは43という場所に打てっていう風に言って、43てのは何っていうと それ解説してるかな、違う違うねその後僕は何を打ちたいかって言ったら6かけ2の場所に打ちたいんだって 言って50って入れたらいいねっていう話で打ってっていうふうにこうやって、コラボねコラボの上でパタパタとコンピューターと対戦しました あの、α0このコードで学習したオセロのモデルと対戦した さああの市記ケンゴさんはオセロの腕はどれぐらいなんだって言うねあの全然僕はね、ボードゲーム強くないんであの強い人は強いよね あのハマってる人とかね、僕はの別にあの 真面目にしないタイプなので、強くないんですがそれでもきちんと任されたいなと思ってやったねでどっから行けばいい かな、これほぼ終盤ね、もうほぼ埋まってきてじゃあどうするどうするみたいな話って ここの次に僕がどう打つっていうところで、どういた 青け、そうこれね 3ゼロの場所に打とうって言って30の場所に、打ったんですね 30というのは30ここに9バツに僕は打ったんだ、したらこの局面になってコンピューター様は31に打った 31に丸を打った、だからもうあと残り3箇所しかないんだけど見ての通りで えっと黒版というかバツ版の僕は打つ場所がないだからパスなんですね、パスプログラムパスってどういう風にするのかな 余って困ったと思って、ここまでやってきたゲームをパーにしたくないなぁと思ってプログラムいろいろ触って みたら、ですね、8かけ8のボードの次の場所、次の場所っていうのは えっとあごめん違う違うこと言っとる、えっと ここまで行くのか、あ違う違うそうあのねパスはパスを示す こちらごめんえっとね、パスを示す最後の場所っていう部分に、置けばいい 僕っていうアクションを押すと、このプログラムのシステムは相手はパスになったねってコンピューターが次の手を 打ってくれるっていう風になってるっていうことを、解明しましたねどうでもいいある者でいいんで無事に僕がパスになってコンピューター 白板が丸版がもう1回打つっていう手になってこの3つのうちでどこを打つって、言ってここに打ち上がった、えっとね見ての通りで角は僕1個角は取ったんだけど 残りの2つはもうすでに取られちゃったね、そうねいいとこまで行ったっていうふうに僕はあの弱いをあの僕は思ったんだ けどももしかしたら勝てるかなと思ったんだけども、最後の爪がやっぱり甘いなね 最終的に、えっとあそこに打たれたら僕はここに移しかなくて白板をここに打って全部終わって さて結果どうなったかこれを数えなきゃいけないね、でプログラム的に数えたら プログラム的に数えたら、結果が白丸が37黒僕が27、っていう結果で つまりこれが最終局面ね、で 僕負けました、ok ok あの人間人間を超えている、実感したとじゃあこのこの超えた 人をどうやって学習するのかを今から頑張って、学んでいこうっていうモチベーションが上がってきたぞっていうのが今日の皆さんへの アピールです、パイソンねーのコーディングねー あーこれでちなみにこのコードは、パイソンだけではなくパイソンでなオセロだけではなく当然 将棋とか、くたくとね丸バツみたいなやつね とかも、これで サポートしているらしいんでこれを深めて後、なんだろうね 自分、俺俺ゲームとかも作ったらできるのかなぁ 掘りがいがある、コードかなぁと思うちょっと学んでみようと思うのと プログラム的に、プログラムはプログラムであの僕は楽しめますが 論文ね、アルゴリズム何をやっているのかってきちんと把握したいなと思うんで 合わせて論文、アーカイブに最新のものはあげてないのかな ティープマインドさんは、ネイチャーにお金を落とすのもなんだなぁと思ったりもするんですが 論文もきちんと押さえておきたいなと思っています、特にねμ0とかあの辺とかきちんと押さえておきたいなぁと思う今日この頃です、評価学習なのでこの辺はちょっと話が ずれましたが、実践α0実装をα0実装ネットに転がったやつを動かしてみたっていうお話、でした、はい 8時10分、ん、で8そんな感じですね a、ネットワークみなさんは何人視聴者がいるんだけど、うんねー 見れるんだ、はい、よくわかんないの、ないんじゃっこちゃっこだ あーチャットはい超党さん小バーです、フィザーさんお久しぶりです はいありがとうございます、8 ねコメントあれば、なるべく 喋り始めるとね見なかったりするかねはいえっとね、進めます。