目录
判断梯度下降是否收敛
在运行梯度下降时,如何判断其是否收敛了呢?即是否在往全局最小值收敛?这一小节主要是讲如何选择正确的学习率.
方法一 —— 学习曲线
横轴是迭代次数,纵轴是代价函数值
一般来说,梯度下降运行正常的图像如下:
即代价函数逐渐减小,向全局最小值收敛
方法二——自动收敛测试
程序一般会一直自动迭代下去,所以我们需要自动收敛测试来在程序已经收敛,cost的值不再变化的时候结束运行。
方法
1.设置一个参数,赋值为0.001
2.如果在两次迭代之间,代价函数的减少值小于,即可宣布收敛(即w,b已经很接近全局最小值了)
如何设置学习率
几种未正常收敛的情况
波涛汹涌型ヾ(@⌒ー⌒@)ノ
要么出bug了,要么学习率嫌大,因为学习率偏大,所以在代价函数接近最小值的时候直接跨过了最小值,然后由于代价函数变大,最后不断跨过,变成了波浪线/(ㄒoㄒ)/~~。
直接上升型
一般这样的图像,学习率就不是大一点了,而是很多。
怎么做
将学习率从较小值开始(例如0.001)尝试,如果下降太慢,再换大的,慢慢蹭到合适的值。(恩达sansei建议是每次x3)
特征工程
如何在原有的特征基础上变换,组合产生新特征,从而使梯度下降更加巴适。
例如:将长、宽两个特征变为 面积(=长*宽)
多项式回归
用多项式的方法来拟合曲线,比如加上......,或者加上一项
注意:因为x的幂次改变了,故其取值范围随之改变,因此响应地要使用特征缩放。