分类问题和回归问题是监督学习的两大种类:
- 分类问题的目标变量是离散的;
- 回归问题的目标变量是连续的数值。
神经网络模型的效果及优化的目标是通过损失函数来定义的。回归问题解决的是对具体数值的预测。比如房价预测、销量预测等都是回归问题。这些问题需要预测的不是一个事先定义好的类别,而是一个任意实数。解决回顾问题的神经网络一般只有一个输出节点,这个节点的输出值就是预测值。
- 对于回归问题,常用的损失函数是均方误差(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 np
def 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?
最小二乘是在欧氏距离为误差度量的情况下,由系数矩阵所张成的向量空间内对于观测向量的最佳逼近点。
用欧式距离作为误差度量的原因:
- 简单。
- 提供了具有很好性质的相似度的度量。
- 非负的;
- 唯一确定性。只有 x=y 的时候,d(x,y)=0;
- 对称的,即 d(x,y)=d(y,x);
- 符合三角性质。即 d(x,z)<=d(x,y)+d(y,z).
- 物理性质明确,在不同的表示域变换后特性不变,例如帕萨瓦尔等式。
- 便于计算。通常所推导得到的问题是凸问题,具有对称性,可导性。通常具有解析解,此外便于通过迭代的方式求解。
- 和统计和估计理论具有关联。在某些假设下,统计意义上是最优的。
MSE的缺点:
- 信号的保真度和该信号的空间和时间顺序无关。即,以同样的方法,改变两个待比较的信号本身的空间或时间排列,它们之间的误差不变。例如,[1 2 3], [3 4 5] 两组信号的 MSE 和 [3 2 1],[5 4 3] 的 MSE 一样。
- 误差信号和原信号无关。只要误差信号不变,无论原信号如何,MSE 均不变。例如,对于固定误差 [1 1 1],无论加在 [1 2 3] 产生 [2 3 4] 还是加在 [0 0 0] 产生 [1 1 1],MSE 的计算结果不变。
- 信号的保真度和误差的符号无关。即对于信号 [0 0 0],与之相比较的两个信号 [1 2 3] 和[-1 -2 -3] 被认为和 [0 0 0] 具有同样的差别。
- 信号的不同采样点对于信号的保真度具有同样的重要性。