[关闭]
@songying 2019-03-26T22:09:22.000000Z 字数 1617 阅读 2583

深度学习: 前馈神经网络

deep-learning


神经网络更深意味着什么?

1. 多层感知机与布尔函数

1. 多层感知机表示异或逻辑时最少需要几个隐层?(仅考虑二元输入)

2. 深度神经网络中的激活函数

为什么sigmoid 与tanh都会导致梯度消失

对于sigmoid ,来说,当x很大或很小时,其导数都趋近于0。 而tanh在x很大或很小时,其导数也都趋近于0.

实际上,Tanh相当于sigmoid的平移:

Relu vs Sigmoid和tanh

3. 多层感知机的反向传播算法

4. 神经网络训练技巧

过拟合解决办法: 数据增强,正则化,集成学习, Dropout, Batch Normalization 。

1. 参数初始化能否为0

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

2. Dropout 原理和实现

对于包含 N 个神经元节点的网络,在Dropout 的作用下可看作为 个模型的集成。这 个模型可认为是原始网络的子网络, 它们共享部分权值,并且具有相同的网络层数,而模型整体的参数数目不变,这就大大简化了运算。

对于任意神经元,每次训练中都与一组随机挑选的不同的神经元集合共同进行优化,这个过程会减弱全体神经元之间的联合适应性, 减少过拟合的风险,增强泛化能力。

使用Dropout 包括训练, 预测两个阶段。 训练阶段中,每个神经元节点都有一个概率系数。 在测试阶段中,需要取消Dropout过程。

3. Batch Normalization 原理

是针对每一批数据, 在网络的每一层输入之前增加归一化处理(均值为0 ,标准差为1)

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

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注