ラベル Deep Learning の投稿を表示しています。 すべての投稿を表示
ラベル Deep Learning の投稿を表示しています。 すべての投稿を表示

2020年1月16日木曜日

Overview of AI application development environment

I would like to present an overview of the environment for developing AI applications. Look at the diagram below that I created. Basically, we can develop apps in traditional programming languages. However, in recent years, a variety of tools, libraries, and frameworks are on top of it and can be developed at a much higher level. Furthermore, AI services on the cloud and APIs that can be called in various languages ​​are available. High-performance hardware is essential for performing AI processing. Deep learning takes a lot of work to prepare the required datasets, but some systems ease it. Don't miss out on the transfer learning for efficient training using already trained models. The need to run AI apps on smartphones is also growing. Block programming environments such as MIT App Inventor support this.

2019年11月12日火曜日

スマホを音/画像/ポーズの識別器にする

 先日(2019年11月初旬)に発表されたGoogleのTeachable Machine 2.0 [1]はちょっと衝撃的でした。バージョン1.0は2017年に発表されていたのですが、今回のバージョン2.0は著しく進歩しています。”Teachable Machine 2.0 makes AI easier for everyone”のキャッチフレーズの通りだと感じます。

 このTeachable Machineの特徴は、ブラウザのもとで動くTensorflow.jsを使っており、学習も認識もローカルマシンできてしまうことです。学習は今のところPCでしかできないようですが、学習済みのモデルは、スマホへ組み込めるので、スマホでリアルタイムに、音/画像/ポーズの識別ができてしまいます!ここで特筆すべきは、コーディング不要であり、例えば以下のようなスマホ用の音識別器は、全体で15分くらいでできてしまうことです!

 ここでは、図1に示した5つの音源を扱うことにします。(画像やポーズ認識もこの後やってみます。)


 まず、ブラウザで、周辺雑音と5種類の音をスマホへ入力して(各々20秒程度)、図2の中央にあるTraining(学習)ボタンを押します。数十秒で学習が完了します。恐らく、転移学習モデルが背後にあるため、こんなに速く終わるのだと思います。次に、スマホで学習済モデルを使うために、これをexportします。


 スマホ側では、この学習済みモデルのURLをブラウザから開くだけです。すなわち、これだけで、スマホが、音の識別器になってしまいました。図3と図4には、スマホに新たにテスト用入力音を与えた場合のリアルタイム識別結果を示します。5種類とも、かなり高い確度で認識に成功しています。




 この学習モデルは、JavaScriptとJsonで示されているので、スマホ側で、認識結果を使った何らかのアプリケーションを作ることもできるはずです。その場合は、JavaScriptプログラミングの基礎知識などは必要になりますが。

参考資料
[1] Teachable Machine 2.0 makes AI easier for everyone
https://blog.google/technology/ai/teachable-machine/



2019年6月7日金曜日

日本タンポポと西洋タンポポ(2)

前の記事(1)では、西洋タンポポと日本タンポポの違いをみました。そうすると、次は、Deep Learningで両者を区別してみよう、ということになりますね。

以前にもご紹介しましたが、子供向けのAI体験システムであるML4K(Machine Learning for Kids)を使えば、コーディングも全く無しに、直ぐに結果を得られます!制約はもちろんありますが、素早く使えるこの優れた環境は、大人も遠慮する必要はありません!使ってみましょう。

ここでは、西洋タンポポと日本タンポポの画像それぞれ18枚づつを用意して、それを学習させます。実際には、バックでIBM WatsonのVisual Recognizerが動きます。一般的な画像認識の学習には、数百〜数千枚の画像が必要でしょうが、少ない画像でも(最低10枚以上あれば)一定の結果は得られます。


通常、数分で学習済みになりますので、学習用とは別に用意した画像でテストしました。西洋タンポポと日本タンポポの画像それぞれ1枚でテストしたに過ぎませんが、下図のとおり良好な識別結果が得られました。


これじゃ、小学生の夏休みの宿題くらいにしかならないかも知れません。でも、これだけ簡単にAI技術体験ができることは、誰にとっても嬉しいことです!

2018年9月2日日曜日

