初学算法——梯度下降法

梯度下降算法

 

初学算法——梯度下降法_第1张图片

注:

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

初学算法——梯度下降法_第2张图片

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

 

线性代数知识:

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

 

特征缩放法

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

初学算法——梯度下降法_第3张图片

 

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

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

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

 

均值归一化

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

初学算法——梯度下降法_第4张图片注:

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

 

调整学习率α值

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

初学算法——梯度下降法_第5张图片

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

太大,可能出现不收敛;

太小,会出现收敛过慢;

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

初学算法——梯度下降法_第6张图片

 

 

 

 

你可能感兴趣的:(#,AI算法)