前言
这一章内容是接着上一章内容写的,对关于supervised learning的regression问题进行详细分析,这章内容会有很多图表和数学公式,由于绘图和描述数学公式都不是很容易,所以可能排版没那么规范,请见谅!
最后还是那句话,如果内容有什么错误的理解,希望大家不吝赐教,指正,谢谢!
【机器学习系列】【第一章:机器学习】【第三章:多元变量的线性回归问题】
第二章 模型和代价函数
下面用一个例子来说明这个问题:
房子的size和房子的price关系。怎样用已知的每个size对应的price数据来模拟出一个最优的两者关系函数,进行对任意新给出的size进行估计出尽可能准确的price。
2.1数据的分析
图1 size和price对应的关系
首先这是一个典型的supervised learning问题,对于给定一个样本数据size来预测所对应的price。这还是regression问题,结果并不是只有两种,而是有一个值的输出。
对于坐标图中数据的大体分布,进行线性回归分析,把size和price的关系用线性的关系来比拟。
2.2 整体系统分析和数学模型建立
图2 系统分析
我们所要做的就是找到对应的h,由于我们分析size和price是一个线性的关系,所以我们设h(x)=θ0+θ*x,θ:参量,现在问题就是如何选取θ0和θ1。下面进行几组选取θ0和θ1的比较。
图3 选取不同的θ0和θ1
所以我们的任务就是选取合适的θ0和θ1,让计算出来的h(x)曲线为我们用来训练的数据(x,y)来尽量接近实际的y,即给定一个x,通过h(x)函数有一个对应的h值与对应的y的距离越接近则越好,所以我们用来评估这个估计的误差的就是:J(θ0,θ1)=
这就是Cost Function(代价函数)M:测量数据组的个数,我们目标就是使J(θ0,θ1)最小。
2.2.1 只考虑θ1,让θ0=0
整理如下: 简化:
Hypothesis:h(x)=θ0+θ1*x h(x)=θ1*x
Parameters:θ0,θ1 θ1
Cost Function:J(θ0,θ1)= J(θ1)=
Goal:
接下来讨论θ1和h(x)、J(θ1)的关系
图4 θ1=1 h(θ1) 图5 θ1=1 J(θ1)
对θ1取不同的值,对h(x)和J(θ1)进行比较分析:
图6 不同的θ1对应的h(x)、J(θ1)
图7 整体进行比较h(x)和J(θ1)
分别对θ1取0、0.5、1,可以发现当θ1=1时,J(θ1)=0,为最小值,经计算可得,当θ1取不同值时,J(θ1)大致的走向为:
图8 J(θ1)的整体走向
由图可知,当θ1=1时,J(θ1)=0为最小值。即找到了θ1。
2.2.2 同时考虑θ0和θ1
图9 h(x)和J(θ1)
当同时考虑θ0和θ1时,这个时候就是一个三维图了,让我们需要求的J(θ0,θ1)就是三维面上每一个点的高度。这个时候就可能存在不同的θ0、θ1对应相同的J(θ0,θ1),但局部最小值确只有一个,这个会在后面进行详细分析。
图10 J(θ0,θ1)
对于不同的θ0和θ1有不同的h(x),和对应的J(θ0,θ1),从图11的右边的图可以看出,不同的θ0和θ1会存在相同的J(θ0,θ1),右边图就像一个等位线图,当这个圈上的点越往中心靠近时,则J(θ0,θ1)越来越小,同时h(x)也越接近我们需要的回归线,由图13可知,当选取中心点对应的θ0和θ1时,h(x)越接近我们训练的数据集(x,y),即找到了合适的θ0和θ1。
图11 θ0=800 θ1=-0.15
图12 θ0=360 θ1=0
图13 θ0=230 θ1=0.12
所以我们需要做的就是从任意的 θ0和θ1出发,进行不断地改变两个的大小,来减小J(θ0,θ1),从而找到使J(θ0,θ1)最小的θ0和θ1,即所求。如图14所示,一步步改变θ0和θ1,从而找到使J(θ0,θ1)最小的点。
图14 不断改变θ0和θ1
而一开始选取的θ0和θ1不同可能最后找到的使J(θ0,θ1)最小的点不同,因为我们要找的是局部最小值,即极值,而当找到极值时,则不能往下继续找了(这个会在后面进行解释),所以会存在图15这种情况。
图15 另外一个点所寻找最小值的路径
Question:那么θ0和θ1该如何一步步地改变了?
2.2.3关于θ0和θ1如何改变分析
首先给出一个式子如下,后面会进行详细分析。
(for j=0 and j=1)
:= 和赋值语句差不多,可以理解为更新
Ɑ:learning rate(当对应点的梯度大,则ɑ比较小;否则反之)后面会详细讨论
:对应点的梯度,即变化速率。
关于式子的正确理解是: 错误理解:
temp0:= temp0:=
temp1:= θ0=temp0
θ0=temp0 temp1:=
θ1=temp1 θ0=temp1
记住θ0和θ1是同时更新,中的θ0和θ1都是上一个的θ0和θ1。
1.下面对θ1单独考虑进行分析
θ1:=
1)对ɑ进行分析
Case 1:
图16 θ1位于最小值右边时
当θ1位于图16的位置时,为正数,所以是往θ1减小的方向进行,即往函数的最小值点移动。
Case 2:
图17 θ1位于最小值左边时
当θ1位于图17的位置时,为负数,所以是往θ1增大的方向进行,即往函数的最小值点移动。
综上:不管哪种情况,都是向J(θ1)减小的方向进行。
Question 1:ɑ改如何取值呢?
Case 1:ɑ较小
图18 ɑ较小时
如图18所示,当ɑ较小时,则J(θ1)向最小值移动的速度会比较慢,但最终会到达最小值点。
Case 2:ɑ较大时
图19 ɑ较大时
如图19所示,当ɑ较大时,每走一步太大,可能永远都不能到达最小值点,甚至越离越远。
2)对进行分析
当J(θ1)已经到达一个局部最小值时,则θ1不会再改变了,因为为0,变化率为0,所以不再改变,即找到所求的θ1。
图20 当θ1处于使J(θ1)最小的位置时
当θ1所对应的变化率比较大时,即较大时,减小的速度较快,而当θ1所对应的变化率比较小时,即较小时,减小的速度较慢,所以是自动改变J(θ1)的变化速度的,即我们不需要实时改变ɑ。如图21所示。
图21 关于对J(θ1)的影响
整体总结:
Gradient descent algorithm: Linear Regression Model:
h(x)=θ0+θ1*x
(for j=0 and j=1) J(θ0,θ1)=
综上: