はじめに

 近年、様々な子どものためのプログラミング教材・プラットフォームが開発されています。プログラミングは自分の思考をコンピュータに理解できる形に言語化するいいトレーニング機会ですが、十分に思考をアウトプットできるようになるために必要な文法や環境構築に十分な時間をかける必要があります。そこで、リバーシというゲームの人工知能を構築・強化するという教材を開発しました。 本プログラムではリバーシを実際に対戦することで、自分の中の思考を明確化させ、Javascriptという広く実用されている言語をそのまま用いて、その思考を言語化します。また、各々が作成した人工知能同士を対戦させることで、実装のフィードバックを得ながらさらなる強化を試行錯誤していきます。

reveri AI platformの概要

デモ

以下にワークショップで使うプログラムのサンプルを掲載しています。

学生はこの中の「自分のAI」を少しずつ改善していくことで強いプログラム作りを目指します。 例えば高校生が30分程度で調整した例として以下のようなものがあります。
                 Factor_NumOfDiscs = 2.0
                  var eval_board = [
                  [ 10, 1, 4, 4, 1, 10,],
                  [ 1, 1, 5, 5, 1, 1,],
                  [ 4, 5, 6, 6, 5, 4,],
                  [ 4, 5, 6, 6, 5, 4,],
                  [ 1, 1, 5, 5, 1, 1,],
                  [ 10, 1, 4, 4, 1, 10,],
                  ];
                
この場合だと、隅を重要視して、その周辺の評価値を下げるというアイデアに到達していることが分かります。また Factor_NumOfDiscsについては序盤・中盤は小さいほうが筋よく打つが、最終盤は多く返したほしいため、そのバランスを加味して2.0という値に調整しています。

実践例

リバーシAI講座@広尾学園 2018年3月20日

2018年3月20日に広尾学園で約30名の学生を対象に本プログラムを用いた2時間の講座を行いました。2名ペアの作業を行い全部で14個のプログラムができ、最後に500回の総当たり戦を行いました。以下の図はその時の結果でそれぞれの組み合わせに対する勝率(行が黒、列が白番)とイロレーティングを表示しています。参考にCPU2~6も参戦しています。学生が作ったプログラムはおよそ600~1100にレーティングが推移しており、それぞれの30分程度の最適化によって強さや相性に違いがでていることがわかります。

2018年3月20日の広尾の講座での結果

本講座においてアンケートで以下のようなフィードバックが得られました。

  • プログラミングってすごく頭良くてパソコンカチャカチャしているイメージだったので、私でもできるんだなって思ってすごく印象に残りました。最初、全然変な意見しか出てこない自分が嫌でしたが最後の方になるにつれだんだん割と大事な意見だったんだなと感じることが出来ました!
  • 盤面評価値を自分で色々いじってどんどん強いプログラムを作る為にはどうするできかと試行錯誤したこと。また、ディープラーニングの動きが加速し実際何をAIが行っているのか分からずただ結果だけを受け取るようになってきてる現代”学び”の概念が変わるのではないかという話もとても興味深かった。
  • プログラムを書く行程(考えるところ)が、授業内容としての自由度が高く自分の発想に委ねられている点で、新鮮味があって面白かったです。最後の締めの話は、とても熱い意見だったので参考になりました。
  • チームで作ったAIは盤面ごとの対応が出来ず、打って欲しいところに打ってくれなかったので臨機応変に対応するようなプログラミングを作るのは難しいと思いました。初期設定から少し変えるだけで強くなるのは面白かったです。
  • オセロは駒を置くときにプロは数字で見えるということに驚いた。また、その数字をAIに関数で入れ、数字を変えるだけで、AIの強さが変わって凄いと思った。
  • 講演有難うございました。プログラミングはしたことが無く少し不安でしたがめちゃくちゃ楽しかったです。また、第二回とかやって頂けたら嬉しいです。

自分より強いリバーシの人工知能を作ろう@東北大学 2018年6月9日

東北大学理学研究科・理学部の広報・アウトリーチ支援室が行っている「ぶらりがく」のイベントの一環として「自分より強いリバーシの人工知能を作ろう」という表題で行いました。約30名の小中学生が集まり、楽しくオリジナルのAIづくりに取り組みました。詳しくはこちらでレポートされています。

リバーシ×プログラミング@東京ガーデンテラス紀尾井町 2018年6月30日

Social Sports Park主催の元、東京ガーデンテラス紀尾井町で『リバーシ×プログラミング』として小中学生の親子20組を対象に行いました。子どものペアも大人のペアも大変楽しく盛り上がっていました。 詳しくは こちらでレポートされています。

「オセロ×プログラミング」@ニチガス 2019年8月25日

オセロ連盟、メガハウス、ニチガスの協力・後援をうけて、ニチガス 本社会議室で『リバーシ×プログラミング』として小中学生の親子10組を対象に行いました。 詳しくは コエテコの記事でレポートされています。


「オンラインプログラミング合宿」@Kodoキッズステーション 2020年8月10日

Kodoキッズステーションのオンラインプログラミング合宿としてリバーシ×プログラミングを各教室・自宅をつなぎオンラインで行いました。 Kodoキッズステーションでレポートされています。