Do!コン受賞作品

toioで人工知能をつくろう

【Do!コン 審査員特別賞 佐藤ねじ賞作品】作:takata @bonochof
ビジュアルプログラミングでキューブの動きを強化学習させてみました。強化学習とはある「状態」に対して最適な「行動」を環境からフィードバックされる「報酬」をもとに探索する手法です。機械が試行錯誤を通して「良い行動」を学習します。

  • 1人
  • 8才
  • 1分
  • 2個
  • (トイコレ/簡易マット)

あそび方

"ProtoPedia"で2021年春に行われたコンテスト、toioの「Do!コン」で受賞した作品をtoio Doで公開!
みんなが作った作品であそんでみよう!中を見てみよう!(掲載順不同)

※URLをコピーしてブラウザーで確認してください。

[注意]おとなのひととよんでね

※本プログラムは作者の方への敬意と作品の尊重・多様なプログラムの参考のため可能な限り作られたままの状態で公開しています。お手元の環境で必ず動作することを保証するものではありませんので、予めご了承ください。

① 用意するもの

① 用意するもの

・キューブ(×2)
※でんげんをいれておきます
・絵を描いた紙/折り紙など ・マット(トイコレまたは簡易マット)
※トイコレ=トイオ・コレクション
※簡易(かんい)マット=A3サイズtoio用プレイマット

② キャラクターを作ろう

② キャラクターをつくろう

このプログラムでは、リンゴ・ライオン・シカの3つのキャラクターを使います。シカはリンゴを追いかけ、ライオンはシカを追いかけます。見分けがつくようにそれぞれの絵を描いたり印刷したりして作ります。シカとライオンはそれぞれキューブに一つずつのせます。リンゴは画面の位置に合わせ、じゃまにならないように目印として置きます。

③ シカとライオンをマットの上におこう

③ シカとライオンをマットの上におこう

シカとライオンをのせたキューブをマットの上におきましょう。キューブをマットの上におくと、すでに学習済みの行動を使ってシカやライオンが動きだします。画面をみて、逆になっていないか確認してください。なお、リンゴは「旗(スタート)」をおした後で、マウスや画面のタップで場所を変えることができます。

④ キューブを動かして観察しよう

④ キューブを動かして観察しよう

試しにシカのキューブを手で動かして、リンゴにどうやって向かっていくか観察してみましょう。次に、シカから離してライオンをマットに置いてみて、ライオンの動きを観察してみましょう。すでにある程度学習が済んでいるので、まっしぐらに向かっていきます。学習の結果、シカはリンゴの近くに行くようになり、ライオンはシカを追いかけるようになります。この動きは人が教えた(プログラミングした)わけではなく、シカとライオンが学習した結果です。その時の画面上の数値がどう変わっているか?にも注目してみてください。

⑤ 実世界の影響を観察しよう

⑤ 実世界の影響を観察しよう

このプログラムはコンピューターの中だけでなく、ロボットが実際に実世界を動くことでその動き方もふくめて学習を行っています。そのため、実際のタイヤの動きなどが反映され、より動きやすい動きを獲得します。キューブの上に少し重さのあるものを乗せたり、途中に積み木や未開封の缶ジュースなど障害物を置いてみたりしてどう変化するか観察するのも面白いかもしれません。

プログラムを見てみよう!

プログラムを見てみよう!

「プログラムを見る」や画面右上の矢印4つのボタンを押してプログラムを見てみましょう。ハイライトされているところが今動いているプログラムです。また、プログラムの詳しい解説は作品サイトhttps://protopedia.net/prototype/2249にありますので、ぜひURLをコピーしてブラウザーでアクセスしてみてください。

  • Copyright (c) 2021 takata @bonochof
※本サンプルプログラムのライセンス:
[LICENSE] Copyright (c) 2021, Sony Interactive Entertainment Inc. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.