l*******m 发帖数: 1096 | 1 DL算法有两点特点,第一是minibatch parameter update, 第二是autodiff, backprop
如果用kmeans, 是有一种minibatch算法的,sklearn就有实现。但是kmeans的目标函数
是不可到的。如果用soft decision的kmeans, 则是可导的。不过这就是mixed
Gaussian,其本质和前一段大火的vae是一样。就是用minibatched backprop做
variational inference |
|
f******2 发帖数: 2455 | 2 Berkeley的两个人做了一个sparknet的项目 https://github.com/amplab/SparkNet
如果读读他们的paper的话,http://arxiv.org/abs/1511.06051,就会发现其实想法非常简单:因为同步的开销(例如10秒)通常大于一个minibatch计算的开销(例如1秒),那sparknet的做法是,在local连续做几次minibatch后再同步,从而降低同步的副作用。
但是我对这两个哥们儿最后的实验结论有些疑问:
1. 连续local算几次会不会造成本来收敛的东西不收敛了?(这个需要ML的内行帮忙
解答一下)
2. 图7里面发现iteration和训练收敛速度没有关系,难道要瞎选参数?
谢谢
关于ensemble的说法,你的意思是说同时对几种不同的网络训练,取平均值?这部分没
有看懂。
一般模型没那么大,每个节点能看到所有param, 可能部分数据。难点是同步update太 |
|
l*******s 发帖数: 1258 | 3 如果这里不用minibatch,而是选batch,那么同步成本就会大于batch,
而如果用stochastic代替minibatch,那么速度会更快,同步成本相对就更高,所以跑
几个iteration后再同步是不是更好。
连续local算几次,是不是本来就为了避免局部最优?SGD里面就有这种方法。 |
|
w***g 发帖数: 5958 | 4 1. reduce_sum vs reduce_mean:
reduce_sum会导致你的gradient和minibatch size相关,以至于
需要根据不同的minibatch size调整learning_rate。
用reduce_mean没这个问题。
2. mean(sqr(error)) vs sqrt(mean(sqr(error)))
和上面的相似,前者的问题是需要根据error绝对值调整learning_rate。
error太大甚至会溢出。
上面这两个都是数学上等价,但是实现上的坑。
你把这两个改了, 用learning_rate = 0.01,隔1000个
iteration打印状态,就能看到正常收敛了。 |
|
l*******m 发帖数: 1096 | 5 frequentists 数学微积分加线性代数就够了,不是很难。Bayesian比较复杂,不过由
于大数据的压力,现在也minibatch sampling/ inference,不少投靠Tensorflow用其
autograd. |
|
s********k 发帖数: 6180 | 6 为什么DL每次的minibatch随机选取就可以,而不用像adaboost那样如果训练错了的下
次特征选取加更高的权重?是为了避免overfit? |
|
s********k 发帖数: 6180 | 7 即使这样,如果有针对对minibatch再选取权重,会不会提高效率?还是会overfitting? |
|
s********k 发帖数: 6180 | 8 大牛,你觉得比如adaboost那种迭代式选取feature的方法,在deep learning中适用吗
?比如我每次minibatch选了一部分上次训练错误的特征重新来训练,实际中我在一个
很小的dataset试了一下,感觉没啥差别,难道是DL抹平了这种原来学习机制的不足?
有, |
|
|