逻辑回归
逻辑回归
标签(空格分隔): 逻辑回归 吴恩达 分类
1. 基本内容
此处讨论的是二分类问题,即预测值 \(y\in \{0,1\}\),其中,\(0\) 代表Negative Class, \(1\) 代表 Positive Class。
回归一般是预测连续值,分类是预测离散值,但是逻辑回归预测的是离散值,它其实是一个分类问题,称其“回归”是历史问题。
在逻辑回归中,假设函数 \(h_\theta(x)\) 满足 \(0 \le h_\theta(x) \le 1\)。通常选取如下形式:
其中: $$ g(z) = \frac{1}{1+e^{-z}}$$
\(g(z)\)的函数图像如下所示:
\(g(z)\) 被称为 Sigmoid 函数或逻辑函数。
此处的假设函数 \(h\theta(x)\) 可以理解为:在参数 \(\theta\) 下,对输入\(x\), 预测值 \(y\) 取值为 \(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. 代价函数
对于逻辑回归,代价函数的形式如下:
其中:
注意 \(y\) 的取值只能是1或者0,上述\(Cost\)函数可以合并,因此得到新的代价函数表达形式:
4. 梯度下降
梯度下降的目标是最小化代价函数\(J(\theta)\)。
过程为:
(注意同时更新所有的 \(\theta_j\))
解出上式中的偏导数,得到:
(注意同时更新所有的 \(\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)\), 根据其物理意义,选取此值最大的一个,即为最可信的分类,故将该元素分入此类。
上述方法将二分类问题的解法运用到了多分类问题中。
6. 欠拟合(Underfitting 或 high bias)与过拟合(Overfitting)及正则化
如果对训练集数据,假设函数产生的结果跟实际结果相比,偏差较大,则称其为欠拟合。反之,如果选取了过多的特征,以致对于训练集数据能产生几乎没有偏差的结果,但是不能很好的泛化到新的数据实例中,则称之为过拟合。
如下图所示(图片均来自吴恩达教授机器学习公开课截图)。
产生过拟合的原因,往往是特征数目太多,相比之下,训练集数据太少导致的。针对其产生原因,解决过拟合问题主要有两个方法,第一个是人工的去掉一些不太重要的属性,使特征数量减少。另一个是正则化,即尽量选取小的参数\(\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\) 的方法。
最后,代价函数的形似如下(以线性回归为例):