逻辑回归

逻辑回归

标签(空格分隔): 逻辑回归 吴恩达 分类


1. 基本内容

此处讨论的是二分类问题,即预测值 \(y\in \{0,1\}\),其中,\(0\) 代表Negative Class, \(1\) 代表 Positive Class。
回归一般是预测连续值,分类是预测离散值,但是逻辑回归预测的是离散值,它其实是一个分类问题,称其“回归”是历史问题。
在逻辑回归中,假设函数 \(h_\theta(x)\) 满足 \(0 \le h_\theta(x) \le 1\)。通常选取如下形式:

\[h_\theta(x) = g(\theta^Tx) \]

其中: $$ g(z) = \frac{1}{1+e^{-z}}$$

\(g(z)\)的函数图像如下所示:

sigmod函数

\(g(z)\) 被称为 Sigmoid 函数或逻辑函数。

此处的假设函数 \(h\theta(x)\) 可以理解为:在参数 \(\theta\) 下,对输入\(x\), 预测值 \(y\) 取值为 \(1\) 的概率。形式化的表示如下:

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

显然,有:

\[P(y=1|x;\theta) + P(y=0|x;\theta) = 1 \]

对于假设函数 \(h_\theta(x) = g(\theta^Tx)\), 如果当 \(h_\theta(x) \ge 0.5\) 时 预测值 \(y=1\)\(h_\theta(x) < 0.5\) 时 预测值 \(y=0\),则有 \(\theta^Tx \ge 0\)\(y = 1\),\(\theta^Tx < 0\)\(y = 0\),

2. 决策边界(Decision Boundary)

决策边界即满足 \(h_\theta(x) = 0.5\) 的区域,此处的 \(0.5\) 是阈值。不同的问题决策边界的形状不一样,使用高次的特征可能产生形状复杂的决策边界。例如使用二阶特征(x^2),可能产生圆或椭圆等。

3. 代价函数

对于逻辑回归,代价函数的形式如下:

\[J(\theta) = \frac{1}{m}\sum_{i=1}^{m}Cost(h_\theta(x^{(i)}), y^{(i)}) \]

其中:

\[ Cost(h_\theta(x),y) = \left\{ \begin{aligned} -log(h_\theta(x)) & & (y = 1) \\ -log(1-h_\theta(x)) & & (y = 0)\\ \end{aligned} \right. \]

注意 \(y\) 的取值只能是1或者0,上述\(Cost\)函数可以合并,因此得到新的代价函数表达形式:

\[J(\theta) = -\frac{1}{m}\sum_{i=1}^{m} [ y^{(i)}log(h_\theta(x^{(i)})) + (1-y^{(i)})log(1-h_\theta(x^{(i)}))) ] \]

4. 梯度下降

梯度下降的目标是最小化代价函数\(J(\theta)\)

过程为:

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

(注意同时更新所有的 \(\theta_j\))

解出上式中的偏导数,得到:

\[Repeat\ \{ \ \theta_j := \theta_j - \alpha \sum_{i=1}^{m}(h_\theta(x^{(i)}-y^{(i)})x^{(i)} \} \ \ \]

(注意同时更新所有的 \(\theta_j\))

这个形式同线性回归的形似看起来是完全一样的,但是在线性回归中,\(h_\theta(x) = \theta^Tx\), 而在逻辑回归中, \(h_\theta(x)=\frac{1}{1+e^{-\theta^Tx)}}\)

在逻辑回归中也可以使用特征缩放来加速收敛,另外,选择参数 \(\alpha\) 的方法同线性回归是一样的。

5. 多分类问题

对于将元素分成 \(k\) 类的问题(即\(y\in\{1, 2, \cdots, k\}\)), 训练 \(k\) 个二分类器 \(h_\theta^{(i)}(x)\),每次训练时,将第 \(k\) 类元素分为一类,其余元素分为一类,得到如下结果:

\[h_\theta^{(i)}(x) = P(y=i|x, \theta) \]

完成上述训练后,在分类时,将输入元素带入每个分类器中,求得 \(h_\theta^{(i)}(x)\), 根据其物理意义,选取此值最大的一个,即为最可信的分类,故将该元素分入此类。

上述方法将二分类问题的解法运用到了多分类问题中。

6. 欠拟合(Underfitting 或 high bias)与过拟合(Overfitting)及正则化

如果对训练集数据,假设函数产生的结果跟实际结果相比,偏差较大,则称其为欠拟合。反之,如果选取了过多的特征,以致对于训练集数据能产生几乎没有偏差的结果,但是不能很好的泛化到新的数据实例中,则称之为过拟合。
如下图所示(图片均来自吴恩达教授机器学习公开课截图)。

过拟合示例1,来自吴恩达教授讲课截图

过拟合示例2,来自吴恩达教授讲课截图

产生过拟合的原因,往往是特征数目太多,相比之下,训练集数据太少导致的。针对其产生原因,解决过拟合问题主要有两个方法,第一个是人工的去掉一些不太重要的属性,使特征数量减少。另一个是正则化,即尽量选取小的参数\(\theta_j\), 使得特征都保留,但每个特征只对最终结果产生较小的影响。正则化是被广泛使用的一个方法。

正则化事实上是在代价函数里增加了惩罚项,例如,如果不希望去掉特性 \(x_3\), 但是又不想让它影响太大,可以加入正则化项 \(1000*\theta_3^2\) 来惩罚,即当 \(\theta_3\) 取值较大时,代价函数的值也很大,逼迫 \(\theta_3\) 只能取趋近于0的值。

现实问题中,用户并不能很清楚的知道哪些特征更重要,哪些不重要,因此加入的正则化项为 \(\lambda \sum_{j=1}^{n}\theta_j^2\) (注意不包含 \(\theta_0\), 虽然这没有多大影响,但通常这么写)。使得整体上每个参数取值都比较小。参数较小能使得拟合出来的函数更为光滑(不会证明)。

\(\lambda\) 称为正则化参数,其取值不能过大(会造成欠拟合),也不能过小,有自动选取\(\lambda\) 的方法。

最后,代价函数的形似如下(以线性回归为例):

\[J(\theta) = \frac{1}{2m} \left [ \begin{aligned} \sum_{i=1}^{m}(h_\theta(x^{(i)})- y^{(i)})^2 + \lambda\sum_{j=1}^{n}\theta_j^2 \end{aligned} \right] \]

posted @ 2016-07-25 20:01  beisong  阅读(452)  评论(3编辑  收藏  举报