一、Softmax函数介绍
Softmax函数是一种将实数向量映射为概率分布的函数,常用于多分类问题的输出层。它将输入向量的每个元素转换为0到1之间的概率值,且所有输出之和为1。
softmax函数的特点:
【1】归一化:输出值的总和为1,符合概率分布的性质。
【2】单调性:输入值越大,对应的输出概率越高。
【3】可导性:便于梯度下降等优化算法的应用(如反向传播)。
【4】对输入敏感:会放大较大输入值的相对概率(指数效应)。
softmax函数应用场景:
【1】多分类神经网络:
如CNN、MLP的输出层,将原始得分(logits)转化为类别概率(如手写数字识别、图像分类)。
【2】交叉熵损失函数:
与Softmax结合,计算预测概率与真实标签的差异。
【3】注意力机制:
在Transformer中,Softmax用于计算注意力权重(如自注意力中的QK^T缩放后)。
【4】概率生成模型:
如条件随机场(CRF)中的状态转移概率。
二、Softmax多分类案例:鸢尾花分类
我们使用经典的 鸢尾花(Iris)数据集,该数据集包含3类鸢尾花(Setosa、Versicolor、Virginica),每类有4个特征(花萼长度、花萼宽度、花瓣长度、花瓣宽度)。目标是根据输入特征预测花的类别。其样本数据如下所示:
实现步骤:
【1】数据准备:加载Iris数据集,划分训练集和测试集。
【2】模型定义:构建一个简单的全连接神经网络(输入层→输出层,无隐藏层