1.Bagging和Boosting的区别
https://www.cnblogs.com/earendil/p/8872001.html
Bagging和Boosting的区别:
1)样本选择上:
Bagging:训练集是在原始集中有放回选取的,从原始集中选出的各轮训练集之间是独立的。
Boosting:每一轮的训练集不变,只是训练集中每个样例在分类器中的权重发生变化。而权值是根据上一轮的分类结果进行调整。
2)样例权重:
Bagging:使用均匀取样,每个样例的权重相等
Boosting:根据错误率不断调整样例的权值,错误率越大则权重越大。
3)预测函数:
Bagging:所有预测函数的权重相等。
Boosting:每个弱分类器都有相应的权重,对于分类误差小的分类器会有更大的权重。
4)并行计算:
Bagging:各个预测函数可以并行生成
https://i.cnblogs.com/
Boosting:各个预测函数只能顺序生成,因为后一个模型参数需要前一轮模型的结果。
5)这个很重要面试被问到了
为什么说bagging是减少variance,而boosting是减少bias?
2. batch_size 对训练的影响
batch_size 过小:
1. 甚至为1时,产生震荡,横冲直撞,难以收敛(每次修正时只以该样本的梯度方向进行修正,难以收敛)
2. 机器利用率不高
在合理范围内增大batch_size:
1. 内存利用率提高了,大矩阵乘法的并行化效率提高。
2. 跑完一次 epoch(全数据集)所需的迭代次数减少,对于相同数据量的处理速度进一步加快。
3. 在一定范围内,一般来说 Batch_Size 越大,其确定的下降方向越准,引起训练震荡越小。
盲目增大 Batch_Size 有何坏处?
1. 内存利用率提高了,但是内存容量可能撑不住了。
2. 跑完一次 epoch(全数据集)所需的迭代次数减少,要想达到相同的精度,其所花费的时间大大增加了,从而对参数的修正也就显得更加缓慢。
3. Batch_Size 增大到一定程度,其确定的下降方向已经基本不再变化。