调整学习率(吴恩达机器学习编程作业1)

介绍

本文主要是展示相同迭代次数不同学习率、相同学习率不同迭代次数对应代价函数变化的情况。本着一不做二不休的情况想探究一哈学习率过大和过小的情况。
基于吴恩达机器学习编程作业1中的二元线性回归题目探讨的。题目的数据集中有3个特征变量,俄勒冈州波特兰市的房子面积,房子卧室数量和房价。题目要求我们根据房子面积和房子卧室数量两个特征建立2元线性回归方程预测房价。
下面分4波学习率进行展示,第一张图片是按照instruction给的建议alpha 取0.3,0.1,0.03和0.01。
第二张图片在第一波的基础上加了alpha取1和0.0001的情况。
第三张图片、第四张图片是alpha分别取2、5。第一波和第二波都比较正常,但是第三波和第四波出现了反常情况。具体介绍见下文。
第五张图片是alpha取5,迭代次数分别取21、22、23、24 。第六张图片是alpha取5,迭代次数分别取25、30、35、40 。

改变学习率

在这里插入图片描述 从图中可以看出,alpha为0.3时代价函数下降最快,迭代9次后,代价函数的值就变为稳定值2.3e+10
alpha 取0.1, 迭代30次后,代价函数的值就变为稳定值2.3e+10,速度约等于alpha为0.3的三分之一
alpha 取0.03, 迭代100次后,代价函数的值就变为稳定值2.3e+10。
alpha 取0.01, 迭代302次后,代价函数的值就变为稳定值2.3e+10,速度约等于alpha为0.03的三分之一
通过对比alpha=0.3和alpha=0.1以及alpha=0.03和alpha=0.01,可以不严谨地得出一个结论,代价函数减小速度与学习率大小成反比。

alpha 取1的时候,代价函数几乎在迭代不超过10次后就减少到稳定值,代价函数减小地极快
alpha 取0.0001, 迭代400次后,代价函数的值基本没有变化,代价函数减小地极慢。

在这里插入图片描述 alpha 取1的时候,代价函数的变化出现了异常,先是基本不变,然后在迭代400左右的时候飙升。而且注意到代价函数的数量级飙升到1e+259数量级。更多的探讨在下面alpha 取5的时候展开讨论。
在这里插入图片描述alpha 取5的时候,和alpha取1的时候类似,代价函数的变化出现了异常,先是基本不变(在后文可以知道其实变了,只是在图像中不明显),然后在迭代180次左右的时候飙升。而且注意到代价函数的数量级飙升到1e+305数量级,相比于alpha取1时代价函数飙升到1e+259,数量级还是增大不少。此时得到的线性回归方程参数为
Theta =
[
-2.78e+114
-5.23+129
-5.23+129
]
针对房间面积1650平方米,3个卧室的房价3.48e+129dollars!!!
考虑到在代码中设置的迭代次数为400次,但是上图中迭代次数直到了180次,所以在代码中更改迭代次数分别为10,20,50,100,观察代价函数的图像变化情况。

接着,我就想到一个问题,**为啥代价函数总是在迭代次数最后几次暴增?**我想了一下,**觉得可能是其实每次迭代,代价函数的增长都很快,可能是越来越快,**这样积累下来就导致随着迭代次数越来越多,代价函数增加地就越来越快,导致最后的迭代使得代价函数增长的数量级比前面的迭代使得代价函数增长的数量级要大得多。

改变迭代次数

在这里插入图片描述**保持学习率alpha = 5不变,把迭代次数修改为21、22、23、24,**代价函数的数量级依次为1e+43、1e+45、1e+47、1e+48。每增加1个迭代次数,代价函数的数量级变为原来100倍左右。
在这里插入图片描述
**保持学习率alpha = 5不变,把迭代次数修改为25、30、35、40,**代价函数的数量级依次为1e+50、1e+58、1e+66、1e+75。每增加1个迭代次数,代价函数的数量级变为原来1e+8倍左右。

结论

综上,学习率过大会导致代价函数不增反减,学习率过小会导致代价函数基本不会减小。学习率适中,代价函数减少速度与学习率大小成反比。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Programming Exercise 1: Linear Regression Machine Learning Introduction In this exercise, you will implement linear regression and get to see it work on data. Before starting on this programming exercise, we strongly recom- mend watching the video lectures and completing the review questions for the associated topics. To get started with the exercise, you will need to download the starter code and unzip its contents to the directory where you wish to complete the exercise. If needed, use the cd command in Octave/MATLAB to change to this directory before starting this exercise. You can also find instructions for installing Octave/MATLAB in the “En- vironment Setup Instructions” of the course website. Files included in this exercise ex1.m - Octave/MATLAB script that steps you through the exercise ex1 multi.m - Octave/MATLAB script for the later parts of the exercise ex1data1.txt - Dataset for linear regression with one variable ex1data2.txt - Dataset for linear regression with multiple variables submit.m - Submission script that sends your solutions to our servers [?] warmUpExercise.m - Simple example function in Octave/MATLAB [?] plotData.m - Function to display the dataset [?] computeCost.m - Function to compute the cost of linear regression [?] gradientDescent.m - Function to run gradient descent [†] computeCostMulti.m - Cost function for multiple variables [†] gradientDescentMulti.m - Gradient descent for multiple variables [†] featureNormalize.m - Function to normalize features [†] normalEqn.m - Function to compute the normal equations ? indicates files you will need to complete † indicates optional exercises
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

培之

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值