精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

PyTorch Geometric框架下圖神經(jīng)網(wǎng)絡的可解釋性機制:原理、實現(xiàn)與評估

人工智能 機器學習
在機器學習領域存在一個普遍的認知誤區(qū),即可解釋性與準確性存在對立關系。這種觀點認為可解釋模型在復雜度上存在固有限制,因此無法達到最優(yōu)性能水平,神經(jīng)網(wǎng)絡之所以能夠在各個領域占據(jù)主導地位,正是因為其超越了人類可理解的范疇。

在機器學習領域存在一個普遍的認知誤區(qū),即可解釋性與準確性存在對立關系。這種觀點認為可解釋模型在復雜度上存在固有限制,因此無法達到最優(yōu)性能水平,神經(jīng)網(wǎng)絡之所以能夠在各個領域占據(jù)主導地位,正是因為其超越了人類可理解的范疇。

其實這種觀點存在根本性的謬誤。研究表明,黑盒模型在高風險決策場景中往往表現(xiàn)出準確性不足的問題[1],[2],[3]。因此模型的不可解釋性應被視為一個需要克服的缺陷,而非獲得高準確性的必要條件。這種缺陷既非必然,也非不可避免,在構(gòu)建可靠的決策系統(tǒng)時必須得到妥善解決。

解決此問題的關鍵在于可解釋性。可解釋性是指模型具備向人類展示其決策過程的能力[4]。模型需要能夠清晰地展示哪些輸入數(shù)據(jù)、特征或參數(shù)對其預測結(jié)果產(chǎn)生了影響,從而實現(xiàn)決策過程的透明化。

PyTorch Geometric的可解釋性模塊為圖機器學習模型提供了一套完整的可解釋性工具[5]。該模塊具有以下核心功能:

  1. 關鍵圖特性識別 — 能夠識別并突出顯示對模型預測具有重要影響的節(jié)點、邊和特征。
  2. 圖結(jié)構(gòu)定制與隔離 — 通過特定圖組件的掩碼操作或關注區(qū)域的界定,實現(xiàn)針對性的解釋生成。
  3. 圖特性可視化 — 提供多種可視化方法,包括帶有邊權(quán)重透明度的子圖展示和top-k特征重要性條形圖等。
  4. 評估指標體系 — 提供多維度的定量評估方法,用于衡量解釋的質(zhì)量。

可解釋性模塊的系統(tǒng)架構(gòu)圖:

我們下面使用Reddit數(shù)據(jù)集來進行詳細的描述。

數(shù)據(jù)集

我們選用Reddit數(shù)據(jù)集作為實驗數(shù)據(jù)。該數(shù)據(jù)集是一個包含不同社區(qū)Reddit帖子的標準基準數(shù)據(jù)集,可通過PyTorch Geometric提供的公開數(shù)據(jù)集倉庫直接訪問。

Reddit數(shù)據(jù)集的規(guī)模較大,包含232,965個節(jié)點、114,615,892條邊,每個節(jié)點具有602維特征,共涉及41個分類類別。考慮到數(shù)據(jù)集規(guī)模,我們采用NeighborLoader類實現(xiàn)小批量處理。該類提供了一種高效的采樣機制,可以對大規(guī)模圖數(shù)據(jù)集中的節(jié)點及其k-跳鄰域進行小批量采樣。所以設置了三個NeighborLoader實例,分別用于訓練、測試和可解釋性分析。num_neighbors和batch_size參數(shù)可根據(jù)系統(tǒng)資源情況進行調(diào)整。

# 數(shù)據(jù)集加載與預處理
 dataset = Reddit(root="/tmp/Reddit")  
 data = dataset[0]  
   
 train_loader = NeighborLoader(  
         data,  
         input_nodes=data.train_mask,  
         # a=第一層鄰居采樣數(shù)量
         # b=第二層鄰居采樣數(shù)量
         num_neighbors=[a, b]  
         batch_size=batch_size,  
         shuffle=True  
    )  
   
 test_loader = NeighborLoader(  
         data,  
         input_nodes=data.test_mask,  
         num_neighbors=num_neighbors,  
         batch_size=batch_size,  
         shuffle=False  # 測試階段保持順序以確保可重復性
    )  
   
 explain_loader = NeighborLoader(  
     data,  
     batch_size=batch_size,  
     num_neighbors=num_neighbors,  
     shuffle=True  
 )

GraphSAGE

我們采用GraphSAGE作為基礎模型架構(gòu)。GraphSAGE是一個專為歸納學習設計的圖神經(jīng)網(wǎng)絡框架,其特點是能夠?qū)㈩A測能力泛化到未見過的節(jié)點。模型的高效鄰居采樣機制使其特別適合處理Reddit這樣的大規(guī)模圖數(shù)據(jù)集。以下代碼展示了模型的核心結(jié)構(gòu)及其訓練、測試方法的實現(xiàn)。

