目录
二、分类问题的估值 Hypothesis Representation
五、简化的代价函数与梯度下降Simplified Cost Function & Gradient Descent
5.3 梯度下降 Advanced Optimization
7.4 正则化线性回归 Regularized Linear Regression
7.5 正则化逻辑回归 Regularized Logistc Regression
复习Andrew Ng的课程Machine Learning,总结分类、逻辑回归笔记一篇,涵盖课程week3。
一、分类问题 Classification
线性回归可以对连续的模型进行估值(比如房价和房屋面积的关系),对于离散的模型估值(是为1,否为0)存在诸多问题。
- 对于分类问题,线性回归容易被个别训练样本影响
- 线性回归的估值
或
没有明确的意义
因此,分类问题引入逻辑回归Logistic Regression。于是,分类的最终输出是或
。逻辑回归的估值必须是一个值域
的函数,用做分类问题的算法
二、分类问题的估值 Hypothesis Representation
我们希望逻辑归回的估值满足,于是引入两个函数
令
从而得到分类问题的估值
对于这个估值的解释是这样的。在给定的情况下,对
的概率的估计值。
,probability that
,given
,parameterized
。
那么,当时,
;当
时,
。
举个栗子,是肿瘤大小的训练集。
表示有70%的概率,该肿瘤是恶性的。
三、分类问题的决策边界 Decision Boundary
根据前面讨论的结果。
估值
如果分类边界本身就是线性(Logistic Boundary Linear)的,即,取
,boundary是
,那么得到决策边界是
,是个直线方程。
如果分类边界本身是非线性(Logistic Boundary Non-Linear)的,即,取
,boundary是
,那么得到决策边界是
。
四、分类问题的代价函数 Cost Function
这里面涉及到一些数学知识。知道写下这篇博客,我还没有从数学层面上理解Andrew Ng说的Convex Convergence的意义。当然了,Andrew Ng也说了数学层面上该如何解决。我们先关注一下直觉上的Cost Function。
为逻辑回归选择一个Convex Convergence的代价函数,形式如下。
为什么是这种形式呢?我们直觉感受一下。也就是Andrew Ng所说的Cost Function Intuition。
当时,
越接近1,
越接近于0。
当时,
越接近0,
越接近于0。
这就达到了估值越接近真值,代价函数越接近0。这张示意图的代码可以到这里下载//download.csdn.net/download/qpeity/12113456。
五、简化的代价函数与梯度下降Simplified Cost Function & Gradient Descent
5.1 简化代价函数
第四节里面描述的内容是针对一个训练样本而言的。
注意:或
对每个训练样本只有一个成立。上面的公式简化为
对于有个样本的训练集,给出代价函数
。
也就是
5.2 梯度下降推导及结论
与线性回归问题一样,我们求得代价函数关于参数各个维度的导数,推导过程如下:
- 已知式
- 对
求偏导数得到
- 结合
对
中求内倒数部分进一步推导得到
- 将
代入
得到
就是步长。为了使代价函数最小,我们要同步更新
,不断迭代直到找到局部最优解,这就是最终的结论
。公式
和线性回归中同步更新
的公式形式上完全一样,只是
改变了。
5.3 梯度下降 Advanced Optimization
对于求解梯度下降,可以使用Naive的Gradient Descent。但是,这样Naive的实现方法效率并不高,计算也不够简单。
Andrew Ng给出了三种Advanced Optimization的方法,这些已经超出了机器学习课程的范围,具体怎么实现这些算法,他本人也是刚刚搞得明白(给大神跪了Orz)。这三种Advanced Optimization就是:
- Conjugate Gradient(共轭梯度?)
- BFGS
- L-BFGS
使用这些Advanced Optimization的优点是:
- 不需要人工选择学习率
- 比Naive的Gradient Descent更快
使用这些Advanced Optimization的缺点是:
- 算法更复杂
课程中,Andrew Ng建议,不要自己设计逻辑回归代价函数梯度下降的算法。这些算法异常复杂。除非你在数值计算领域特别的牛逼!!最好使用octave内置的函数库来做这些!!怎么来利用octave内置函数呢?我们举个例子。
逻辑回归的参数,假设逻辑回归的代价函数是
,分别求偏导数
然后用octave内置函数fminunc来求解。
六、多类别分类
将多类别分类变成二分类(One-vs-Rest):
- 将
分类变成
个二分类问题
- 每次分两类:
类、其余
类的合并
- 每次都形成新的伪训练集,求出
One-vs-Rest示意图。
此时,估值函数的形式和意义发生了一些变化。对每个分类我们训练一个估值
,用来预测
的概率。当有一个新的特征
输入时,我们用所有的
做估值,取概率最大的那个作为分类的估值。原文描如下:
- Train a logistic regression classifier
for each class
to predict the probability that
.
- On a new input
, to make a prediction, pick the class
that maximized
.
七、过拟合问题
7.1 What is overfitting
Overfitting: If we have too many features, the learned hypothesis may fit the training set very well(), but fail to generalize to new example(predict on new examples).
当特征过多时就会出现过拟合问题,这里的特征过多指的是:
- 特征的多项式维数过高
或者
- 特征太多,
7.2 Addressing overfitting
Options:
1.Reduce number of feature:
- Manually select which features to keep
- Model selection algorithm(Later in course)
2.Regularization:
- Keep all the features, but reduce magnitude / values of parameters
- Works well when we have a lot of features, each of which contributes a bit to predicting y.
翻译一下,解决过拟合问题有两种可选的办法:
1.减少特征数量:
- 人工选择要保留的特征(减少特征)
- 模型选择算法(后面会讲到,这里暂不讨论)
2.正则化:
- 保留所有特征,但减小参数
的量级
- 当有很多特征时正则化性能更好,每个特征都会在预测时体现价值
7.3 正则化后的代价函数
正则化就是想办法让变小,当
时,
就几乎不起作用了。线性回归代价函数变为如下形式。
经过正则化后的代价函数,多了一个,我们称
为Regularization Parameter正则化参数。代价函数由两部分组成:
- 前一部分
用来适应训练集;从1到m共m个训练集
- 后一部分
用来减小参数
的量级,防止过拟合;从1到n共n个特征。
为什么不限制呢?观察
,其中
不随特征
的变化而改变
的值,因此不限制
。
同理,逻辑回归的代价函数变为如下形式。
7.4 正则化线性回归 Regularized Linear Regression
由于代价函数中加入了,所代价函数的导数以及梯度下降都发生了变化。由于
项不会因
变化对
造成影响,导数和梯度下降公式分为两类。
导数:
梯度下降:
或者写作
基于Normal Equation的矩阵式经过正则化以后变为
其中,后面的那个矩阵P,迹1,1位置为0,迹其他位置全部是1,除了迹以外其余元素为0的矩阵。
7.5 正则化逻辑回归 Regularized Logistc Regression
逻辑回归的梯度下降和现行回归的形式一样,这个5.2节中已经推导。增加了正则化项以后,逻辑回归梯度下降公式在形式上和线性回归梯度下降也是一致的,只是的含义不同了。
导数:
梯度下降: