吴恩达-(函数定义,代价函数,梯度下降)

[哔哩哔哩视频地址](http://www.bilibili.com/video/av9559261/)

定义本课程常用符号

训练数据:机器用来学习的数据
测试数据:用来考察机器学习效果的数据,相当于考试。

m = 训练样本的数量(训练集的个数)
x = 输入的特征(例如房屋面积)
y = 输出结果(例如房屋售价)

(x(i),y(i)) = 表示训练集中第i个训练样本

监督学习算法的工作方式

将训练集中里的房屋价格喂给学习算法,学习算法就开始工作了,然后输出一个函数,通常被称为h(hypothesis假设函数),有了这个h函数,输入测试数据中想要出售的房屋面积,该函数会给出相应售卖价格,因此h是一个从x到y的函数映射。

屏幕快照 2017-06-19 下午12.26.51.png

当设计学习算法的时候,接下来要思考,怎么得到这个假设h?

屏幕快照 2017-06-19 下午1.29.36.png

如图所示用来预测y关于x的线性函数:hΘ(x) = Θ0 + Θ1*x
为什么是线性?我们还会有很多复杂的函数,由于线性方程是最简单的,所以先从线性方程入手。当然,最终我们将会建立更复杂的模型,以及更复杂的学习算法,让我们也给这模型命名为 线性回归模型。另外这实际上是关于单个变量的线性回归,根据x来预测所有价格的函数,对于这种模型,还有一个名字是单变量线性回归,单变量是对一个变量的一个表达形式,总而言之这就是线性回归。

Cost Function

hΘ(x) = Θ0 + Θ1*x
影响改函数样子的决定因素只有Θ0 和 Θ1, Θ0是一个常数,只是会影响函数曲线的整体在y轴上的位置(函数曲线的高低),真正的变量只有Θ1。我们要做的就是找出 Θ0,Θ1,让假设函数尽量的拟合所有的数据点。

我们知道x表示卖出了哪个房子,而y表示卖出该房子的实际价格,我们要尽量选择参数值,使得在训练集中给出的训练集中的x值,可以合理准确的预测y的值,让我们给出标准的定义,在线性回归中,我们要解决的是一个最小化问题,我们要写出Θ1, Θ0的最小化,我希望h(x) 和 y之间的差距极其小,接近0,尽量减少假设的输出和实际房屋价格之间差的平方。如下式子最小

(hΘ)x - y)2

别忘了,用(x(i),y(i))表示训练集中第i个训练样本,对所有训练样本进行差平方求和

∑(hΘ)x(i) - y(i))2
//求和图标上标为m(样本容量),下标为i=1,(键盘打不出,只能这样标注了)

而为了让这个表达式更容易理解一些,我们实际上考虑的事这个差平方的平均数,更改表达式如下

(1/m)∑(hΘ)x(i) - y(i))2
//求和图标上标为m(样本容量),下标为i=1,(键盘打不出,只能这样标注了)

要尽量减小平方误差,更改表达式如下

(1/2m)∑(hΘ)x(i) - y(i))2
//求和图标上标为m(样本容量),下标为i=1,(键盘打不出,只能这样标注了)

代入hΘ(x) = Θ0 + Θ1*x

(1/2m)∑(Θ0 + Θ1*x(i) - y(i))2
//求和图标上标为m(样本容量),下标为i=1,(键盘打不出,只能这样标注了)

因此我们的目标是找出能使训练集中预测值和真实值差的平方的和的1/2m最小的Θ0和Θ1,因此这就是我们线性回归的整体目标函数

J(Θ0 , Θ1)=(1/2m)∑(Θ0 + Θ1*x(i) - y(i))2
//求和图标上标为m(样本容量),下标为i=1,(键盘打不出,只能这样标注了)

我们要做的就是关于Θ0 和 Θ1 ,对函数J(Θ0 , Θ1) 的求最小值,这就是我的代价函数,代价函数也被称为平方误差函数,有时也被称为平方误差代价函数,之所以要出误差的平方和,是因为误差平方代价函数对于大多数问题,特别是回归问题,都是一个合理的选择。

成本函数(代价函数)

为了简化成本函数J,设置Θ0为0,既函数曲线从原点(0, 0)开始

假设函数hΘ(x)更新为

hΘ(x)=Θ1*x

成本函数J 代入假设函数h

J(Θ1)=1/2m∑(Θ1*x(i) - y(i))2
//求和图标上标为m(样本容量),下标为i=1,(键盘打不出,只能这样标注了)

影响函数曲线斜率的只有Θ1
代入Θ1 不同的数值,可以得到不同的成本函数J(Θ1),
例:坐标系中现在有(1,1)(2,2),(3,3)三个点,为了更好的拟合数据,做以下尝试,样本总数m = 3

Θ1 = 1 时 h(Θ1) = x, J(Θ1) = 0

J(1) = (1/2m)((1-1)^2+(2-2)^2+(3-3)^2) =(1/2x3)((1-1)^2+(2-2)^2+(3-3)^2)= 0

Θ1 = 0.5 时 h(Θ1) = 0.5x, J(Θ1) = 0.58

J(0.5) = (1/2m)((0.5-1)^2+(1-2)^2+(1.5-3)^2) = (1/2x3)((0.5-1)^2+(1-2)^2+(1.5-3)^2) = 14/6 ≈ 0.58

Θ1 = 0 时 h(Θ1) = 0, J(Θ1) = 2.3

J(0) = (1/2m)(1^2+2^2+3^2) = (1/2x3)(1+4+9) = 14/6 ≈ 2.3