# GNN模型定義
 class SAGE(torch.nn.Module):  
     def __init__(self, in_channels, hidden_channels, out_channels):  
         super().__init__()  
         self.convs = torch.nn.ModuleList()  
         # 構(gòu)建雙層網(wǎng)絡結(jié)構(gòu)
         self.convs.append(SAGEConv(in_channels, hidden_channels))  
         self.convs.append(SAGEConv(hidden_channels, out_channels))  
   
     def forward(self, x, edge_index):  
         for i, conv in enumerate(self.convs):  
             x = conv(x, edge_index)  
             if i < len(self.convs) - 1:  
                 x = F.relu(x)  
                 x = F.dropout(x, p=0.5, training=self.training)  
         return x

模型訓練實現(xiàn)

# 訓練過程實現(xiàn)
 def train(model, loader, optimizer, device, num_train_nodes):  
     model.train()  
     total_loss = 0  
     total_correct = 0  
   
     for batch in tqdm(loader, desc="Training"):  
         # 數(shù)據(jù)遷移至指定計算設備
         batch = batch.to(device)  
   
         # 前向傳播計算
         optimizer.zero_grad()  
         out = model(batch.x, batch.edge_index)  
   
         # 損失計算與反向傳播
         loss = F.cross_entropy(out[batch.train_mask], batch.y[batch.train_mask])  
         loss.backward()  
         optimizer.step()  
   
         # 計算當前批次訓練節(jié)點的預測準確率
         pred = out[batch.train_mask].argmax(dim=-1)  
         total_correct += int((pred == batch.y[batch.train_mask]).sum())  
         total_loss += loss.item()  
   
     return total_loss / len(loader), total_correct / num_train_nodes

模型評估實現(xiàn)

# 測試過程實現(xiàn)
 def test(model, loader, device):  
     model.eval()  
     total_correct = 0  
     total_test_nodes = 0  
   
     for batch in tqdm(loader, desc="Testing"):  
         batch = batch.to(device)  
   
         # 預測計算
         with torch.no_grad():  
             out = model(batch.x, batch.edge_index)  
             pred = out.argmax(dim=-1)  
   
         # 評估測試節(jié)點的預測準確率
         mask = batch.test_mask  
         total_correct += int((pred[mask] == batch.y[mask]).sum())  
         total_test_nodes += mask.sum().item()  
   
     # 計算整體測試準確率
     accuracy = total_correct / total_test_nodes  
     return accuracy

Explainer模塊配置

要啟用可解釋性分析功能,首先需要完成Explainer的初始化配置。以下是相關參數(shù)的詳細說明:

model: torch.nn.Module,  
 algorithm: ExplainerAlgorithm,  
 explanation_type: Union[ExplanationType, str],  
 node_mask_type: Optional[Union[MaskType, str]] = None,  
 edge_mask_type: Optional[Union[MaskType, str]] = None,  
 model_config: Union[ModelConfig, Dict[str, Any]],  
 threshold_config: Optional[ThresholdConfig] = None

下面對各參數(shù)進行詳細說明:

**model: torch.nn.Module** — 指定需要進行可解釋性分析的PyG模型實例。

**algorithm: ExplainerAlgorithm** — 可選的解釋器算法:

這里主要要使用_GNNExplainer

  • DummyExplainer: 用于生成隨機解釋的基準測試器
  • GNNExplainer: 基于"GNNExplainer: Generating Explanations for Graph Neural Networks"論文實現(xiàn)[6]
  • CaptumExplainer: 集成Captum開源庫的解釋器[7]
  • PGExplainer: 基于"Parameterized Explainer for Graph Neural Network"論文實現(xiàn)[8]
  • AttentionExplainer: 基于注意力機制的解釋器[9]
  • GraphMaskExplainer: 基于Interpreting Graph Neural Networks for NLP With Differentiable Edge Masking論文實現(xiàn)[10]

**explanation_type: Union[ExplanationType, str]** — 解釋類型配置,包含兩種選項:

"model": 針對模型預測機制的解釋

調(diào)用Explainer時可通過index參數(shù)指定待解釋的節(jié)點、邊或圖的索引,實現(xiàn)精確定位分析。

"phenomenon": 針對數(shù)據(jù)內(nèi)在特征的解釋

調(diào)用時需要通過target參數(shù)指定包含所有節(jié)點真實標簽的張量。這使得Explainer能夠比對模型預測與真實標簽,從而識別圖中對模型決策過程最具影響力的組件(節(jié)點、邊或特征),并評估其與真實數(shù)據(jù)分布的一致性。

mask_type參數(shù)配置

**node_mask_type: Optional[Union[MaskType, str]] = None**

**edge_mask_type: Optional[Union[MaskType, str]] = None**

提供四種掩碼策略:

  1. None: 不進行掩碼處理
  2. "object": 整體掩碼策略,每次掩碼一個完整的節(jié)點/邊
  3. "common_attributes": 全局特征掩碼,對所有節(jié)點/邊的指定特征進行掩碼
  4. "attributes": 局部特征掩碼,僅對指定節(jié)點/邊的特定特征進行掩碼

**model_config: Union[ModelConfig, Dict[str, Any]]** — 模型配置參數(shù)集

主要包括:

1.mode: 預測任務類型配置,可選值包括:'binary_classification'、'multiclass_classification'或'regression'

