前向神经网络问题集

来源

《百面机器学习》第9章

1 多层感知机与布尔函数

问:多层感知机表示异或逻辑时最少需要几个隐含层(仅考虑二元输入)?
答:1个隐层2个节点,加上全连接层的一个节点。
注意:而且不带隐藏层的感知机无法精确学习出一个输出为异或的模型表示,因为sigmoid函数是单调的。
实现异或功能

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

问1:写出常用激活函数及其导数。
答:sigmiod函数-值域为(0,1),输入为0时输出为0.5,其导数=f(z)(1-f(z))。
tanh函数-值域为(-1,1),输入为0时输出为0,其导数=1-(f(z))^2。
ReLU函数-值域为[0,∞)。
sigmoid函数
tanh函数
问2:为什么sigmoid和tanh激活函数会导致梯度消失的现象?
答:因为z很大时,sigmoid的输出f(z)趋近于1,z很小时,f(z)趋近于0.所以sigmoid的导数f(z)(1-f(z)),无论在z很大还是很小时都会趋近于0,即梯度消失。tanh激活函数同理。

问3:ReLU系列的激活函数相对于sigmoid和tanh的优点,有什么局限和改进?
答:优点有三。一是sigmoid和tanh需要计算指数,复杂度高;relu只需要一个阈值即可得到激活值。 二是relu的非饱和性可以有效地解决梯度消失的问题,提供相对宽的激活边界。三是relu的单侧抑制提供了网络的稀疏表达能力。 这里的“饱和性”直观定义是 一个饱和的激活函数会将输出结构压缩到有限区间,比如sigmoid,结果在(0,1)区间。ReLU的值域是[0,∞),即具有非饱和性,且ReLU的梯度是1,不会消失。

缺陷:训练过程会导致神经元死亡,z小于0时,经过relu单元被置为0,且之后不被任何数据激活。在实际训练中,如果学习率设置较大,会导致超过一定比例的神经元不可逆死亡,进而参数梯度无法更新,训练失败。

ReLU和LReLU对比

第一种改进:因为这个局限,设计了Leaky Relu:z不大于0时,输出为az. a为很小的正常数。既实现了单侧抑制,又保留了部分负梯度信息以致不完全丢失。 另一方面,a值选择增加了问题难度,需要较强的人工先验或多次重复训练以确定合适的参数值。

第二种改进:参数化的PRelu出现。与LRelu主要区别在于将负轴部分斜率a作为网络中一个可学习的参数,进行反向传播训练,与其他含参数网络层联合优化。

第三种改进:另一种LRelu变种RRelu:增加了“随机化”机制,具体地,在训练过程中,斜率a作为一个满足某种分布的随机采样;测试时再固定下来。 一定程度上能起到正则化作用。

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

问:平方误差损失函数和交叉熵损失函数分别适合什么场景?
答:一般来说,平方误差损失函数更适合输出为连续,并且最后一层不含sigmoid或softmax激活函数的神经网络;交叉熵损失则更适合二分类或多分类的场景。
另一种解释是分类问题的标签没有连续的概念,交叉熵更符合分类问题的分布。

4 神经网络训练技巧

问1:神经网络训练时是否可以将全部参数初始化为0?
答:不可以。如果全部初始化为同样的值,以全连接NN为例,将无法打破网络学习过程的对称性。所以可以随机初始化参数xx的均匀分布。

问2:为什么Dropout可以抑制过拟合?它的工作原理和实现?
答:Dropout是指在深度网络的训练中,以一定概率随机地[临时丢弃]一部分神经元节点。
效果:相当于每次迭代都在训练不同的神经网络。对于包含N个神经元节点的网络,在Dropout作用下可看作为2^N个模型的集成(因为每个神经元有2个选择)。
好处:减弱全体神经元之间的联合适应性,减少过拟合的风险,增强泛化能力。
实现:增加一个Bernoulli函数,以概率系数p随机生成一个取值为0或1的向量,代表每个神经元是否需要被丢弃。

问3:批量归一化的基本动机与原理是什么?在卷积神经网络中如何使用?
答:神经网络训练过程的本质是学习数据分布。所以在训练开始时需要对所有输入数据进行归一化处理。
然而这还不够,因为随着网络训练进行,每个隐层的参数变化使得后一层的输入发生变化,导致每一批训练数据的分布也改变了。 所以需要进行批量归一化,针对每一批数据,在网络的每一层输入之前增加归一化处理。

批量归一化可以看作在每一层输入和上一层输出之间加入了一个新的计算层,对数据分布进行额外的约束,从而增强模型的泛化能力;但是! 批量归一化同时也降低了模型的拟合能力, 因为归一化之后的输入分布被强制为0均值和1标准差。
比如,以sigmoid函数为例,批量归一化之后,数据整体处于函数的非饱和区域,只包含线性变换,破坏了之前学习的特征分布。所以针对这种问题,引入变换重构以及可学习参数以便恢复原始数据分布。 最终达到既可以恢复最优的输入数据分布,又可以与之前的参数解耦,从而更加有利于优化的过程,提高模型的泛化能力。

5 深度卷积神经网络

问1:卷积操作的本质特性包括稀疏交互和参数共享,具体解释这两种特性及其作用
稀疏交互,指卷积核只和前一层的部分神经元进行交互。物理意义是图像、文本、语音都具有局部的特征结构,我们可以从局部到整体的逐步学习。比如人脸识别中底层神经元检测边缘,中间神经元将边缘聚合成五官,上层神经元检测人脸特征。
参数共享,指在同一个模型的不同模块中使用相同的参数,是卷积运算的固有属性。物理意义是使得卷积层具有平移等变性,比如猫在图像的不同位置依然是一只猫。

问2:常用的池化操作有哪些?池化的作用是什么?
均值池化:邻域内特征求平均,特点是对背景的保留效果更好,能够抑制邻域大小受限造成估计值方差增大的现象。
最大池化:取邻域内特征的最大值,能够抑制网络参数误差造成估计均值偏移的现象,更好地提取纹理信息。
池化的本质:降采样。还包括对相邻重叠区域的池化(采用比窗口宽度更小的池化)以及空间金字塔池化(考虑多尺度信息)。
作用:显著降低参数量,保持对平移、伸缩、旋转操作的不变性。如放有猫的照片旋转一下依然是猫。

问3:卷积神经网络如何用于文本分类任务?
卷积神经网络的核心思想:捕捉局部特征。
对于文本来说,局部特征就类似n-gram。CNN的优势在于能够自动地对N-gram特征进行组合和筛选,获得不同抽象层次地语义信息。同时因为共享权重的机制,训练速度也不错。

6 深度残差网络

问:ResNet的提出背景和核心理论是什么
答:背景是解决或缓解深层的神经网络训练中的梯度消失问题。
ResNet把网络结构调整为,既然离输入近的神经网络层较难训练,那么将它短接到更靠近输出的层。
即被设计为只需要拟合输入x和目标输出H(x)的残差H(x)-x.

ResNet结构
原因:如果某一层的输出已经较好的拟合了期望结果,那么多加入一层不会使得模型变得更差,因为该层的输出将直接被短接到两层之后,相当于直接学习了一个恒等映射,而跳过的两层只需要拟合上层输出和目标之间的残差即可。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值