IoTとともに話題に上がることが多くなったディープラーニング。様々なシステムにディープラーニングが使用されるようになる中、三菱電機が「ディープラーニングの高速学習アルゴリズム」を開発したとのことで、三菱電機株式会社 情報技術総合研究所 知能情報処理技術 部長 三嶋英俊氏と機械学習技術グループマネージャー 松本渉氏にお話を伺った。
─早速ですが今回発表されたディープラーニング高速化アルゴリズムについて教えてください。
開発の狙いとしてはディープラーニングの学習そのものの演算処理が非常に重たくて、学習を進めて精度を高めていこうとすると大規模なサーバーが必要だったり、専用のハードウェアを準備する必要があったりとなかなか敷居が高いという状況がありました。その学習をどうすれば機器の中で完結して行えるようになるかというところが出発点ですね。
つまり、従来のディープラーニングですと、クラウド上にAIがあってそれは更新されていくと言えると思いますが、それを機器の中に取り込む。要はデバイスに組み込めるようなAIを作ることを目的としています。
─ディープラーニングの学習ができるデバイスの製造を目標としているということでしょうか?
そうですね。そういうところを狙っていきたいですね。例えば昨今、自動運転が非常に多く注目を集めていて、その次にFA(Factory automation)機器分野がありますが、モノづくりは当社にとって非常に重要だと考えていて実際にビジネスとしてもFA関係の引き合いは非常に多いです。近頃の大きな流れとしてはクラウドとFA機器を繋いでのモノづくりがあるかと思いますがFAというのは工場の経営データにも直結しますので、クラウドに情報を上げるのに躊躇を覚える方もいらっしゃると考えています。そういったニーズに向けてできるだけ工場内や設備内で完結してデータを処理できるような機械学習が必要だと考えています。
また監視カメラなどを例にとりますと、よほどのことがない限り警察などが監視カメラのデータを外に出す、クラウドにあげたりするというのは個人情報保護の観点からあまりできません。そうなってくると「エッジ側」である程度処理をして「何かあったよ」ということを外に通知する形態を取る必要があります。
「漫然運転検知アルゴリズム」という機械学習でその人が漫然と運転をしていないか、運転が難しい状態でないかの判別を機械学習で行うソリューションを以前発表させていただきました。その時漫然運転をしているかどうかの判断を心拍数などのバイオメトリクスデータや顔の表情、向きなどのデータから行っていたのですが、顔のデータを取得できているのなら、運転席に座っている人が本当に運転をしていい人かどうかを判断できるのではないかという考えに至りました。
家族の車の場合、父親、母親、成人済の娘は運転が許可されるけど、息子はまだ免許がないから運転席に座っても車が動作しないといった区別がしたいとなると、最初のユーザー登録の際は事前に専用の機械で登録などとすれば良いですが、息子が免許を取ったから途中で息子も運転可能にしたいとなったときに車のCPUでディープラーニングにその人の顔を学習させようとすると、大体30分くらいかかります。いざ使いたいとなった時にそんなに待つのか?となりますので1分以下ぐらいがストレスなく行えるレベルかと思い、今回のディープラーニングの高速化アルゴリズムの開発の話につながってきます。
クラウド上にデータをあげて処理をしたら良いという話も多くありますが、やはり自分の顔となると、どれだけ安全といえどもインターネットを通してサーバーなどに蓄積されていくのを嫌がる人は多いので、組み込み機器の中で完結してデータの処理ができて、外に情報を出す必要がない状態を目指しています。
それ以外にも機器ビジネスは非常に多数有りますので、なんとかデバイス内で完結できるディープラーニングができないかという事で、当社で研究を行ってきました。ディープラーニングではノードを複数の枝でつないで、脳の神経細胞と同じような構造を作ります。枝のところを通る際に演算の掛け算をするのですが、そこで処理がかかっているとのことで、どうにか省力化できないかと考えてきました。
─直観的には省くことは難しいのかなと感じてしまいますね
そうですね。ただ簡単に考えると、小学生の時の掛け算で0に何を掛けても0と習ったと思いますが係数が0になる部分をできるだけ増やすようにすることで計算を簡略化できます。我々が行ったのはまさにそういった取り組み方です。
─重みづけに使う係数が0になるところを増やして計算をできるだけ簡略化するということですか。
はい。計算を簡略化できる部分を探すためには、センサーデータの特徴を分析して、その枝の部分でも重要な枝だろうと思われるところを決め打ちで残します。
─これは人が残すのでしょうか?
現時点では人が枝を選別しています。枝を大幅に削減しても性能が落ちない事を理論的に証明したのが今回の成果です。日本神経回路学会等と協賛して行っている「ICONIP」という学会が10月16日~21日に京都大学でありまして、そこで成果の発表をいたしました。
色が付いてるのは何らかの値が入っていると思ってください。入力された数値に対して計算を加えて出力を得る形になります、出力側から見ると総和になるので行列演算をしてるのと一緒になります。数字がたくさんあるものは「密な行列」と呼び、そこは計算量が多いままで、従来のディープラーニングと一緒。そこで値をほとんど持たない「疎な行列」をどう構成するかという課題に落ちます。
─きっと、そこがミソですね。
はい。そして実際にできるぞという一つの証明として、論文にはどれぐらい少ない量でいけましたっていう実験表を載せています。MNISTっていう公開されてるデータベースの手書きの数字を画像認識した結果です
─25分の1の計算量で正答率97.9パーセントですか。
はい。これが25分の1の場合で、枝を減らさなかった場合と比べても性能は1パーセント以下しか落ちないということで、結局密な行列で計算したものと疎な行列で計算したものと、ほとんど、結果は変わりません。理論的にいうと疎な行列でも十分性能が落ちないでこの計算を成り立たせる事はできるというところを論文では証明しています。
─その太い幹っていうのを見切るところがすごく難しそうです。どのニューロンが何を想起してるかというのは非常に難しいですし、どれだけ残して、どれだけ切っていいかという判断もすごく難しいような気がします。
確かに難しいですが、例えば入力のデータに対して主成分となり得るような重要なデータの個数がある程度限定できるでしょ?という発想でやっております。主成分となりうるデータをこの密な行列でも疎な行列でも、情報を欠損させないで中間層に伝搬させる事は可能であるというところを今回の論文で証明したという事になります。
計算量を1/25にしても大丈夫ですと。論文には書いてるのですが、理論限界からすると、密な行列でも疎な行列でも同じようにデータを転換できるという事がこの論文の中に書かれてます。論文に記載している例は計算量を1/25にした例を示していますが、他の画像識別の検証では計算量を1/30に削減しても同様の効果が得られたことを確認していますので10/14付のニュースリリースでは計算量を1/30に削減と説明しています。
─これはこのデータだからという事はないのでしょうか?
今回発表した論文ではそういった制約条件はありません。
─人の顔の認識などデータが複雑だと難しいということはないのでしょうか?
扱うネットワークの構造というのでしょうか。構造とかデータとかがどうだったらとか、そういう話は当然出てきます。前提として出てくるのですけれど、それでも何らかの前提を分けた時に、さっきのガンマに依存しないっていうのは実は驚異的なお話でして。それが分かっただけでも、これはすごい成果だなと考えています。
学会で発表した時も、人工知能系ではこういった省力といった面での分析というのはあまりありませんでした。
左:三菱電機株式会社 情報技術総合研究所 機械学習技術グループマネージャー 松本渉氏/右:同社 知能情報処理技術 部長 三嶋英俊氏
次ページ:学習の軽量化、エッジ処理、自律的なAIなど