2017年1月13日金曜日

音声認識を使ったプロジェクトから考える変化の時代

 先日あるプロジェクトで、「現場で作業をする人の会話を文字化する」ということを実験的に取り組むことになった。実験的というのは、「作業しながら話をしている声をちゃんと認識できるのか」とか、「業界の専門用語があるんだけど、そういうの認識できるのか」とか。できたらいいなだけど、色々課題はありそうなので、とりあえず実験するということ。POCってやつね。Proof of Concept。コンセプトが実現できるのかを実証する。


 ぼくらはMAGELLAN BLOCKSを使って実験。今回は、音声を認識するだけなので、独自の学習モデルとかは作らず、BLOCKSに登録されているGoogleの学習済み音声認識機能ブロックを使った。

 もうひとつは、国内でも圧倒的実績のある音声認識パッケージ。なんでもこの業界の専門用語を数万語登録してあるという。

 Googleの音声認識機能というのは、Speech APIという名前のクラウドサービス。Googleがこれまで様々なサービスで培ってきた機能を、クラウドで使える。

 これって何かというと、Androidで「OK, Google!」って言うと質問に答えてくれるヤツ、あるよね?あのサービスって、世界中の人が使えば使うほど、Googleの機械学習が、音声について学んでいる。学べば学ぶほど、OK Googleは便利になるわけだから、世界中の人が使って、世界中の人が便利になるという仕組みのサービスなんだよ。

 Googleが得意なのは、こういう機械学習で、教師なし学習というやつ。どういうことかというと、荒っぽく例えるなら学校の試験で出るような難しい問題があるとして、数学とか物理とか、答えよりも解き方が重要なやつ。そういうやつを、問題と答えだけたくさん見せていくと、コンピュータは解き方を見つけ出してしまう。そんな感じ。解き方を教えなくても、自分で見つけ出すので「教師なし」。

 で、さっきのプロジェクト。Googleは、単純に世界中の人との会話で学んだだけ。一方は、専門用語辞書を万全に備えた仕組み。


 結果は、BLOCKSの圧勝だった。つまりGoogleの圧勝ね。

 このプロジェクトの結果は、いろいろ考えることが多かった。だって、対抗馬になった仕組みは、実績もあるのでプログラム的にはよくできているんだと思う。そして専門用語をたくさん用意してあるのでデータも充分。
 
 Googleの仕組みがどうなっているのかは知らないけれど、TensorFlowで開発されたソースを色々見てきた感覚で言うと、音声認識をするニューラルネットワーク自体は驚くほどシンプルなんだと思う。100行程度だったりとかね。
 じゃぁデータはどうなんだろう?「OK. Google」に話かけた音声。あれって機械学習に学習させたら、もういらないわけだ。つまり、世界中の人たちが話しかけた言葉、音声自体は、学習させたら不要。だって、学習させた結果、学習した学習済みモデルがあればいいわけであって、一つ一つのデータはいらない。

 こう考えていくと、すごく時間をかけて巨大なプログラムを準備することとか、大量のデータを持っていることとかは、もはやそれほど重要ではないのかとさえ思えてくる。(とはいえ大量のデータがあるから学べるので、この表現は難しいんだけど。)シンプルな構造と、上手にデータを学習させる。つまり加工して持っていること。そちらの方がよっぽど大切だし、そういう時代なんだろうと思う。

 大量のエンジニアを投入した、数千万ステップのシステムとか。もしかしたらそういうこと自体、もはやダメなシステムの証なんじゃないかと。

 AIがどうのこうのという以前に、もしかしたらとてつもないイノベーションの真っ只中。その本質を理解することが、とても大切な、そういう時代なんだろうな。

0 件のコメント:

コメントを投稿