精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

少妇人妻无码专区视频| 国产在线观看91精品一区| 星空大象在线观看免费播放| 蜜桃麻豆影像在线观看| 国产亚洲短视频| 成人在线精品视频| 青青操免费在线视频| 国产乱码精品一区二区亚洲| 在线播放中文一区| 俄罗斯av网站| 超碰最新在线| 久久美女艺术照精彩视频福利播放| 国产啪精品视频| 日韩欧美中文字幕一区二区| 青青草国产免费一区二区下载| 欧美电影在线免费观看| 亚洲高清色综合| 国产在线拍揄自揄拍无码| 高清国产mv在线观看| 日本伊人色综合网| 久久久久久97| 老熟妻内射精品一区| 狠狠一区二区三区| 91精品免费在线| 国产性生交xxxxx免费| 免费污视频在线| 中文字幕日韩精品一区| 欧美高清视频一区二区三区在线观看| 国产免费一区二区三区免费视频| 免费国产自线拍一欧美视频| 欧美日本黄视频| 午夜国产福利视频| 激情五月综合| 亚洲精品日韩欧美| 荫蒂被男人添免费视频| 视频一区视频二区欧美| 欧美日韩不卡一区二区| 91在线视频观看免费| 亚洲午夜天堂| 亚洲成av人在线观看| 九一免费在线观看| 麻豆网在线观看| 中文字幕乱码亚洲精品一区 | 人人爽人人av| 亚洲欧洲美洲av| 精品国产1区2区| 免费人成在线观看视频播放| 最新黄网在线观看| 亚洲卡通欧美制服中文| 一区二区三区在线视频111| 国产露出视频在线观看| 久久精品一区二区三区四区| 牛人盗摄一区二区三区视频| 四虎影视在线播放| 久久综合久久鬼色中文字| 精品国产乱码一区二区三区四区| 亚洲欧美激情在线观看| 成人污视频在线观看| 岛国一区二区三区高清视频| 亚洲国产一二三区| 成人午夜视频福利| 久草热久草热线频97精品| 黄色一级a毛片| 99re热视频精品| 欧美日韩成人一区二区三区| 精品三级久久久久久久电影聊斋| 国产日本一区二区| 日韩免费毛片| 91福利国产在线观看菠萝蜜| 亚洲午夜精品17c| 久草热视频在线观看| 超碰在线99| 色av综合在线| 三级a三级三级三级a十八发禁止| 国产精品一级在线观看| 日韩欧美国产一区二区在线播放| 亚洲精品乱码久久| 综合亚洲色图| 爽爽爽爽爽爽爽成人免费观看| 亚洲精品久久久久久国| 亚洲视频久久| 国产国产精品人在线视| 国产一区二区在线不卡| 国产在线视视频有精品| 国产一区二区高清不卡 | 91网站在线播放| 日韩av在线电影观看| 日韩美女网站| 亚洲国产精品人人做人人爽| 久久久久久久久久久久久久国产| 久久精品嫩草影院| 精品少妇一区二区三区 | 亚洲黄色尤物视频| 日韩欧美亚洲天堂| www一区二区三区| 亚洲精品成人网| 久久精品色妇熟妇丰满人妻| 黑人一区二区| 国产欧美一区二区三区在线| 少妇无码一区二区三区| 国产精品国模大尺度视频| 欧美精品卡一卡二| 精品国产美女a久久9999| 精品国产免费视频| 992在线观看| 亚洲理伦在线| 91人人爽人人爽人人精88v| 婷婷五月综合激情| 亚洲免费色视频| 久久国产色av免费观看| 91国内精品白嫩初高生| 精品国产视频在线| 精品国产乱子伦| eeuss鲁片一区二区三区在线观看 eeuss影院一区二区三区 | 国产女主播视频一区二区| 国产成人在线小视频| 欧美激情啪啪| 亚洲欧美日韩综合| 日韩黄色a级片| 国产在线国偷精品免费看| 欧美日本韩国在线| 涩涩视频在线播放| 精品国产伦一区二区三区观看体验| 免费成人深夜蜜桃视频| 久久久久看片| 精品久久蜜桃| 9999热视频在线观看| 日韩一区二区三区视频在线| 美女100%露胸无遮挡| 欧美亚洲一区| 久久精品aaaaaa毛片| 俺来也官网欧美久久精品| 欧美一区二区久久| 大地资源高清在线视频观看| 青青草一区二区三区| 欧美日韩中文国产一区发布 | 亚洲综合婷婷| 成人精品在线观看| 欧美成年黄网站色视频| 欧美少妇一区二区| 亚洲日本精品视频| 日韩中文字幕一区二区三区| 蜜桃久久影院| 亚洲欧洲美洲av| 亚洲人精品午夜在线观看| 五月激情六月丁香| 久久影院午夜论| 国产成人亚洲精品无码h在线| 六月丁香久久丫| 992tv成人免费影院| 无码国产精品一区二区免费16| 亚洲超碰精品一区二区| 波多野结衣先锋影音| 99精品视频免费观看| 精品一区二区三区视频日产| 欧美日韩国产观看视频| 亚洲欧美综合精品久久成人| 一级黄色大片视频| 国产欧美中文在线| 日本不卡一区在线| 久久久久久久久99精品大| 亚洲综合社区网| 国产www视频在线观看| 亚洲国产日韩欧美在线99| 国产微拍精品一区| 中文字幕国产一区二区| 午夜剧场高清版免费观看| 午夜精品久久| 精品一区二区三区日本| 欧美一级大片| 久久精品小视频| 日本韩国在线观看| 色先锋aa成人| 999精品久久久| 成人av在线播放网址| 欧美视频免费播放| 日本久久黄色| 99久久99| 免费成人动漫| www.欧美三级电影.com| 亚洲av无码乱码国产麻豆| 婷婷一区二区三区| 四季av中文字幕| 国产福利视频一区二区三区| 国产精品50p| 欧美mv日韩| 国产精品一区二区三区四区五区| 日韩欧美一区二区三区免费观看| 久久精品电影网站| 手机看片福利在线| 欧美浪妇xxxx高跟鞋交| 日本一区二区欧美| 中文字幕av一区 二区| zjzjzjzjzj亚洲女人| 青青草97国产精品免费观看 | 9999热视频| 2024国产精品| 亚洲精品无码久久久久久久| 久久久久久黄| 男人天堂av片| 99久久精品国产亚洲精品| 精品亚洲一区二区三区四区五区高| 久久亚洲精品中文字幕| 97国产精品免费视频| 男女啪啪在线观看| 亚洲人精品午夜在线观看| 亚洲精品视频专区| 欧美精品欧美精品系列| 欧产日产国产69| 亚洲一区二区三区在线看| 蜜桃av免费在线观看| 91蝌蚪国产九色| 久久精品aⅴ无码中文字字幕重口| 日本中文字幕一区二区视频 | 国产无遮挡aaa片爽爽| 亚洲国产精品ⅴa在线观看| 免费黄色三级网站| 国产老肥熟一区二区三区| 欧美成人黄色网址| 亚久久调教视频| 国产精品国产亚洲精品看不卡| 91精品国产视频| 亚洲欧美日韩综合一区| 美女毛片一区二区三区四区| 精品国产乱码久久久久| 成人精品毛片| 国产传媒一区二区| 日韩中文一区二区| 91夜夜揉人人捏人人添红杏| 99久久婷婷国产综合精品首页| 日本高清视频一区| 97成人资源| 国产91|九色| 涩涩视频在线| 欧美亚洲国产精品| 欧美激情20| 久久全国免费视频| av中文字幕在线看| 久久青草福利网站| 日本蜜桃在线观看视频| 2025国产精品视频| 亚洲黄色网址| 日韩免费观看视频| 亚洲播播91| 国产精品日韩欧美综合| 成人全视频在线观看在线播放高清 | 国产在线播精品第三| 亚洲涩涩在线观看| 国产麻豆精品久久一二三| 国产一级免费大片| 国产一区二区不卡| 国产精品果冻传媒| 成人avav影音| 超碰97人人干| 日本一区免费视频| 四虎地址8848| 一区二区三区免费网站| 日韩av一二三区| 欧美日韩精品二区| www.亚洲激情| 91精品国产综合久久精品app| a在线观看免费| 精品国产乱子伦一区| 日本在线一二三| 国产亚洲欧美日韩一区二区| 最新电影电视剧在线观看免费观看| 久久亚洲欧美日韩精品专区| av美女在线观看| 日韩av高清不卡| 四虎影视国产精品| 91麻豆蜜桃| 色橹橹欧美在线观看视频高清| 欧美精品久久| 91日韩视频| 亚洲色成人www永久在线观看| 亚洲欧美日韩视频二区| 日本xxxx黄色| 成人性视频网站| 男人舔女人下部高潮全视频| 亚洲欧美色一区| 91浏览器在线观看| 欧美性色黄大片| 好吊色在线观看| 国产一区二区三区在线看| www在线免费观看视频| 韩国国内大量揄拍精品视频| 日韩三区免费| 国产精品美女xx| 日韩国产欧美| 无码 制服 丝袜 国产 另类| 免费在线观看视频一区| 欧美成人精品一区二区综合免费| 久久久美女毛片| 久久免费精彩视频| 欧美视频你懂的| 三区在线视频| 久久亚洲精品中文字幕冲田杏梨| 一二三四视频在线中文| 91精品天堂| 成人高清电影网站| 免费一级特黄特色毛片久久看| 久久福利资源站| 丝袜美腿中文字幕| 亚洲资源在线观看| 在线视频1卡二卡三卡| 亚洲精品ady| av在线免费观看网址| 国产精品国产三级国产aⅴ浪潮| 丁香五月缴情综合网| 国产偷久久久精品专区| 妺妺窝人体色WWW精品| 日本高清成人vr专区| 国产一区二区精品久久99| 久久成人在线视频| 久久综合网导航| 国产精品 欧美在线| 国产亚洲成av人片在线观黄桃| 97超碰免费观看| 免费人成网站在线观看欧美高清| 水蜜桃av无码| 亚洲高清免费视频| 国产同性人妖ts口直男| 中文字幕在线成人| 成人爱爱网址| 精品日本一区二区| 国产精品s色| 性生活在线视频| 综合分类小说区另类春色亚洲小说欧美| 极品国产91在线网站| 日韩av中文字幕在线播放| 国内老司机av在线| 99se婷婷在线视频观看| 中文字幕人成人乱码| 三级一区二区三区| 亚洲色图在线视频| 国产又粗又大又爽视频| 色婷婷综合久久久久| 精品国产美女a久久9999| 一本色道久久99精品综合| 免费观看在线综合| 极品尤物一区二区| 欧美视频一区二| 最新国产在线观看| 国产日韩专区在线| 91蜜臀精品国产自偷在线 | 免费在线观看视频一区| 天堂在线中文视频| 欧美日韩成人一区| 国产精品剧情| av一区二区三区免费| 亚洲国产精品第一区二区| 熟女人妻在线视频| 色综合久久中文综合久久97| 国产一级在线| 国产欧美久久一区二区| 亚洲色图88| 天天躁日日躁狠狠躁av| 精品久久久久久国产| 二区在线观看| 亚洲综合日韩在线| 99伊人成综合| 国产又粗又猛又爽又黄av| 欧美日韩在线播放一区| 国产日产一区二区| 国产精品嫩草在线观看| 亚洲欧美久久久| 丰满的亚洲女人毛茸茸| 欧美一级二级三级乱码| 大桥未久在线播放| 日本日本精品二区免费| 久久电影网站中文字幕| 国产一级黄色av| 亚洲美女喷白浆| 先锋影音网一区二区| 日本香蕉视频在线观看| 国产无一区二区| a天堂视频在线| 日韩免费观看视频| 一区二区三区在线| 玖草视频在线观看| 欧美日韩另类国产亚洲欧美一级| 影院在线观看全集免费观看| 久久96国产精品久久99软件| 日本欧洲一区二区| 国产精品theporn动漫| 在线视频亚洲欧美| 日韩区一区二| 少妇人妻互换不带套| 亚洲激情五月婷婷| 青青草视频在线观看| 亚洲综合小说区| 三级不卡在线观看| 久久久久成人网站| 中文字幕亚洲综合| 麻豆一区二区麻豆免费观看| av污在线观看| 欧美午夜丰满在线18影院| 黄色在线论坛| 日本在线成人一区二区| 成人国产亚洲欧美成人综合网|