线性回归及梯度下降

线性回归及梯度下降

参考资料网址

本文会讲到:

(1) 线性回归的定义

(2) 单变量线性回归

(3) cost function:评价线性回归是否拟合训练集的方法

(4) 梯度下降:解决线性回归的方法之一

(5) feature scaling:加快梯度下降执行速度的方法

(6) 多变量线性回归

1 Linear Regression

注意一句话:多变量线性回归之前必须要Feature Scaling!

方法:线性回归属于监督学习,因此方法和监督学习应该是一样的,先给定一个训练集,根据这个训练集学习出一个线性函数,然后测试这个函数训练的好不好(即此函数是否足够拟合训练集数据),挑选出最好的函数(cost function最小)即可;

注意:

(1) 因为是线性回归,所以学习到的函数为线性函数,即直线函数;

(2) 因为是单变量,因此只有一个x;

我们能够给出单变量线性回归的模型:

[图片上传失败...(image-569697-1516351725507)]

我们常称x为feature,h(x)为hypothesis;

从上面“方法”中,我们肯定有一个疑问,怎么样能够看出线性函数拟合的好不好呢?

我们需要使用到Cost Function(代价函数),代价函数越小,说明线性回归地越好(和训练集拟合地越好),当然最小就是0,即完全拟合;

举个实际的例子

我们想要根据房子的大小,预测房子的价格,给定如下数据集:

[图片上传失败...(image-8fb9c2-1516351725507)]

根据以上的数据集画在图上,如下图所示:

[图片上传失败...(image-d68f7-1516351725507)]

我们需要根据这些点拟合出一条直线,使得cost Function最小;

虽然我们现在还不知道Cost Function内部到底是什么样的,但是我们的目标是:给定输入向量x,输出向量y,theta向量,输出Cost值;

以上我们对单变量线性回归的大致过程进行了描述;

2 Cost Function

Cost Function的用途:对假设的函数进行评价,cost function越小的函数,说明拟合训练数据拟合的越好;

下图详细说明了当cost function为黑盒的时候,cost function 的作用;

[图片上传失败...(image-52ffdb-1516351725507)]

但是我们肯定想知道cost Function的内部构造是什么?因此我们下面给出公式:

[图片上传失败...(image-8b4d1f-1516351725507)]

其中:

[图片上传失败...(image-b222ea-1516351725507)]表示向量x中的第i个元素;

[图片上传失败...(image-f1f5b0-1516351725507)]表示向量y中的第i个元素;

img

表示已知的假设函数;

m为训练集的数量;

比如给定数据集(1,1)、(2,2)、(3,3)
则x = [1;2;3],y = [1;2;3]     (此处的语法为Octave语言的语法,表示3*1的矩阵)
如果我们预测theta0 = 0,theta1 = 1,则h(x) = x,则cost function:
J(0,1) = 1/(2*3) * [(h(1)-1)^2+(h(2)-2)^2+(h(3)-3)^2] = 0;
如果我们预测theta0 = 0,theta1 = 0.5,则h(x) = 0.5x,则cost function:
J(0,0.5) = 1/(2*3) * [(h(1)-1)^2+(h(2)-2)^2+(h(3)-3)^2] = 0.58;

如果theta0 一直为 0, 则theta1与J的函数为:

[图片上传失败...(image-85bc70-1516351725507)]

如果有theta0与theta1都不固定,则theta0、theta1、J 的函数为:

[图片上传失败...(image-e42ee7-1516351725507)]

当然我们也能够用二维的图来表示,即等高线图;

[图片上传失败...(image-5138de-1516351725507)]

注意:如果是线性回归,则costfunctionJ与的函数一定是碗状的,即只有一个最小点;

以上我们讲解了cost function 的定义、公式;

3 Gradient Descent(梯度下降)

但是又一个问题引出了,虽然给定一个函数,我们能够根据cost function知道这个函数拟合的好不好,但是毕竟函数有这么多,总不可能一个一个试吧?

因此我们引出了梯度下降:能够找出cost function函数的最小值;

梯度下降原理:将函数比作一座山,我们站在某个山坡上,往四周看,从哪个方向向下走一小步,能够下降的最快;

当然解决问题的方法有很多,梯度下降只是其中一个,还有一种方法叫Normal Equation;

