机器学习逻辑回归模型参数解析(机器学习之逻辑回归)
机器学习逻辑回归模型参数解析(机器学习之逻辑回归)逻辑回归的方法称为Discriminative(判别) 方法;上一篇中用高斯来描述后验概率,称为 Generative(生成) 方法。它们的函数集都是一样的: 距离target越远,我们应该更快地更新参数,即距离越远微分值应该越大,梯度下降时移动的距离就越远。but对于Square Error,即使距离很远,微分值也会非常小,移动到target的速度就非常慢了。求导:逻辑回归的损失函数我们采用的是一种交叉熵,而不是线性回归里面的Square Error,解释如下:从推导可以看出,对逻辑回归假若使用Square Error,无论f(w b x)=1还是0,都是靠近最优解的,这显然是不合理的。借用李宏毅老师课件上的一张图可以更加具体地说明这个问题:
逻辑回归(Logistic Regression)与线性回归(Linear Regression)都是一种广义线性模型(generalized linear model)。逻辑回归假设因变量 y 服从伯努利分布,而线性回归假设因变量 y 服从高斯分布。 因此逻辑回归与线性回归有很多相同之处,去除Sigmoid映射函数的话,逻辑回归算法就是一个线性回归。
逻辑回归虽然带有“回归”二字,但其本质却是一个经典的二分类算法。对于线性回归,其输出值可以是任意值,比如我要预测2025年的房价,训练出模型并应用之后得到的是一个具体的数值;而分类的话得到的答案是1 or 0,1表示属于该类,0表示不属于该类。
目录- 1.Sigmoid
- 2.Loss Function的推导
- 3.Discriminative VS Generative
- 4.Multi-class Classification
- 5.逻辑回归的限制:
逻辑回归中用到了一个非常重要的函数:Sigmoid函数,Sigmoid函数也叫Logistic函数,其取值范围是(0 1)。
Sigmoid函数由下列函数定义:
图像:
求导:
2.Loss Function的推导逻辑回归的损失函数我们采用的是一种交叉熵,而不是线性回归里面的Square Error,解释如下:
从推导可以看出,对逻辑回归假若使用Square Error,无论f(w b x)=1还是0,都是靠近最优解的,这显然是不合理的。借用李宏毅老师课件上的一张图可以更加具体地说明这个问题:
距离target越远,我们应该更快地更新参数,即距离越远微分值应该越大,梯度下降时移动的距离就越远。but对于Square Error,即使距离很远,微分值也会非常小,移动到target的速度就非常慢了。
3.Discriminative VS Generative逻辑回归的方法称为Discriminative(判别) 方法;上一篇中用高斯来描述后验概率,称为 Generative(生成) 方法。它们的函数集都是一样的:
区别是:判别方法中的w和b是用梯度下降的方法找到的,而生成方法中的w和b,从上一篇文章可以看出来,是使用极大似然估计,先估计出u1 u2以及共用的协方差矩阵∑,最后代入式子中算出来的。
4.Multi-class Classification最后的输出y1y2 y3是每一项除以各项之和的形式,所以可以把它们看成概率,从图中我们可以看出当softmax用于二分类时,就自动变成了logistics regression。
前面逻辑回归二分类时,损失函数用的是交叉熵的形式,多分类问题同样如此。二分类时,定义的y head为:当xi属于C1时,y head=1否则为0。而在多分类问题中显然不能再如此,多分类问题中,y head定义为一个向量,具体定义形式见上图。
5.逻辑回归的限制:考虑一个简单的二分类问题,有x1 x2两个特征,两个特征值都为0 or 1为C2,否则为C1。在逻辑回归中,输入某一个样本的两个特征值x1,x2,与各自的权重w1 w2相乘,也就是求inner product,最后加上一个bias,得到z,再将z用Sigmoid函数处理,最后与0.5进行比较,就可以判断属于哪一个类别。但是我们将两个特征映射到到一个二维坐标系上,发现根本不可能找到一条直线将两类样本完全分开。这种限制与数据量无关,是逻辑回归自己本身的限制。
鉴于上面这种情况,就需要用到Teature Transformation,即特征转换。用特征转换处理后,使得我们能够用一条直线将C1和C2,也就是上面的红点和蓝点分开。图里面的处理方法是:定义新的x1 x2,x1为点到(0 0)的距离,x2为到点(1 1)的距离,处理后如下图所示:
这时候我们发现,就能够找到一条直线将两类点分开,但在实际应用中,我们往往不能够找到比较好的特征变换的方法。
事实上,Feature Transformation也可以用一个逻辑回归模型来实现,如下所示:
第一个逻辑回归是实现了特征转换,第二个逻辑回归实现了分类。
在这里,就引入了Deep Learning的概念。一个逻辑回归的输入可以来源于其他逻辑回归的输出,这个逻辑回归的输出也可以是其他逻辑回归的输 入。把每个逻辑回归称为一个 Neuron(神经元),把这些神经元连接起来的网络,就叫做 Neural Network(神经网络)。