1. **交叉熵损失(Cross-Entropy Loss)**: 对于分类任务,尤其是节点分类或图分类,交叉熵损失是最常见的选择。在多类分类中,通常使用softmax函数来将GNN的输出转换为概率分布,然后使用交叉熵损失来比较预测的概率分布与真实的标签。
其中,M 是类别的数量,y 是一个二元指示器(0或1),表示样本i是否属于类别c,而p_ic 是模型预测样本i属于类别c的概率
import torch.nn as nn
import torch
output = torch.tensor([[1.0, 2.0, 0.1], [0.1, 1.0, 2.9]]) # Example logits
labels = torch.tensor([1, 2])
loss_fn = nn.CrossEntropyLoss()
loss = loss_fn(output, labels)
2. **均方误差损失(Mean Squared Error, MSE Loss)**: 在回归任务中,如节点回归或图回归,均方误差损失是标准的选择。它测量的是预测值与真实值之间差的平方的平均值。