初学算法——梯度下降法

梯度下降算法

注:

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

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

线性代数知识:

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

特征缩放法

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

扫描二维码关注公众号,回复: 9379481 查看本文章

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

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

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

均值归一化

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

注:

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

调整学习率α值

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

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

太大,可能出现不收敛;

太小,会出现收敛过慢;

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

发布了28 篇原创文章 · 获赞 7 · 访问量 2492

猜你喜欢

转载自blog.csdn.net/pptde/article/details/104474658