模型表示
在监督学习中,有一个数据集,这个数据集被称为训练集。
例
以房屋交易为例,假如我们的Training Set(训练集)如表
Size in feet2(x) |
Price($) in 1000's(y) |
---|---|
2104 |
460 |
1416 |
232 |
1534 |
315 |
852 |
178 |
... |
... |
m代表训练集中的实例数目
x代表特征/输入变量
y代表目标变量/输出变量
(x,y)代表训练集中的实例
$(x^{(i)},y^{(i)})$代表第i个观察实例
h代表学习算法的解决方案或函数也称为假设(Hypothesis)
h的一种可能的表达式 $h(x)=\theta_0+\theta_1(x)$,即单变量线性回归
代价函数
代价函数,有时候也称为平方误差函数/平方误差代价函数
例
注:$J(θ0,θ_1)$就是代价函数(cost function)
m:样本空间容量
$h\theta(x^{(i)})=\theta_0+\theta_1(x^{(i)})$
$^{minimize}_{θ_0,θ_1}J(θ_0,θ_1)$既是我们所想达到的目的
梯度下降算法
注:$\alpha$为一个数字,代表学习效率;如果太大,会导致结果不准确甚至无法收敛;如果太小,会导致算法效率低下。
注意:$\theta_0:=\theta_0 , \theta_1:=\theta_1$应该同时更新 也就是:
$temp0 = \theta_0 -\alpha \frac{\partial}{\partial \theta_0}J(θ_0,θ_1)$
$temp1 = \theta_1 -\alpha \frac{\partial}{\partial \theta_1}J(θ_0,θ_1)$
$\theta_0:=temp0$
$\theta_1:=temp1$
对上述化简计算可得梯度下降算法 :
梯度下降,随机梯度下降和批量梯度下降以及小批量梯度下降的联系与区别。
- 批量梯度下降:
使误差函数尽可能的小,每次迭代需要整个样本来对参数进行更新,当样本数目变大时,训练速度回逐渐变慢 - 随机梯度下降:
不同于批量梯度下降,随机梯度下降是每次迭代使用一个样本来对参数进行更新。使得训练速度加快,但是准确度会降低 小批量梯度下降:
是对批量梯度下降以及随机梯度下降的一个折中办法。其思想是:每次迭代 使用batch_size个样本来对参数进行更新。batcha_size的选择带来的影响:
- 在合理地范围内,增大batch_size的好处:
a. 内存利用率提高了,大矩阵乘法的并行化效率提高。
b. 跑完一次 epoch(全数据集)所需的迭代次数减少,对于相同数据量的处理速度进一步加快。
c. 在一定范围内,一般来说 Batch_Size 越大,其确定的下降方向越准,引起训练震荡越小。 - 盲目增大batch_size的坏处:
a. 内存利用率提高了,但是内存容量可能撑不住了。
b. 跑完一次 epoch(全数据集)所需的迭代次数减少,要想达到相同的精度,其所花费的时间大大增加了,从而对参数的修正也就显得更加缓慢。
c. Batch_Size 增大到一定程度,其确定的下降方向已经基>本不再变化。
- 在合理地范围内,增大batch_size的好处: