softmax回归
一、前言
1、softmax回归不是回归问题,而是分类问题
2、分类问题:对离散值的预测。
3、分类问题通常有多个输出,输出 i 预测为第 i 类的置信度
二、网络结构
1、为了估计所有可能类别的条件概率,我们需要一个有多个输出的模型,每个类别对应一个输出
2、在我们的例子中,由于我们有4个特征和3个可能的输出类别,我们将需要12个标量来表示权重(带下标的w),3个标量来表示偏置(带下标的b)
3、下面是为每个输入计算三个为归一化的预测
4、与线性回归一样,softmax回归也是一个单层神经网络。
5、由于计算每个输出o1、o2和o3取决于所有输入x1、x2、x3和x4,所以softmax回归的输出层也是全连接层。
6、上图中,输入层的每个x都表示样本的一个特征 。输出层的三个o就是类别数
三、softmax运算
1、基本思想:在分类中,我们采取的主要方法就是将模型的输出视作为概率,我们希望模型的输出 𝑦̂ 𝑗可以视为属于类 j 的概率
2、存在问题:
- 没有限制这些数字的总和为1
- 根据输入的不同,这些数值可以为负值,违反了概率基本公理
3、softmax回归:首先对每个未归一化的预测求幂,这样可以确保输出非负。为了确保最终输出的总和为1,我们再对每个求幂后的结果除以它们的总和。
softmax 运算不会改变未归一化的预测 𝐨o 之间的顺序,只会确定分配给每个类别的概率。
尽管softmax是一个非线性函数,但softmax回归的输出仍然由输入特征的仿射变换决定。因此,softmax回归是一个线性模型
四、小批量样本的矢量化
1、为了提高计算效率并且充分利用GPU,我们通常会针对小批量数据执行矢量计算。
2、假设我们读取了一个批量的样本 X ,其中特征维度(输入数量)为d,批量大小为n。此外,假设我们在输出中有 q 个类别。那么小批量特征为 X∈Rn×d ,权重为W∈Rd×q,偏置为 b∈R1×q
3、softmax回归的矢量计算表达式
4、由于 X 中的每一行代表一个数据样本,所以softmax运算可以按行(rowwise)执行:对于O的每一行,我们先对所有项进行幂运算,然后通过求和对它们进行标准化。
1、我们已经知道,softmax运算将输出变换为了一个合法的类别预测分布
2、实际上,真实标签也可以用类别分布表达:对于样本 i,我们构造向量y(i)∈Rq,使其第y(i)(样本i类别的离散数值)个元素为1,其余为0。
3、对于任何标签 𝐲 和模型预测 𝐲̂ ,损失函数为:(由于 是一个长度为 q 的独热编码向量,所以除了一个项以外的所有项 𝑗j 都消失了。由于所有 𝑦̂ 𝑗 都是预测的概率,所以它们的对数永远不会大于 0)