AIは手を動かす

ホーム / IT / AIは手を動かす

前回の『AIは人の眼になる』に続き、AIです。今回は『手』です。

実際に動く手の部分はAIというよりロボットですが、状況に合わせてどの様に動かしたら良いかを強化学習によって、AIに学ばせて判断させることができます。組み立て工場、介護の補助、効率的な空調の管理(大量のセンサーとの組み合わせ)などで活躍が期待されます。

今回はAIにブロック崩しゲームを遊ばせてみました。

データは使わず、褒めて伸ばす強化学習

AIを訓練するには大量のデータが必要なことが多いですが、データ無くても学習できる方法があります。強化学習です。

強化学習では、AIに正解データは与えず(というより何が正解か誰も分かっていない)、その代わり良い行動をしたときに報酬を与えて褒めてあげます。まるでペットに一芸を仕込んでいるみたいですね。

特に、コンピュータの中で再現可能な問題の場合、何万回と試行錯誤させることで、高い判断能力を持ったAIを作ることができます。

2016年に話題になった囲碁を指すディープマインド社(2014年にGoogleが買収)のアルファ碁も強化学習の一種です。当時最強のイ・セドル棋士を圧倒したアルファ碁ですが、その後進化し続け、アルファゼロとなりました。アルファゼロは人の指し手を全く参考にせず、8時間の学習で初代のアルファ碁を勝つ上、将棋やチェスも指すそうです。

強化学習をしてみる

OpenAIという非営利研究機関がOpenAIGymという強化学習の実験シミュレーターを提供しています。台車の上に棒をのせてバランスしたり、山の上にうまく車を登らせたり、動きを丁度良く調節するような課題が用意されています。

CartPole-v1

MountainCar-v0

その中でも、Atari2600(昔のファミコンみたいなの)で動くゲームが面白いです。AIにゲームを学習させるってことですね。これらのゲームは強化学習の実験フィールドとしてよく使われます。ディープマインド社も強化学習のアルゴリズムの研究(Rainbow)の中でAtariのゲームを使って実験しています。

今回はブロック崩しゲームを学習させてみましょう。強化学習はkeras-rlというライブラリを使っています。その中にサンプルコードがあり、Google Colaboratoryで動くように何箇所か修正しています。コードはこちら。Google Colaboratoryを使うとブラウザ経由で、Googleのサーバ上で機械学習を実行できます。GPUも使わせてくれるので、実験する環境としてはすごくいいです。

学習開始直後(ぜんぜんダメ)

1時間くらい経過(一応ボールを追いかけるようになってる)

3時間くらい経過(上達したけど上手な人よりはまだ)

もっと学習時間をかけたり、学習する方法を改善すれば、人間よりはるかに上手になっていってしまいます。コンピュータの中で再現可能な問題の場合、もう人間はAIに勝てないし、頑張らなくても良い(AIにやってもらう)ということになってしまいますね。ドキドキする進化なのか、悔しい敗北なのか複雑な気持ちが残ります。

コメントを残す

Translate »