文章转自【机器学习炼丹术】机器学习
线性回归解决的是回归问题,逻辑回归至关因而线性回归的基础上,来解决分类问题。函数
线性回归(Linear Regression)是什么相比不用多说了。格式是这个样子的:
\(f_{w,b}(x)=\sum_i{w_ix_i}+b\)学习
而逻辑回归(Logistic Regression)的样子呢?
\(f_{w,b}(x)=\sigma(\sum_i{w_ix_i}+b)\)spa
要记住的第一句话:逻辑回归能够理解为在线性回归后加了一个sigmoid函数。将线性回归变成一个0~1输出的分类问题。.net
sigmoid函数就是:
\(\sigma(z)=\frac{1}{1+e^{-z}}\)3d
函数图像是:
线性回归获得大于0的输出,逻辑回归就会获得0.5~1的输出;
线性回归获得小于0的输出,逻辑回归就会获得0~0.5的输出;blog
这篇文章的重点,在于线性回归的参数估计使用的最小二乘法,而而逻辑回归使用的是似然估计的方法。(固然,二者均可以使用梯度降低的方法)。get
举个例子,如今咱们有了一个训练数据集,是一个二分类问题:
上面的\(x^1\)是样本,下面的\(C_1\)是类别,总共有两个类别。it
如今假设咱们有一个逻辑回归的模型:
\(f_{w,b}(x)=\sigma(\sum_i{w_ix_i}+b)\)
那么\(f_{w,b}(x^1)\)的结果,就是一个0~1的数,咱们能够设定好,假设这个数字就是是类别\(C_1\)的几率,反之,1减去这个数字,就是类别\(C_2\)的几率。io
似然简单的理解,就是让咱们上面的数据集出现的几率最大
咱们来理解一下:
样本之间彼此独立,那么上面那个数据集的几率是什么?是每个样本的乘积,这个就是似然Likelihood:
咱们但愿这个w,b的参数估计值,就是能得到最大化似然的那个参数。也就是:
加上负号以后,就能够变成最小化的问题。固然,加上一个log并不会影响整个的w,b的估计值。由于\(L(w,b)\)最大的时候,\(log(L(w,b))\)也是最大的,log是个单调递增的函数。因此能够获得下面的:
【注意:全部的log实际上是以e为底数的天然对数】
log又能够把以前的乘积和,转换成加法。
\(log(L(w,b))=log(f(x^1))+log(f(x^2))+log(1-f(x^3))...\)
而后,为了更加简化这个算是,咱们将\(C_1, C_2\)数值化,变成1和0,而后每个样本的真实标签用\(y\)来表示,因此就能够获得:
\(log(L(w,b))=\sum_i^N{ylog(f(x^i))+(1-y)log(1-f(x^i))}\)
【有点像是二值交叉熵,然而其实就是二值交叉熵。。】
因此其实咱们获得的损失函数是:
\(loss=-log(L(w,b))=-\sum_i^N{ylog(f(x^i))+(1-y)log(1-f(x^i))}\)
以前说了,要找到让这个loss最小的时候的w和b,那怎么找?
【无情万能的梯度降低】
因此计算\(\frac{\partial loss}{\partial w}\),而后乘上学习率就行了。这里就不继续推导了,有耐心的能够慢慢推导,反正确定能推出来的。
这里放个结果把:
\(\frac{-\partial lnL(w,b)}{\partial w_i}=\sum_n^N{-(y^n-f_{w,b}(x^n))x_i^n}\)