先说说 batch gradient descent
你有 一批数据,不算多;
假定我们在训练 一个 房价预测 器
这个 预测器,这个模型,就是个 线性的,有个 线性的 函数 来表达 我们的这个机器学习 模型:
上图 展示 了 用 这一批 的第二个 数据 进行 error 计算 的 样子
6 个数据 一旦 都计算完了,就叫做 end of one epoch
好了,在这个 epoch 的结束 那一瞬间,我们要计算 权重的更新:
好了,权重如上进行了更新
然后 下一个 epoch 再计算 这 6 个数据的loss;
做完你 规定 的epoch ,我们的模型就训练好了。
那什么是 sgd 呢?
你有非常多的 sample
你电脑 肯定扛不住,累死他;
sgd 面对大量数据比较好,它是怎么做的?
- 随机选 sample
- 更新所有的 权重比如 w1 ,w2
- 重复上述 1和 2 ,你就得到 sgd
对比 batch gradient descent 和 stochastic grandient descent
mini batch GD
sgd 是 随机选 一个
我随机选 一批
综合对比三者
参考
https://www.youtube.com/watch?v=IU5fuoYBTAM