予測モデル生成において、従来は、人が考えてデータの中から特徴を抽出する必要がありましたが、ディープラーニングでは、この特徴を自動的に抽出して学習することが可能になっています。
半面、どのように特徴が抽出されているのかに関しては、基本的にはブラックボックスであり、説明責任が求められるような業務要件では、その分析結果を業務に活用することが難しい場合もあります。
しかし、近年ディープラーニングから出てきた結果の根拠=判断根拠を可視化する手法がいくつか考案されてきています。
関連情報サイト:
https://qiita.com/icoxfog417/items/8689f943fd1225e24358
https://pair-code.github.io/saliency/
http://blog.brainpad.co.jp/entry/2017/07/10/163000
SAS Viyaでは、各種のディープラーニング(DNN, CNN, RNN)を用いた学習が可能ですが、今回はCNNを用いた画像認識において、判断根拠となり得る情報の出力に関してご紹介します。
この例は、複数のイルカの画像をCNNで学習し、対象の画像(写真)がイルカなのかどうかを判別するものです。
モデルを作成後、以下の画像をモデルに当てはめてスコアリングを実施。
この画像は「イルカ」だと判定されたのですが、その判断根拠の一つとして、以下のように、この画像のどの部分がより重要であると判断されているのかを可視化することが可能になっています。
【レイヤー1のfeature map】
【レイヤー18のfeature map】
SAS Viyaでは、モデルのスコアリング時のオプションとして、指定したレイヤ(層)の特徴マップ(feature map)を画像として指定ライブラリに出力することが可能です。
>>
スコアリング用のアクション:”dlScore” の
layerOut={出力先ライブラリとテーブル名} オプションと
layers={出力対象レイヤ名} オプション
>>
上図はライブラリに出力された画像(feature map)を表示したものです。