梯度下降法
如何最小化Costs
y = w1x1 + w2x2 + ... + wnxn + b
注意,在计算损失时,w是未知数;而x和y是已知的点。
只有一个x的时候,损失函数是一个抛物线。值最小的时候是导数为0.
当有2个x的时候,找最小值变得困难(抛物面)。维度更多则更困难。不能像一维的时候得到解析解(通过数据公式的方式计算出结果)。无法一步到位,需要使用迭代的方式,来找出最好的结果。
什么是梯度
等高线 - 每条线连接的是同样的高度
怎么找到往哪个方向走效果最好?要引入偏导数的概念。 偏导数:有两个或多个变量时,分别看每个变量对函数的影响(将其它变量看作常数) - 变化率。
每个等高线切线的垂直方向,也是梯度在该点上的取值,也是该点偏导的取值。
往哪个方向走一步效果最好:梯度相反的方向
什么时候停止
- 走了多少步,比如设定100步限制
- 观察两步之间的距离,如果已经很小了则可以停下来
注意,梯步下降不能保证找到全局最优点,只是局部最优点。但往往可以帮助找到足够好的最优点。
Andrew Ng's 的课程写的更清楚些,公式可以直接拿来用
Change log
- 2017.10.25 创建
- 2017.10.28 增加内容