2018年1月25日木曜日

ありがとう、マグネットたち

残りあと僅かとなってしまった。
部屋を片付けている。
マグネットたちにも大変お世話になった。
ありがとう。

お世話になったマグネットたち

2018年1月8日月曜日

MIT App Inventorの発展

 優れたソフトウェアや開発環境は多数あるのですが、私にとってそのうちの一つが、MIT App Inventor for Androidです。この素晴らしさを、ぜひiOS(iPhoneやiPad)の上でも実現させたいという強い要望があるようです。

 MITでは、それに応えてiOS版も開発中であり、この春にリリースする予定とのことです。そのためにクラウドファンドの形で資金援助を求めていました。2016年末にその募金期間が一応終了し、その結果が以下にあります。
 世界中から、757人が献金したようです。我が情報工学科からも少なくとも3名が献金しました。目標額は10万ドルでしたが、すでに6万3千ドルほどが集まったとのことです。素晴らしさを感じて、支援したいと思う人が多かったことが何かうれしい。

 このApp Inventorはオープンソースとなっているため、原理的には、だれでもそのソースを基に独自のソフトウェアを開発できるようです。実際、以下のものが知られています。それぞれ、独特のユーザインタフェースや拡張機能を提供しています。そのうち、Thunkableでは、MITに先行してすでにiOS版もリリースしています!違いもあります。下記に私の理解していることを簡単に記します。

--------- App Inventorの仲間たち ----------

■MIT App Inventor 
 
app inventor
 ユーザは、Android用にもiOS用にもほぼ同じように(共通のdesign, blockで)プログラムを作れる。ビルドする際に、どちらかのプラットフォーム向けかを指定する。となりそうです。これだと、学生や高校生にアプリを作ってもらう場合、非常にいいです。AndroidかiPhoneのどちらかはほぼ誰でも持っているはずですから。ただし、実際には、フェーズ1では、ライブテスト(iPhoneへはダウンロードしない)で使い、フェーズ2になると、ビルドしてiPhoneへ載せられるという計画のようです。それまでにやはり数ヶ月以上かかるのではないでしょうか。

■Thunkable

https://thunkable.com/#/
 こちらでは、すでにiOS版もリリースしています。ただし、iOS版は、iOSネイティヴに作られています。Android版とは異なるユーザインタフェースやブロックで作るので両者の互換性はありません。もちろん、本来のApp Inventorの思想はそのまま受け継いでいるので、使い易いですが。今後、iOS版のブロック機能は次第に充実してくると期待されます。

■AppyBuilder

http://appybuilder.com
 無料版と有料版がある。有料版では多数の独自ブロックも備えている。それらのブロックには先進的なものもあり、本家のMIT App Inventorにも良い影響を与えているようだ。実際、そのいくつかは本家にも採用されているようである。iOS版はやっていないが、独特の魅力がある。

■Makeroid

https://www.makeroid.io
 他のものに比べて、全体にデザインが斬新的になっている。


---------  独自性はいいのだが、互換性はどうなる ----------

 それぞれが独自に開発はいいのだが、相互の互換性は気になります。もちろん、一定の独自機能はあっていいでしょう。しかし、優れた新しい機能ブロックは、上記4つのどれでも使いたいものです。それについては、ちゃんと考えられていますね。Extensionsという機能です。Javaで作成した機能ブロックを、既存のブロックと同じように使えるようにする画期的な機能が、MITによって以前から提供されているのです。
 これまでに開発された、200個を越えるExtensions用の新しいブロックが以下にリストアップされている。有料のものもある。Extensiosブロックは、少し頑張れば私でも開発できそうである。今後挑戦してみたい。
Pura Vida Apps

https://puravidaapps.com/extensions.php

2018年1月7日日曜日

