美文网首页【机器学习-深度学习】
【百面机器学习】深度神经网络

【百面机器学习】深度神经网络

作者: 阿牛02 | 来源:发表于2019-08-14 15:58 被阅读0次

           对于深度神经网络,我们在每一层线性变换后叠加一个非线性激活函数,以避免多层网络等效于单层线性函数,从而获得更强大的学习与拟合能力。

    1、常用激活函数及其导数

    2、为什么Sigmoid和Tanh激活函数会导致梯度消失现象?

    3、Relu系列相对于其它的激活函数的优点?

    4、平方误差损失函数和交叉熵损失函数分别

           平方误差损失函数更适合输出为连续,并且最后一层不含Sigmoid或者Softmax激活函数的神经网络;交叉熵损失函数则更适合二分类或者多分类的场景。

    5、神经网络训练技巧

          深度学习网络容易存在过拟合现象,为了解决“过拟合”,包括数据增强,参数范数惩罚/正则化、模型集成等,其中Dropout是模型集成方法中最高效和常用的技巧。同时,深度神经网络的训练中涉及诸多手动调参,如学习率、权重衰减系数,Dropout比率等,都会影响最终结果。批量归一化(BN)方法有效规避了这些复杂参数对网络训练产生的影响,在加速训练收敛的同时也提升了网络的泛化能力。

    (1)神经网络训练时是否可以将全部参数初始化为0?

          考虑 全连接的深度神经网络,同一层中的任意神经元都是同构的,它们拥有相同的输入和输出,如果将参数全部初始化为同样的值,那么无论前向传播还是反向传播的取值都是完全相同的。学习过程将永远无法打破这种对称性,最终同一网络层中的各个参数仍然是相同的。

           因此,我们需要随机地初始化神经网络参数的值,以打破这种对称性,偏置可以被简单地设为0,并不会导致参数对阵的问题。

    (2)为什么Dropout可以抑制过拟合?它的工作原理和实现?

           Dropout要求某个神经元节点激活值以一定的概率p被“丢弃”。对于包含N个神经元节点的网络,在Dropout的作用下可看作为2的N次方个模型的集成,所以Dropout可以认为是一种实用的大规模深度神经网络的模型集成算法。

    (3)批量归一化的基本动机与原理?在卷积神经网络中如何使用?

           神经网络训练过程中的本质是学习数据分布,如果训练数据与测试数据的分布不同将大大降低网络的泛化能力,因此我们需要在训练开始前对所有输入数据进行归一化处理。

           然而随着网络训练的进行,每个隐层的参数变化使得后一层的输入发生变化,从而每一批训练数据的分布也随之改变,致使网络在每次迭代中都需要拟合不同的数据分布,增大训练的复杂度以及过拟合的风险。

           批量归一化可以看作在每一层输入和上一层输出之间假如了一个新的计算层,对数据的分布进行额外的约束,从而增强模型的泛化能力。但是批量归一化同时也降低了模型的拟合能力,归一化之后的输入分布被强制为0均值和1标准差。

    6、深度残差网络

           深度神经网络的层数决定了模型的容量,然而随着神经网络层数的加深,优化函数越来越容易陷入局部最优解。同时,随着网络层数的增加,梯度消失的问题更加严重,这是因为梯度在反向传播时会逐渐衰减。特别是利用Sigmoid激活函数时。

           Resnet把网络结构调整为,既然离输入近的审计网络层较难训练,那么我们可以将它短接到更靠近输出的层。输入x经过两个神经网络的变换得到F(x),同时也短接到两层之后,最后这个包含两层的神经网络模块输出H(x) = F(x) + x。F(x)被设计为只需要拟合输入x与目标输出H(x)的残差H(x) - x。

    相关文章

      网友评论

        本文标题:【百面机器学习】深度神经网络

        本文链接:https://www.haomeiwen.com/subject/qtmgjctx.html