2.task_level: 預測任務級別,可選值包括:'node'、'edge'或'graph'

3.return_type: 模型輸出格式配置,可選值包括:'probs'、'log_probs'或'raw'

**threshold_config: Optional[ThresholdConfig]** — 閾值控制參數(shù),用于精確控制掩碼應用的范圍和方式。

1.threshold_type: 閾值類型配置,包含以下選項:

  • None: 保持原始狀態(tài),保留所有重要性分數(shù)
  • "hard": 采用固定閾值截斷策略,將低于指定值的重要性分數(shù)置零
  • "topk": 保留重要性分數(shù)最高的k個元素(節(jié)點、邊或特征),其余置零
  • "topk_hard": 類似于"topk",但將保留元素的重要性分數(shù)統(tǒng)一設為1,實現(xiàn)二值化表示

2.value: 閾值參數(shù)設置

  • 對于threshold_type = "hard",value取值范圍為[0,1]
  • 對于threshold_type = "topk"或"topk_hard",value表示保留的元素數(shù)量k

閾值參數(shù)配置的關鍵考慮:

  • k值過小可能導致重要信息丟失
  • k值過大可能引入噪聲信息
  • 存在性能指標發(fā)生突變的臨界閾
  • 最優(yōu)閾值的確定通常需要針對具體應用場景進行實驗驗證

Explainer調(diào)用實現(xiàn)

Explainer的調(diào)用需要配置以下參數(shù):

x: Union[Tensor, Dict[str, Tensor]],  
 edge_index: Union[Tensor, Dict[Tuple[str, str, str], Tensor]],  
 target: Optional[Tensor] = None,  
 index: Optional[Union[int, Tensor]] = None

各參數(shù)說明:

  • x: 節(jié)點特征矩陣(對應data.x或batch.x)
  • edge_index: 邊索引張量(對應data.edge_index或batch.edge_index)
  • target: 真實標簽張量(對應data.y或batch.y)
  • index: 指定待解釋的節(jié)點、邊或圖的索引,可以是單個整數(shù)、整數(shù)張量或None(表示解釋所有輸出)

實例分析

假設模型將索引為x=10的帖子分類到某個特定subreddit,我們可以分析這一預測的依據(jù),確定哪些特征對該預測結(jié)果產(chǎn)生了關鍵影響。下面展示如何初始化和調(diào)用Explainer來實現(xiàn)這一分析:

index = 143  
   
 model_explainer = Explainer(  
     model=model,  
     algorithm=GNNExplainer(epochs=50),  
     explanation_type='model',  
     node_mask_type='attributes',  
     model_config=dict(  
         mode='multiclass_classification',  
         task_level='node',  
         return_type='log_probs',  
    )  
     threshold_config=dict(threshold_type='topk', value=20)  
 )

說明:

  • 選擇explanation_type='model'用于分析模型的預測機制
  • 設置node_mask_type='attributes'以研究特征重要性,同時保持node_edge_type=None以專注于節(jié)點分析
  • model_config配置反映了數(shù)據(jù)集特點:41個類別的多分類問題(mode = 'multiclass_classification'),節(jié)點級預測任務(task_level = 'node'),使用對數(shù)概率輸出(return_type = 'log_probs')
  • threshold_config設置為保留最重要的20個節(jié)點(threshold_type='topk', value=20)

執(zhí)行分析:

model_explanation = model_explainer(  
     batch.x,  
     batch.edge_index,  
     index=index  
 )

由于設置了explanation_type = 'model',此處無需指定target參數(shù),執(zhí)行完成后返回Explanation對象,包含完整的解釋結(jié)果

Explanation類封裝了可解釋性模塊產(chǎn)生的關鍵分析信息[11]。其結(jié)構(gòu)設計如下:

x: Optional[Tensor] = None,  
 edge_index: Optional[Tensor] = None,  
 edge_attr: Optional[Tensor] = None,  
 y: Optional[Union[Tensor, int, float]] = None,  
 pos: Optional[Tensor] = None,  
 time: Optional[Tensor] = None

核心屬性說明:

  • x: 節(jié)點特征矩陣,維度為[num_nodes, num_features]
  • edge_index: 邊索引矩陣,維度為[2, num_edges]
  • edge_attr: 邊特征矩陣,維度為[num_edges, num_edge_features]
  • y: 真實標簽,可以是回歸問題的目標值或分類問題的類別標簽
  • pos: 節(jié)點空間坐標矩陣,維度為[num_nodes, num_dimension]
  • time: 時序信息張量,格式根據(jù)具體時間特征定義(如,time = [2022, 2023, 2024]表示節(jié)點0-2的時間戳)

解釋結(jié)果分析方法

預測行為分析

以下代碼用于獲取模型的初始預測結(jié)果:

model.eval()  
 with torch.no_grad():  
     predictions = model_explainer.get_prediction(batch.x, batch.edge_index)

要分析特定圖屬性掩碼對預測的影響,可使用get_masked_prediction方法。例如,分析掩碼節(jié)點5對預測的影響:

