您的位置:首页 > 其它

Machine Learning - Andrew Ng on Coursera (Week 3)

2016-03-28 10:15 197 查看
本篇文章将分享Coursera上Andrew Ng的Machine Learning第三周的课程,主要内容有如下,详细内容可以参考文末附件:

分类问题及模型表示

逻辑回归模型

多类别的分类问题

解决过拟合问题


分类问题及模型表示

首先Andrew给出了几个例子来解释什么是分类问题,包括垃圾邮件的识别、在线交易的欺诈判别以及肿瘤是良性还恶性。从线性回归对连续值的预测转为了对离散值的预测。在只有两类的分类问题中,用0和1来表示否与是。在此情况下,便不宜用线性回归函数来分类,而需要选择另外的[Math
Processing Error]来解决此类问题,并且满足[Math
Processing Error],于是选择了Sigmod函数,又称为Logistic函数。Sigmoid函数是一个在生物学中常见的S型的函数,在信息科学中,由于其单增以及反函数单增等性质,Sigmoid函数常被用作阈值函数,将变量映射到0,1之间,还被广泛应用于神经网络的激活函数中。因此,逻辑回归模型假设如下:

[Math
Processing Error]

[Math
Processing Error]

[Math
Processing Error]

而[Math
Processing Error]的输出结果,则表示在给定[Math
Processing Error]和[Math
Processing Error]条件下,[Math
Processing Error]的概率,即:

[Math
Processing Error]

在使用时我们可以认为:

如果[Math
Processing Error],则[Math
Processing Error]。

如果[Math
Processing Error],则[Math
Processing Error]。

接下来引入了决策边界(Decision Boundary)的概念,如下图中紫色的斜线所示,这条线的表示实际上就是[Math
Processing Error]的表达式,因此它是假设公式[Math
Processing Error]的属性,而非数据集的属性。



对于不同的假设公式,当变量的数量、阶次不一样时(如双变量二次方程可以表示椭圆,更高阶的方程则可以表示更多非线性的决策边界),可以表示出不同的决策边界,以更好地将数据集分类并预测新数据的分类结果。


逻辑回归模型

在定义了逻辑回归模型的[Math
Processing Error]之后,要求[Math
Processing Error]还需要定义代价函数。回顾线性回归的代价函数,并将其变形写成更一般的形式,对于不同的问题只需要替换其中的[Math
Processing Error]即可,如下所示:

[Math
Processing Error]

[Math
Processing Error]

线性回归中,代价函数是凸函数,否则无法使用梯度下降的方式进行求解。好在逻辑回归的代价函数有着良好的性质,在无论[Math
Processing Error]等于1还是0,都是单调的凸函数(函数图像可参见文末附件中相应部分),其代价函数[Math
Processing Error]如下所示:



在将此代价函数代入[Math
Processing Error]的时候有个小技巧,可以将两个条件表达式转化成一个表达式:

[Math
Processing Error]

对上式就可采用梯度下降法拟合参数[Math
Processing Error]了,迭代更新参数的方法同线性回归一样,不过需要注意的是在线性回归中[Math
Processing Error],而逻辑回归中[Math
Processing Error]。

此外,还提到了几种梯度下降的优化算法,分别补充了一篇相关的文章,如果感兴趣可以做一个简单了解:

Conjugate
Descent

BFGS

L-BFGS

本课程中不要求理解优化算法的原理,也无需自己编写这些算法的代码,除非是数值计算方面的专家或者爱好者。一般直接调用现有的库就可以了,高效且方便。这些算法不需要选择具体的[Math
Processing Error]值,可以让算法更快收敛。接下来用Octave的
fminunc
命令实现了代价函数的优化求解过程。


多类别的分类问题

当对象类别多于两个时,如邮件标识、医学诊断、天气等等,原有的双类分类问题就变成多类别的分类问题,如下图所示:



此时可以采用一对多(one-vs-all)的分类方法,即对每一类训练一个分类器,将该类与其他所有类别分开。然后再用这些分类器判定新到数据属于各类的概率,取其最大者,如下图所示:




解决过拟合问题

首先以三个线性回归的例子、三个逻辑回归的例子分别说明了什么是欠拟合(High bias)、过拟合(High variance)和刚刚好(Just right fitting...恕我也不知道怎么翻译贴切了)。以及解决过拟合的两种方法:

减少特征值的数量,采用人工或者算法自动选择;

正则化,矩阵特征值大小,看特征对结果的贡献赋予权重。

然后引入了正则化(Regularization)的概念,即通过引入惩罚权重降低高次项对拟合结果的影响,简化假设公式,从而避免过拟合的现象。正则化代价函数如下所示:

[Math
Processing Error]

分别是线性回归和逻辑回归为例,讲解了权重[Math
Processing Error]在更新参数时的策略。

对于线性回归,在使用Normalization方法求解时,如果样本的数量小于特征的数量时,[Math
Processing Error]是不可逆的(奇异矩阵)或者退化的(Degenerated);如果[Math
Processing Error],[Math
Processing Error]则该矩阵是可逆的(非奇异矩阵),可以用该方法求解。

[Math
Processing Error]

附本次分享演示文档:ML-Coursera-Week3

到本课程的最后,Andrew说如果你掌握了到目前为止所学的课程,那么恭喜你,已经比硅谷中大部分的工程师牛逼了,可以用机器学习做产品赚大钱了。不管你们信不信,反正我是信了~
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: