接上一章,细心的同学可能会发现,最小二乘法算误差,用的是点到直线的竖直距离,为什么不用垂直距离呢?
如果用了垂直距离,此时cost函数会发生变化,最终得到的a、b会有所不同,实际上用点到直线的距离用的更多一些,大家可以自己尝试一下
由此可见,对同样的数据集,用最小二乘法算误差(Cost function),可以拟合出一条直线;用点到直线的距离算误差,可以拟合出宁外一条直线; 这2条直线哪条的效果更好?不知道,不同的数据分布特征有不同的答案(这就是为什么机器学习的可解释性查的原因)。在实际的应用中,进一步衍生出了SVM(计算边界距离),按照上面的思路去学习SVM一点也不难,也是宁外一种Cost function。
看到这里,估计你会有种感觉:机器学习的核心就是找到合适的Cost Function啊!是的,不仅要找出来,还要能尽量简单的能算出来。
可能还有宁外一个疑问,为什么要用最小二乘法来算误差呢?它一定是最好的吗?我也有这个疑问,到现在也没有完全释疑,网上有个说法我直接copy过来:
这篇文章在"WHY DO WE LOVE THE MSE?"中说,MSE:
1. 它简单。
2. 它提供了具有很好性质的相似度的度量。例如:
1)它是非负的;
2)唯一确定性。只有x=y的时候,d(x,y)=0;
3)它是对称的,即d(x,y)=d(y,x);
4)符合三角性质。即d(x,z)
3. 物理性质明确,在不同的表示域变换后特性不变,例如帕萨瓦尔等式。
4. 便于计算。通常所推导得到的问题是凸问题,具有对称性,可导性。通常具有解析解,此外便于通过迭代的方式求解。
5. 和统计和估计理论具有关联。在某些假设下,统计意义上是最优的。
这段话比较重要,要细细理解,不然后面会看的有点糊涂:在线性回归中,Y的输出是连续型变量,假设前提是误差符合高斯分布,所以采用了最小二乘法作为损失函数。下面我们会看到,在一些分类问题中,由于Y的输出是离散型(0,1..),误差分布符合伯努利分布,所以损失函数换成了极大似然估计。这里面有几个知识点要自行baidu一下(伯努利分布、极大似然估计)
下面进入正题,逻辑回归
逻辑回归,虽然叫回归,但解决的实际是“分类”问题。常常说机器学习主要是用来做“分类”和“预测”,线性回归主要用来解决预测,输入x,输出y,x和y都是连续型变量。
对于分类问题,y并非是连续型变量,比如二分类问题,y的取值要么是0,要么是1,我们需要在此基础上引入一个函数,把ax+b映射到[0,1]这样的空间,于是就引入了logistic函数(也称为:sigmoid函数, relu函数也能起到类似作用):
图形中的横左边是:θt*x
似然函数:
转换为对数:
损失函数:
利用前面的知识(最小二乘法分别对a和b求偏导)进行迭代训练,目标是让J(θ)的取值最小,J(θ)对每个θj求偏导数,然后进行梯度下降更新每个θj:
α为步长,是一个常数可自行设置,比如:0.5,xi是训练样本中的输入特征值,yi是人工标注值,取值为(0,1)
举例:根据睡眠、注意力、血压、反应 来判断一个人是否是亚健康状态
traning-set:
按照上面的步骤,算一下θ0~θ4试试看:
θT*x=θ0+θ1*x1+θ2*x2+θ3*x3+θ4*x4
没有一个输入法能方便的输入数学公式,打公式太麻烦了,凑合看吧,欢迎反馈!
----逻辑回归很基础,也很重要,这里忽略了L1、L2正则化部分,因为无助于理解逻辑回归的核心原理,后续可以自行在补充。下一篇再讲讲softmax和交叉熵
领取专属 10元无门槛券
私享最新 技术干货