# 構(gòu)建掩碼矩陣
 node_mask = torch.ones_like(batch.x)  
 node_mask[5] = 0  # 對節(jié)點5進行掩碼處理
   
 with torch.no_grad():  
     masked_predictions = model_explainer.get_masked_prediction(batch.x, batch.edge_index, node_mask=node_mask)

進行預測差異分析:

difference = predictions - masked_predictions  
 mean_difference = difference.mean(dim=0).cpu().numpy()  
   
 plt.figure(figsize=(10, 6))  
 plt.plot(mean_difference, color="olive", label="Mean Difference")  
 plt.title('原始預測與掩碼預測的差異分析')  
 plt.xlabel('類別')  
 plt.ylabel('Logits差異均值')  
 plt.legend()  
 plt.show()

該圖展示了節(jié)點5掩碼對各類別預測logits的平均影響。正值表示掩碼導致該類別的預測概率增加,負值則表示減少。這種可視化有助于理解特定節(jié)點對模型決策的影響程度和方向。

除了均值分析,還可以采用其他評估指標,如:

  • 絕對差異
  • 相對差異
  • 均方誤差(MSE)
  • 自定義評估指標

關鍵子圖提取

為了深入分析圖結(jié)構(gòu)中的重要組件,可以使用以下方法:

get_explanation_subgraph():提取對解釋具有非零重要性的節(jié)點和邊,返回一個新的Explanation對象。這有助于隔離對預測最具影響力的圖結(jié)構(gòu)組件。

get_complement_subgraph():提取重要性為零的節(jié)點和邊,返回一個新的Explanation對象。這有助于理解模型認為不重要的圖結(jié)構(gòu)部分。

這些方法的主要價值在于能夠分離和聚焦于感興趣的圖結(jié)構(gòu)組件,尤其是get_explanation_subgraph()可以有效降低來自無關節(jié)點和邊的干擾。

關鍵特征提取

下代碼展示了如何提取影響節(jié)點預測的關鍵特征。這段代碼改編自visualize_feature_importance方法

node_mask = model_explanation.get('node_mask')  
 if node_mask is None:  
     raise ValueError(f"The attribute 'node_mask' is not available "  
                       f"in '{model_explanation.__class__.__name__}' "  
                       f"(got {model_explanation.available_explanations})")  
 if node_mask.dim() != 2 or node_mask.size(1) <= 1:  
     raise ValueError(f"Cannot compute feature importance for "  
                       f"object-level 'node_mask' "  
                       f"(got shape {node_mask.size()})")  
   
 score = node_mask.sum(dim=0)  
 non_zero_indices = torch.nonzero(score, as_tuple=True)[0]  
 non_zero_scores = score[non_zero_indices]  
   
 # 特征重要性排序
 sorted_indices = non_zero_indices[torch.argsort(non_zero_scores, descending=True)]  
 print(sorted_indices)

輸出示例:

tensor([555, 474,  43, 210, 446, 158, 516, 273, 417, 531], device='cuda:0')

該實現(xiàn)的關鍵步驟:

  1. 計算每個特征在所有節(jié)點上的累積重要性
  2. 篩選出具有非零重要性的特征
  3. 特征列表的長度由Explainer初始化時的ThresholdConfig決定(示例中為10,因為設置了threshold_config = dict(threshold_type='topk', value=10)

解釋結(jié)果可視化

圖結(jié)構(gòu)可視化

visualize_graph方法用于直觀展示對模型預測有影響的節(jié)點和邊。該方法的一個重要特性是通過邊的不透明度表示其重要性(不透明度越高表示重要性越大)。需要注意的是,使用此方法時Explainer不能設置edge_mask_type=None

方法定義:

visualize_graph(path: Optional[str] = None,  
                 backend: Optional[str] = None,  
                 node_labels: Optional[List[str]] = None)

參數(shù)說明:

  • path: 可視化結(jié)果保存路徑
  • backend: 可視化后端選擇,支持graphviz或networkx
  • node_label: 節(jié)點標識符列表

下面通過兩個示例展示不同配置下的可視化效果:

示例1:基礎特征屬性分析

配置:node_mask_type='attributes',不設置閾值

visual_explainer_1 = Explainer(  
     model=model,  
     algorithm=GNNExplainer(epochs=50),  
     explanation_type='model',  
     node_mask_type='attributes',  
     edge_mask_type='object',  
     model_config=dict(  
         mode='multiclass_classification',  
         task_level='node',  
         return_type='log_probs',  
    )  
 )  
   
 index = 143  
   
 visual_explanation_1 = visual_explainer_1(  
     batch.x,  
     batch.edge_index,  
     index=index  
 )

生成可視化結(jié)果:

visual_explanation_1.visualize_graph('visual_graph_1.png', backend="graphviz")

可視化結(jié)果展示了與節(jié)點143相連的所有節(jié)點,這些節(jié)點的特征都對節(jié)點143的預測產(chǎn)生了影響。圖中邊的不透明度差異反映了不同連接對預測結(jié)果的影響程度。由于未設置閾值,可視化結(jié)果包含了較多的節(jié)點和邊,這有助于全面理解模型的決策過程,但可能不夠聚焦。

示例2:重要性篩選分析

配置:node_mask_type='attributes',threshold_cnotallow=dict(threshold_type='topk', value=10),edge_mask_type=None

本示例通過設置閾值來篩選最重要的節(jié)點,提供更聚焦的分析視圖:

visual_explainer_2 = Explainer(  
     model=model,  
     algorithm=GNNExplainer(epochs=50),  
     explanation_type='model',  
     node_mask_type='attributes',  
     model_config=dict(  
         mode='multiclass_classification',  
         task_level='node',  
         return_type='log_probs',  
    ),  
     threshold_config=dict(threshold_type='topk', value=10)  
 )  
   
 index = 143  
   
 visual_explanation_2 = visual_explainer_2(  
     batch.x,  
     batch.edge_index,  
     index=index  
 )
 
 # 生成可視化結(jié)果
 visual_explanation_2.visualize_graph('visual_graph_2.png', backend="graphviz")

第二種可視化方法通過限制顯示最重要的10個節(jié)點,提供了更加精煉的分析視圖。邊的不透明度變化不太明顯,這說明這些保留下來的邊對預測結(jié)果具有相近的影響程度。這種篩選后的可視化更適合用于識別和分析關鍵影響因素。

特征重要性可視化

visualize_feature_importance方法提供了另一種可視化視角,用于展示影響節(jié)點預測的top-k重要特征。使用此方法時,Explainer的初始化配置中不能設置node_mask_type=None,詳細實現(xiàn)可參考方法的源代碼。

方法定義:

visualize_feature_importance(path: Optional[str] = None,  
                              feat_labels: Optional[List[str]] = None,  
                              top_k: Optional[int] = None)[source])

