【机器学习】激活函数(Softmax)

该文章已生成可运行项目,

在机器学习中,Softmax 是一种激活函数,常用于多分类任务中。它的主要作用是将一个未归一化的向量(通常是模型的输出)转换为一个概率分布,使得输出中的每个值都位于 0 和 1 之间,并且所有输出的和为 1。

1. Softmax

Softmax 的数学定义

Softmax 函数的数学表达式如下:

σ(zi)=ezi∑j=1Kezj \sigma(z_i) = \frac{e^{z_i}}{\sum_{j=1}^{K} e^{z_j}} σ(zi)=j=1Kezjezi

其中:

  • ziz_izi 是输入向量中的第 iii 个元素,
  • KKK 是类别的总数,
  • eee 是自然对数的底数。

Softmax 函数的作用可以理解为:

  • 缩放输出值:它将每个类别的输出值 ziz_izi 转换为一个正值,同时保持类别之间的相对比例不变。
  • 归一化为概率:通过对每个转换后的值进行归一化,确保输出的所有类别的值加起来为 1,表示每个类别的概率。

Softmax 的应用

Softmax 常用于分类问题的最后一层,特别是在多分类任务中,比如手写数字识别(MNIST),语言分类等。在这些任务中,Softmax 的输出表示模型对每个类别的信心值,可以通过选择概率最大的类别作为最终的预测结果。

2. 一个简单的例子:

假设我们设计一个 CNN 来分类手写数字(比如 MNIST 数据集),目标是将输入的 28x28 像素的手写数字图像分类为 0 到 9 这 10 个数字之一。

1) CNN 的结构:

层次描述
输入层输入 28x28 的灰度图像。
卷积层提取图像的局部特征,经过几层卷积、池化和激活函数处理,得到高维的特征图。
全连接层将高维特征图展平成向量,并通过一层或多层全连接层处理,得到每个类别的“原始分数”。
输出层通过 Softmax 函数将全连接层的输出转换为概率分布,用于多分类预测。

2) Softmax 的作用:

假设最后一个全连接层的输出是一个 10 维的向量,每个元素代表模型对每个类别的信心值(这时并不是概率)。比如输出向量可能是:

[2.5,−1.3,0.8,4.2,0.1,−2.0,3.1,0.5,−0.9,1.7] [2.5, -1.3, 0.8, 4.2, 0.1, -2.0, 3.1, 0.5, -0.9, 1.7] [2.5,1.3,0.8,4.2,0.1,2.0,3.1,0.5,0.9,1.7]

这 10 个值表示模型对 0-9 这 10 个数字的预测“分数”。如果直接选择最大的值,可能不太直观,因为这些值并不是概率

这时我们需要使用 Softmax 函数来将这些分数转换为概率:

P(yi)=ezi∑j=110ezj P(y_i) = \frac{e^{z_i}}{\sum_{j=1}^{10} e^{z_j}} P(yi)=j=110ezjezi

经过 Softmax 之后,假设得到的概率分布如下:

[0.01,0.001,0.005,0.8,0.03,0.0005,0.1,0.04,0.002,0.013] [0.01, 0.001, 0.005, 0.8, 0.03, 0.0005, 0.1, 0.04, 0.002, 0.013] [0.01,0.001,0.005,0.8,0.03,0.0005,0.1,0.04,0.002,0.013]

从这个结果可以看出,第三个类别(索引为 3,对应数字 3)有最大的概率 0.8,因此模型的最终预测结果就是 3。

本文章已经生成可运行项目
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值