方法

(1)先确定向下一步的步伐大小,我们称为Learning rate;

(2)任意给定一个初始值:[图片上传失败...(image-dd411a-1516351725507)][图片上传失败...(image-3147bf-1516351725507)];

(3)确定一个向下的方向,并向下走预先规定的步伐,并更新[图片上传失败...(image-c0bd8a-1516351725507)][图片上传失败...(image-2771fa-1516351725507)];

(4)当下降的高度小于某个定义的值,则停止下降;

算法

img

特点

(1)初始点不同,获得的最小值也不同,因此梯度下降求得的只是局部最小值;

(2)越接近最小值时,下降速度越慢;

问题:如果[图片上传失败...(image-bb5058-1516351725507)][图片上传失败...(image-cda425-1516351725507)]初始值就在local minimum的位置,则[图片上传失败...(image-77b24c-1516351725507)]

img
会如何变化?

答:因为[图片上传失败...(image-20941-1516351725507)]
img

已经在local minimum位置,所以derivative 肯定是0,因此
img
img
不会变化;

如果取到一个正确的

img
值,则cost function应该越来越小;

问题:怎么取
img

值?

答:随时观察
img

值,如果cost function变小了,则ok,反之,则再取一个更小的值;

下图就详细的说明了梯度下降的过程:

img

从上面的图可以看出:初始点不同,获得的最小值也不同,因此梯度下降求得的只是局部最小值;

注意:下降的步伐大小非常重要,因为如果太小,则找到函数最小值的速度就很慢,如果太大,则可能会出现overshoot the minimum的现象;

下图就是overshoot minimum现象:

img

如果Learning rate取值后发现J function 增长了,则需要减小Learning rate的值;

4 Integrating with Gradient Descent & Linear Regression

梯度下降能够求出一个函数的最小值;

线性回归需要求出,使得cost function的最小;

因此我们能够对cost function运用梯度下降,即将梯度下降和线性回归进行整合,如下图所示:

img

梯度下降是通过不停的迭代,而我们比较关注迭代的次数,因为这关系到梯度下降的执行速度,为了减少迭代次数,因此引入了Feature Scaling;

5 Feature Scaling

此种方法应用于梯度下降,为了加快梯度下降的执行速度

思想:将各个feature的值标准化,使得取值范围大致都在-1<=x<=1之间;

常用的方法是Mean Normalization,即

img

或者:

[X-mean(X)]/std(X);

举个实际的例子

有两个Feature:

(1)size,取值范围0~2000;

(2)#bedroom,取值范围0~5;

则通过feature scaling后,

img

img

练习题

我们想要通过期中开始成绩预测期末考试成绩,我们希望得到的方程为:

img

给定以下训练集:

midterm exam (midterm exam)2 final exam
89 7921 96
72 5184 74
94 8836 87
69 4761 78

我们想对(midterm exam)^2进行feature scaling,则
img

经过feature scaling后的值为多少?

max = 8836,min=4761,mean=6675.5,则x=(4761-6675.5)/(8836-4761) = -0.47;

6 多变量线性回归

前面我们只介绍了单变量的线性回归,即只有一个输入变量,现实世界不可能这么简单,因此此处我们要介绍多变量的线性回归;

举个例子:

房价其实由很多因素决定,比如size、number of bedrooms、number of floors、age of home等,这里我们假设房价由4个因素决定,如下图所示:

img

我们前面定义过单变量线性回归的模型:

img

这里我们可以定义出多变量线性回归的模型:

img

Cost function如下:

img

如果我们要用梯度下降解决多变量的线性回归,则我们还是可以用传统的梯度下降算法进行计算:

img

总练习题:


1.我们想要根据一个学生第一年的成绩预测第二年的成绩,x为第一年得到A的数量,y为第二年得到A的数量,给定以下数据集:

x y
3 4
2 1
4 3
0 1

(1)训练集的个数是多少? 4个;

(2)J(0,1)的结果是多少?

J(0,1) = 1/(24)[(3-4)2+(2-1)2+(4-3)2+(0-1)2] = 1/8*(1+1+1+1) = 1/2 = 0.5;

我们也可以通过vectorization的方法快速算出J(0,1):

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

推荐阅读更多精彩内容