參數(shù)說明:

  • path: 可視化結(jié)果保存路徑
  • feat_labels: 特征標簽列表,用于增強可讀性
  • top_k: 顯示的重要特征數(shù)量示例調(diào)用:
model_explanation.visualize_feature_importance(top_k=10)

該圖顯示了對節(jié)點143預測結(jié)果影響最大的前10個特征。這些特征與我們之前通過分析得到的影響特征列表完全一致,提供了直觀的重要性排序視圖。

解釋質(zhì)量評估

為了區(qū)分高質(zhì)量解釋和低質(zhì)量解釋,需要建立一套系統(tǒng)的評估機制。這一評估機制對于判斷不同解釋器(如DummyExplainer與專業(yè)解釋器)的性能差異尤為重要。系統(tǒng)提供了五種評估指標[12]:

基于真實標簽的評估

groundtruth_metrics用于評估生成的解釋掩碼與真實解釋掩碼之間的一致性。這個指標有助于判斷模型識別的重要特征是否與實際數(shù)據(jù)中的關鍵特征相符。

  • 評估模型解釋與數(shù)據(jù)真實重要性特征的匹配程度
  • 驗證模型的解釋能力是否符合領域知識
  • 識別潛在的誤解釋情況

準確性評估

fidelity指標通過比較兩種場景下的預測差異來評估解釋的質(zhì)量:

Fid+(保留重要特征):

  • 僅保留解釋認定的重要部分
  • 評估這些部分是否足以重現(xiàn)原始預測

Fid-(移除重要特征):

  • 移除解釋認定的重要部分
  • 評估這些部分的缺失是否會顯著改變預測結(jié)果

評估標準:

  • 高質(zhì)量解釋應具有高Fid+值,表明保留的重要特征能夠很好地支持原始預測
  • 同時應具有低Fid-值,表明移除這些特征會導致預測結(jié)果發(fā)生顯著變化

綜合特征化評分

characterization_score將Fid+和Fid-兩個指標整合為單一評分,提供更全面的評估視角:

  • Fid+:評估保留重要特征的效果(目標值接近1)
  • Fid-:評估移除重要特征的影響(目標值接近0)
  • 權(quán)重配置:默認兩者權(quán)重相等(各0.5),可根據(jù)具體應用場景調(diào)整

準確性曲線分析

fidelity_curve_auc提供了一個更加動態(tài)的評估視角,通過測量不同閾值下解釋質(zhì)量的變化來生成完整的性能曲線:

評估機制:

  • 通過調(diào)整重要特征的閾值進行多次準確性測量
  • 計算測量結(jié)果的曲線下面積(AUC)
  • 分析解釋質(zhì)量隨特征數(shù)量變化的穩(wěn)定性

結(jié)果解讀:

  • AUC = 1:解釋在所有閾值下均保持高準確性
  • AUC = 0:解釋在所有閾值下均表現(xiàn)不佳
  • AUC值越高表明解釋的穩(wěn)健性越好

相比特征化評分,曲線分析的優(yōu)勢在于能夠提供全范圍閾值下的性能表現(xiàn),而不是僅關注特定點的表現(xiàn)。

示例:

