机器学习(二)---- 单变量线性回归

模型表示

  在监督学习中,有一个数据集,这个数据集被称为训练集。

  以房屋交易为例,假如我们的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$

对上述化简计算可得梯度下降算法 :

梯度下降,随机梯度下降和批量梯度下降以及小批量梯度下降的联系与区别。

  

  1. 批量梯度下降:
      使误差函数尽可能的小,每次迭代需要整个样本来对参数进行更新,当样本数目变大时,训练速度回逐渐变慢
  2. 随机梯度下降:
      不同于批量梯度下降,随机梯度下降是每次迭代使用一个样本来对参数进行更新。使得训练速度加快,但是准确度会降低
  3. 小批量梯度下降:
      是对批量梯度下降以及随机梯度下降的一个折中办法。其思想是:每次迭代 使用batch_size个样本来对参数进行更新。

    batcha_size的选择带来的影响:

    1. 在合理地范围内,增大batch_size的好处:
      a. 内存利用率提高了,大矩阵乘法的并行化效率提高。
      b. 跑完一次 epoch(全数据集)所需的迭代次数减少,对于相同数据量的处理速度进一步加快。
      c. 在一定范围内,一般来说 Batch_Size 越大,其确定的下降方向越准,引起训练震荡越小。
    2. 盲目增大batch_size的坏处:
      a. 内存利用率提高了,但是内存容量可能撑不住了。
      b. 跑完一次 epoch(全数据集)所需的迭代次数减少,要想达到相同的精度,其所花费的时间大大增加了,从而对参数的修正也就显得更加缓慢。
      c. Batch_Size 增大到一定程度,其确定的下降方向已经基>本不再变化。