2021年12月19日日曜日

画像の深層学習はどのような領域に着目しているのか

【what is this】ディープラーニングを用いた画像認識は、小学生による体験から実用レベルまで、利用が広がっています。そうなってくると、次の段階は、「どうやって認識しているのか」が気になるはずです。それに答えるのは簡単ではありませんが、少なくとも「画像のどこに着目して認識しているか」を示してくれれば、かなり良いです。簡単な原理でそれを実現する(子供向けの)Scratchプロジェクトがありました。大人でも試してみると楽しい!

■ 認識対象の例とTeachable Machineによる深層学習 
 画像認識の対象として、図1に示した4種の木製の小さな置物を取り上げます。それぞれを300枚程度、Webカメラの位置を変えたり、傾けたりしながら撮影します。それらにラベルをつけて学習させることは容易です。例えば、Google Teachable Machineを利用すれば誰にでもできます。
 その学習結果のモデルに対して、別途撮影した画像を入力した場合、それが4種類のどれであるかは、どの置物でも、99%程度の確かさ(conf = cofidence)で判別できます。

■ 深層学習では画像のどの領域に着目しているか 
 こんなに高いconfidenceで認識されても...  深層学習は画像のどの部分に注目して判断しているのでしょうか?それを調べるための簡単な原理が、Scratch3のプロジェクト「Explainable AI」に示されています。これは、子供向けのAIを開発しているML4K (Machine Learning for Kids) が公開しているものです。

 さっそく試してみましょう。図2(a)はAppleですが、適当なサイズの(紫色の)ブロックで、適当な領域を隠して撮影しています。「へた」の部分を隠した画像に対しての認識では、confidenceはほとんど変わらず99.5%でした。ところが、「中央」を隠した場合は、confidenceが50.1%まで大幅に低下しました。この観察から、「へた」よりも「中央の膨らみ」の方が、より重視されていると推定されます。


 図2(b) は、Salmonですが、「口先」よりも、「エラと腹部」が重要のようです。


 図2(c) は、Bearですが、「尻」よりも、「頭部」が重視されていることが分かります。これは、人間の感性からも納得できます。

■ 注目領域を自動的に検出して表示する 
 ここまでは、画像を隠す小さなブロックの位置を適当に手動で移動させながら調べました。それをもっと組織的にやってみましょう。そのやり方もこの「Explainable AI」に示されていますが、基本的には、手動で調べたのと同じ原理です。

 画像をメッシュにして、その各ブロック部をひとつづつ隠して行き、confidenceの低下を調べます。低下の度合いが大きい(すなわち、重要であった)部分ほど明るくすればよいのです。図3は、Bearの場合ですが、手動で調べた図2(c) のとおり、「目と耳の領域」を最も重視して認識していることが分かりました。こんな簡単な方法なのに素晴らしい!

子供向けのScratchプロジェクトだが、学生などにも有用 
 上に述べたとおり、この方法は図4のScratchプロジェクトで実現されています。主に子供を対象としたものですが、かなり高度な内容と言えそうです。実際、図3を眺めていると、自然言語処理などでも注目されているアテンション(Attention)に通ずるように思います。

 この「Explainable AI」では、TensorFlowをラップして使いやすくしたTeachable Machineの学習結果を取り込みます。そして、それを使った予測(prediction)のための基本的なブロックが用意されていますので、図3のような解析と表示が簡単にできるようになっています。学生や大人にも十分有用だと思います。


0 件のコメント:

コメントを投稿