画像認識人工知能の誤認識を減らす方法

  • 2018.07.19
  • AI
画像認識人工知能の誤認識を減らす方法

1.画像認識人工知能の誤認識を減らす方法まとめ

・画像認識人工知能は学習データに最も近い物体を画像内に見つけようとする
・画像内の物体が今まで見た事がなくとも「判別不能」と判定する事はできない
・ユーザインタフェースの設計により誤認識を減らす工夫等が有効

2.何故、人工知能は画像内の物体を誤認識するのか?

以下、pete warden氏のブログより「What Image Classifiers Can Do About Unknown Objects」の和訳です。

数年前、Plant Village社からある相談を受けました。私は彼らが開発中のモバイルアプリに発生する問題について相談に乗っていたのです。

それは植物の病気を検出するアプリなのですが、カメラで植物の葉を映すと病気を高確率で検出する事ができるのに、コンピューターのキーボードを映すとキーボードを病気にかかっている作物だと誤認識してしまうのです。

これはコンピュータビジョンの研究者にとって驚くべき結果ではありませんが、他のほとんどの人にとっては衝撃的な事でしょう。ですので、なぜそれが起こっているのか、それについて何ができるのか説明したいと思います。

人間である私たちは、身の回りの物事を分類することに慣れていました。そのため、人工知能が同じ能力を持つことを暗黙のうちに期待しています。ほとんどの人工知能は、ImageNetの画像分類(全1,000種類)のように、全画像が既に分類済みの非常に限定された状況で画像を分類するように訓練されています。

重要なことは、人工知能が「自分が分類する対象は学習時の分類対象(つまりImageNetなら1000種類)のいずれかに分類されるはずである」と暗黙の前提をしている事です。人工知能に「判別不能」と言うオプションはなく、「判別不能」と言う解答を導き出せるような学習データもありません。これは研究の場面では気になりませんが、現実世界で人工知能を使用する際に大きな問題になりす。

私がJetpacにいたとき、物体認識の分野で画期的な進歩を成し遂げたAlexNetが素晴らしい画像分類能力を持っている事を人々に理解させるのに苦労しました。

人々にデモのためにカメラを渡すと、人々は自分たちの顔を映す事が多いです。AlexNetはそれを見て 「酸素マスク」や「シートベルト」と誤認識します。これは、ImageNetの学習用データには人の顔はカテゴリとして登録されておらず、酸素マスクやシートベルトはカテゴリとして登録されており、且つ酸素マスクやシートベルトの写真は人の顔と一緒に写っている事が多いからです。

別の恥ずかしい間違いは、「白い板」を 「トイレの便座」と予測した時です。これは元の学習用データには「白い板」がなく、最も近い外観の白い円形オブジェクトが「トイレの便座」だったためです。

私はこれを「オープンワールド」対「クローズドワールド」の問題と考えるようになりました。人工知能は限られた数のオブジェクトが存在すると仮定されたクローズドワールドで評価されますが、実験室の外に出るとすぐにその仮定が破られます。オープンワールドではユーザーは任意の物体を、それが学習用データに含まれるか否かは気にせずに、人工知能の前に置いて人工知能の実力を判断するのです。

それでは解決策は?

残念ながら、私はこの問題を簡単に修正する方法はわかりません。しかし、助けになったいくつかの戦略があります。最も明らかなのは、学習用データに「不明」カテゴリを追加することです。しかし、悪いニュースがあり、それは別の問題を引き起こすのです。

・どのような画像を「不明」カテゴリに入れるべきですか?自然界の画像はほぼ無限にあります。どの画像を選択するべきでしょう?

・「不明」カテゴリにはどのくらいの種類の物体が必要でしょうか?

・分類可能物体とよく似た未知の物体についてはどのようにすべきでしょうか?例えば、ImageNetに登録されていない犬種を「不明」カテゴリに登録すると、不明犬種に似ている登録済み犬種が大量に誤認識される可能性があります。

・学習用データに「不明」カテゴリはどのくらいの割合で含めるべきですか?

最後の問いは、実は非常に大きな問題です。画像分類人工知能が出す分類結果に蓋然性はありません。つまりその結果がどれだけ確からしいかは考慮されていないのです。

人工知能は、特定のカテゴリが出現する確率は、学習時のデータに特定のカテゴリが出現する確率と同じであると仮定しています。もし、あなたがアマゾンのジャングルの奥地に、ペンギンを多く含む学習データで学習した画像分類人工知能を持って行ったら、人工知能はおそらくありとあらゆる種類のペンギンを誤検知するでしょう。

ImageNetの学習用データには珍しい犬の品種の画像が多く含まれるため、公園で犬を分類させると頻繁に普通の犬を珍しい犬種と間違えて分類します。これに対する一般的な解決策は、実際に人工知能が使われる現場で「不明」カテゴリに遭遇する確率を事前に把握し、その確率で不明カテゴリを学習データに混入する事です。

アプリケーション開発の実務としてこの問題に取り組むのであるならば、人工知能の利用方法場面を制限し、分類すべき物体の割合が学習データ内の割合と一致するようにすることです。

これを行う簡単な方法は、製品設計を工夫する事です。人工知能に分類をさせる前に、ユーザによって分類すべき対象を明確にされるようにユーザインタフェースを設計するのです。家計簿アプリが取り込むべきレシートや領収書の写真を撮る事をユーザに求める事などがイメージしやすいでしょう。

もう少し洗練するならば、2つの画像分類人工知能を用意する事です。詳細な分類をするメイン人工知能の前に、大まかな分類、例えばそれが植物なのか否なのかだけを分類する人工知能を用意するのです。

作物の病気の場合、対象は視覚的に明確であり、葉と他の写真を区別する簡単な人工知能だけで十分かもしれません。植物である可能性があると思われるものだけがメイン人工知能に渡され、見つからなかった場合は作物が見つからなかったことを示すエラーメッセージを表示してアプリケーションは終了します。

クレジットカードの画像をキャプチャしたり、OCR(画像から文字を認識して文書として取り込むプログラム)を実行するアプリケーションでは、画面上の取り込み位置の指定と人工知能を組み合わせる事で、ピントブレや数値読み取り不可の部分をを検出しています。

上記はおそらく満足のいく答えではなかったかもしれませんが、機械学習の制限を理解して受け入れると、ユーザーの期待が非常に厄介である事がわかると思います。

一般の人は意味や外的な知識を人工知能が当然持っていると期待しています。古典的な画像分類人工知能は、そのようなことは認識していません。ユーザーの期待に応える結果を得るには、人工知能を取り巻く世界を理解し、人工知能が賢明な分類を行えるよう、人工知能を取り巻くシステム全体を設計する必要があります。

3.画像認識人工知能の誤認識を減らす方法関連リンク

1)petewarden.com
What Image Classifiers Can Do About Unknown Objects