提示:成本函数计算方法是每一个点的真实数值于假设函数预测值的差的平方的和乘1/2m

代入不同的Θ1,得到不同的J(Θ1),这些不同的J(Θ1)形成了一个函数曲线,该曲线最低点就是J(Θ1)的最小值,既当Θ1=1时 J(Θ1)最小。

等高线图

使用完整的假设函数h和成本函数J,保留假设函数的所有参数Θ0,Θ1

等高线图?

有一个座大山,地面测量大山各点的海拔高度,映射到平面上。高度相同的用线连接起来,形成的这个图就是等高线图,看着像一圈圈的大树年轮,越靠近中心海拔越高。

当参数为两个时,如何绘制成本函数?
假设函数参数共两个,需要在三维坐标系中绘制,x轴为Θ0,y轴为Θ1,z轴为J(Θ01),代入不同的Θ0,Θ1,会得到不同的J(Θ01),在三维坐标系中像是一个盆地地形。将盆地映射到平面上也就形成了一圈一圈的等高图,越靠近中心的地方成本函数J的数值就越小。

梯度下降

梯度下降是比较常用的最小化代价函数J的算法。
我们在梯度下降中要做的就是不停地一点点地改变Θ0,Θ1的值,试图通过改变使得J(Θ0,Θ1)变小,直到找到J的最小值或许是局部最小值。

屏幕快照 2017-06-21 上午11.53.26.png

我在试图让这个函数值最小,注意坐标轴Θ0和Θ1在水平轴上,而函数J在垂直坐标轴上,图形表面高度则是J的值。从Θ0,Θ1的某个值出发,所以想象一个对Θ0,Θ1赋予某个初值,从该点下山,一直到山脚,下山的每一步朝什么方向。你站在山上某个点,你看一下周围,你会发现最佳的下山方向,然后继续看周围,找出最佳下一步应该朝那个方向走,一直到山脚。

梯度下降算法定义

屏幕快照 2017-06-22 下午6.18.32.png
  • := 表示赋值
  • α 是一个数字,被称为学习速率,在梯度下降中,它控制下降的步子的大小
  • (∂/∂Θj)J(Θ0,Θ1) 是一个微分项

在梯度下降中,我们要更新Θ0,Θ1,当j=0 和 j=1 时 会产生更新,所以你将更新J Θ0,Θ1,在这个表达式中,如果你要更新这个等式,必须同时更新Θ0,Θ1。我们需要这样更新,Θ0:=Θ0-一些东西,Θ1:=Θ1-一些东西。

梯度下降更直观的认识
屏幕快照 2017-06-23 下午12.29.22.png

用一个简单的例子,比如最小化的函数只有一个参数的情形,所以 假如我们有一个代价函数J,只有一个参数Θ1,Θ1是一个实数,所以可以画出一维的曲线。试着去理解为什么梯度下降会在函数上起作用。

屏幕快照 2017-06-23 下午1.53.41.png

图中横轴为Θ的值,纵轴为J的值,曲线是J(Θ1) 代价函数的曲线。

当从小红点开始出发进行梯度下降,计算J(Θ1)在小红点处的导数项,得出导数项数值小于0,故Θ1 = Θ1-学习速率乘一个负的导数值,也就是Θ1加上一个正数,所以Θ1的值会向右移动,逐渐靠近最低点。

当从小蓝点开始出发进行梯度下降,计算J(Θ1)在小蓝点处的导数项,得出导数值大于0,故Θ1 = Θ1-学习速率乘一个正的导数值,也就是Θ1减一个正数,所以Θ1的值会向左移动,逐渐靠近最低点。

小红点处的切线的斜率就是导数值,随着小红点逐渐收敛至最低点,切线斜率逐渐降低,移动的步子大小也会越来越小。

梯度下降和代价函数结合,以及推导
屏幕快照 2017-06-23 下午2.01.47.png

用梯度下降的方法,求最小化平方误差代价函数。
推倒过程


tuidao.png

推倒结果

屏幕快照 2017-06-23 下午2.41.56.png

反复执行括号里的式子,直到收敛到最小值,Θ0和Θ1不断的更新。都是加上一个-α/m 乘以后面的求和项。所以这就是我们的线性回归算法。

重要概念

首先在解决这个代价函数最小化的时,有一个算法可以直接解出Θ0 和 Θ1的值,而不必借助迭代,也就是梯度下降这一类,要求多次迭代的算法。这个算法可以直接求出Θ0 和 Θ1,也同时带来的优点和缺点。
好处之一是你不在需要设定学习速率,因此你可以更快的解决一些问题。
我们一直在只有一个特征的情况下学习,也就是用房子的大小来预测它的价格,也就是用一个变量x来预测一个变量y,但实际情况中可能会面对更多的特征作为变量,比如房子的大小,卧室的数量,楼层数,房子年份,等等。利用这些特征来预测房屋价格。想要描绘并可视化这些特性变量变的困难,如果绘制,图像已经操作三维。
线性代数赋予了我们一套符号系统和操作来进行,矩阵和向量的处理。这里是一个矩阵

[2104 5 1 45]
X =[1416 3 2 40]
[1534 3 2 30]

[460]
Y =[232]
[172]

中括号连接起来(键盘打不出一个大括号)

第一列会房子大小,第二列为卧室数量,第三列为楼层数,第四列为房子的年份。Y
则对应了房子售价。
这样做的好处是将某个样本大量的特征转换为了矩阵中的一列,通过索引可以取道某个样本的某个特征例如X23 = 30

欢迎关注我的公众号


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

推荐阅读更多精彩内容