僕は発展途上技術者

子供の科学 2020 9月号掲載「はじめようジブン専用パソコン 第42回 ジャバスクリプトでスクラッチを拡張しよう」を読みました

子供の科学 2020 9月号掲載「はじめようジブン専用パソコン 第42回 ジャバスクリプトでスクラッチを拡張しよう」が僕のブログ記事「Scratch 3.0 の Extension(拡張機能) を試してみた」を参考に書かれているということで、献本をいただきました。どうもありがとうございます。

JavaScript(ジャバスクリプト)を使い、通常のScratchにはないべき乗を求めることができるブロックを実際に作ってみるというのが記事の内容になっています。僕も一通り写経してみた上で、小文字に変換するブロックと文字列を置換するブロックも作ってみました。

僕が作ったブロックは https://sheeptester.github.io/scratch-gui/?url=https://champierre.github.io/stretch/index.js で試すことができます。

Scratch の拡張機能の作り方をこのように詳しく紹介している一般にでている書籍はおそらくこれが日本で初めて(もしかすると世界でも初めて?)ではないでしょうか。興味ある人はぜひ書店にて購入してもらうと良いと思います。

また、子供の科学の記事の最後にもありがたく紹介してもらっているのですが、さらに本格的に拡張機能をつくってみたいという方は、オンラインの有料コンテンツ(途中までは無料で読めます)ですが、技術書展のために書いた「Scratch を改造しよう」を参考にしてみてください。

「ScratchでAIを学ぼう ゲームプログラミングで強化学習を体験」感想

「ScratchでAIを学ぼう ゲームプログラミングで強化学習を体験」を読了しました。

元々買おうと思っていたので自分で発売前から予約していたのと、出版社の日経BP様より献本をいただいたので、2冊揃いました。どうもありがとうございます。一冊は CoderDojo 調布用にでもしようかと思っています。

Amazon のページに発売前から掲載されていた書籍の説明や目次を見ていて、だいたい予想はしていたのだが、Scratch を使っているとはいえ、全編なかなか骨太な内容となっています。

よく一緒に購入されている商品としても表示される拙著「Scratchではじめる機械学習 ―作りながら楽しく学べるAIプログラミング」で言えば、上級編としている第5章の「遺伝的アルゴリズムでネコの動きを進化させよう」と同等かそれ以上のレベルの内容を厚くして、しっかりと理論も理解しながら読み進めていこうという内容だ。

Scratch を使うから簡単というわけでは決してない。そういう見方をしている特に大人の方は大きく裏切られるだろう(そういう方はそもそもこの本を手に取らないような気がするが)。Scratch を使っている利点は、たとえば同じことを Python でやろうと思ったら環境構築が必要でそこでつまづく可能性があるし、Scratch だとプログラムを動かしながら各パラメーターを少し変えてみて、すぐその場で結果を確かめることができるという手軽さがある。そういう意味では、これまでプログラミングしたことがない方が強化学習を学ぶための入門書として適している。

書籍で使っているサンプルは、Scratch のサイト上で動かすことができるし、リミックス(Scratch の世界では、プログラムをコピーして自分で自由に変更できるようにすること)することもできるので、全部一から作る必要はない。僕も、サンプルをリミックスして、実際に動かしたり、コードの中身を覗いてみたり、書籍でも勧めているように、パラメーターをちょくちょく変えてみて読み進んでいった。報酬確率と報酬予測を表示してみて、報酬確率にだんだんと報酬予測が収束していくのを眺めるのは見ていて面白い。

機械学習にはいろいろなアルゴリズムがあるが、どれも大まかには、解決したいある問題があり、始めに大まかに決めた予測をもとに行動を繰り返し、得られた結果をもとに少しずつ調整していって、最後は問題の正解に収束させていく、という似たような方法なんだな、ということを感じた。それは、僕が「Scratchではじめる機械学習」を書きながら学んだことと本書で学んだことの類似点、共通点を見いだせたからであり、このように同じテーマを違った角度から観察することで得られる学びというものがある。そういう意味で、機械学習 + Scratch をテーマにした類書がこれからどんどん出てくる気がするのだが、一冊読んだだけじゃわからなくても別の本を読んでみるということができるようになるのは良いことだ。

少し残念なところがあるとすれば、どのサンプルのゲームも、最初に人間がやってみて、次に強化学習をおこなうコンピューターがやってみて、お互いのスコアを競うという形で進むのだが、レベル1からレベル3までやっても、人間が圧勝してしまい、「強化学習すげー、賢い!」という印象を持ちにくい点だ。おそらく本書の範囲内の入門で扱える方法ではそこまでコンピューターを強くすることができない、あるいは人間のカンってなかなかのものだ、ということだと思うのだが、ゲームの内容やルールを工夫するなどしてなんとか強化学習側が得意なゲームに持っていけなかったものかとは思う。そこは、自分でそうした課題を自分でみつけて、次は読者が強化学習を実装してみなさい、ということなのかもしれない。

強化学習ってどんなものなのかを知りたい方やこれから学ぼうという方には良い入門書、教科書であると思います。

プロフィール

株式会社まちクエスト代表、つくる社LLC代表。

Scratchで楽しく学ぶ アート&サイエンスRaspberry Piではじめる どきどきプログラミングを書きました。

オンラインコンテンツ: 大人のためのScratch

Amazonから図書館検索 Libron、iPhoneアプリ ひらがなゲーム かなぶん を作っています。

Email: webmaster at champierre dot com

Twitter @jishiha

最近のエントリー

アーカイブ