Gradient descent and others

Batch gradient descent

Procedure

  • 在循环中跌倒公式\(\theta_j:=\theta_j-\alpha{1\over{m}}\sum_{i=1}^m(h_{\theta}(x^{(i)})-y^{(i)})x_j^{(i)}\)
  • 只有迭代完所有的数据, 才更新\(\theta\)

Stochastic gradient descent

Procedure

  • 将原始数据打乱
  • 在循环中跌倒公式\(\theta_j:=\theta_j-\alpha(h_{\theta}(x^{(i)})-y^{(i)})x_j^{(i)}\)
  • 与Batch梯度下降的公式不同, 少了\(\sum_{i=1}^m\), 这就是随机梯度下降的特性, 它不想Batch梯度下降一样, 需要迭代完所有的数据才能更新\(\theta\), 而是迭代了一个样本就会更新\(\theta\)

Mini-batch gradient descent

Features

  • 新增了b变量, 表示每一次迭代b个样本

Procedure

  • 选定好b
  • 使用for循环语句, for i = 1, 1+b, ..., 迭代公式\(\theta_j:=\theta_j-\alpha{1\over{b}}\sum_{k=i}^{k+b}(h_{\theta}^{(k)}-y^{(k)})x_j^{(k)}\)

学习路\(\alpha\)的选择

  • 可以确定两个常量const1和const2
  • 公式\(\alpha={const1\over{iterNum+const2}}\)
  • 好处, 当我们迭代的次数增加, \(\alpha\)会自动的减小

Loss Function与Cost Function

  • Loss Function一般使用L表示, 它表示的是单个样本的损失
  • Cost Function一般使用J表示, 它表示的是所有样本的损失
  • 在机器学习中, 我们的目的是优化J

猜你喜欢

转载自www.cnblogs.com/megachen/p/10545878.html