神经网络中的**函数


tanh(z)=ezezez+ez效果严格地比sigmoid函数好,因为该函数的对称中心在(0,0),具有将数据归一化为0均值的效果。当然,二分类的输出层的**函数还是一般用sigmoid(z),因为sigmod函数能将输出值映射到01之间(概率值)
Relu(z)=max(0,z)出现后,神经网络默认都用Relu函数(rectified linear)来作为**函数。此时一般默认z>0
leaky(z)=max(0.01z,z)可以避免z<0时斜率为零的情况 输出层有时也用线性**函数(房价预测)

1. Sigmoid activation function

神经网络中的**函数

图1.1 **函数-sigmoid

(1-1)a=g(z)=11+ez
(1-2)g(z)=ddzg(z)=ez1+ez=11+ez(111+ez)=g(z)(1g(z))=a(1a)

2. Tanh activation function

神经网络中的**函数

图2.1 **函数-tanh

(2-1)a=g(z)=ezezez+ez
(2-2)g(z)=ddzg(z)=ez1+ez=(ez+ez)2(ezez)2(ez+ez)2=1(g(z))2=1a2

3. ReLU and Leaky ReLU

神经网络中的**函数

图3.1 **函数-ReLU

ReLU:
(3-1)a=g(z)=max(0,z)

g(z)=ddzg(z)(3-2)={0if z<01if z0

Leaky ReLU:
神经网络中的**函数

图3.2 **函数-Leaky ReLU

(3-3)a=g(z)=max(0.01z,z)

g(z)=ddzg(z)(3-4)={0.01if z<01if z0

4.选择**函数的准则

  • 如果处理的问题是二分类问题,输出为0和1,那么输出层选择sigmoid函数,其他神经元选择ReLU(有时也可用tanh),理论上Leaky ReLU比ReLU好,但是实践中差不多。