【百面机器学习笔记——第九章 前向神经网络算法】

百面机器学习笔记——第九章 前向神经网络

  • 02 深度神经网络中的激活函数
  • 04 神经网络训练技巧
  • 05 深度卷积神经网络
  • 06 深度残差网络

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

Q1: 常用的激活函数及其导数?
A1: Sigmoid, Tanh, ReLu
Sigmoid:
f ( z ) = 1 1 + e − z f(z) = \frac{1}{1+e^{-z}} f(z)=1+ez1

f ′ ( z ) = f ( z ) ( 1 − f ( z ) ) f'(z) = f(z)(1-f(z)) f(z)=f(z)(1f(z))
Tanh:
f ( z ) = e z − e − z e z + e − z f(z) = \frac{e^{z}-e^{-z}}{e^{z}+e^{-z}} f(z)=ez+ezezez

f ′ ( z ) = 1 − ( f ( z ) ) 2 f'(z) = 1-(f(z))^2 f(z)=1(f(z))2
ReLu:
f ( z ) = m a x ( 0 , z ) f(z) = max(0, z) f(z)=max(0,z)

f ′ ( z ) = 1 / 0 f'(z) = 1/0 f(z)=1/0

Q2: 为什么sigmoid和tanh会导致梯度消失?
A2: 当输入z很大或很小时,其导数都会趋于0,导致梯度消失

Q3: ReLu的优点?有什么局限性?
A3:
优点:
1)计算角度上,Sigmoid和Tanh都需要计算指数,复杂度高,而ReLu只需要一个阈值判断
2)ReLu的非饱和性可以解决梯度消失问题,提供相对宽的激活边界
3)ReLu的单侧抑制提供了网络的稀疏表达能力
局限性:
1)负梯度经过ReLU会被置0,导致部分神经元死亡,进而参数无法更新,训练失败。
改进:
Leaky ReLU:保留了部分负梯度
PReLU:负轴斜率使用可学习的参数,可参与优化

04 神经网络训练技巧

Q1: 训练时是否可以将全部参数初始化为0?
A1: 不可以,如果全置为0,面对相同的输入,一定会得到相同的输出,进而前向传播和反向传播的结果都会相同,从而导致每一个神经元参数永远相同,这种对称性无法被训练打破,一般的做法是在一个分布内随机选取值初始化参数

Q2: 为什么DropOut可以抑制过拟合?原理和实现?
A2:
DropOut是指在训练时按一定概率随机临时丢弃部分神经元节点,所以每次迭代相当于在训练不同结构的网络。是Bagging集成的一种近似实现。Dropout进行训练,会弱化全体神经元之间的联合适应性,减少过拟合风险、增强泛化能力。
应用Dropout包括训练和预测两个阶段,每个节点需要增加一个概率系数。训练过程中fp和bp都依据概率判断是否参与梯度计算和误差传播。测试过程中,每个神经元要预先乘概率系数p,和训练过程保持一致

Q3: 批量归一化的动机和原理?如何使用?
A3:
动机: 网络的本质是学习数据分布,随着网络训练,每层的输入都不同,如果每一批输入数据的分布不同,则网络每次迭代都需要拟合不同的数据分布,增大训练复杂度和过拟合风险。
原理: 针对每一批和数据,在网络每一层输入之前增加归一化处理,归一化为均值0、方差1的分布: x k = x ( k ) − E [ x ( k ) ] V a r [ x ( k ) ] x^{k}=\frac{x^{(k)-E[x^{(k)}]}}{\sqrt {Var[x^{(k)}]}} xk=Var[x(k)] x(k)E[x(k)],其中E为均值,Var为方差。
使用: 虽然在每层之间加入了bn层,相当于引入额外的约束,从而增强模型的泛化能力,但是由于归一化将数据分布都强制到了(0,1)上,对于Sigmoid函数,数据整体处于0附近,也就是线性区,相当于变成了线性变换,其实影响了模型的拟合能力。因此,在实际使用时,BN后还需要引入变换重构及可学习参数: y ( k ) = γ ( k ) x ( k ) + β ( k ) y^{(k)} = \gamma^{(k)} x^{(k)}+\beta^{(k)} y(k)=γ(k)x(k)+β(k),两个可学习参数代表方差和偏差,可以将数据恢复到最优的数据分布

05 深度卷积神经网络

Q1: 卷积操作的两种本质特性?解释其特性、作用?
A1: 卷积的本质特性包括:稀疏交互参数共享
稀疏交互:
特性: 对传统神经网络(如fc层),任意输入和输出都有联系,这种被称作稠密连接。而对于卷积神经网络,卷积核尺度远小于数据输入的维度,所以每个输出的神经元,仅和前一层特定的局部区域内神经元有联系。这样的稀疏交互让网络的训练复杂度减小、过拟合情况也得到改善。
作用、物理意义: 通常图像、文本等数据具有局部的特征结构,所以可以先学习局部的特征,再将局部特征组合起来形成复杂的特征
参数共享:
特性: 对传统网络,每个参数只作用于某个输入元素一次,而卷积网络中,卷积核将作用于每一个局部输入上,也就是卷积核的参数可以被反复利用。这样只需要学习一组参数、而不需要对每个位置都设置参数优化
物理意义: 使卷积层平移等变形,不论目标在什么位置,都可以被卷积层提取特征

Q2: 常见的池化操作有哪些?池化的作用?
A2:
常见的池化操作有:均值池化、最大池化、相邻重叠区域池化、金字塔池化
均值池化:抑制由于感受野小而造成反差增大的现象,对背景的保留效果好
最大池化:抑制网络误差造成估计值偏移的现象,更好地提取纹理信息
金字塔池化:不同尺度的降采样拼接在一起,多尺度信息
作用: 池化的本质是是降采样,降低参数量,还能保持平移、伸缩、旋转操作的不变形,

06 深度残差网络

Q1: ResNet的提出背景和理论?
A1:
提出背景: 为了缓解深层的网络在训练中的梯度消失问题。梯度消失的产生原因是:误差通过若干成参数和导数的连乘进行传播,层数越多,涉及到的连乘参数、导数越多,因此误差很容易产生消失或膨胀。因此,深度的网络拟合和泛化能力较差。
解决思路: 由于离输入较近的成熟较难训练,ResNet可以直接将其接入到更接近输出的层。使得网络拟合的目标为输入和输出的残差

你可能感兴趣的:(神经网络,机器学习,算法)