懐かしき数学

 2018年が明けた。今年は私にとって特別の年なのである。年末に家の中を掃除していた。はるか昔に大学で勉強していた数学書が何冊か出て来た。出てきたのではなく保存してあったものだ。その当時は、パソコンもスマホもWebもSNSも何も無かった。情報源は、先生の講義の板書と自分で買い求めた書籍だけだった。

 ・初等リーマン幾何学(矢野健太郎著)
 ・連続群論(ポントリャーギン著、邦訳)
 ・集合論入門(赤攝也著)

 ポントリャーギンは、14歳の時に事故で失明したが、微分幾何学の大数学者となり、旧ソビエト連邦の英雄となった。

 これらの数学書の具体的な内容はすっかり忘れてしまっていて、もう今では読めない。もしも、その当時の気力と頭の状態を復元できれば可能かもしれないが。




Education is what remains after one has forgotten what one has learned in school (Einstein)
・教育は学校で学んだことを忘れてしまった後に残るものです(Google自動翻訳)
・学校で学んだことを忘れてしまった後に残るものこそが教育なのだ(より自然な和訳)

大学の数学科で学んだ経験は、その後の私の職業生活の基盤の一部を形成した。そうさせてくれた亡き父と母に感謝したい。
The experience I learned in the mathematics department of the university formed part of the basis of my career life afterwards. I would like to thank my dead father and mother for letting me do so.(Google自動翻訳)

2017年12月6日水曜日

iPhoneでもApp Inventor!(その3)

 iPhoneでもApp Inventor(Thunkable)の第3弾です。今回は、Thunkable for iOSに備えられたAssistantというブロックを使った簡単な例です。これは、音声(またはテキスト)で、iPhoneと会話するものです。AssistantはGoogleのDialogflowの仕組みを使って音声応答するものです。

 そのアプリの使用例を示します。音声で、「学科忘年会」とか「卒論提出日」とか、iPhoneに向かって問うと、「2017年12月26日です」とか「2018年1月25日です」という答えが表示されます。

個人用 SiriのようなiPhoneアプリ


 日付に限らず、「外部資金課の〇〇さんに謝らなくては」、とか「教務課の△△さんに伝えなくては」という場合の電話番号取得などにも使えます。

 このような音声検索には、AppleのSiriやGoogleの音声検索(OK Google)等があります。でも、例えば、本物のSiriに「卒論提出日」と問いかけても、まともに答えは返ってきません。本学科のローカルな情報ですから当然ですね。そこで、上記のような言わば、「私の個人的Siri」のようなものがあってもいいですね。

Siriに「卒論提出日」を聞いてもだめです

さて、このiOSのアプリは、以下のような僅かなブロック(処理)の組み合わせて作れます。Assistantという名のブロックを使っています。

ThunkableのAssistantブロックの利用


 そして、音声の問い合わせと日付の対応は、以下のようにGoogleのDaialogflowで定義します。それを、Assistantに接続しています。

Dialogflowによる会話のためのデータの定義


 このDialogflowは、クラウド上で設定されており、以下の特徴があります。
  • iPhoneアプリケーションを変更することなく、このDialogflowのデータを追加、修正でき、段階的に、実際に役に立つものに仕上げることができる。
  • 類似語「忘年会」、「学科忘年会」 ... などもsynonymsとして、思い付いたらどんどん追加できる。
  • 下記のように、ユーザが音声で問い合わせた場合の状況を示し、Dialogflowの学習状況を改善することができる。例えば、「卒研発表」と音声で問い合わせたつもりが、かなりの場合、「卒検発表」と誤認識された様子が分かる。学習改善に繋がる。
  • と思っていたら、いつの間にか例えば「卒論の提出」でも正しく日付が提示されるようになりました。「の」を含んだものは上記Dialogflowには自分では設定していませんでした!

「卒研発表」のつもりが「卒検発表」と誤認識された状況も分かり、学習を改善できる

2017年11月30日木曜日

