zoukankan      html  css  js  c++  java
  • 面试题集锦-02

    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 增大到一定程度,其确定的下降方向已经基本不再变化。

    如果有一天我们淹没在茫茫人海中庸碌一生,那一定是我们没有努力活得丰盛
  • 相关阅读:
    SecureCRT的设置和美化
    strtod-strtod, 字符串 转 数字 函数
    Debug : array type has incomplete element type
    Linux上Core Dump文件的形成和分析
    centos7,进程最大打开文件数 too many open files错误
    不使用临时变量交换两个值
    C语言的设计理念
    K&R C vs ANSI C(数据类型提升)
    再也不怕C语言的声明了
    K&R C vs ANSI C(数据类型转换)
  • 原文地址:https://www.cnblogs.com/yeran/p/10517608.html
Copyright © 2011-2022 走看看