梯度下降算法
注:
- :=是赋值的意思
- 右边错误是因为temp1中采用了更新后的θ0,而梯度下降算法中要求的是同时更新;右边是另外一种算法
- α太大,可能会导致不收敛
线性代数知识:
矩阵的加减乘除算法、单位矩阵、逆矩阵运算、矩阵的转置定义相关知识
特征缩放法
目的:加快梯度下降算法的收敛速度。
问题描述:如上左图,如果取值θ1=(0 ,5),θ2=(0,2000),则代价函数的2D图会如左图所示,很狭长,在用梯度下降算法寻找最小值的路线可能是弯弯曲曲,需要废掉很长的时间;
当我将θ1,θ2取值分别除以他的取值长度5,2000后,得到的取值范围再画2D图(上右图),则寻找收敛值得曲线会是趋向于一条直线,故这样会大大加快收敛得速度
注:缩放之后的值不能太小,也不能太大;经验值:(-3,3)之间都能接受。
均值归一化
目的:加快梯度下降算法的收敛速度
注:
不同的人算出来的范围可能有出入,但是这并不影响最终结果,这些方法只是为了加快收敛速度。
调整学习率α值
如果代价函数出现了下面这种情况,那么很有可能是学习率α取值太大引起的;(确保编程没有错误的情况下)
适当的学习率值,对于寻找收敛值很关键;
太大,可能出现不收敛;
太小,会出现收敛过慢;
所以再学习之前先做一系列的收敛测试,选择一个收敛中的最大的α值进行学习
来源:CSDN
作者:YUE.YUN
链接:https://blog.csdn.net/pptde/article/details/104474658