20年前も人工知能や並列分散を学生諸君と学んでいた...

 ちょっと変わったタイトルになってしまいました。人工知能や並列分散処理は、ここ本学ではどのくらい前からやっていたのか?自分でも忘れかけています。そんな時、書類整理をしていたら、実に20年前の「次年度卒研配属募集」の際に使ったと思われるカラーOHPが出てきました。

 今と比べると以下のような感じです:

  • こんなに簡単な募集案内で良かったのか、おおらか。
  • 本学としては、現状に比べて大学院生が多かったのではないか
  • 並列分散は指導教員が元々専門にしていたのであがっている
  • 人工知能とあるが、そのころはDeep Learningはありませんで、GAなどが先端的
  • Javaが急速に普及しはじめたようだ

 以下のOHPのコピーは、平成10年度募集の際のものと思われます。つまり、映っている15名(教員含む)は平成9年度の皆さんです。




2017年11月27日月曜日

iPhoneでもApp Inventor!(その2)

 iPhoneでApp Inventor(Thunkable)の続編(その2)です。もう一例作ってみます。非常に短いけれども、クールな例題と思います。リアルタイムデータベース(Firebaseだと思います)の利用例となっています。

 具体的には、 「私のiPadで発生させた乱数をリアルタムに、友人B君のiPhoneに表示させる」というiOS用のアプリです。両者に共通の同一プログラムになっています。実行例を以下に示します。

私のiPad(右側)で発生させた乱数が、即座にB君のiPhone(左側)へ!

これは、簡単な例ですが、この枠組みによれば、以下のような応用にも直ぐにつながります。
  • センサからの許容範囲外の値の自動検出
  • 動いている物や歩く人の地図上でのリアルタイム追跡

 このようなアプリの処理方式としては、Bluetooth、WiFi direct等の通信を明示的に使うか、あるいは何らかのWebBDを介してB君側が明示的に待ち受ける(データベースの中身をチェックする)プログラムを書く必要があります。しかし、ここでは以下のように、データベースの内容が変わったら自動的に通知してくれる(リモートイベントとして伝わる)機能を使えるので、プログラムは非常に簡単になります。

これが、このアプリの処理の全てです(拡大してご覧下さい)

2017年11月26日日曜日

iPhoneでもApp Inventor!(その1)

 情報工学科では、この夏のオープンキャンパスで2回連続で、「従来型コーディング無しでスマホアプリを作成する」体験講座を実施しました。たいへん好評で盛況だったと思います。しかし、そこにはある制約が... そうです。端末はAndroid限定でした。でも、高校生のみなさんは、iPhoneを持っている(iPhoneしか持っていない)人も多いのも事実です。これは日本だけではありません。米国でも同様です。

 これまでは、このようなブロックプログラミング開発環境は、Android向けしかありませんでした。具体的には、MIT App InventorやThunkableがありました。そのThunkableでは、下図のようにiOS(iPhoneやiPad)向けの開発環境を提供し始めました。これは非常にインパクトがあると思います。


iOSでもAndroidでもできる!

 Android向けとiOS向けでは、利用者に対する基本的な考え方は変わりません。でも、実際のインターフェース、操作手順はそれぞれのOSに依存して少し異なります。ですから、マニュアルも作り直さなくて行けません。しかし、それは些細なことです。両方のOSで、このすばらしいブロック型プログラミングができるのですから!

 では、上記オープンキャンパスで取り上げた3つの例題のうちの一つである、「人工知能による画像認識アプリ」をiPhone用に作ってみます。Androidの場合と同じく、MicrosoftのImage Recongnizerが使えます!以下がその実行例です。




こちらの認識結果はなかなか良いと思います

[注] iOSの場合、Apple Store以外のアプリについては、インストールは厳しい制約がありますが、巧妙に安全に、自分のiPhoneへこのアプリはインストールできます。

 このアプリのユーザインタフェースの画面と、ブロック図を以下に示します。この2つがこのアプリの完全なソースプログラムとなっています。

ユーザインタフェースの設計
ブロック(処理部)の全体
なお、「撮影する」と「画像認識する」の2つのボタンを纏めてひとつにしたい場合の処理(ブロック)は以下のようになります。

「撮影」と「認識」を一つにまとまめた場合

2017年11月25日土曜日

人工知能学会 合同研究会2017

■はじめに

 表記の研究会に参加した。11/24,25の2日間に渡り、多数のAI関連研究発表が行われた。小生はこのうちの1日だけ参加し、しかも、下記の招待講演と企業スポンサーの展示だけに焦点を絞って参加した。

