Andrew NG Coursera教程学习笔记-Week3

Classification and Representation

Classification

此小节主要讲了哪些情况下需要使用分类模型,以及为什么线性回归模型不能很好的解决分类问题。
Andrew举了一个例子来说明为什么线性回归模型不能很好地解决分类问题。如下图:


tumor problem with linear regression model

由上图可知,如果我们要对tumor进行分类(malignant or benign?)那么就需要设定一个阈值(threshold), 比如此例设定为0.5,当y>=0.5时,我们认为就是1,即malignant,同理y<0.5时,就认为是0,即benign。貌似也可以去做预测啊,我们接着看下幅图:


linear regression with another value

当我们的样本数据有了新的数据后,我们的线性回归模型曲线会调整角度,但此时,如果仍然以0.5为阈值的话,显然有一部分数据就会预测错误。
直观上,从图形上看也能看出来,线性模型的曲线(直线)很难很好的拟合样本。
因此,在这节课开始,将引入logistic regression。

另外有几个概念,要知晓。
两分类的问题我们也叫做binary classification problem。而如果是更多分类类型,则叫做multi-class classification problem。
而在binary classification问题中,通常分为0和1, 0代表negative class, 1代表positive class。

Hypothesis Representation

sigmoid function

我们期望我们的模型输出为0到1之间的数值,从而可以分类为0或1.因此我们的模型需要满足如下条件:

0<=h(θ)<=1

数学中有一个函数恰好可以实现这种操作,即给定一个参数,会输出0~1之间的数值,这就是sigmoid function 或者叫做logistic function,这个function的定义如下:


sigmoid function or logistic function

下面我们可以把我们之前的线性模型的输出结果作为参数传递给该sigmoid函数,这样其输出就可以变为0~1之间的数值。因此,将h(θ)代入z就有如下公式:


hypothesis representation.png

最终其函数曲线如下:


sigmoid function
hypothesis interpretation

我们sigmoid化后的假设其输出是一个0~1的数值,而这个数值显示的其实是一个概率。这个概率就是预测y=1的概率。那么,相应的y=0的概率就是1-h(x)。我们也可以如下表示:


probability

统计概率的表示法,P(y =1 | x; θ)表示当取值为x,且this probability is parameterized by θ,其输出y为1的概率。

Decision Boundary

此小节主要讲了什么是decision boundary,以及它是怎么产生的,并从直觉上理解这个东西。
从上一小节,我们已经知道sigmoid函数的样子,从图形中可以看到当横轴坐标大于等于0时,其值大于等于0.5,也就是说输出为1的概率大于等于0.5,因此我们就可以分类为1;同样道理,当其横坐标小于0时,我们就可以分类为0。而上一节我们知道这个横坐标实际是我们的h(x)函数的输出。所以可以得出如下结论:
当如下公式成立时,就认为概率>=0.5,也就归类为1:


equation

当如下公式成立时,就认为概率<0.5,也就归类为0:


equation

接着,Andrew举了一个例子,来让我们理解什么是decision boundary。
decision boundary

这里实际假设我们已经训练好了这个模型,其theta值为[-3; 1; 1]的vector,这是我们要根据上边的公式就会得出如下结论:
当 -3+x1+x2 >= 0 ,我们就会认为y=1;

同样当-3 +x1 + x2 < 0时, 我们就会认为y=0.
这里根据 x1 + x2 = 3来画一条线,这条线其实就是所谓的decision boundary,如上图所示,在线上的我们就认为是1,此直线以下的就认为是0。直观上也可以非常好的理解。

当然,在实际工程应用时,可能不会如此简单,边界可能不会如此规则的通过一条直线来划分。它也有可能如下图所示非直线边界:

non-linear decision boundary

正如我们之前的课程讲到的,可以使用特征的不同choice,比如可以使用高阶多项式的方式(higher order polynomial regression)。这里实际就是使用了二次多项式函数,theta取值为[-1; 0; 0; 1; 1]时,我们可以得出其边界方程,实际如上图所示的圆圈。
更进一步的,可能是不规则的图形,如下图所示:
complex

总之,从这些例子可以看出,只要我们找到了θ,并且选择对应的feature和feature choice,我们就可以画出一个边界来区分0, 1值,从而实现了分类。所以关键点就在于找到这个θ和feature choice,得出这个边界公式,也就是我们通常所说的算法。

Cost Function

