このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。
この例では,局部可判断的Model-agnostic解释(石灰)を使用し,深層ニューラルネットワークによる分類の判定理由を理解する方法を説明します。
深層ニューラルネットワークは極めて複雑であり,その判定は解釈が困難な場合もあります。石灰技術では,回帰木など,より単純かつ解釈しやすいモデルを使用し,深層ニューラルネットワークの分類動作を近似します。この単純なモデルの判定を解釈することにより,ニューラルネットワークの判定に関する洞察が得られます[1]。この単純なモデルは,深層ニューラルネットワークに対する特徴の重要度に関するプロキシとして,入力データの特徴の重要度を判断するために使用されます。
特定の特徴が深層ネットワークの分類判定に極めて重要である場合,その特徴を削除すると分類スコアに著しい影響が及びます。そのため,この特徴は,単純なモデルにとっても重要です。
深度学习工具箱には、石灰技術によって判断された特徴の重要度のマップを計算する関数imageLIME
が用意されています。イメージ用の石灰アルゴリズムは,次によって動作します。
特徴へのイメージのセグメント化。
特徴をランダムに追加または除外することによる,多数の合成イメージの生成。除外された特徴は,すべてのピクセルがイメージ平均の値で置き換えられているため,それらがネットワークに有益な情報を含むことはありません。
深層ネットワークでの合成イメージの分類。
各合成イメージに関するイメージの特徴の有無を,ターゲットクラスのスコアに対するバイナリ回帰予測子として使用することによる,単純な回帰モデルの当てはめ。このモデルは,観測領域における複雑な深層ニューラルネットワークの動作を近似します。
単純なモデルを使用した特徴の重要度の計算。および,その特徴の重要度を,モデルにとって最も重要なイメージの部分を示すマップへと変換すること。
石灰技術によって得られた結果を,他の説明可能性技術(オクルージョン感度,Grad-CAMなど)と比較できます。これらの関連技術の使用方法の例については,次の例を参照してください。
事前学習済みのネットワークGoogLeNetを読み込みます。
网= googlenet;
イメージの入力サイズとネットワークの出力クラスを抽出します。
inputSize = net.Layers (1) .InputSize (1:2);类= net.Layers . class(结束);
イメージを読み込みます。イメージは夏洛克という名前のレトリバーです。イメージのサイズをネットワークの入力サイズに変更します。
img = imread (“sherlock.jpg”);img = imresize (img, inputSize);
イメージを分類して,分類スコアの最も高い3つのクラスをイメージタイトルに表示します。
[YPred,分数]=(净,img)进行分类;[~,topIdx] = maxk(score, 3);topScores =分数(topIdx);topClasses =类(topIdx);imshow(img) titleString = compose(“% s (% .2f)”、topClasses topScores);标题(sprintf(加入(titleString,”;“)));
GoogLeNetは夏洛克を金毛猎犬
として分類します。当然ながら,ネットワークは拉布拉多寻回犬
クラスにも高い確率を割り当てています。imageLIME
を使用することで,ネットワークがイメージのどの部分を使用してこの分類判定を下したかを理解できます。
石灰を使用することで,クラスにとってイメージのどの部分が重要かを理解できます。最初に,金毛猎犬
の予測クラスを確認します。イメージのどの部分がこのクラスを提示するのでしょうか。
既定では,imageLIME
は,イメージをスーパーピクセルにセグメント化することで,入力イメージの特徴を特定します。このセグメント化の方法では,图像处理工具箱が必要になります。ただし、图像处理工具箱がなければ,オプション“分割”、“电网”
を使用し,イメージを正方形の特徴にセグメント化できます。
関数imageLIME
を使用し,さまざまなスーパーピクセルの特徴の重要度をマッピングします。既定では,単純なモデルは回帰木です。
地图= imageLIME(网,img, YPred);
石灰マップを重ね合わせた夏洛克のイメージを表示します。
图imshow (img,“InitialMagnification”, 150)在显示亮度图像(地图,“AlphaData”, 0.5) colormap飞机colorbar标题(sprintf (”的形象石灰(% s)”,...YPred)举行从
このマップには,金毛猎犬
の分類にとってイメージのどの領域が重要かが示されます。マップの赤い領域は重要度が高い部分です。この領域を削除すると,金毛猎犬
クラスのスコアが下がります。ネットワークは,犬の顔と耳に焦点を当て,この犬がゴールデンレトリバーであると予測します。これは,他の説明可能性技術(オクルージョン感度,Grad-CAMなど)の場合と同じ結果です。
GoogLeNetは,金毛猎犬
クラスのスコアを55%,拉布拉多寻回犬
クラスのスコアを40%と予測しています。これらのクラスは非常によく似ています。各クラスについて計算された石灰マップを比較することで,犬のどの部分が両クラスにとってより重要かを判断できます。
同じ設定を使用し,拉布拉多寻回犬
クラスの石灰マップを計算します。
secondClass = topClasses (2);地图= imageLIME(网,img, secondClass);图;imshow (img,“InitialMagnification”, 150)在显示亮度图像(地图,“AlphaData”, 0.5) colormap飞机colorbar标题(sprintf (”的形象石灰(% s)”, secondClass))从
拉布拉多寻回犬
クラスの場合,ネットワークは,犬の耳ではなく,鼻と目により焦点を当てています。両方のマップで犬の頭部前面が強調表示されていますが,ネットワークは犬の耳と隣接する部分が金毛猎犬
クラスを示し,犬の目と鼻が拉布拉多寻回犬
クラスを示すと判断しています。
他のイメージ解釈可能性の手法(Grad-CAMなど)では,結果として得られたマップをアップサンプリングし,イメージの重要領域の滑らかなヒートマップを生成します。imageLIME
で見た目が似たマップを生成できます。そのためには,正方形または長方形の特徴の重要度を計算し,結果として得られたマップをアップサンプリングします。
不規則なスーパーピクセルではなく,正方形の特徴のグリッドにイメージをセグメント化するには,名前と値のペア“分割”、“电网”
を使用します。“OutputUpsampling”、“双三次的“
を設定し,双三次内挿を使用することにより,計算されたマップがイメージ解像度に一致するようにアップサンプリングします。
最初に計算されたマップの解像度を上げるには,名前と値のペア“NumFeatures”,100
を指定することにより,特徴の数を100まで増やします。イメージは正方形であるため,10 x 10グリッドの特徴が生成されます。
石灰技術により,元の観測値に基づいて合成イメージが生成されます。その際,いくつかの特徴がランダムに選択され,選択された特徴に含まれるすべてのピクセルがイメージのピクセルの平均値に置き換えられ,事実上,それらの特徴が削除されます。“NumSamples”,6000
を設定し,ランダムなサンプルの数を6000まで増やします。特徴の数を増やした場合,通常,サンプルの数を増やすとより良い結果が得られます。
既定では,関数imageLIME
はシンプルなモデルである回帰木を使用しています。代わりに,“模型”、“线性”
を設定し,套索回帰による線形回帰モデルを当てはめます。
地图= imageLIME (img,净“金毛猎犬”,...“分割”,“网格”,...“OutputUpsampling”,“双三次的”,...“NumFeatures”, 100,...“NumSamples”, 6000,...“模型”,“线性”);imshow (img,“InitialMagnification”, 150)在显示亮度图像(地图,“AlphaData”, 0.5) colormap飞机标题(sprintf (“图像LIME (%s -线性模型)”,...YPred)举行从
石灰技術の場合も,Grad-CAMで計算された勾配マップと同様に,金毛猎犬
の予測にとって犬の耳が非常に重要であると認識されます。
石灰の結果をプロットする場合,通常,最も重要ないくつかの特徴のみが示されるようにプロットします。関数imageLIME
を使用する際,計算で使用した特徴マップを取得して各特徴の重要度を計算することもできます。その結果に基づいて,スーパーピクセルの最も重要な特徴を4つ決定し,その4つの最も重要な特徴のみをイメージに表示します。
石灰マップを計算し,特徴マップと計算された各特徴の重要度を取得します。
(地图,featureMap featureImportance] = imageLIME(网,img, YPred);
最も重要な4つの特徴のインデックスを見つけます。
numTopFeatures = 4;[~, idx] = maxk (featureImportance numTopFeatures);
4次に,最も重要なつのスーパーピクセルに含まれるピクセルのみが表示されるように,石灰マップを使用してイメージをマスクします。マスクしたイメージを表示します。
掩码= ismember (featureMap idx);maskedImg = uint8(面具)。* img;图imshow (maskedImg);标题(sprintf ("Image LIME (%s - top %i features)",...YPred, numTopFeatures))
Ribeiro, Marco Tulio, Sameer Singh和Carlos Guestrin。“‘我为什么要相信你?:解释任何分类器的预测。”在第22届美国计算机学会SIGKDD国际会议论文集, 1135 - 44。美国加州旧金山:ACM, 2016。https://doi.org/10.1145/2939672.2939778。
DAGNetwork
|googlenet
|occlusionSensitivity
|imageLIME
|gradCAM