[machine-learning学习笔记]逻辑回归

逻辑回归

目的:分类

一、Sigmoid函数

​ 公式如下:

\[g(z) = \frac {1}{1+e^{-z}} \]

sigmoid

​ 图中\(Sigmoid\)函数将任意输入映射到\([0,1]\)区间,我们通过线性回归的到预测值,再将该值映射到\(Sigmoid\)函数中,这样就完成了值到概率的转换。变成了分类任务。

​ 利用\(Sigmoid\)函数得出的预测函数:

\[h_{\theta} = g(\theta^Tx) = \frac{1}{1+e^{-\theta x}} \]

​ 其中

\[\theta_0 + \theta_1x_1+,...,+\theta_nx_n = \sum_{i=1}^{n}\theta_ix_i = \theta^Tx \]

​ 这个就和线性回归中的函数很像了。

​ 由于是二分类,只有\(True\)\(False\)两种结果,因此由上述函数得到的预测分类的概率分别为:

\[P(y=1|x;\theta) = h_{\theta}(x) \]

\[P(y=0|x;\theta) = 1-h_{\theta}(x) \]

​ 因此

\[P(y|x;\theta) = (h_{\theta}(x))^y(1-h_{\theta}(x))^{1-y} \]

​ 解释:这里只不过是把上面\(P(y=1)P(y=0)\)整合了一下。

​ 利用似然函数来得到损失函数(如果不太清楚直接看损失函数就可以,这里损失函数与线性回归不一样),似然函数如下:

\[L(\theta) = \prod_{i=1}^m(h_{\theta}(x_i))^{y_i}(1-h_{\theta}(x_i))^{1-y_{i}} \]

​ 将似然函数取对数得损失函数为:

\[l(\theta) = logL(\theta) = \sum_{i=1}^{m}(y_ilogh_{\theta}(x_i)+(1-y_i)log(1-h_{\theta}(x))) \]

​ 我们得到代价函数为(\(for\quad each \quad\theta\)):

\[J(\theta) = -\frac{1}{m}\sum_{i=1}^m[l(\theta)] \]

​ 我们的目标为最小化代价函数。

​ 那么,为什么要这样来构造损失函数呢?

​ 因为如果按照线性回归的方法来构造损失函数,那么得到的函数并不是凸函数,由于初始化参数不同,很容易走到局部最小值点而非全局最小值点。采用如上方法构造的函数为凸函数,这使得其能更好的利用到梯度下降算法中。(关于推导记住就行)

​ 我们采用梯度下降法时的偏导数如下,

\[\frac {\partial}{\partial_{\theta_j}}J(\theta) = \frac{1}{m}\sum_{i=1}^m(h_{\theta}(x_i)-y_i)x_i^j \]

​ 因此,我们进行同步更新时的柿子:(看起来和线性回归差不多)

\[\theta_j = \theta_j-\alpha\frac {\partial}{\partial_{\theta_j}}J(\theta) \]

​ 总结:逻辑回归是要预测二分类问题,在线性回归的基础上增加了一个\(sigmoid\)外壳,然后改写损失函数,进而将其变为凸函数,从而更好地进行梯度下降操作。

posted @ 2023-03-09 18:08  xiaodangao  阅读(25)  评论(0编辑  收藏  举报