from torch_geometric.explain.metric import (  
    fidelity,  
    characterization_score,  
    fidelity_curve_auc,  
    unfaithfulness  
 )  
   
 # 驗證解釋結(jié)果
 is_valid = model_explanation.validate()  
   
 # 計算準確性指標
 fid_pos, fid_neg = fidelity(  
    explainer=metric_explainer,  
    explanation=metric_explanation  
 )  
   
 # 計算特征化評分
 char_score = characterization_score(  
     fid_pos,  
     fid_neg,  
     pos_weight=0.7,    # 提高正向影響的權(quán)重  
     neg_weight=0.3     # 降低負向影響的權(quán)重          
 )  
 
 # 準確性曲線AUC計算
 pos_fidelity = torch.tensor([0.9, 0.8, 0.7, 0.6, 0.5])  
 neg_fidelity = torch.tensor([0.1, 0.2, 0.3, 0.4, 0.5])  
   
 # 定義評估閾值點
 x = torch.tensor([0.1, 0.2, 0.3, 0.4, 0.5])  
   
 # 計算AUC
 auc = fidelity_curve_auc(pos_fidelity, neg_fidelity, x)  
 
 # 輸出評估結(jié)果
 print(f"準確性指標: {fid_pos}, {fid_neg}")  
 print(f"特征化評分: {char_score}")  
 print("準確性曲線AUC:", auc.item())

總結(jié)

圖神經(jīng)網(wǎng)絡的可解釋性研究對于提升模型的可信度和實用價值具有重要意義。通過PyTorch Geometric的可解釋性模塊,我們實現(xiàn)了對復雜模型決策過程的系統(tǒng)分析和理解。

責任編輯:華軒 來源: DeepHub IMBA
相關推薦

2019-11-08 10:17:41

人工智能機器學習技術

2020-05-14 08:40:57

神經(jīng)網(wǎng)絡決策樹AI

2023-03-09 12:12:38

算法準則

2022-06-07 11:14:23

神經(jīng)網(wǎng)絡AI中科院

2019-08-29 18:07:51

機器學習人工智能

2023-03-07 16:48:54

算法可解釋性

2024-08-23 13:40:00

AI模型

2022-07-28 09:00:00

深度學習網(wǎng)絡類型架構(gòu)

2025-01-13 08:13:18

2024-05-28 08:00:00

人工智能機器學習

2024-09-18 05:25:00

可解釋性人工智能AI

2025-03-10 08:34:39

2025-06-16 08:51:00

2021-01-08 10:47:07

機器學習模型算法

2024-04-30 14:54:10

2022-06-14 14:48:09

AI圖像GAN

2023-05-04 07:23:04

因果推斷貝葉斯因果網(wǎng)絡

2023-08-15 10:04:40

2025-07-08 08:38:09

推理錨點LLM大模型

2022-05-25 14:21:01

神經(jīng)網(wǎng)絡框架技術
點贊
收藏

51CTO技術棧公眾號

