09 Softmax回归+损失函数+图片分类数据集 [动手学深度学习v2]

  1. Huber’s Robust Loss
    l ( y , y ′ ) = { ∣ y − y ′ ∣ − 1 2  if  ∣ y − y ′ ∣ > 1 1 2 ( y − y ′ ) 2  otherwise  l\left(y, y^{\prime}\right)= \begin{cases}\left|y-y^{\prime}\right|-\frac{1}{2} & \text { if }\left|y-y^{\prime}\right|>1 \\ \frac{1}{2}\left(y-y^{\prime}\right)^{2} & \text { otherwise }\end{cases} l(y,y)={yy2121(yy)2 if yy>1 otherwise 

  2. 创建一个数据 y ^ \hat{y} y^,其中包含2个样本在3个类别的预测概率,使用 y y y作为 y ^ \hat{y} y^中概率的索引

    y = torch.tensor([0, 2])
    y_hat = torch.tensor([[0.1, 0.3, 0.6], [0.3, 0.2, 0.5]])
    print(y_hat[[0, 1], y])
    # tensor([0.1000, 0.5000])
    
  3. 实现交叉熵损失函数

    def cross_entropy(y_hat, y):
        return -torch.log(y_hat[range(len(y_hat)), y])
    
  4. 将预测类别与真实 y y y元素进行比较

    def accuracy(y_hat, y):
        """计算预测正确的数量"""
        if len(y_hat.shape) > 1 and y_hat.shape[1] > 1:
            y_hat = y_hat.argmax(axis=1)
        cmp = y_hat.type(y.dtype) == y
        return float(cmp.type(y.dtype).sum())
    
    accuracy(y_hat, y) / len(y)
    
  5. 图片分类中的小trichsoftlabel策略。

你可能感兴趣的:(跟李沐学AI,人工智能,深度学习)