此小节主要讲了针对logistic regression模型,我们应该使用什么样的cost function。
首先,Andrew讲了如果要使用原先线性回归模型的cost function,就会导致该cost function为非凸函数(non-convex),这样我们找到的就是局部最优值,而非全局最优值,如下图左边的图所示,而我们的目标是找到一个凸函数作为cost function,如下图右边的图所示:


cost function

所以,针对logistic regression模型,我们采用如下cost function:


cost function of logistic regression

当y=1时,其cost function的函数图如下:
y=1

当y=1时,实际就是说我们的样本的输出值y均为1的时候,我们通过这个cost function来训练我们的模型,这时候,如果我们的cost function趋近于0,那么相应的模型输出值趋近于1,也就越接近我们的实际情况,相反,h(x)输出如果趋近于0,那么cost function就会趋于无穷大,也就惩罚了该算法。

当y=0时,其函数图如下:


y=0

同样,当h(x)输出越接近1,其cost function就越趋近于无穷大,这就会惩罚该算法。

Simplified Cost Function and Gradient Decent

本小节主要讲述了简化后的cost function,以及如何针对这个cost function做梯度下降。

cost function

在上一小节,我们已经知道Cost function分为两种情况,一种是y=1,一种是y=0。但也正因为只有两种情况,所以我们可以通过一个数学小技巧来将两个公式合并成一个公式,如下:


simplified cost function

课上Andrew已经详细讲解了验证y等于0和1的过程,不再详述。
接下来我们将Cost function代入J(θ), 再看下最终的J(θ)的样子,如下所示:


J(θ) of Logistic Regression

我们还可以将这个公式vectorized:
首先,对于线性回归的hypothesis,我们针对每个样本的variables可以通过如下公式计算其输出值h,其中x(i)为单个样本的向量:
hypothesis

由此,我们可以得出整体输出的向量h,其公式如下:


vectorized hypothesis

注意,这里的X是大写,表示所有样本的矩阵,大家可以推导下。
之后,由于我们需要sigmoid该函数,从而形成新的假设,如下:
h=g(Xθ)

最终J(θ) vectorized之后如下图:


vectorized cost function

Gradient Decent

我们最终的目的依然是寻找J(θ)的最小值,同样的,我们仍然可以用梯度下降的方法来寻找这个最小值。前面,我们已经证明过了通过使用这个cost function我们可以得到凸函数,所以是可以找到全局最小值的。
函数的梯度下降过程其实是类似的,都是通过迭代的方式不断计算新的θ值,以使得J(θ)不断减小。在此过程中,同样需要通过求J(θ)的导数,原理跟线性回归类似。求导之后,最终迭代过程如下图所示:


gradient decent

可以看出,这个梯度下降的过程和线性回归模型非常类似,但是这里的hθ(x)是sigmoid function,而不是原先的θ'X。
另外,该梯度下降公式也可以vectorized化,从而不需要每次都需要一个加总的循环去计算,如下:


vectorized gradient decent

需要注意的是当我们在后续使用fminunc时,gradient只需要计算𝜕/𝜕θ*J(θ), 这个求导展开后是如下公式:


gradient

即没有learning rate,但是需要除以m

最后,Feature Scaling同样适用于logistic regression模型。

Advanced Optimization

此小节主要讲了一些除梯度下降以外的高级优化方法,而这些优化的算法都已经在函数库中实现,我们只需要知道如何调用即可。

优化的目标

首先要明确我们的优化目标是选择J(θ)的最小值。
先来看下原先梯度下降的过程:


gradient decent

其中,而如果我们有了J(θ)和J(θ)的导数,我们可以利用如下方法来快速找到最优值。

  • conjugate gradient
  • BFGS
  • L-BFGS
    Octave以及其它一些语言的库中一般都有提供这些高级算法的实现,所以一般的我们只需要直接调用。例子如下:


    fminunc

    总体来说,就是需要我们自己写一个cost function,并返回J(θ)值即jVal,以及gradient vector。然后通过调用fminunc函数我们就可以自己选取这些高级的算法并自动计算出收敛后的θ值,以及J(θ)值,和是否收敛的标志位,如下图所示:


    octave execute fminunc

    注意optimset是用于设置函数的参数,这里使用参数'GradObj' 为 ‘On'表明我们的cost function会提供decent object, MaxIter 为100表明我们最多只迭代100次。
    传递函数的时候通过@funcname来传递。
    需要注意的是initialTheta的维数必须>=2

Multiclass Classification

此小节主要讲述了什么是multiclass classification,并且着重讲了通过one-vs-all方法来获取不同类别的概率的方法。实际上就是给定Feature x,计算其为某个特定分类i的概率,即P(y =i | x; θ)