精品成人一区二区三区免费视频| 男女性高潮免费网站| 日本免费在线视频| 国产米奇在线777精品观看| 欧美日韩国产二区| 少妇毛片一区二区三区| 日韩av黄色| 亚洲午夜在线观看视频在线| 茄子视频成人在线观看| 国产免费的av| 亚洲成人中文| 在线观看精品自拍私拍| 日韩黄色一区二区| 嫩草伊人久久精品少妇av杨幂| 亚洲欧洲综合另类在线| 玛丽玛丽电影原版免费观看1977| 亚洲最大成人在线视频| 亚洲视频www| 久久精品在线播放| 日韩在线免费观看av| 91蝌蚪精品视频| 欧美性色黄大片| 国产91xxx| 国产三级在线播放| 日本一区二区久久| 激情欧美一区二区三区中文字幕| 国产又爽又黄免费软件| 裸体素人女欧美日韩| 色综合视频一区中文字幕| 免费一级黄色录像| 日韩极品少妇| 日韩精品在线网站| 欧美国产日韩另类 | 国产成人av免费| 日韩亚洲国产精品| 久久99亚洲精品| 二区三区四区视频| 成人网18免费网站| 日韩久久午夜影院| 中文字幕在线视频播放| 亚洲日本va| 日韩一区二区三| 一级做a免费视频| 99久久er| 欧美性受xxxx| av污在线观看| 不卡亚洲精品| 欧美日韩在线精品一区二区三区激情 | 中文在线字幕观看| 久久天堂久久| 欧美一区二区三区电影| 日韩av片免费观看| 亚洲三级在线| 日韩一区二区三区av| 性色av浪潮av| 中文字幕久久精品一区二区| 日韩三级在线免费观看| 精品人妻一区二区三区免费| 激情五月综合婷婷| 日韩午夜电影在线观看| 久草福利在线观看| 亚洲综合影院| 亚洲第一av在线| av无码一区二区三区| 欧美美女黄色| 亚洲人成在线观看| wwwww黄色| 999久久久91| 欧美日韩爱爱视频| 91蜜桃视频在线观看| 午夜一区不卡| 国产精品久久久久久久久| 亚洲精品一区二区二区| 精品在线你懂的| 亚洲在线一区二区| 欧美一区二区公司| av一本久道久久综合久久鬼色| 久久久7777| 成人免费在线观看| 1024成人网| 97超碰在线人人| 丝袜美腿一区| 欧美精品日日鲁夜夜添| 香蕉网在线视频| 米奇精品关键词| 国产亚洲在线播放| 激情五月婷婷小说| 久久成人亚洲| 成人综合网网址| 少妇av在线播放| 国产婷婷色一区二区三区在线| 一区二区三区四区欧美| 丰满大乳少妇在线观看网站| 一本色道久久综合精品竹菊| av亚洲天堂网| 97久久亚洲| 亚洲视频在线看| 东方av正在进入| 国产农村妇女毛片精品久久莱园子 | 91国内精品| 亚洲美女网站| 久久久久女教师免费一区| 狠狠躁夜夜躁人人爽天天高潮| 国产精品老牛| 亚洲影影院av| 韩国免费在线视频| 亚洲免费观看高清完整版在线观看熊 | 国产视频在线观看一区二区三区| 亚洲欧洲日夜超级视频| 国产丝袜在线播放| 欧美日韩国产欧美日美国产精品| 岛国精品一区二区三区| 成人一区而且| 2019中文字幕在线免费观看| 国产免费一区二区三区最新不卡| 91麻豆视频网站| 伊人再见免费在线观看高清版| 成人黄色免费短视频| 精品国产乱码久久久久久久| 中文字幕无码日韩专区免费 | 国内精品400部情侣激情| 91麻豆精品在线| 91在线观看地址| 青草视频在线观看视频| 99亚洲男女激情在线观看| 亚洲午夜精品久久久久久性色| 国产一级二级三级| 韩国欧美国产1区| 欧美日韩国产高清视频| 136福利第一导航国产在线| 3d成人h动漫网站入口| 一级黄色毛毛片| 久久一二三四| 免费影院在线观看一区| 欧美家庭影院| 日韩一区二区三区三四区视频在线观看| 波多野结衣 在线| 一本色道久久综合亚洲精品高清| 大波视频国产精品久久| 99福利在线| 在线不卡中文字幕播放| 黄色片网站在线播放| 日日夜夜免费精品| 日本一区二区免费看| 在线观看的黄色| 亚洲免费一级电影| 黄瓜视频在线免费观看| 久久婷婷久久一区二区三区| 女人和拘做爰正片视频| 国产精品传媒| 97超碰国产精品女人人人爽| 人妻视频一区二区三区| 亚洲成人av电影| xfplay5566色资源网站| 亚洲精品影视| 免费国产一区二区| 亚洲免费福利| 一个色综合导航| 亚洲天堂一二三| 一区二区中文视频| 性一交一黄一片| 韩国精品一区二区三区| 国产在线资源一区| 妞干网免费在线视频| 日韩国产高清视频在线| 影音先锋亚洲天堂| 久久久不卡网国产精品二区| 国产精品久久久久9999小说| 青青草原综合久久大伊人精品| 国产精品视频中文字幕91| 老司机福利在线视频| 欧美一级高清大全免费观看| 黄色小说在线观看视频| 97成人超碰视| 亚洲高清免费在线观看| 一本一本久久a久久综合精品| 97se亚洲综合在线| 国产污视频在线播放| 一本色道久久88精品综合| 国产男男gay体育生白袜| 亚洲大片一区二区三区| 亚洲永久精品ww.7491进入| 久久66热偷产精品| 久久综合久久网| 欧美精品一二| av色综合网| 高清不卡亚洲| 久久偷看各类女兵18女厕嘘嘘 | 国产美女在线观看一区| 男的插女的下面视频| 国产成人黄色| 亚洲自拍小视频免费观看| 欧美裸体视频| 久久亚洲精品小早川怜子66| 亚州视频一区二区三区| 91超碰这里只有精品国产| 久久久午夜影院| 亚洲欧美日韩久久| mm131美女视频| 国产一区二区毛片| av免费在线播放网站| 亚洲精品小说| 欧美一区二区三区在线免费观看| 国产亚洲亚洲国产一二区| 欧美做受高潮电影o| 污网站在线免费看| 中文字幕久热精品视频在线| 黄色av网址在线| 欧美精品v国产精品v日韩精品 | 丁香激情五月少妇| 成人av午夜电影| 91亚洲精品久久久蜜桃借种| 欧美一区=区| 国产一区二区三区小说| 我不卡影院28| 日韩欧美精品在线不卡| 97人妻人人澡人人爽人人精品| 日本午夜精品久久久久| 亚洲色图五月天| 亚洲va天堂va欧美ⅴa在线| 日本精品视频一区二区| 国产精品成人国产乱| 综合婷婷亚洲小说| 特级西西www444人体聚色| 99国产精品一区| 国产又粗又猛又爽又黄| 精品亚洲成a人在线观看| 国产男女激情视频| 亚洲黄色av| 人妻互换免费中文字幕| 中文在线日韩| 国产麻豆电影在线观看| 久久福利综合| 亚洲午夜在线观看| 精品久久网站| 日韩理论片在线观看| 天美av一区二区三区久久| 高清日韩一区| 日本成人精品| 69堂成人精品视频免费| 成人在线视频国产| 国产美女久久精品香蕉69| 成人午夜在线| 国产精品中文字幕在线| 精品176极品一区| 国产有码一区二区| 亚洲人体在线| 亚洲综合色av| 99国产精品免费网站| 国产91亚洲精品一区二区三区| 午夜久久av| 成人综合色站| 五月综合久久| 日韩欧美视频一区二区| 日本不卡电影| 伊人色综合影院| 欧美福利视频| 无码粉嫩虎白一线天在线观看| 99亚洲精品| 久久久久久久久久久福利| 免费欧美日韩| 天天干天天草天天| 韩国一区二区三区| 91人妻一区二区| 久久丝袜美腿综合| 免费黄色在线网址| 亚洲欧美精品午睡沙发| 国产在线拍揄自揄拍| 欧美视频在线免费| 亚洲精品国产精品国自产网站按摩| 欧美三级一区二区| 99精品视频免费看| 亚洲国产成人精品女人久久久| 性xxxfllreexxx少妇| 亚洲偷欧美偷国内偷| 精品176二区| 欧美多人爱爱视频网站| 91av亚洲| 成人伊人精品色xxxx视频| av日韩在线播放| 日韩电影大全在线观看| 在线免费观看日本欧美爱情大片| 国产原创popny丨九色| 日韩不卡在线观看日韩不卡视频| 91视频福利网| 26uuu精品一区二区三区四区在线 26uuu精品一区二区在线观看 | 亚洲伊人av| 国产日韩在线一区| 精品三级av在线导航| 亚洲开发第一视频在线播放| 国产精品v一区二区三区| 国产综合免费视频| 国产一区二区福利视频| 人妻丰满熟妇aⅴ无码| 一区在线观看免费| 国产情侣自拍av| 69堂国产成人免费视频| 日本中文字幕电影在线观看 | 极品视频在线| 国产综合久久久久| 天堂99x99es久久精品免费| 欧美另类videos| 日韩精品一区第一页| 四虎精品一区二区| 国产精品久久久久久久久图文区| 日本在线观看视频网站| 欧美日韩精品福利| 欧美挠脚心网站| 欧美激情第三页| 久久人体av| 欧美lavv| 国产精品日本欧美一区二区三区| 在线视频一二区| 国产午夜精品一区二区| 懂色av.com| 日韩免费观看高清完整版 | 午夜精品久久久久久久99| 国产一区二区三区中文| www视频在线观看| 91嫩草免费看| 99久久久国产精品美女| 狠狠热免费视频| 久久久久久久久久久久久夜| 日本五十路女优| 精品国产乱码久久久久久夜甘婷婷| 欧洲不卡视频| 国产精品免费一区豆花| 国产欧美亚洲精品a| 精品人妻一区二区三区四区在线| 高清日韩电视剧大全免费| 亚洲综合视频网站| 欧美三级日韩在线| 91吃瓜网在线观看| 国产精品第一页在线| 一区二区三区韩国免费中文网站| 国产精品va无码一区二区| 成人激情文学综合网| 国产精品第72页| 亚洲成人在线网| 丁香花在线电影小说观看| 成人在线看片| 99精品视频免费观看视频| 艳妇乳肉豪妇荡乳xxx| 亚洲午夜免费视频| 黑人精品一区二区| 欧美激情久久久久| 国产乱人伦丫前精品视频| 国产一二三在线视频| 99久久99久久精品免费观看| 日韩精品在线不卡| 日韩精品在线视频美女| 蜜桃视频在线观看免费视频| 久久精品国产第一区二区三区最新章节 | 波多野结衣高清在线| 国产亚洲福利一区| 深夜视频一区二区| 亚洲激情图片| 国产真实精品久久二三区| 中文字幕av久久爽av| 亚洲福利在线视频| 涩涩涩在线视频| 日韩国产一区久久| 久久 天天综合| 劲爆欧美第一页| 日韩久久午夜影院| 99riav国产精品| 国产精品久久久久9999爆乳| 不卡视频一二三| 懂色av中文字幕| 久久精品国产亚洲| 日韩亚洲精品在线观看| 国产 日韩 亚洲 欧美| 久久久三级国产网站| 一区二区三区午夜| 欧美国产第一页| 在线日本制服中文欧美| 中文字幕 日韩 欧美| 亚洲成av人综合在线观看| 国产小视频福利在线| 成人免费福利视频| 最新亚洲视频| 国产精品久久久久久久av| 91精品福利在线一区二区三区 | 国产在视频线精品视频www666| 一级片视频免费观看| 洋洋成人永久网站入口| 美女做暖暖视频免费在线观看全部网址91| 国产精品爽爽ⅴa在线观看| 亚洲无毛电影| 日韩视频在线观看免费视频| 日韩一级大片在线观看| 亚洲天堂手机| 中文字幕在线乱| 久久久99精品久久| 国产成人精品无码高潮| 日本中文字幕成人| 国产精品分类| а天堂中文在线资源| 日韩av在线看| 日本免费精品|