在线性网络中,任何特征的增大都会导致模型输出的增大或减小。这种想法在某些情况下不在适用,例如x和y并非线性关系、或者是x和y并不具有单调性、以及x1、x2会对y产生交互作用时。
为解决该问题,有人提出在网络中加入隐藏层,来克服线性模型的限制,使其能够处理更多变的函数关系。为防止多个隐藏层退化为单一的线性映射,在每个隐藏单元加入激活函数(非线性的),让模型更具表达力。
(即使是网络只有一个隐藏层,给定足够的神经元和正确的权重, 我们可以对任意函数建模…… from d2l , why?)实际上,通常使用更深的(而不是更广的)网络。
几个常用的激活函数:ReLU函数,sigmoid函数,tanh函数
1算pReLU激活函数的导数。
当x>0时,
2证明一个仅使用ReLU(或pReLU)的多层感知机构造了一个连续的分段线性函数。
任意形式的ReLU可视为原始ReLU的放缩与平移
当x>=0时,ReLU(x)=x, 当x<0时,ReLU(x)=0,则仅需证明其在x=0出的连续性。
ReLU(0+)=0,ReLU(0-)=0,故lim x->0,ReLU(x)=0.极限值存在且等于函数值.
因此,函数ReLU连续.
3证明tanh(x)+1=2sigmoid(2x)。
4假设我们有一个非线性单元,将它一次应用于一个小批量的数据。这会导致什么样的问题?
数据可能会被剧烈的拉伸或者压缩,可能会导致分布的偏移,若数据都小于0,则激活函数ReLU无法激活;若数据较大,则在激活函数sigmoid或者tanh中,结果区分度较低。与后面的神经元对接后可能会损失一定的特征。
手机扫一扫
移动阅读更方便
你可能感兴趣的文章