文章目录
1. 梯度下降Gradient Descent(找到minimum J(w)的好方法)
- 用来找到w,b,在J(w)最小的时候。
- 代价函数J(w,b),我们想要最小化代价函数。
- outline:
- start with some w,b。通常set w = 0,b = 0
- 不断变化w,b的值去降低J(w,b)。
- until 我们找到or 靠近minimum(注意:J(w,b)函数不一定是u型/碗状的,minimum可能不止一个。)
2. 梯度下降的实现
2.1 梯度下降的算法
- 公式:
- α: learning rate, 范围[0,1]。如果α很大,则梯度下降很快。
- 同时更新w,b的值。
3. 理解梯度下降(derivative的重要性)
- 假设只有一个参数w,例1显示斜率 > 0,derivative > 0,w会左移,更接近minimize w。
- 假设只有一个参数w,例2显示斜率 < 0,derivative < 0,w会右移,更接近minimize w。
4. 学习率learning rate
- α太小,gradient descent会很慢。
- α太大,gradient descent有可能oveershoot,错过minimum,导致J(w)反而变大。—> diverge离散
- 如果w已经在J(w)的local minimum了,derivative = 0,则w会不变。
【当w不变时,则到达了J(w)的local minimum】 - 即使α不变,当接近local minimum的时候,会自动采取更小的步骤接近他。因为derivative(斜率)在变小,所以steps会变小。
5. 线性回归的梯度下降
- 对于linear regression来说(它的特性),找到的minimum一定是globle minimum。
6. 实例
- 从w=-0.1,b=900开始,f(x)=-0.1x+900
实现梯度下降的过程:
- “Batch” gradient descent:批量梯度下降
- “Batch”gradient descent每一步都会使用所有的training examples。