本文讨论在神经网络中选择不同的activation function。

1. activation function的选择

1.1 sigmoid function

前文系列讨论shallow neural network的时候,默认使用sigmoid function作为activation function:

其值在(0,1)之间,经过(0,0.5),当z值趋于正负无穷时,曲线愈来愈平缓,其值也趋向于0或1,如图:

Fig.1 sigmoid function
Fig.1 sigmoid function

然而andrew提到,sigmoid未必是最好的activation function。

1.2 tanh function

tanh function(hyperbolic tangent):

其值在(-1,1)之间,经过原点(0,0),当z值趋于正负无穷时,曲线愈来愈平缓,其值也趋向于-1或1,如图:

Fig.2 tanh function
Fig.2 tanh function

tanh function相当于是把sigmoid function拉伸并向下shift到(-1,1)的区间,andrew提到在神经网络的hidden layer中,tanh function是比sigmoid更为常用的activation function。

但是在output layer,尤其是binary classification,通常直接使用sigmoid function。

1.3 ReLU

ReLU(Rectified Linear Unit)也是一种常用的activation function:

当z<0,直接为0;当z>=0,直接为z,如下图:

Fig.3 ReLU function
Fig.3 ReLU function

ReLU也是non-linear的,可以作为activation function。

1.4 Leaky ReLU

ReLU的一个变种,当,允许小的slope,而不是直接为0。

Fig.4 Leaky ReLU function
Fig.4 Leaky ReLU function

选择不同的activation function

由于不同的layer可能有不同的activation function,前文计算

改为

表示此层layer选择的activation function。

(Update: 03/16/2019)