深層学習の「主軸」の注視領域を明らかにする手法を提案しました!

深層学習の「主軸」の注視領域を明らかにする手法を提案しました!

深層学習の推定根拠の可視化手法として、Grad-CAMが有名です。
しかしこれは、単純なCNNにしか実装できないという問題がありました。

そのため今回、深層学習の新たな可視化手法として、以下の2つを提案しました。

PCA-Grad-CAM:
CNNの「主軸(主成分)」が何を見ているのかを明らかにする手法

SVM-Grad-CAM:
CNNのクラス分類層をSVMに置き換えたケースにおいて、そのSVMが画像上のどこを根拠としてクラス分類をしたのか明らかにする手法

第1主成分は顔の中心、第2主成分は耳と口元、第3主成分はもうちょっと広めに顔を見ていることがわかります。
ただ、1と3が若干重なっているようにも見えます。主軸は直交しているので、もうちょっとバシッと分かれるのかと思っていましたが、まあまあ重なるようです。
また、SVM-Grad-CAMを見ると、通常の深層学習は犬の顔しか見ていないのに対して、SVMは口元も見ているということがわかります。
そのほか、主軸は耳を注視しているにも関わらず、最終的なGrad-CAMは耳を見ていないこともわかります。
これは、深層学習は内部的に耳を見ているものの、クラス推定には反映されなかったことを意味しています。

このように、通常のGrad-CAMのみではわからなかったことが色々わかります。
特に、主軸が何を見ているのかを理解するという観点は、冗長になりがちな深層学習から無駄を取り除くスモールモデリングを行うという観点で、便利そうです。

Grad-CAMの理論式はあまりきれいではない式で表現されていましたが、今回、特徴マップではなくフラット化させたベクトルに対して勾配を得るアプローチを採用することで、Grad-CAMに要求される勾配を、ヤコビ行列により大変美しく整理できることがわかりました。これにより、ヤコビ行列に基づく微分の連鎖律で、SVMや主軸を対象とした勾配をシンプルに求めることができました。

賢い人たちからすると単純な研究でしかないのですが、私くらいのレベルですと、細かいハマりどころに素直にハマったりして、なかなか苦労します。
細切れの時間で実施したという理由もありますが、数式をいじり出してから論文執筆を完了させるまで、結局5ヶ月ほどかかってしまいました。

公開先:
Y. Omae, PCA- and SVM-Grad-CAM for Convolutional Neural Networks: Closed-form Jacobian Expression, [Machine Learning] (cs.LG), arXiv:2508.11880
・機械学習の専門誌に投稿し、review中です。

文責: 大前佑斗

日本大学生産工学部マネジメント工学科 専任講師、人工知能リサーチセンター 研究員。ゼミ配属では、プログラミングや人工知能を、時間をかけ丁寧に学習したい方を募集しています。文系・理系、どちらでもokです。

コメントは受け付けていません。