资讯详情

经典机器学习方法(2)—— Softmax 回归

  • 参考:动手学深度学习:
  • 注:本文是 jupyter notebook 当文档转换时,可能无法直接复制部分代码!

  • 前文介绍的 经典机器学习方法(1)—— 线性回归 本文介绍了适用于离散值预测(分类问题)的连续值预测(回归问题) softmax 基于神经网络的经典回归模型
  • softmax 回归和线性回归,区别在于
    1. softmax 回归输出从一个变为多个
    2. softmax 引入回归 softmax 运算使其更适合预测和训练离散值

文章目录

  • 1. softmax 回归原理
    • 1.1 分类问题
    • 1.2 softmax 回归模型
      • 1.2.1 单样本分类的矢量计算表达式
      • 1.2.2 mini-batch 样本分类的矢量计算表达式
    • 1.3 交叉熵损失函数
    • 1.4 模型预测与评价
  • 2. 实现 softmax 回归
    • 2.1 数据准备
    • 2.2 模型设计
    • 2.3 模型评价
    • 2.4 模型训练
      • 2.4.1 优化算法
      • 2.4.2 训练流程
    • 2.5 使用模型进行预测
    • 2.6 完整代码
  • 3. 利用 Pytorch 简洁地实现 softmax 回归
    • 3.1 模型设计
      • 3.1.2 模型定义
      • 3.1.2 模型初始化
      • 3.1.3 softmax 以及交叉熵损失函数
    • 3.2 模型训练
      • 3.2.1 优化器
      • 3.2.2 训练流程
    • 3.3 完整代码

1. softmax 回归原理

1.1 分类问题

  • 考虑以下简单的分类问题

    1. 输入: 2 × 2 2\times 2 2×2 尺寸的图像 x \pmb{x} xxx,四个像素记为 x 1 , x 2 , x 3 , x 4 x_1,x_2,x_3,x_4 x1,x2​,x3​,x4​
    2. 输出:预测标记 y ∈ Y y \in\mathcal{Y} y∈Y,其中 Y = { y 1 , y 2 , y 3 } \mathcal{Y} = \{y_1,y_2,y_3\} Y={ y1​,y2​,y3​} 是大小为 3 的输出空间。我们习惯使用离散的数值来表示类别,比如将其处理为 y 1 = 1 , y 2 = 2 , y 3 = 3 y_1=1,y_2=2,y_3=3 y1​=1,y2​=2,y3​=3,这样需要输出 1,2,3 这三个数字中的一个

    如果使用数值化的标记,仍然可以使用回归模型来处理,将预测值就近离散化到 1、2、3 这三个值即可。但是

1.2 softmax 回归模型

1.2.1 单样本分类的矢量计算表达式

锐单商城 - 一站式电子元器件采购平台