吴恩达机器学习笔记:Week3

Logistic Regression

二分类问题,日常解决问题中理解 {0,1} 数据的含义

为了尝试分类,一种方法是使用线性回归,将所有大于0.5的预测映射为1,所有小于0.5的预测映射为0。然而,这种方法并不适用,因为分类实际上不是一个线性函数。

logistic Regression(叫回顾但是 处理分类)

始终成立!

注意区分 x 和X :

是一个 (n+1)x 1 维的向量,代表一个数据的各个特征。而X 代表整个数据集
其中:

提出Sigmoid函数(logistic函数):

将(1)(2) 两个式子合并:

如果 意味着,有70%的概率我们的输出是为1的。用条件概率来表示更为清楚:

在输入样本x 和 参数 的条件下,y=1的概率。(y=0的概率就是 1- P(y=1),二分类问题)

吴恩达机器学习笔记:Week3
sigmoid.png

决策边界(decision boundary)

让我们更好的理解 logistic regression 以及 假设函数h(x) 是如何进行计算的

从sigmoid函数图像可以看出来 当z>0时候,g(z)>0.5;当z<0的时候,g(z) < 0.5;

也就是说当 >0 时候,,可以得到

相反得 y = 0 的预测。

非线性可分的决策边界是如何产生的

吴恩达机器学习笔记:Week3
DecisionBoundary.png

数据是用来拟合参数的,决策边界是由参数决定的。给出参数的多项式表示之后,基本确定了决策边界了,然后通过数据来拟合较好的参数。

也就是说 所形成的图像不一定是一条直线,还有可能是个圆、椭圆……甚至更加复杂的图像来fit我们的数据。

Cost Function

不可以按照线性回归的形式给出LogisticRegression的损失函数,因为经过sigmoid之后,按照线性回归来推导,曲线是一个很复杂的曲线,是非凸函数。不一定能收敛到全局最优点。

Logistic Regression 中的损失函数:

这样书写的 保证了 是一个凸函数,可以进行优化。

吴恩达机器学习笔记:Week3
y=0.png
吴恩达机器学习笔记:Week3
y=1.png

将损失函数合写成一个式子:

AndrewNG直接给出了的表达式,并说明这个式子是从 统计学的极大似然估计推出来的。下面给出证明:

首先我们拿到的是预测(假设)函数

然后我们的分类任务是以及

我们将其整合为一个式子(这个地方跟Andrew的不一样了):

当y = 0 P = 1-h(x)

当y = 1 P = h(x)

P是我们的分类任务,也是离散型的概率事件。据此进行参数估计,来推导最优的

首先进行极大似然,得到似然函数为:

通常操作,连乘不好求导,去似然函数对数,变成连加:(这个式子就是Andrew的cost function)

此时我们要求的是似然函数的极大值,应用梯度上升求最大值,我们可以通过引入转换为梯度下降任务,得到损失函数为:

通过对 进行求导,即可得到梯度下降的公式:

梯度下降 更新参数:

Advanced Optimization

BFGS(牛顿法、拟牛顿法)、Conjugate gradient(共轭梯度)、L-BFGS(限域拟牛顿法)

高级优化算法的优点:

  • 不需要手动pick 学习率
  • 通常比梯度下降收敛速度要快很多

缺点就是:比较复杂(考虑学习成本)

优化算法:梯度下降

多分类问题

分类目标不再是{0,1}问题,而是有多个类别进行分类{0,1...n}

one vs all (one-vs-rest)

如果有N个类别,则需要进行N次分类,每次分类出一个类别,具体分类过程如下:

吴恩达机器学习笔记:Week3
MulticlassLR.png

思想就是:每次选择一个类,让将其他类都看作是第二个类,这样就简化成一个二分类问题了。

正则化(防止过拟合)

过拟合:模型较为复杂或用了较多特征,对于训练集拟合效果非常好,但是测试集上表现很差。高方差(high variance)

欠拟合:模型较为简单或用了很少的特征,拟合效果不好,具有高偏差(high bias)

以线性回归举例说明:

吴恩达机器学习笔记:Week3
Overfitting.png

防止过拟合:

  1. 减少特征数量:

    • 手动选择要保留的特性。

    • 使用模型选择(model selection)算法。

  2. 正则化

    • 保持的所有特征(属性),但是减少参数的数量级
    • 当我们有许多稍微有用的特征时,正则化表现很好

加入正则化项的损失函数

如果我们的假设函数发生过拟合,我们可以通过增加函数中某些项的cost来减少它们的权重。(增加惩罚项)

例如:

我们想尽量消除 的影响,那我们在损失函数中加入对这两项的惩罚,变成:

如果还想令损失函数尽可能的小,那么就必须尽可能的接近于0,这样也会减少 这两项的大小,尽可能的消除他们的影响使得我们的 尽可能接近

==正则化==

取一些小的值给参数:(等价于)

​ 简化了假设模型

​ 更小的倾向到过拟合

可以正则化所有的参数,来防止过拟合:

其中叫做正则化项系数,它决定了参数过大的代价。

一方面可以令模型更好的拟合训练数据,另一方面防止模型过拟合。正则化项系数的目的是在两个作用之间做trade-off(权衡)

如果过小,不能起到有效的防止过拟合的作用,如果过大,又会导致欠拟合。

线性回归的正则化

梯度下降算法引入正则化

引入正则化项后的梯度下降算法:

其中可以进行化简之后得到:

其中的系数 是 总微小于1的一个项(比如0.99 因为都远小于m)

标准方程引入正则化

标准方程为:

引入正则化后的标准方程为:

回想一下,如果m < n,那么是不可逆的,

正则化还起到了一个作用,对于 可能是奇异矩阵或者是 不可逆的,但是是一个大于0的数字,保证了是一个可逆矩阵或者非奇异矩阵,

Logistic Regression 的正则化

Cost Function公式:


引入正则化之后的CostFunction:

引入正则化后的 梯度下降的式子:

Repeat:{

}