画像認識技術はどこから取り組む?
続いて、登壇者3人によるパネルディスカッションが行われた。モデレーターを務めたのは、GeekOutでもライターとして活躍する青山祐輔氏だ。
「画像認識に関心はあってもどこから始めればよいのかわからないという人は多い。何から始めればいいのか。また始めるにあたり、必要なことがあれば教えてほしい」という青山氏の質問に対し、小池氏は「まずはなぜ画像認識をやりたいのか、その目的を明らかにした上で、機械学習のフレームワークやライブラリに触ってみること。公開されているデータを使って、始めてみることをお勧めする」と回答。仁科氏は「私は趣味でKaggleに参加している。ものによってはチュートリアルも付いているので、入門にいいと思う」、菊田氏は「2つある。1つは簡単な問題でよいので、自分でライブラリの言葉を使って書いてみる。2つ目は数十枚ぐらいでもいいので、自分のデータセット作って動かしてみること」と回答。
次に学習用のデータをどう用意すればよいのかという問いに対しては、「解きたい問題に対応するテストデータは社員に協力してもらって集めることもある」(菊田氏)、「オムロンの場合は、数多くの被験者に研究所に来てもらって撮影している。眠気の推定のための被験者は、1時間もモニターの前に座ってもらうなど時間をかけて取得している。このようなことはどの企業もやりたくないこと。しかしデータを持つことは差別化にもなるという考えで、当社では取り組んでいる」(仁科氏)と回答した。また、個人で取り組んでいる小池氏は、「データを溜めながら、モデルの評価を並行して行うこと」とアドバイス。データが少なくても、データ拡張の技術を使えば、データ量を増やすことができるからだ。
勉強の仕方については「好きだからやっているだけ。アドバイスとしては身近に自分が解決したい問題を見つけること」(小池氏)、「私はKaggle参加のための勉強会を開催したり、モノづくりコンテストに参加したりしている。仲間を作り、目標を持つことが学習のモチベーションにつながる」(仁科氏)、「仕組みとしてチームや目標、インセンティブを設けること。そして自分に合ったものを見つけることが大事だと思う」(菊田氏)と回答があった。
できるだけ早く作って動かすことが大事
「サービス、アプリケーションにする際につまずいたことは?」という青山氏の問いに対しては、「アプリケーションにマッチする技術の選定は気を付けた方がいい」と仁科氏。画像認識=ディープラーニングではないということだ。「アプリケーションによってはルールベースのアルゴリズムで計算するほうが、精度が出ることもある。特にロボットにディープラーニングを適用する際には要注意」と忠告する。ロボットの判断で事故が起こった場合、ディープラーニングでは原因を追究することが難しいからだ。そして菊田氏は「精度は80%でいいので、できるだけ早く作って動かすこと。機械学習は人間がコントロールできないところがある。その部分に振り回されるのを軽減するには、できるだけ早く作って、改善していくこと」とアドバイスする。小池氏は「難しいのはモデルの品質保証だ」と話す。たまに「これを間違えるとダメだろう」というような単純な誤認識を犯すという。「実際の製品にする場合には、そのリスクをどう抑えていくかを考えることが大事になる」(小池氏)。
「最初のプロトタイプを作る際に工夫していること」の問いには、「まずはやってみて、全然ダメそうであれば、その理由を確認する。最初から普通の開発と同様にはうまく行かないことが多いので、その実験の記録をほかの人も追えるようしているのが工夫点」(菊田氏)、「最初に書いたコードはアイディアの検証目的と割り切って、特に品質は求めない。とにかくサイクルを早く回すことが重要」(仁科氏)、「まったく同じ。スモールスタートで始めること。そしてちょっとしたモノしか作れなくても、開発コンテストに出品したり、ブログで発表したりするなり、人前に出してみることをお勧めする。それがモチベーションにもつながる」(小池氏)。
「データがない」「やり方がわからない」は言い訳にはならない。本当に画像認識に取り組みたいと考えているのであれば、今すぐ始めてみること。それがエキスパートへの第一歩となる。