- 积分
- 5455
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2018-1-24
- 最后登录
- 1970-1-1
|
发表于 2019-3-1 15:37:54
|
显示全部楼层
本帖最后由 黄裳 于 2019-3-2 09:25 编辑
存在前后关系的(纵列里的1,2就是前后关系啊,你还可以1,2,3,4预测5),和MiniBatch没关系,MiniBatch只是为了加快cost收敛又不失准确率的折中方法,可以从1到整个数据集的大小随意设,为1 时cost最后可能最小,但运算时间长,随着MiniBatch的增大,运算时间长逐渐减少然后增大到最大(此时MiniBatch的size最大也就是整个数据集的大小),这个过程中,cost是逐渐下降的,到MiniBatch为最大时到达最大。
原因是MiniBatch大,更新w权重时不那么随机,容易停留在局部最小值上,因为它每一步都是朝着使整个数据集的cost最小值方向走的,就好比大雾天你一个人站在珠峰山坡上想要到最低的地方一样,假设最低点四川成都,但能见度只有几米,有什么办法呢?只能靠你对这几平方米地方的感觉朝下降最快的方向走一小步,即沿着使整个数据集的cost的梯度反方向走,停下来在感觉下下降最快的方向,然后朝那个方向走,直到你走到拉萨那个最低点(假设它是海拔局部最低点),然后你就不走了,因为这个点的梯度为0啊,还走什么?所以你并没有到达整个中国最低点。
但MiniBatch为1或者其他不是最大那个值时就不一样了,网络更新权重时计算的是每个MiniBatch数据集的cost,这就相当于,有多少个MiniBatch就有多少个人,你们一起站在山坡上商量着朝最低点进发,但由于你们每个人的感受不同,所以每次朝向了最后当时当地感受好的那个人以为下降最快的那个方向,你们的路线就可能是随机但又不是瞎乱走,总归是朝着你们当中某位所以为的下降最快的那个方向走的,因为你们可能都到不了拉萨,七拐八拐的走到贵州云南甚至可能是北京但只要足够长时间,你们一定可以走到四川的,不是吗?
|
|