深度学习:前馈神经网络

  1. 神经元模型,由两部分组成。一部分将信号进行累加,得到得分函数,还有偏置项(bias),相当于函数的截距项或者常数项。
    Z = b i a s + i = 1 m x i w i = i = 0 m x i w i

    第二部分是激活函数,这是神经元的关键,通常使用某类激活函数,就称为某类神经元。如果使用的是Sigmoid函数,就称为Logistic回归。
  2. Sigmoid神经元是神经网络的默认配置,但是有易饱和性。所以要注意参数的初始值来尽量避免饱和情况。Sigmoid神经元还有一个小缺点就是,它的输出期望不是0,而是0.5。
  3. Tanh神经元。是Sigmoid神经元的一个变形,函数期望为0。也叫双曲线正切激活函数。
    t a n h ( x ) = 2 s i g m o i d ( 2 x ) 1 = 2 1 + e 2 x 1
  4. Relu,修正线性单元。Relu拥有非常强大的非线性转换能力,比如可以将抑或分类。
    训练神经网络只有一招,就是构造代价函数,然后求解梯度,修改网路权重。Relu在0点不可导,不过不算是啥大问题。
    ReLU可以看做是两条分段线性函数。
    f ( x , α ) = m a x ( 0 , x ) + α m i n ( 0 , x )

    当alpha=0时,就是ReLU。当alpha=-1,该函数为
    f ( x ) = | x |

    当alpha=0.01,就是裂缝修正单元,负半轴函数和横坐标的夹角非常的小。
    Maxout单元,由k段线性分段函数构成,由Maxout组成的神经网络,不仅要学习神经元间的关系,还需要学习激活函数本身。、
  5. 神经网络大部分都是分类任务,但是Sigmoid单元或者Softmax单元有着容易饱和的情况,所以默认使用交叉熵作为代价函数。在实际使用时不太常使用ReLU这样的分段线性激活函数,而是更倾向于使用Sigmoid或Tanh激活单元,即使我们知道其拥有易饱和的缺点。但其实很多在直觉上或者理论上完美的东西,并不一定完美,实践才是检验真理的唯一标准。
  6. 通用逼近理论表明至少包含一个隐藏层的前馈神经网络,其在隐藏层使用挤压式激活函数,如Sigmoid函数,表示只要给予足够多的隐藏单元个数,它就可以逼近任意函数。
    在大多数情况下,使用深层的神经网络可以有效的降低神经元的数量并同时降低泛化错误率。
  7. BP:从上层往下层求梯度,每层需要求解两种梯度,一种是该层的权重梯度,用dw表示;一种是该层的输入梯度,用da表示,在一些资料中也被称为残差。对于最终输出节点的残差,直接使用网络产生的激活值与实际值之间的代价函数获得,对于隐藏节点的残差,为该节点连接到上一层的所有残差加权求和。

猜你喜欢

转载自blog.csdn.net/fengchi863/article/details/80856092