世は空前のAI(人工知能)ブーム。AIに関する様々な本が書店に並び、子供向けのものも少なくない。8月に発行された書籍「ScratchでAIを学ぼう ゲームプログラミングで強化学習を体験」(日経BP)は、数学の知識を中学までの範囲に限定し、教育用プログラミング言語のScratchで作ったゲームを題材にした「AIの入門書」。同書で扱っている「強化学習」とは何か、なぜScratchを使ったのか、Scratchの利点は何かを、著者の伊藤真氏に寄稿してもらった。

著者の伊藤 真(いとう まこと)氏。沖縄科学技術大学院大学で、動物の行動と脳活動を強化学習モデルで説明する研究活動を行った後、現在は民間企業でAIの産業利用に従事

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

 囲碁の世界で最強と言われていたイー・セドル氏にAIが勝利した2016年の出来事を覚えている方は多いのではないでしょうか。このときに使われていたアルゴリズム(コンピューターに問題を解かせるための手順)が、強化学習を応用したものでした。AIが囲碁で人間に勝つにはまだ10年はかかると言われていたので、とても衝撃的なニュースでした。

 強化学習は「人間でも答えが分からないような問題に対しても、試行錯誤により、良い答えを導き出すことができる」、とても興味深いアルゴリズムなのです。

 一方、今、AIの代名詞として活躍しているものの多くは「教師あり学習」というタイプのアルゴリズムで、「人間が“課題”とそれに対応する“答え”を準備してAIに学習させる」というものです。教師あり学習の応用として、画像に何が映っているかを答えるAIなどが挙げられます。書店で見かけるAIの解説書の多くは、この教師あり学習を説明したもので、強化学習の解説書はまだあまり多くありませんが、強化学習も教師あり学習も、「機械学習」という大きな枠組みの一つです(図1)。

図1●強化学習の位置づけ

あえてScratchを使って強化学習を学ぶ

 強化学習の仕組みは数式で解説できますが、難しい概念や見慣れない記号を使わざるを得ないのでハードルが高く、理解しづらく思えます。しかし、強化学習のアルゴリズムのアイデア自体はシンプルであり、直感的には誰にでも分かる内容です。

 そこで私は、一般の人向けに、中学生の数学の知識レベルで理解できる強化学習の入門書を書こうと思いました。入門書ですから、私がScratchで作った「強化学習ゲーム」を題材にして、より親しみやすく・わかりやすくしたのです。

 Scratchは主に子供たちをターゲットとしたWebベースの教育用プログラム環境・言語です(https://scratch.mit.edu/)。プログラムのコードに対応するブロックをつなぎ合わせてプログラムを作っていくので、プログラムの初心者にはとてもなじみやすいものとなっています(図2)。

図2●Scratchのプログラム

 Scratchを知っている人の多くは、Scratchはプログラムの仕組みの初歩を学ぶための言語であり、あまり複雑な処理には向いていないというイメージがあるのではないでしょうか。確かにそのイメージは間違いではありません。しかしScratchには、他のプログラミング言語に勝っている点があり、それがまさに強化学習の入門にぴったりなのです。