子供用Scratchは大人も楽しい AIプログラミングの妙『ScratchでAIを学ぼう ゲームプログラミングで強化学習を体験』より

強化学習とは試行錯誤の学習方法

ここで、『ScratchでAIを学ぼう』で扱っている「強化学習」について少し説明しておきます。

強化学習とはAIの機械学習の一種で、簡単に言えば試行錯誤の学習です。「強化」という言葉は、動物心理学で昔から使われている用語でもあり、私たち人間や動物も強化学習をしています。赤ちゃんは誰に教わることなく自分で寝返りを覚え、ハイハイを覚え、いずれ立ち上がります。

2016年に、グーグル傘下のディープマインドによって開発されたコンピューター囲碁プログラム「AlphaGo」が、当時、世界最強とうたわれた韓国のイ・セドル氏に勝利したことを覚えている人も多いでしょう。AlphaGoは、機械学習のうちの「教師あり学習」と「強化学習」を組み合わせたプログラムでした。

強化学習のアイデア自体はシンプルで、直感的には誰にでも分かるものです。しかし、一般に強化学習の解説書は、難しい概念や見慣れない記号を使っているため難しく見えがちです。そこで、数学の知識を中学までの範囲に限定し、Scratchで作ったゲームを題材にした入門書を作りました。それが『ScratchでAIを学ぼう』です。

著者の伊藤真氏

著者の伊藤真氏は、同書にScratchを使った理由の1つを以下のように語っています。

「強化学習が解く問題はゲームやロボットの動かし方です。しかしゲームのプログラムを作るのも簡単ではありません。Scratchには、あらかじめたくさんのキャラクターや背景が準備されており、それらを選んで使うことができます。キャラクターごとに異なるポーズのイラストも準備されているので、アニメーションとして使うこともできます。そこで、ゲームが簡単につくれるという利点があるScratchを選びました」

Scratchの3つのゲームで強化学習を学ぶ

『ScratchでAIを学ぼう』で強化学習を学ぶために使うScratchゲームプログラムは3つあります。「砂漠でダイヤ集めゲーム」、「月面でダイヤ集めゲーム」、「お化けの飛行訓練ゲーム」です。

強化学習のために使う3つのゲーム

同書では強化学習をレベル1、レベル2、レベル3の3段階に分けて解説しており、この3つのゲームがそれぞれのレベルに対応します。プログラムには試行錯誤してゲームをプレーするAI機能(強化学習AI)が組み込まれており、読者は強化学習AIと同じゲームをして点数を競いながら、強化学習を学ぶという学習方法となっています。

レベル1の「砂漠でダイヤ集めゲーム」は、左右どちらかのボタンを押してダイヤを集めるというカンタンなゲームです。レベル2の「月面でダイヤ集めゲーム」は、その拡張版で、左右を2回連続で選ぶゲーム。行動の直後の報酬だけでなく、次の行動後の報酬も考える問題となり、少し難易度が上がります。

最後のレベル3「お化けの飛行訓練ゲーム」は、1~4のボタンを押して、できるだけお化けを前に進めるというゲームです。何番のボタンから次に何番のボタンを押すかによって、前あるいは後ろにどれぐらい進むかが決まります。さらに難易度が上がり、このレベルになると強化学習AIに勝つのはなかなか難しくなってきます。

これらのゲームプログラムは、Scratchサイトの本書専用アカウント(https://scratch.mit.edu/users/NikkeibpRL/)で公開しています。「共有したプロジェクト」の一覧にゲームプログラムがあり、誰でもゲームで遊ぶことが可能です。興味のある人は、ぜひアクセスしてみてください。

ゲームがカンタンに作れるので、プログラムを使って強化学習を学ぶにはScratchが最適だということがおわかりいたただけるかと思います。

ビジネス書などの書評を紹介
注目記事
次のページ
Scratchブロックだから仕組みが一目瞭然
ビジネス書などの書評を紹介