Grad-CAMを用いたクラス分類モデルの分析
【はじめに】
自社のデータを使ってAIモデルを作ってみたが、期待したような結果が得られなかった、精度を改善したいがどこをどのようにすればよいか分からない、というご経験はありませんか?
AIモデルの性能を改善するためには、学習に用いるデータ、学習方法、AIネットワーク構成、性能評価方法、結果の分析など幅広い範囲での対応が求められます。
ここでは当社がAIモデル開発で使用している手法の一つを紹介します。
【分析方法として用いるGrad-CAM】
当社では、Grad-CAMという手法をAIモデルの精度向上に役立てています。
Grad-CAMはGradient-weighted Class Activation Mappingの略で、画像のクラス分類モデルが画像のどの部分に注目して分類しているのかを可視化する手法の一つです。
今回は、当社がどのようにGrad-CAMを用いているか、具体例を示しながら紹介します。
この手法の中身に関する説明(計算方法や手順など)は、ここでは割愛させていただきます。詳細については以下をご参照ください。
【Grad-CAMの応用例】
Grad-CAMの応用例を以降に記載します。
例えば、犬と猫の画像分類モデルを学習させるとします。
データセットを作成してモデルを学習させ、精度を確認したところ、猫の分類精度が低くなってしまいました。
そこで、学習させたモデルが画像のどの部分に注目して分類しているのかをGrad-CAMを用いて確認してみます。
犬、猫それぞれの+CAM列に掲載した画像が、Grad-CAMによるヒートマップを入力画像にオーバーレイした画像です(以降では+CAM画像と表記します)。
赤い部分がモデルの注目度が高い部分を示します。
犬の画像では顔付近に注目していますが、猫の画像では猫よりもその周辺に注目していることが分かります。
また、猫のNo.1、No.2の画像を見ると、特に人の手に注目しているようです。
猫の画像でも犬と同様に猫本体に注目するようにモデルを学習させることができれば、精度が上がるのではないかと仮説を立てます。
ということで、精度向上のため、データセットを再編します。
データセットに含まれる猫の画像を確認すると、猫と一緒に人が映っている画像が多いことが分かりました。
そこで、それらの画像を猫だけ映っている画像に入れ替えて再び学習させたところ、期待通りに精度が向上しました。
再び+CAM画像を確認してみます。
猫の画像でも犬と同様、顔に注目するようになり、期待通り改善されたことが分かります。
【さいごに】
当社は様々な手法を用いてAIモデルの作成/性能改善を行っています。
AI開発でお困りのことがあれば、お気軽にご相談ください。
(連絡先メールアドレス:ai_info@craft-server.co.jp)
コラム一覧