吴恩达机器学习视频笔记——梯度下降简化技巧

本文探讨了在多个因素影响下的房价预测模型构建,详细介绍了假设函数的形成,以及在多变量情况下的矩阵表示方法。文章还深入讲解了特征缩放的重要性,梯度下降过程中的实用技巧,包括学习率的选择,以及如何简化输入变量。最后,对比了标准方程和梯度下降方法的优缺点。

 

 

房价预测

 

多个因素作用下,即θ有多个的情况下,如何得到假设函数。

第二行的训练样本,用矩阵进行表示如下:

同样,假设函数在4个变量的情况下,其表示方法为:

有n个因素作用的情况下(即默认X0 = 1):

 

如上所示,多输入变量的假设函数可以由两个矩阵相乘表示,一个矩阵表示变量,另外一个矩阵表示假设函数的系数

 

 

表达式基本不变,但为了区别输入变量,即x是一个还是多个,我们规定x的上坐标表示第几个变量,下坐标为1时代表计算的输入变量即x的个数为1,同时,相应的,微分方程也有了一定程度的更新:(如下图所示)

圈出的部分为作者求出的偏导数的表达式

 

特征缩放:

房价预测案例

当两个输入变量的值之间相差太大时:

              在不考虑θ的情况下,代价函数如上图所示,即是一个伸长的椭圆,宽度远小于其长度,在这种情况下进行梯度下降算法,路径如上图所示,即来回振荡,这样的情况下,所耗费的时间就比较长。因此,通过适当的对输入变量进行缩放,就能极大的增加其效率。   

如上图所示,将两个变量进行一定程度的缩放后,其更容易得到我们想要的结果。

最佳输入变量的取值范围为[-1,1]因此,进行特征缩放的时候,大概在接近[-1,1]的方向进行,取值范围太小或太大都不太恰当。

如上图所示,尽量让取值范围的平均值接近于0,同时可以注意到一点就是得到的结果里面X2取值范围的精确值并不为[0.5,0.5],不过适当的增删无伤大雅。

 

梯度下降过程中的实用性技巧

①如何选择学习率(α

横坐标:迭代步数

纵坐标:代价值

每走一步,代价值都会降低,为了保证达到最低代价值(不要越过它),恰当的学习率是十分必要的。

 

当代价值随着每一步增加,则说明学习率需要进行适当的减小

 

当发生如上情况, 步数和代价值的变化规律如下图,说明你的学习率太多了,建议适当减小学习率(同时检查代码是否有bug)

 


同时,学习率不能过小,太小的学习率梯度下降会非常非常非常的缓慢。

 

建议学习率选择如下:

0.0000001,……,0.01,0.03,0.1,0.3,1,3……

 

变量简化:

 

如图所示,有两个变量占有土地的宽度和深度,我们可以选择不使用这两个变量,而是创造一个名为面积的变量,这样就只有一个变量,在我们的假设函数当中。

在这个图中,为了考虑多种回归模型,我们可以将x2 = x1²             x3 = x1³(注意输入变量的取值范围,即缩放特征),但需要注意的满足上述条件的后期随着面积的增加价格会下降,显然现实生活中并不存在这样的好事,因此可以考虑平方项,至于到底应该选择哪种表达式,后续会进行相关的学习。

化简代价函数:

将输入变量和输出变量分别变为一个矩阵:

          

 故Xθ = Y就可以通过矩阵的运算求出θ化简可得如下内容:

 

 

如何选择标准方程和梯度下降方法?

梯度下降方法:

缺点:选择学习效率的值并且大概率需要进行多次调整,同时需要多次迭代,可能会降低效率

优点:在上百万种输出变量存在时,仍然能够很好地进行工作

标准方程方法:

优点:不需要选择学习效率并且不需要进行迭代

缺点:在输出变量较大时,计算速度会特别的慢【O(n³)】

 

如果输入变量有上万就可以选择梯度下降方法进行计算

 

Matlab求矩阵的逆:

Pinv() 伪逆:当进行求逆的矩阵是不可逆的时候仍然能够求出它的逆

inv()

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值