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

2018年8月29日水曜日

Deep Learningで岩田一男先生の英作文とGoogle翻訳を識別

 高校初級〜中級の英作文問題について、Prof. Iwata(故 岩田一男教授)の英作文テキストにある英文例とGoogle翻訳による英訳を比較して、その相違を少し調べました。Prof. Iwataを知っている若い人はあまりいないかも知れませんが、著名な英文学者で、英語教育でも有名でした。先生の以下の著書(40年位前に出版された)にある例題を対象としました。


次の2点を検討します。
(1)Google翻訳(和文→英文)結果の主観評価
(2)人工知能(Deep Learning)によるProf. IwataとGoogleの相違の評価

■岩田一男先生の英作文とGoogle翻訳

岩田先生の本の例題(数百以上の英作文例)から、ランダムに50件を選択。その和文をGoogle翻訳して見ました。驚きました!50件のうちの12件は、Prof. IwataとGoogle翻訳の英文が完全に同じでした!その幾つかを以下に示します。

【Prof. IwataとGoogleの英文が完全一致した例(2018-8-29現在)】
●本当を言うと、私は彼といっしょに行きたくない。
 → To tell the truth, I do not want to go with him.
●もし私がきみなら、そんなことは言わないのに。
 → If I were you, I would not say such a thing.
●なお悪いことに、雨が降り出した。
 → To make matters worse, it began to rain.
● 彼は旅券をホテルの部屋に置き忘れたにちがいない。
 → He must have left his passport in the hotel room.
(以下、8件は省略)

 異なる英文となった残り38件のGoogle翻訳も全て妥当なものと思われます。少なくとも中学校〜高校レベルの英作文では、Google翻訳性能は驚異的とも言えます。

■AIによって両者の相違を認識できないか?

別記事で述べた、Deep Learning for Kidsでは、画像認識の他にテキスト認識も対象としています。それを使います。両者(Prof. Iwataの英文とGoogle翻訳結果の英文)に少しでも相違があった38件をそれぞれ、Prof. IwataとGoogleというラベルを付けて分類して、学習させます。

和文38件の英訳をそれぞれのラベルに入れる

前回記事(画像認識)の場合と同様に、これをIBM Watsonにかけると数分で学習結果が返ってきました。上に述べた50件とは別に、岩田先生の本から、新たに例題を選択し、その英文とGoogle翻訳英文をテスト(評価)にかけてみました。その一部を以下に示します。

両者の英文対して、何らかの違いをAIは見つけたようです!的中しましたね!


 もう一例あげます。今度は、若干低い確度ではありますが、Google翻訳の結果も、Prof. Iwataのものと判定されました。それだけ、Google翻訳は優れているということになるでしょうか。



 まだまだ学習データの英文の個数は不足だと思います。また、定量的な評価をするには至っていません。しかしながら、何か可能性を秘めているように思われます。


2018年8月27日月曜日

もう一歩進める:MIT App Inventorで人工知能体験

 オープンキャンパスでは、スマホを使ったAI(人工知能)アプリの開発体験をしました。とても好評で良かったのですが、さらにもう一歩進めることを検討してみます。この体験は、スマホで撮影した物の画像をMicrosoftのImage Recognizerに送って、その認識結果を利用するというものでした。この場合、ニューラルネットワークを使った学習(training)そのものには、受講生は全く関わっていません。そこんところに少し入り込みたいです。

 つまり、自分自身のモデルを用意して(分類したい画像などを収集し)、学習させ、その結果のニューラルネットワークを使って、認識テストしたい、ということです。でも、そうなれば少なくとも、いくらのコード(Tensorflowを使う場合は数十行程度、Kerasを使うと十数行程度)は書く必要があります。また、SonyのNeural Network Consoleを使うとコーディングは不要ですが、ニューラルネットワークの構成を理解してそれを(ビジュアルに)与える必要があります。

 そういうことすらせずに、自分のモデルを使ったAI体験ができれば、初心者には非常に良いのではないか。実は、それをやっているプロジェクトが英国にすでにありました。一度ご紹介したことがあますが、以下のサイトです。

Deep Learning for Kids
https://machinelearningforkids.co.uk/#!/about

 タイトルは、for Kidsとあるのですが、大人が(情報工学科の教員でも)やってもたいへん面白く、ちょっとした実用性も感じられます。さっそくやってみましょう。ここでは、AIとして最も基本的な、教師あり学習による画像認識をやります。

■5種類のコインを識別する問題

対象は何でもいいです。各自用意してください。できれば、3種類〜5種類くらいのもので、それぞれ10個以上の個体があるものが望ましいです。私の場合は、かって欧州出張した際に持ち帰った幾つかのコインの識別を行うことにしました。

5種類のコインの識別をやってみよう
 上記に記したURLへ行って(ユーザ登録は必要)、ブラウザだけで以下を行えます。コーディングはありません!

●Step1:5つラベル(コインの名称)を用意し、コイン画像を設定
 コインは5種類あります。それぞれ何枚かのコインがあります。適宜とりだし(表裏や配置角度はランダムで)撮影して、その画像をラベルのフォルダに入れます。ここでは、各ラベルごとに20枚の画像を用意しました。

裏表や向きはランダムに撮影:コイン5種x20枚=100枚
これらの画像をラベル(コインの種類)毎に分けて与える

●Step2:これを学習(training)させる。ボタンを押すだけ。
 表示されたボタンを押すと、IBM Watsonによる学習が行われます。各種パラメータ(層の構成、学習率、許容誤差、等々)の設定も無しでWatsonにおまかせ。画像の分類場合は、Recognitionサービス、テキストの分類の場合はAssitantサービスなどが働きますが、利用者は特に意識する必要はありません。まもなく(今回の例では約5分後に)学習結果が得られました。無料枠で優先度は低いうえに、数段のコンボリューションを含む多層のニューラルネットで学習させているはずなので、それにしては速いと思います。これで、必要なニューラルネットワークが構成されました。以下のように表示されます。

学習の完了

●Step3:学習(training)とは別に用意したテスト用画像で認識させてみる。
 以下のウインドウにテスト用画像をひとつづつ与えてテストを実行する。各ラベル(コインの種類)ごとに、2枚のテスト用画像を与える。表裏や配置角度はランダムで。


●Step4:テスト用画像に対する認識結果を確認する。
 10枚のテスト画像が、すべて、確度(confidence)90%〜91%で正しく、認識された!これで完了!例えばですが、日本の10円玉と旧マルクの10pfennigは、色やデザインがかなり似ているのですが、難なく識別されました!


■ScratchやMIT App Inventorも登場!

上記のStep1〜Step4だけでも十分ですね。しかし、画像をカメラで撮影して入力しやすくしたり、Watsonによる認識結果を、より分かりやすく表示したり、ほかのアプリと組み合わせするのに、ScratchやMIT App Inventorが連携して動ける仕組みも用意されています。(これについては、別途書く予定です)

ScratchやMIT App Inventorとも連携!