one.png

当有多个分类时,我们会计算所有分类的概率,然后选取最大值,即可能性最大的分类作为输出。

Solving the problem of Overfitting

The Problem of Overfitting

此小节主要讲了过拟合问题(Overfitting)
首先Andrew讲了在机器学习训练过程中存在的三种情况:
underfitting(high bias), just right, overfitting(high variance)
过拟合overfitting实际就是过于精确地去匹配了样本,导致无法更一般化地去预测。


overfitting

解决过拟合主要有两种方式:

  • 减少Feature的数量:同样有两种方式一种是手工选取features;另外是通过算法自动选取
  • Regularization正则化,等待后续课程再看。


    address overfitting.png

Cost Function

此小节主要讲了如何去regularization,为什么这样是有效果的。
直觉上理解下,线性回归模型中,当feature很多,甚至还有很多高阶多项式的时候,就可能产生过拟合现象,而要减少这些features的影响就要尽量减少它们的权重,即让θ变小,可以设想极端情况下,某些θ减小到0,这时就可能退化成二次线性方程,曲线也就更加平滑。所以,此时就避免了过拟合现象。而为了让θ变小,我们可以在cost function中使用正则化技巧,课堂老师举了个例子,让J(θ)加一个1000*θ,这样cost function为了最小,那么对应的θ也就会变得很小。如下图所示:


intuition

通常情况下,我们不知道应该选取哪个θ来加到J(θ)当中,因此我们会为所有的θ值统一乘一个数,再加到J(θ)当中,也就得到了如下公式:


cost function with regularization

其中λ(lambda)叫做regularization parameter,显然,这个λ越大,那么梯度下降后,θ值就会越小,相对应的项和feature影响的权重也就越小,但是要避免走向另外一个极端,即如果λ非常大,想象一下那些多项式几乎都为0,那么就成了underfitting了。

这里有一个问题就是λ如何选择呢?

Regularized Linear Regression

此小节主要讲了如何针对LR进行正则化。

Gradient Decent Regularization

首先,看下梯度下降正则化之后是什么样:


regularized LR

需要注意的是:

  • θ0是不需要正则化的,所以单独拿了出来
  • 1- 𝑎λ/m是必须要>0, 因为θ如果<=0就不对了。通常 𝑎λ/m是一个接近于1的数,比如0.99
  • 如果使用微积分的话,我们可以证明最终求导后的公式如下:


    gradient decent with regularization

    变换一下,如下:


    gradient decent with regularization

Normal Equation with Regularization

作为对比,首先看下之前我们的Normal Equation公式


normal equation

通过正则化后的J(θ)重新求导并set为0,就会得到如下公式:


normal equation with regularization
  • L是一个接近于单元矩阵的n+1维的方阵,只是最左上角设为0
  • 针对没有正则化的normal equation,我们之前讲过有些矩阵是没有逆矩阵的,因此如果使用inv函数求逆矩阵的时候可能就行不通,但是通过正则化之后,可以证明其肯定会有逆矩阵,因此对于无法求解逆矩阵的情况,也会通过正则化的方式来解决。

Regularized Logistic Regression

通过正则化,我们同样可以解决Logistic Regression的过拟合问题,如下图所示:


logistic.png

先看下原先的J(θ)公式:


cost function without regularization

正则化之后如下:
cost function with regularization

针对这个新的J(θ), 我们可以通过如下方式进行梯度下降,可以看出跟LR是非常相似的,但是那个h(x)已经不是原先的θ'x, 而是sigmoid化之后的函数。


gradient decent

另外,我们同样可以使用之前课程所说的高级优化方法(通过调用fminunc),同样我们需要提供一个计算cost function的函数,如下图所示:
advanced optimization
  • 注意:上边的公式有误,gradient(j)的公式应当如下(是+λ/m*θj):

    regularized gradient

  • 注意在计算jVal的时候需要加正则化的term

  • 计算gradient的时候我们不需要learning rate,只需要计算J(θ)的导数

  • 对于gradient(1), 我们需要单独计算,不需要正则化

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 156,265评论 4 359
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 66,274评论 1 288
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 106,087评论 0 237
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,479评论 0 203
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 51,782评论 3 285
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,218评论 1 207
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,594评论 2 309
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,316评论 0 194
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 33,955评论 1 237
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,274评论 2 240
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,803评论 1 255
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,177评论 2 250
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,732评论 3 229
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 25,953评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,687评论 0 192
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,263评论 2 267
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,189评论 2 258

推荐阅读更多精彩内容