
AIを用いたプログラムをつくろう


AIって何?



そんなのぼくたちにできるの?
AIは誰でも使うことができます
”食わず嫌い”せず、簡単なプログラムからつくってみましょう
こんにちは。サポーターのもつさんです。
ScratchでAIを使う方法を解説します。
AIって誰しも聞いたことはあると思いますが、なんとなく難しそうと思っている人が多いと思います。
AIをつかったプログラミングは、Scratchで簡単につくることができます。
是非最後までご覧ください。
AIとは


AI(Artificial Intelligence : 人工知能)とは
人工知能(AI)とは、人間の知的ふるまいの一部をソフトウェアを用いて人工的に再現したものです。
経験から学び、新たな入力に順応することで、人間が行うように柔軟にタスクを実行します。チェスをプレイするコンピューターから自動運転車まで、最近耳にするAIの事例のほとんどは、ディープ・ラーニングと自然言語処理に大きく依存しています。
これらのテクノロジーを応用すると、大量のデータからパターンを認識させることで、ビジネスや生活における様々な難しいタスクをこなせるようにコンピューターをトレーニングすることができます。
SAS https://www.sas.com/ja_jp/insights/analytics/what-is-artificial-intelligence.html


AIありとAIなしでは何が違うのか?
→コンピュータ自身が学習するかどうかです
簡単に一言で言うと、学習するかどうかということになります。
AIを搭載しないコンピュータは言われたことしかしません。
つまり、予めプログラムされた動きしかしないということです。
イヌとネコの違いをAIが学習する
イヌとネコの違い分かりますか?
わかりますよね。
でも、生まれてすぐのころ、赤ちゃんの頃には分からなかったはずです。
イヌとネコにたくさん出会う中で、「あれはイヌだよ」「あれはネコだよ」とお父さんお母さんに教えてもらって、
イヌとネコの違いが分かるようになってきます。
AIを搭載したコンピュータでも同じようにイヌとネコを学習することができます。


通常のコンピュータは、見たことないイヌの写真を見せられても、それがイヌなのか何なのか判別することはできません。
しかし、人間と同じように、学習することで判別することができるようになります。
たくさんのイヌの写真とたくさんのネコの写真を教えることで、
コンピュータが学習します。
学習したあとにイヌの写真を見せると、コンピュータはそれがイヌだと判別することができます。
- たくさんのイヌの写真をコンピュータに見せる
- たくさんのネコの写真をコンピュータに見せる
- コンピュータがイヌとネコの特徴を学習する
- 新しいイヌの写真を見せると、それはイヌだ。と判別することができる
このように、たくさんのデータから学習して、共通するパターン(イヌとネコの特徴)を導き出すことを機械学習といいますが、難しい用語はあとで覚えればいいです。
機械学習とは、コンピューターがデータから反復的に学習し、そこに潜むパターンを見つけ出すことです。そして学習した結果を新たなデータにあてはめることで、パターンにしたがって将来を予測することができます。人手によるプログラミングで実装していたアルゴリズムを、大量のデータから自動的に構築可能になるため、さまざまな分野で応用されています
SAS https://www.sas.com/ja_jp/insights/analytics/machine-learning.html
AIレジをつくってみよう


機械学習をつかって、AIレジをつくってみましょう
AIレジは、バーコードをピッとしなくとも、商品を見ただけで、お会計してくれます。
鉛筆とはどんなものか
消しゴムとはどんなものか
ノートとはどんなものか
AIが学習しているからです
AIレジをつくる準備
Stretch3
https://stretch3.github.io/
いつも(通常のScratch)とは違う環境でつくっていきますが、
見た目はまったく同じです


左下の「拡張機能を追加」から、ML2Scratchを追加します
ML2Scratchは、Scratchの拡張機能の一つで、MachineLearning(機械学習)をするためのコマンド(ブロック)を提供してくれます。


※カメラの許可を求められたら、「許可」するようにしてください
ここまでで、準備はおわりです。
AIに商品を教えます(AIに学習させます)
AIに商品を教えていきます。
4つのラベルを用意する
なにもなし
ペン
のり
ノート
の4つを教えるので、4つのラベルを用意します


ラベル1を学習する
ラベル2を学習する
ラベル3を学習する
ラベル4を学習する
の4つを用意します
※つなげずに離して並べることがポイントです
次にラベルの枚数という変数にチェックを入れて、画面に表示させます




ここまででラベルの準備、つまり学習の準備はおわりです
それぞれ20回ずつAIに教える
4つのラベルに対して、それぞれ20回ずつ教えていきます。
商品が写っていない状態で[ラベル1を学習する]をクリックします
ラベル1の枚数が20になるまでくりかえします


ペンが写っている状態で[ラベル2を学習する]をクリックします
ラベル2の枚数が20になるまでくりかえします


のりが写っている状態で[ラベル3を学習する]をクリックします
ラベル3の枚数が20になるまでくりかえします


ノートが写っている状態で[ラベル4を学習する]をクリックします
ラベル4の枚数が20になるまでくりかえします


ここまでで学習はおわりです
学習した結果を確認する
(MLラベル)という変数にチェックを入れて画面に表示します




ペン、のり、ノートを画面に写していきます
ペンなら2
のりなら3
ノートなら4
になるはずなので、そうなっていればきちんと学習できていることになります


このようにラベルの数字が変われば成功です
ML2Scratchを使ってプログラミングしていきます
ペンとのりとノートを判別するAIが完成したので
ここからは通常のScratchと同じように、プログラミングしていきます
ML2Scratchのコマンド(ブロック)の使い方をいくつかご紹介します
ラベル2を受け取ったときというブロックを使って
ペンが写ったときに「ペンですね」と言うプログラムをつくることができます


(MLラベル)という変数に、ラベル1~4が入っているので
このように条件文として使うことができます


こららのコマンド(ブロック)を使って、好きなようにつくってみましょう
これ以降は通常のScratchプログラミングですので、本記事では割愛します。
まとめ
今回はML2Scratchを用いたAIのつくりかたについて解説しました。
簡単にAIをつかえることが分かっていただけたと思います。
今回はAIレジを題材にしましたが、いろんなことができますので、どんなものをつくりたいかぜひ考えてみてください。