このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
gradCAM
構文
説明
は、scoreMap
= gradCAM(net
,X
,label
)label
によって与えられたクラスのクラス スコアをネットワーク net
が評価するときの、入力 X
の分類スコアの変化に関する勾配加重クラス活性化マッピング (Grad-CAM) のマップを返します。この関数を使用して、ネットワーク予測を説明し、ネットワークがデータの正しい部分に焦点を当てていることを確認します。
Grad-CAM 解釈可能性手法では、最終的な畳み込み特徴マップに対する分類スコアの勾配を使用します。観測結果において Grad-CAM マップの値が大きい部分は、そのクラスのネットワーク スコアに最も影響を与えている部分です。
分類タスクの Grad-CAM マップを計算するには、この構文を使用します。
は、リダクション関数を使用して Grad-CAM 重要度マップを返します。scoreMap
= gradCAM(net
,X
,reductionFcn
)reductionFcn
は、リダクション層の出力活性化をスカラー値に削減する関数ハンドルです。このスカラーは、分類タスクのクラス スコアの役目を果たし、Grad-CAM 手法を回帰などの非分類タスクに一般化します。
関数 gradCAM
は、削減されたリダクション層出力を特徴層の特徴に関して微分することで、Grad-CAM のマップを計算します。gradCAM
は、マップの計算に使用するリダクション層と特徴層を自動的に選択します。これらの層を指定するには、名前と値の引数 'ReductionLayer'
および 'FeatureLayer'
を使用します。
非分類タスクの Grad-CAM マップを計算するには、この構文を使用します。
[
は、Grad-CAM マップの計算で使用した特徴層とリダクション層の名前も返します。この構文では、前の構文の入力引数を自由に組み合わせて使用します。 scoreMap
,featureLayer
,reductionLayer
] = gradCAM(___)
___ = gradCAM(___,
では、前の構文の入力引数に加えて、1 つ以上の名前と値の引数を使用してオプションを指定します。たとえば、Name,Value
)'ReductionLayer','prob'
は、リダクション層を 'prob'
という名前の net
層に設定します。
例
入力引数
出力引数
詳細
ヒント
関数
reductionFcn
は、リダクション層からの出力をトレースされたdlarray
オブジェクトとして受け取ります。この関数は、この出力をスカラーdlarray
に削減しなければなりません。gradCAM
は、特徴層の活性化に関してこのスカラーを微分します。たとえば、ネットワークのソフトマックス活性化に含まれるチャネル 208 について Grad-CAM マップを計算する場合、リダクション関数は@(x)(x(208))
となります。この関数は、活性化を受け取って 208 番目のチャネルを抽出します。関数
gradCAM
は、Grad-CAM マップの計算に使用するリダクション層と特徴層を自動的に選択します。ネットワークによっては、選択された層が適切でない場合があります。たとえば、特徴層として使用できる層がネットワークに複数含まれている場合、この関数はその層のいずれかを選択しますが、その選択が最適であるとは限りません。そのようなネットワークの場合、名前と値の引数'FeatureLayer'
を使用して、どの特徴層を使用するかを指定します。グレースケール イメージの上に Grad-CAM マップを重ねて表示するには、まず、範囲が [0, 1] となるようにマップを再スケーリングしなければなりません。たとえば、
scoreMapRescaled = rescale(scoreMap);
のようにします。
参照
[1] Kudo, Mineichi, Jun Toyama, and Masaru Shimbo. “Multidimensional Curve Classification Using Passing-through Regions.” Pattern Recognition Letters 20, no. 11–13 (November 1999): 1103–11. https://doi.org/10.1016/S0167-8655(99)00077-X.
[2] UCI Machine Learning Repository: Japanese Vowels Dataset. https://archive.ics.uci.edu/ml/datasets/Japanese+Vowels.
[3] Selvaraju, Ramprasaath R., Michael Cogswell, Abhishek Das, Ramakrishna Vedantam, Devi Parikh, and Dhruv Batra. “Grad-CAM: Visual Explanations from Deep Networks via Gradient-Based Localization.” 2017 (October 2017): 618–626, https://doi.org/10.1109/ICCV.2017.74.
[4] Vinogradova, Kira, Alexandr Dibrov, and Gene Myers. “Towards Interpretable Semantic Segmentation via Gradient-Weighted Class Activation Mapping.” Proceedings of the AAAI Conference on Artificial Intelligence 34, no. 10 (April 2020): 13943–13944, https://doi.org/10.1609/aaai.v34i10.7244.
バージョン履歴
R2021a で導入