イチョウが美しい慶応大学日吉キャンパス(学会はこの後ろの矢上キャンパスだが)

■招待講演(11/24)

 「理研AIPセンターの取り組み」杉山 将 教授(理化学研究所/東京大学)

開始前にすでにほぼ満員の状態(これ以降は、撮影せず、聴講に専念)

 以下、私の理解したメモにすぎません。抜けはもとより、誤りもあるかもしれませんが、ご容赦下さい。何らかのご参考になれば幸いです。

◎雰囲気

 機械学習関係分野の世界的権威とみなされている杉山教授の講演とあって、開始のかなり前から、この講演(70分間)への注目度が高く、300人くらい入ると思われるマルチメディアルーム、ほぼ完全に満席、立ち見の人もいた。少し素人向けの解説から始まり、現在のAIの状況、今後の進め方、特に、国の機関なので国の方針も踏まえた内容であった。

◎要点(断片的にしか書けませんが)

 「人工知能:記号処理、ルールベース」「ニューラルネットワーク:バックプロパゲーション」「機械学習:隠れマルコフ、ベイズ理論など」の3つで成るが、それぞれ異なる。あまり融合してこなかった。実は、それぞれの多数の国際会議も別々の感があった。しかし、近年だんだん交流、融合が進んできたように思われる。

 最近の人工知能といえば、Deep Learningとみなされるとも言える。教師あり学習、教師なし学習、その中間くらいの強化学習(正解は与えないが、結果のフィードバックは行う)がある。強化学習は、アルファ碁あたりから注目が高まった。

 米国が圧倒的 関連国際会議の論文数などで。中国がすごいという報告があるが、ほとんどは米国でやっている研究者。日本人はかなり少ない。どの関連学会でも日本の採択論文は、数パーセントどまり。

 Deep Learningの最初の論文が出たのは、2006年。当時は、冷ややかな反応だった。10年かってすごいことになってきた。そういうものと思って、研究開発を進める。Deep Learningについて、まだまだ未解明、うまくできないことはある。

 教師データありの場合、ラベルの個数nならば、1/√nで誤差が減る。これは理論的に言える。教師データが無い場合、あるいは限られた情報しかない場合の学習方法について研究を進めている。いわゆる半教師付き学習方法の研究を追求している。少ない教師ラベルの状況での、信頼度、確率、補ラベル(正解でないラベル)情報を考慮した学習アルゴリズムはできている。
 会場からは、「私は、乳がん診断のための画像を学習させようとしているが、それにラベルを付けるコストが非常に大きいので、この学習法に期待したい」とのコメントもあった。

 10年後どうなるなどといういろいろな分野の予測も出されているが、それはどうなるか誰にも分からないと言えよう。Deep Learningは進めるが、さらにその先をめざす。AIとサイエンスを融合、結合して新たな世界を日本発にしたい。日本の強みを持つ分野にAIを活用していく方法を案出、策定する。以下のような分野:

・再生医療(京都大学ips細胞)
・ものづくり(名古屋大学の青色ダイオードなど)
・高度な高齢化対応
・防災、減災
・橋梁、トンネルなどのインフラの改築、整備
・AIの社会的影響に関する研究(倫理、プライバシー、セキュリティ、公平性)

 基礎理論、アルゴリズムの研究をやってきた。今後もそうだが、一方では、使ってもらってこそ本当の価値がある。したがって、実用面もやっている。しかし、企業の技術力には太刀打ちできないので、企業との共同研究、連繋も重要になっている。

 人材育成は真に重要:理研には、有力な大学教授らに参加してもらっている。すると、その学生も来る。企業、海外からも人材を受け入れている。約350名(このうち常勤は60名)。予算は数十億円、海外に比べると3桁も少ないが、基礎研究としては今のところやっていける。海外から人を集めるにも、米国との競争になる。米国の方が圧倒的に高給を出しているから。

 会場から、「高速学習のためのハードウェアは研究しないのか」との質問があった。それに対しては、それは産総研ではやっている。ここではやっていないが、AI専用マシンNDIVIA GDX-1 24台構成、半精度(一般の科学技術計算とは異なり、倍精度や4倍精度は不要というのは、納得できる)は所有している。今では最高速ではなくなったが、それでもGreen500(消費電力を勘案した性能を競う)では世界4位の性能である。最近、量子コンピュータの発表もあった。これにも大いに期待がかけられる。

