17.大量数据机器学习(Large scale machine

2019-03-28  本文已影响0人  justinwei

第10周 Lecture 17 大量数据机器学习

  1. 随机梯度下降(stochastic gradient descent)
    步骤:
    a.)训练数据重新随机排列(Randomly shuffle(reorder) training examples)
    b.) 算法描述
    cost(\theta, (x^{(i)}, y^{(i)}))=\frac12(h_\theta(x^{(i)})-y^{(i)})^2
    J_{train}(\theta) = \frac1{2m}\sum_{i=1}^m(h_\theta(x^{(i)})-y^{(i)})^2
    Repeat \{ //1 - 10 次
    \ \ \ \ \ \ \ \ \ for \ i:=1,...,m \ \{
    \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \theta_j := \theta_j - \alpha(h_\theta(x^{(i)}-y^{(i)})x_j^{(i)} // (for every j=0, ...,n)
    \ \ \ \ \ \ \ \ \ \ \}
    \ \ \ \}
    和正常的梯度下降比起来,下降是随机的,但是最后还是可以到最低点,但这个不需要每下降一步都对所有训练数据重新计算,所以速度会快很多。
    image.png

c.) 对比批量梯度下降(batch gradient descent)
J_{train}(\theta) = \frac1{2m}\sum_{i=1}^m(h_\theta(x^{(i)})-y^{(i)})^2
Repeat \{
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \theta_j := \theta_j - \alpha \frac1m\sum_{i=1}^m(h_\theta(x^{(i)})-y^{(i)})x_j^{(i)} // (for every j=0, ...,n)
\ \ \}

  1. 小批量梯度下降(Mini gradient descent)
  1. 随机梯度算法如何知道在收敛
  1. 在线学习(online learning)
  1. Map-reduce and data parallelism
    把数据分在不同的机器同时进行计算,完成计算后,再求和
    例如对于梯度下降
    m = 400
    \theta_j := \theta_j - \alpha \frac1{400}\sum_{i=1}^{400}(h_\theta(x^{(i)})-y^{(i)})x_j^{(i)}
    把400条数据分成4份,每份100条,分在4台机器同时运行,4台完成后,再求和。只要算法可以拆分
    其中对于机器1
    temp_j^{(1)} = \sum_{i=1}^{100}(h_\theta(x^{(i)})-y^{(i)})x_j^{(i)}
    temp_j^{(2)}= \sum_{i=101}^{200}(h_\theta(x^{(i)})-y^{(i)})x_j^{(i)}
    temp_j^{(3)}= \sum_{i=201}^{300}(h_\theta(x^{(i)})-y^{(i)})x_j^{(i)}
    temp_j^{(4)}= \sum_{i=301}^{400}(h_\theta(x^{(i)})-y^{(i)})x_j^{(i)}
    合并后
    \theta_j := \theta_j - \alpha \frac1{400}(temp_j^{(1)} +temp_j^{(2)} +temp_j^{(3)} +temp_j^{(4)} )
    image.png
上一篇 下一篇

猜你喜欢

热点阅读