Home
11/15/2024

逻辑回归 入门版

作为我的机器学习系列笔记之一,强烈建议阅读专栏下的其他文章。 采用的资源:吴恩达机器学习课程

计算概率

与线性回归不同的是,我们利用逻辑回归的时候,解决的往往是概率问题。

比如 xx 是邮件,而我们的目的是求出邮件时垃圾邮件的概率 y^\hat{y}

进一步,我们可以将这个概率转化成二元分类,从而解决分类问题。例如电子邮件是否为垃圾邮件。这些内容会在其他文章中介绍。

Sigmoid 函数

我们希望 y^\hat{y} 的值介于 0 到 1 之间,很显然如果我们继续利用线性回归的方法去计算的话,y^\hat{y} 并不能保持在这个范围内。

因此,我们需要引入一个非线性函数来将线性回归的输出映射到 0 到 1 之间。

最常用的非线性函数之一是 Sigmoid 函数。y(x)=11+exy(x)=\frac{1}{1+e^{-x}}

Sigmoid函数图像

从这个图像可以看出,当 xx 为负无穷小的时候,y(x)y(x)趋近于 0;当 xx 为正无穷大的时候,y(x)y(x)趋近于 1;当 xx 处于 0 附近的时候,y(x)y(x)的值会迅速从 0 到 1 增长。

线性函数的转化

我们可以将线性回归的输出 zz 输入到 Sigmoid 函数中,得到 y^\hat{y}。其中z=b+w1x1+w2x2++wnxnz=b+w_1x_1+w_2x_2+\cdots+w_nx_n

线性函数的转化

对数损失函数

对比线性回归的损失函数,逻辑回归的损失函数是对数损失函数

L(y^,y)=ylog(y^)(1y)log(1y^)L(\hat{y},y)=-y\log(\hat{y})-(1-y)\log(1-\hat{y})

其中 y^\hat{y}Sigmoid 函数的输出,yy 是真实标签。这个损失函数首先一眼看上去,肯定没有线性回归的那个损失函数直观。具体他是怎么推导的,如下:

逻辑回归的损失函数推导

首先要明白逻辑回归解决的是概率问题,即输出是 0 到 1 之间的概率值。 我们希望输出是 1 的概率越大越好,即p输出为1p_{输出为1}越大,损失函数越小,反之相反。

L(p)={log(p)p是y为1的概率log(1p)p是y为0的概率L(p)= \begin{cases} -log(p) \text{p是y为1的概率}\\ -log(1-p) \text{p是y为0的概率} \end{cases}

用一个巧妙的方法把它写成一个函数

L(p,y)=ylog(p)(1y)log(1p)L(p,y)=-ylog(p)-(1-y)log(1-p)

这里的 p 其实就是 sigmoid 函数

后续步骤

作为一个简单的入门版了解,我们只需要知道之后的过程和线性回归一样,通过梯度下降法来更新参数,并用损失函数来衡量模型的好坏。