吴恩达机器学习第一周

Octave安装

多元线性回归

顾名思义,与单变量线性回归的区别是有多个特征值,即考虑多个影响因子。有以下符号标示:

表示第i个样本的第j个值。

表示第i行样本。

N表示一共有几个特征值。        

简化为:,且为1。

多元线性回归的梯度下降

定义多元线性回归的预测函数:

定义梯度下降函数:

注意:同时更新,j=0,…,n

化简后梯度下降函数:

有=1,j=0,…,n

特征缩放

这是一种加速梯度下降的方法。假设当前有特征值,当特征值之间的范围大小相差很大时,则梯度下降会很慢,迟迟找不到最优点。特征缩放是指:把所有特征值用特征值除以某个值使得它们的范围落在-1<x<1或者-0.5<x<0.5(理想情况下),这个范围不是固定,视频中老师的经验是在-3<x<3都是可以接受的,但是对于-100<x<100或者-0.001<x<0.001的情况,则是不合适的。当实现合适的特征缩放时,梯度下降将会更高效,循环次数更少。这是针对特征值的范围实现加快梯度下降的方法。

 

均值归一化

这个是针对每一个特征值的处理,将特征值进行均值归一化。具体操作如下:

代表特征值的值,代表该特征的平均值,代表特征值的范围差(或者标准差)

如何判断梯度下降是否正确工作

判断有两种方法:图和自动收敛测试。

图:画出随迭代次数增多的曲线图。当学习速率太小,则会出现梯度下降很慢;当学习速率太大,则会出现梯度上升的现象,可能不会出现收敛。当学习速率适当时,会逐渐收敛于一个稳定的范围。

自动收敛测试:则是通过算法来判断,当减少至一个很小的固定值(预先指定,例如:)时,则说达到了收敛。

多项式回归

当使用线性回归不能更好的拟合样本数据,可以使预测函数变成二次方程、三次方程、平方根方程等,为了更好的拟合数据。例如:

但可以从不同的角度来看问题,可以增添新的特征值,例如:

这就由多项式回归(Polynomial Regression)变成了多元回归(Multiple Features)。此时由于特征的大小相差很大,所以特征缩放和均值归一化就比较重要。

标准方程

标准方程(NormalEquation)是另一种求最优化情况下的值的方法。定义如下:

X为设计矩阵,定义如下:

Y为样本数据正确结果的向量。

梯度下降和标准方程比较

梯度下降优点:无论样本规模大小或巨大,都可以解决问题,找到最优化情况下的值。梯度下降缺点:需要选择,值决定梯度下降的快慢,过大过小都不易;需要通过多次迭代才能得出结果,规模小时,相比比较慢。

标准方程优点:不需要选择;不需要迭代。标准方程缺点:求的复杂度为,n为样本规模,当样本规模多大,视频指出一般超过10000的情况(经验),就应该考虑梯度下降。

作业提交方法介绍

Octave基础使用方法

1.      加、减、乘、除(基本运算)

2.      与、或、非(逻辑运算)

3.      判断 ==  ~=  (注释为%

4.      调整命令行格式:PS1(‘>>’)

5.      B=1;不会显示B,加分号。

6.      Disp(sprint(‘2 decimals:%0.2f’,a));也是用来显示

7.      矩阵A=[1,2;3,4;5,6],分号用来换下一行。

8.      V=1:0.1:2;生成从1开始,以0.1为增量,到2的一个向量。

9.      Ones(1,3)生成一个一行三列的所有元素都为1的矩阵。Zeros(1,3) 生成一个一行三列的所有元素都为0的矩阵。Rand(3,3) 生成一个三行三列的所有元素都为随机值(0-1)的矩阵。

10.  绘制直方图:hist(w)或者hist(w,50)

11.  Eye(3);创建一个3*3的单元矩阵

12.  Size(v);输出该矩阵的维度。Size(v,1)输出该矩阵的行,size(v,2)输出该矩阵的列。

13.  Length(v);输出该矩阵的维度最大值。

14.  Pwd用户显示当前octave的路径,用cd来改变当前的路径。通过load来加载问价,比如:load featureX.batwho用来显示当前octave的变量,whos用来详细显示octave的变量及信息。Clear用来删除一个变量。

15.  V=priceY(1:10);表示将priceY文件中的数据的前10行赋值到V中。Save hello.mat v;用来把v矩阵的数据保存到hello.mat中,load hello.mat可以再次加载v中。“:”表示该列或该行的所有数据。

16.  矩阵乘积和矩阵点乘,max方法,abs方法,log方法,exp方法,sum方法,prod方法,floor方法(向下取舍),ceil方法(向上取舍)。Eye(3)3*3的单位矩阵,flipud(3)3*3的反对角线单位矩阵。矩阵之间的max是比较两个矩阵元素之间的大小;矩阵内部的比较是取每列的最大值。

17.  Magic(3)是构造一个3*3的魔方矩阵,各行各列各对角线的和都是一个值。

18.  Pinv是求矩阵的逆。

19.  Plot画图命令。Xlabel标示x轴,ylabel标示y轴,title标示标题,legend标示图例。Print –dpng ‘myplot.png’保存图片。

20.  Subplot(1,2,1)把控制框分成1*2的格子,当前使用第一个。使用axis调整x/y轴的范围大小。使用clf清除数据。

21.  Whileforif-elsebreakcontinue使用方法。

22.  函数定义和调用:

注:求代价函数函数定义

向量化

对原来的梯度下降的进行向量化计算,如下:这样计算方便简洁,还满足同时更新要求。

作业:

1.绘制X中数据的散点图

2.通过梯度下降算法,得到thera0=-3.6303,thera1=1.1664(1500次的迭代后,两个值趋于此值),如下图:

3.通过ex1.m函数画出的二维图和等值线图,显示出的最优值。

学习心得:

通过这周的学习,是对上周学习的拓展,上周是单变量线性回归,这周学习的是多变量线性回归和多项式回归。方法基本相同,梯度下降方法还能实用。并且又学习了标准方程的方法求解thera(不需要alpha和迭代),但是有规模的限制,当规模过大时,复杂度太大。这周还有最大的提升就是学习使用了Octave,了解了很多技巧和方法。通过作业,也感触颇深,感觉到理论和实践还是有一定差距的,不过还好有作业,这样可以加强巩固。通过作业,感觉到,很多计算都可以用矩阵来解决,方便简洁,并且Octave已经提供了矩阵的相关计算,所以这样是非常省事的,避免了很多循环计算。在做作业的过程中,发现自己在由传统计算向矩阵计算(也就是向量化的过程不熟练)转变的过程缺乏经验,不熟练。慢慢感觉知识难度变大,练习也有趣了,动手实践也多了。继续保持!


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值