Index fund & stochastic gradient descent

感觉这俩道理挺相似的, 也许我想象力过于丰富…
都是选取一些样本做优化, cost大的样本的影响也更大, 样本数多了volatility小一点

batch_size=1: 梭哈
batch_size=500: S&P500
batch_size=inf: total market index

样本权重不一样。
SP500和total market index的correlation接近+1。

但在 deep learning 里,有时 batch_size 小比 batch_size =inf 好

稍微纠正一下细节:

  1. SGD 其实一般指的就是batch size = 1, 处于1 到whole size的一般叫做mini-batch
  2. batch size 越小一般是decent效果越好,因为weight的更新更频繁
  3. batch 大小的trade off是parallelization, batch越大就可以用矩阵算法就越有效率,所以这是一个优化速度跟运行效率的trade off
  4. 不只是DL里的,一般所有用GD的ML算法都可以适用mini-batch SGD, 并且效果更好
1赞

Batch size 决定了掉进坑 local minima的概率

一个类似的类比,option 不就是relu 嘛,哈哈

1赞

谢谢补充

其实我原本是想说 @capybara 说的 local minima 问题,就算 batch size 大小不影响 weight 更新频率, batch size 小还是有优势

如果是非 deep learning,如 convex optimization 的话,那在更新频率相同的情况下, batch size 越大就越好

假设数据不完美, batch size太小gradient不稳定,甚至有可能下个step就GG
极端情况假如batch size=1又刚好拿到一个标注不够好的数据, 可能就完全没法收敛了
batch size大一点起码容错率高, 这和分散投资异曲同工
收敛到一定程度降低学习率, 这和调整stock/bond比例也类似:)

坏点其实无所谓的,这也正是SGD的牛逼之处。即使一下飞到天涯海角,最终也是会飞回来的,因为下一个数据又要更新了,更新频率高就是这个好处,但是就像我说的缺点是浪费,无法vectorize。