2019年4月8日月曜日

大学生や教員にも有用な子供向けAIアプリ開発環境(ML4KとScratch3)その1

 室内の種々のアラーム音を識別する学習モデルとその利用システムが、文献[1]に示されています。入力アラーム音を、パワースペクトルとMFCCに変換し、2つの中間層(ドロップアウトを含む)を持つニューラルネットワークへ与えます。これによる学習結果を使って、未知の音に対して、Raspberry Piでその音源をリアルタイムに識別し、その結果をスマホへ表示します。聴覚障がい者むけの実用性をめざしたものと思われます。認識結果の詳細な分析を含む完成度の高い論文となっており、注目されます。

 この論文に触発されて、そこまで本格的にはできませんが、多くの人が、このようなシステムの基本部分の作成を体験することは、意義があると考えました。子供向けと言われる2つのソフトウェアシステムML4K(Machine Learning for Kids)[2]とScratch3 [3]がそれを可能にします。これらは、学生や教員にとっても、大いに有用と考えられます。それを実証する意味もあり、実用性はありませんが、以下のことを半日程度の作業で実現してみました。

■ここで実現すること
  1. ユーザは、入力となる音をそのまま録音。(スペクトル解析などはやらないで。)
  2. ニューラルネットワークの概念は必要だが、詳細な構造や動作は知らなくてよい。
  3. それでも、5種類の音源の音を自分で多数収集し、ラベルを付けて学習させる。
  4. その学習結果を使って、入力された未知の音の音源をリアルタイムに識別する。
■ML4Kを使ったハサミの"チョキチョキ音"の識別
 ここでは、図1に示したような材質や形状の異なる5種類のハサミを用意します。それを手に持って、2回「チョキチョキ」と開閉した時の音を対象とします。


 上で述べたML4Kのプロジェクトを作ります。プロジェクト名を指定して、識別したいタイプを選択します。画像、数、テキスト、音の4つから選べます。ここでは、「音」を選択します。すると、音源を示すラベルの指定と、それに属する音の収集が求められます。音源ラベルとして、図1の各ハサミに対応した"Sci_A"〜"Sci_E"を与えます。そして、それぞれに、チョキチョキ音を16個づつ与えます。その結果が図2です。与えた音は、自動的に周波数解析されて表示されています。なお、これとは別に、識別を助けるため、周りの雑音も"background noise"として、16個与えます。


 その後、「学習」のボタンを押すと、ニューラルネットワークでの学習が開始されます。ただし、それ以前に、(簡単ですが)IBM Cloud IDの設定が必要です。IBM Watsonで学習させるためです。一定の条件下でそれは無料で使えます。もしも、ある人が教師として登録すれば、その配下の生徒は30人までは、何ら設定無しにこのようなプロジェクトを作成できます。通常、数分以内に学習は完了します。引き続き、この学習結果のテストを行えます。そこでは、識別したいどれかのハサミの"チョキチョキ音"を、マイクに入力するだけです。図3は、ハサミDの"チョキチョキ音"がリアルタイムに、正しく認識された例です。


 このような学習モデル(分類器)を使う場合、通常その評価を行います。その基本的なものは、表1に示すような「混同行列」です。各ラベルについて、横軸は正解を、縦軸は推測(ニューラルネットワークの出力)を示します。ここでは、評価のために、合計で50個の"チョキチョキ音"(5種類のハサミについてそれぞれ10個づつ)を与えました。混同行列の対角要素は、推測が正しかったケースの個数を示しています。全体の正解率(accuracy)は、82%(41/50)ですから、少ない学習用入力データの割には、良好な結果が得られたと思います。


■Scratch3とも連携できる
 これまでに述べたことで、一応完結しているのですが、さらに、Scratch3と連携させて、よりビジュアルな親しみやすいシステムに作りあげることができます。上記のML4Kには、そこでの学習モデルをそのままScratch3へ移行させる機能があるからです。具体例を図4に示します。識別結果は、猫のキャラクタ(スプライト)が「はさみDです」などとリアルタイムに喋ってくれます。

 図を良くみると、”when I hear Sci_A"〜”when I hear Sci_E"までの5つのブロックの周辺が黄色で縁取りされています。これは、識別結果を待っている状態を示しているようです。すなわち、テストのために与えたチョキチョキ音の音源判定結果のSoftmax(ニューラルネットワークの最終出力)の値によって、いずれかの"when I hear ... "が呼び出されます。


 以上のように、かなり高度な認識を、機械学習の具体的な技術を知らなくても自分で行えることは、誰にとっても有益だと思います。子供にとっては技術に親しむのに好適ですし、大学生や教員は、これを素早いプロトタイピングのために使うなど、自分自身のさらに高度な研究開発に活用できる気がしますので。

参考文献
[1] 門倉丈、渡辺滉平、柳谷吉風、須藤康裕、田中博:ニューラルネットワークを用いた室内アラーム音の識別とその報知システムの基本検討、電気学会研究会資料 IS-19-18、pp.91-96、2019年3月
[2] https://machinelearningforkids.co.uk/#!/about
[3] https://scratch.mit.edu

0 件のコメント:

コメントを投稿