(注)NDIVIA DGX については、筆者(山本)も、会場でメーカの展示デモをみた。4枚の高性能GPUを搭載したもので、撮影画像をリアルタイムに、指定した画家の画風に変換していた。実際、私の顔の撮影画像が、ゴッホ風の画像にリアルタイムに表示されたりした。特定の画家の多数の画像を学習済みにしておいて、このリアルタイム変換をforward処理で行っているという、オーソドックスな説明ではあったが。

2017年11月20日月曜日

人工知能でお菓子を認識する(その4)

 このSony Neural Network Consoleの、まだ述べていない機能についてです。ニューラルネットワークの層構成を含む、様々なハイパーパラメータの自動チューニング(自動最適化)機能です。

 この「お菓子を認識する」でそれをやってみました。結論から言いますと、これまでの認識率(正答率)は最高で95.2% = 476/500でしたが、この自動チューニングで、97.2% =486/500を出すニューラルネットワークが見つかりました!

 これには、ノートPCを1時間ほど走らせて得られました。6ケースほどの候補をそれぞれ10分程度かけて学習した結果からそれが得られました。実際、ネットワークの層も自動的に下図のように変更されていました!ある一定のポリシーでこの方向へ向かってきたのだと思いますが、詳しいことは、現時点では分かりません。勉強していません。

 ともかく、自分でひとつのNeural Networkを構成すれば、それをベースに自動的に(時間はかかるが)もっと正答率の高いNeural Networkに変えてくれる、これはなかなかのものではないでしょうか。

前編(その2)のネットワーク構造が自動的に変更された
正答率は、前編(その2)の95.2%から97.2%へ向上


この時の学習の状況:前編(その2)の場合とはかなり異なるルートの探索




2017年11月18日土曜日

人工知能でお菓子を認識する(その3)

 本件、前編(その1)と(その2)とも、Windows単体で動くSony Neural Network Consoleを使いました。その後、すぐにクラウド版(ベータ版ですが)が公開されました。Macからも使えます。Macファンとしてはとても嬉しいです。さっそく、試してみました。

クラウド版が使える! Macからも使える!

このクラウド版のいいところを列挙してみます。

  • Windows単体版で作成したプロジェクト(ニューラルネットワークの層構造など)は、そのままクラウドへアップロードして使える。
  • データセット(データの本体のuriとラベルの組み)のアップローダーが備わっており、自動的にデータ本体もアップロードしてくれる。
  • クラウド版の方に本腰をいれているようだ。Windows単体版よりも表示情報が詳しく、GUIも若干充実している。

 一方、おやっ?と思ったのは...

  • Compute Hoursは10時間まで無料で使える、と書いてあるのですが、このCompute Hoursとは何なのか。ログイン状態の経過時間のようです。計算も何もしていないつもりでもカウントされてしまうようです。実際、40分くらいしか実質計算にはかかっていないはずなのに、下図のとおり、すでに6.7時間も使ったことに!ベータ版の無償版だからしかたないのか。

えっ、もう6.7時間も使ったことに...


以下に、Windows単体版での前編(その2)で実施したのと同じ条件で、このクラウド版を使った際の状況を示します。

ラーニングカーブ(経過時間の表示など詳細情報も表示される)

 学習後の評価結果は、(その2)とほぼ同一なので省略しますが、評価結果の詳細を表示してみると、下図のように、入力データ(この例では周波数スペクトル)の中身がより分かりやすくpreview表示されていました。

学習後の評価結果の詳細表示の例(入力データのpreviewもgood)

 また、これはWindows単体版にもあるのですが、学習の履歴も見ることができて便利です。

このプロジェクトの学習履歴