C18f441eea424472fcd136dea963ecda
Logistics 回归算法 & SoftMax 回归算法

序言

在上一篇文章中我们介绍了普通最小二乘线性回归算法,并进行了较为详细的推导。同时通过分析其过拟合的问题,推导出了另外三个算法,Ridge回归算法,LASSO回归算法,以及弹性网络。之后简要的分析了他们的优缺点。

今天我们来接着介绍算法。为什么说是算法而不是回归算法呢,是因为逻辑回归和Softmax回归算法是分类算法

Logistic回归

在《Regression回归算法》中我们介绍了,线性回归算法。我个人是这么拆分的,线性-回归-算法,回归指的整体的算法是回归算法而不是分类算法,线性指的是在算法回归中,假定输入输出之间关系函数是$y = kx + b$这个线性方程。

那么再看看Logistic回归,显然这里肯定就是换了另一个种类的方程咯。对的,不过在逻辑回归中这里有一点不太一样,它的输出只有0和1,它假定输出 $y = 1$的概率$P$,自然 $y = 0$的概率就是 $1-P$,而逻辑回归中假定的方程就是这个$P$。

现在我们来看看这个方程是什么,如下公式1.1所示。这个公式没有接触过的朋友可能不太好想这是一个什么函数,但是结合着我们高数的极限知识,我们肯定知道这个函数在$+\infty $的时候去趋近于1,在$-\infty$的时候趋近于0,而且是快速收敛的。建议百度sigmoid函数看看这个函数的图(Logistic算法用的就是sigmoid函数)。
$$
p=h_\theta(x) = g(\theta^Tx) = \frac{1}{1+e^{-\theta^Tx}} \ \ \ 公式1.1
$$

之前在线性回归算法中我们知道了求最佳$\theta$的流程就是先写出他的似然函数(这个公式表示了预测正确的概率),随后求最大似然估计(想办法让这个预测正确的概率最大),最终通过求最大似然估计的结果,得到一种调整$\theta$的最佳方案。

注:这里用的就是咱们在后期会介绍的EM算法思路
$$
L(y|x;\theta)=(h_\theta(x))^y(1-h_\theta(x))^{1-y} \ \ \ 公式1.2
$$

$$
L(\vec y|x;\theta)=\prod_{i=1}^{m}(h_\theta(x^{(i)}))^{y^{(i)}}(1-h_\theta(x^{(i)}))^{1-y^{(i)}}\ \ \ 公式1.3
$$
这个逻辑回归的似然函数为上述公式1.3(由公式1.2易得)。之后对这个似然函数进行求导,我们都学过导数,在学导数的时候都知道,导数代表着值变化的趋势和速度。这里我们通过公式1.3对求对数,然后再对 $\theta_j $求导得到导数(公式1.4),这个导数就代表了针对$\theta_j $的正确预测的概率的变化趋势。如果让 $\theta$加上这个导数就可以保证让这个公式变大,直至最大为止。所以逻辑回归的调参如公式1.5,公式1.6所示,那么为什么是两个,在调参章节中会说明。
$$
\frac{\partial \ell(\theta)} {\partial \theta_j} = \sum_{i=1}^m(y^{(i)} - h_\theta(x^{(i)}))x_j\ \ \ 公式1.4
$$

$$
\theta_j = \theta_j + \alpha \sum_{i=1}^m(y^{(i)} - h_\theta(x^{(i)}))x_j\ \ \ 公式1.5
$$

$$
\theta_j = \theta_j + \alpha (y^{(i)} - h_\theta(x^{(i)}))x_j \ \ \ 公式1.6
$$
好的,到这里逻辑回归的调参我们就知道了,特别的说明的是,这里的 $\alpha$就是传说中的学习速率,而这个参数我们要注意的是,它不能太大(会错过最大值而不能收敛),也不能太小(会收敛到局部最小值)。

既然我们有了调参,肯定也会有一个损失函数来表示现在预测的怎么样吧,这里的思路很简单。你不是似然函数是越大越好么,那么我把你来个倒数不就好了么,最简单的做法就是给求对数之后的公式1.3,添加一个负号。所以它的损失函数如公式1.7。
$$
loss(y^{(i)},\hat y^{(i)}) = -\ell(\theta) = \sum_{i=1}^m ln(1+e^{(1-2y^{(i)})\theta^T x^{(i)}}) \ \ \ 公式1.7
$$
最后,想说从算法分类结果只能为1或者0就可以看出,逻辑回归虽然名字带了回归两个字,但是其实是一个分类算法。而接下来的SoftMax回归算法则是逻辑回归算法的一种拓展,这个在下一节里说。

SoftMax回归

在逻辑回归中,最终的分类结果,只有两类。这显然不是适用于很多其他的情况。所以 SoftMax 对逻辑回归进行了一般化,适用于 K 分类的问题。

针对K分类的问题,我们的小伙伴 $\theta$ 参数就不在是一个向量了,我们设第 K 类的参数为向量 $\theta_k $, 则有 n 个属性的参数就成了一个二维矩阵 $\theta_{k*n}$。在Softmax回归中,我们设预测对第k类的概率为公式2.1。
$$

top Created with Sketch.