小学生によるセミの抜け殻を題材にした研究:Deep Learningも活用できればいいのだが

 昨日のNHKテレビによれば、京都の北山隼君(小学3年生)が夏休みの自由研究で、多数のセミの抜け殻を収集していて、そのうちの15%が、恐らくこの猛暑のために羽化できずに死んだことを明らかにしたという。北山君が集めたセミの抜け殻はすでに数千個に達するそうである。

セミの抜け殻の例
https://ja.wikipedia.org/wiki/セミ

 私が 感じたのは、数千個もセミの抜け殻があるとすれば、これはDeep Learningによる画像認識(画像識別)の対象として非常に適しているのではないか!ということでした。非常に貴重な実データなのである!日本のセミは、ニイニイゼミ、クマゼミ、ツクツクホウシなど数種類のはずであるので、雄雌の区別をするとしても、数千個の抜け殻を、10種類程度に分類することになるからである。(実際には5,000個もあるそうなので、500個を学習データにして学習させ、残り4,500個をテスト(評価)データとして分類する。)

 先の記事では、数種類のコインの分類を、(コーディング無しで)分類することをやってみた。そのために、Machine Learning for Kidsというwebサイトを使った。もしも、学校の先生がこれを利用して適切に指導できれば、小学生でもDeep Learningの世界に触れて、さらに素晴らしい自由研究につなげられるのではなかろうか。

 北山君は、NHKの取材記者の求めに応じて、抜け殻を手にとって裏返し、「これは、クマゼミの雄」などと応えていた。抜け殻のお尻の微妙な形の違いで雄雌が分かるという。Deep Learningではそのような特徴は人間が与えなくてもよい。北山君の判定とDeep Learningの認識にどのような差が出るかも興味がありますね。

 まもなく、小学校ではプログラミングが必修になるという。必ずしも直接的にプログラミングにタッチしない場合でも、このようなITと理科を結びつけることが重要になってくるように思われる。


2018年6月17日日曜日

ScratchでAI(人工知能)を教えるプロジェクト

Scratchは、小中高生向けのコンピュータサイエンス、プログラミング教育に益々利用が広がっているようです。大学のオープンキャンパスなどでも活用されています。そのScratchですが、外部ボードや機器との連携を強化するextensionsなどを装備したScratch-Xにも注目が集まっています。現在まだ実験版(ベータ版)のようですが。

このScratch-Xで、ゲームなどのプログラミングをさらに進めて、AI(人工知能)も教えるプロジェクトがありました。Deep Learningを使う訳ですが、もちろん、その理論や詳細な手順は見せません。IBM Watsonを利用していて、Visual RecognizerやAssistantサービスを呼び出すようになっていますが、Scratchのブロックで包み込んでいます。

https://offspring.lifehacker.com/teach-your-kid-machine-learning-with-these-free-lessons-1826836113/amp?__twitter_impression=true

Machine Learning Projects (ScratchX)
https://machinelearningforkids.co.uk/#!/worksheets

子供にもAIの活用技術に親しんでもらおう、という意図のようです。公開されているプロジェクトのうちの「コンピュータとのじゃんけん」を実際にやってみました。手の画像の認識をAIで行うということです。

  • 自分の手で、グー、チョキ、パーの3つをそれぞれ10回づつWebカメラでとる。
  • それにラベルを付けて、Watsonに学習させる。
  • かんたんな「じゃんけんの勝ち負けのルール」をScratchで作る。
  • 新たな手の画像(グー、チョキ、パーのどれか)を与えてボタンを押す。
  • コンピュータの手と比較して勝ち負けの結果がでる。

Deep Learningを利用したScratch-Xのじゃんけんアプリ


注意書きとして、「手を撮影するとき、自分の顔が映らないようにしてね」とあります。顔画像がどこかで悪用される危険性の回避のためです。このようなことも子供の時から教えておいた方がよい。ちょっと技術の負の面が出て来ているわけですが。

手の画像にラベル付けして学習させるという例でしたが、汎用性があります。例えば、手書きに文字認識も同様に行えるわけです。
Deep Learningの勉強、学習、研究の環境は色々出回っていますが、このScratch-Xによるものも教育面で可能性があるのではないでしょうか。