初学算法——梯度下降法

和自甴很熟 提交于 2020-02-24 23:59:52

梯度下降算法

 

注:

  • :=是赋值的意思
  • 右边错误是因为temp1中采用了更新后的θ0,而梯度下降算法中要求的是同时更新;右边是另外一种算法

  • α太大,可能会导致不收敛

 

线性代数知识:

矩阵的加减乘除算法、单位矩阵、逆矩阵运算、矩阵的转置定义相关知识

 

特征缩放法

目的:加快梯度下降算法的收敛速度。

 

问题描述:如上左图,如果取值θ1=(0 ,5),θ2=(0,2000),则代价函数的2D图会如左图所示,很狭长,在用梯度下降算法寻找最小值的路线可能是弯弯曲曲,需要废掉很长的时间;

当我将θ1,θ2取值分别除以他的取值长度5,2000后,得到的取值范围再画2D图(上右图),则寻找收敛值得曲线会是趋向于一条直线,故这样会大大加快收敛得速度

注:缩放之后的值不能太小,也不能太大;经验值:(-3,3)之间都能接受。

 

均值归一化

目的:加快梯度下降算法的收敛速度

注:

不同的人算出来的范围可能有出入,但是这并不影响最终结果,这些方法只是为了加快收敛速度。

 

调整学习率α值

如果代价函数出现了下面这种情况,那么很有可能是学习率α取值太大引起的;(确保编程没有错误的情况下)

适当的学习率值,对于寻找收敛值很关键;

太大,可能出现不收敛;

太小,会出现收敛过慢;

所以再学习之前先做一系列的收敛测试,选择一个收敛中的最大的α值进行学习

 

 

 

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!