softmax回归和交叉熵损失函数

softmax回归相对于线性回归输出单元从一个变成了多个,适合用来解决分类问题。且引入了softmax运算使得输出更适合离散值的预测和训练。交叉熵损失函数对比平方损失函数其没有那么严格,其只关注对正确类别的预测概率


1.softmax

假定有4个特征,3个用于分类的类别,则有如下的12个权重,3个输出:

o_{1} = x_{1}w_{11}+x_{2}w_{21}+x_{3}w_{31}+x_{4}w_{41}+b_1

o_{2} = x_{1}w_{12}+x_{2}w_{22}+x_{3}w_{32}+x_{4}w_{42}+b_2

o_{3} = x_{1}w_{13}+x_{2}w_{23}+x_{3}w_{33}+x_{4}w_{43}+b_3

为什么要用softmax?

  • 直接用上面的公式得到的 o_1,o_2,o_3 的值(值域)大小不定,此时使用softmax函数将其映射到 [0,1],便于从直观上观察这些值的意义。
  • 另一方面,由于真实标签是离散值,这些离散值与不确定输出范围值之间的误差难以衡量

softmax运算:

\hat{y_{1}},\hat{y_{2}},\hat{y_{3}}=softmax(o_{1},o_{2},o_{3})

其中:

\hat{y_1}=\frac{exp(o_1)}{\sum_{3}^{i=1}exp(o_i)},\hat{y_2}=\frac{exp(o_2)}{\sum_{3}^{i=1}exp(o_i)},\hat{y_3}=\frac{exp(o_3)}{\sum_{3}^{i=1}exp(o_i)}

 

2.交叉熵损失函数

为什么要使用交叉损失函数?

  • 如果在分类问题里面,只关心对物体类别的正确预测概率,那么就可以使用交叉熵函数

交叉熵函数(cross entropy):

H({\mathbf{y}}^{(i)},\hat{\mathbf{y}}^{(i)})=-\sum_{q}^{j=1}y^{(i)}_j\log \hat{y}^{(i)}_j

其中{\mathbf{y}}^{(i)},\hat{\mathbf{y}}^{(i)}分别为真实值和预测值,其中的真实值 {\textbf{y}}^{(i)} 的元素 y^{(i)}_j非 0 即 1 ,即只有真确的分类才为1,这个要与不带下标的

样品离散数值 y^{(i)} (即等于1或者2或者3)要区分开来。如果样本只有一个标签,即{\textbf{y}}^{(i)}中只有一个元素为1,其余为0,则H({\mathbf{y}}^{(i)},\hat{\mathbf{y}}^{(i)})=-\log \hat{y}^{(i)}_{y^{(i)}},从这里就可以看出交叉熵只关心正确类别的预测概率

 

假设训练样本数为n,则对应的交叉熵损失函数定义为:

l(\Theta ) = \frac{1}{n}\sum_{i=1}^{n} H(\mathbf{y}^{(i)},\hat{\mathbf{y}}^{(i)})

其中 \Theta 代表模型参数。

你可能感兴趣的:(深度学习-李牧,学习笔记,softmax回归,softmax运算,交叉熵)