玩樱之诗玩的
隐藏层与激活函数
隐藏层
我们通过矩阵X∈Rn×d来表示n个样本的小批量, 其中每个样本具有d个输入特征。 对于具有h个隐藏单元的单隐藏层多层感知机, 用H∈Rn×h表示隐藏层的输出, 称为隐藏表示(hidden representations)。 在数学或代码中,H也被称为隐藏层变量(hidden-layer variable) 或隐藏变量(hidden variable)。 因为隐藏层和输出层都是全连接的, 所以我们有隐藏层权重W(1)∈Rd×h和隐藏层偏置b(1)∈R1×h以及输出层权重W(2)∈Rh×q和输出层偏置b(2)∈R1×q
在仿射变换之后对每个隐藏单元应用非线性的激活函数σ
HO=σ(XW(1)+b(1)),=HW(2)+b(2).
隐藏层可以继续堆叠,从而产生更有表达能力的模型
激活函数
ReLU
函数
ReLU(x)=max(x,0).
使用ReLU的原因是,它求导表现得特别好:要么让参数消失,要么让参数通过。 这使得优化表现得更好,并且ReLU减轻了困扰以往神经网络的梯度消失问题
当输入为负时,ReLU函数的导数为0,而当输入为正时,ReLU函数的导数为1。 注意,当输入值精确等于0时,ReLU函数不可导。 在此时,我们默认使用左侧的导数,即当输入为0时导数为0。
变体(能通过负参数的信息)
pReLU(x)=max(0,x)+αmin(0,x).
sigmoid
函数
对于一个定义域在R中的输入, sigmoid函数将输入变换为区间(0, 1)上的输出。
sigmoid(x)=1+exp(−x)1.
sigmoid函数平滑,定义域内处处可导。
dxdsigmoid(x)=(1+exp(−x))2exp(−x)=sigmoid(x)(1−sigmoid(x)).
在0处导数取到最大0.25,图像为单峰。
tanh
函数
对于一个定义域在R中的输入, tanh函数将输入变换为区间(-1, 1)上的输出。
tanh(x)=1+exp(−2x)1−exp(−2x).
导数:
dxdtanh(x)=1−tanh2(x).
在0处导数取到最大1,图像为单峰。