损失函数 one-hot + softmax + cross-entropy 组合

作者 : 开心源码 本文共1943个字,预计阅读时间需要5分钟 发布时间: 2022-05-12 共193人阅读

分类问题和回归问题是监督学习的两大种类:

  • 分类问题的目标变量是离散的;
  • 回归问题的目标变量是连续的数值。

神经网络模型的效果及优化的目标是通过损失函数来定义的。回归问题处理的是对具体数值的预测。比方房价预测、销量预测等都是回归问题。这些问题需要预测的不是一个事前定义好的类别,而是一个任意实数。处理回顾问题的神经网络一般只有一个输出节点,这个节点的输出值就是预测值。

  • 对于回归问题,常用的损失函数是均方误差(MSE,Mean Squared Error)
  • 对于分类问题,常用的损失函数为交叉熵(CE,Cross Entropy)

交叉熵一般与one-hot和softmax在一起使用。


one-hot 编码

在分类问题中,one-hot编码是目标类别的表达方式。目标类别需要由文字标签,转换为one-hot编码的标签。one-hot向量,在目标类别的索引位置是1,在其余位置是0。类别的数量就是one-hot向量的维度。在one-hot编码中,假设类别变量之间相互独立。同时,在多分类问题中,one-hot与softmax组合使用。

import numpy as npdef prp_2_oh_array(arr):    """    概率矩阵转换为OH矩阵    arr = np.array([[0.1, 0.5, 0.4], [0.2, 0.1, 0.6]])    :param arr: 概率矩阵    :return: OH矩阵    """    arr_size = arr.shape[1]  # 类别数    arr_max = np.argmax(arr, axis=1)  # 最大值位置    oh_arr = np.eye(arr_size)[arr_max]  # OH矩阵    return oh_arr

softmax

softmax使得神经网络的多个输出值的总和为1,softmax的输出值就是概率分布,应用于多分类问题。softmax也属于激活函数。softmax、one-hot和cross-entropy,一般组合使用。

softmax probabilities + one-hot encoding + cross entropy

公式


cross-entropy

交叉熵(cross entropy)比较softmax输出和one-hot编码之间的距离,即模型的输出和真值。交叉熵是一个损失函数,错误值需要被优化至最小。神经网络预计输入数据在各个类别中的概率。最大的概率需要是正确的标签。

常见的损失函数:

  • MSE:Mean Squared Error,均方误差;
  • CE:Cross Entropy,交叉熵;

公式

其中,y是真值,h是预测值。

softmax和交叉熵的推导,参考:

推导

C是交叉熵,z是wx+b,再对w求导,根据链式法则,w的导数值,就是C的导数乘以w的导数。

关于为什么分类不使用MSE作为损失函数?

(1) MSE+softmax所输出的曲线是波动的,有很多局部的极值点,即非凸优化问题(non-convex),参考:

优化曲线

(2) 对于正确分类的数据点,CE梯度有一项趋近0,MSE中有两项趋近于0,也就是MSE的梯度消失速度是CE的平方;参考

正确分类

(3) 代理商损失函数(surrogate loss function),参考,精确率(accuray)是不连续的,所以需要用连续的函数来代理商,而优化MSE,并不能优化模型的精确度。

代理商损失函数

为什么回归问题使用MSE?

最小二乘是在欧氏距离为误差度量的情况下,由系数矩阵所张成的向量空间内对于观测向量的最佳逼近点。

用欧式距离作为误差度量的起因:

  1. 简单。
  2. 提供了具备很好性质的类似度的度量。
  3. 非负的;
  4. 唯一确定性。只有 x=y 的时候,d(x,y)=0;
  5. 对称的,即 d(x,y)=d(y,x);
  6. 符合三角性质。即 d(x,z)<=d(x,y)+d(y,z).
  7. 物理性质明确,在不同的表示域变换后特性不变,例如帕萨瓦尔等式。
  8. 便于计算。通常所推导得到的问题是凸问题,具备对称性,可导性。通常具备解析解,此外便于通过迭代的方式求解。
  9. 和统计和预计理论具备关联。在某些假设下,统计意义上是最优的。

MSE的缺点:

  1. 信号的保真度和该信号的空间和时间顺序无关。即,以同样的方法,改变两个待比较的信号本身的空间或者时间排列,它们之间的误差不变。例如,[1 2 3], [3 4 5] 两组信号的 MSE 和 [3 2 1],[5 4 3] 的 MSE 一样。
  2. 误差信号和原信号无关。只需误差信号不变,无论原信号如何,MSE 均不变。例如,对于固定误差 [1 1 1],无论加在 [1 2 3] 产生 [2 3 4] 还是加在 [0 0 0] 产生 [1 1 1],MSE 的计算结果不变。
  3. 信号的保真度和误差的符号无关。即对于信号 [0 0 0],与之相比较的两个信号 [1 2 3] 和[-1 -2 -3] 被认为和 [0 0 0] 具备同样的差别。
  4. 信号的不同采样点对于信号的保真度具备同样的重要性。

参考1、参考2、参考3

说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » 损失函数 one-hot + softmax + cross-entropy 组合

发表回复