DL细节-激活函数的‘华点’
激活函数123
写这篇文章的起因是我被问了一个问题:
”Sigmoid和tanh的不同是什么?“
Sigmoid
1. 公式

  
      
       
        
         
          
           
            
            
              S 
             
            
              i 
             
            
              g 
             
            
              m 
             
            
              o 
             
            
              i 
             
            
              d 
             
            
              ( 
             
            
              x 
             
            
              ) 
             
            
           
          
          
           
            
             
            
              = 
             
             
              
              
                e 
               
              
                x 
               
              
              
              
                1 
               
              
                + 
               
               
               
                 e 
                
               
                 x 
                
               
              
             
            
           
          
         
         
          
           
            
           
          
          
           
            
             
            
              = 
             
             
             
               1 
              
              
              
                1 
               
              
                + 
               
               
               
                 e 
                
                
                
                  − 
                 
                
                  x 
                 
                
               
              
             
            
           
          
         
        
       
         \begin{aligned} Sigmoid(x)&=\frac{e^x}{1+e^x} \\ &=\frac{1}{1+e^{-x}} \end{aligned} 
        
       
     Sigmoid(x)=1+exex=1+e−x1
- 值域为 ( 0 , 1 ) (0,1) (0,1)
 - 非对称
 - S i g m o i d ( 0 ) = 0.5 Sigmoid(0)=0.5 Sigmoid(0)=0.5
 - 近似饱和区: ∣ x ∣ > 6 |x|>6 ∣x∣>6(仅为大致范围)
 
2. 导数
导数推导
S i g m o i d ′ ( x ) = ( ( 1 + e − x ) − 1 ) ′ = − ( 1 + e − x ) − 2 ( − e − x ) = e − x ( 1 + e − x ) ( 1 + e − x ) = 1 1 + e − x 1 + e − x − 1 1 + e − x = S i g m o i d ( x ) ( 1 − S i g m o i d ( x ) ) \begin{aligned} Sigmoid^{\ \ '}(x)&=((1+e^{-x})^{-1})^{'} \\ &=-(1+e^{-x})^{-2}(-e^{-x}) \\ &=\frac{e^{-x}}{(1+e^{-x})(1+e^{-x})} \\ &=\frac{1}{1+e^{-x}}\frac{1+e^{-x}-1}{1+e^{-x}} \\ \\ &=Sigmoid(x)(1 -Sigmoid(x)) \end{aligned} Sigmoid ′(x)=((1+e−x)−1)′=−(1+e−x)−2(−e−x)=(1+e−x)(1+e−x)e−x=1+e−x11+e−x1+e−x−1=Sigmoid(x)(1−Sigmoid(x))
导数分析

- 最大导数处: S i g m o i d ′ ( 0 ) = 0.25 Sigmoid^{\ \ '}(0)=0.25 Sigmoid ′(0)=0.25
 - 近似饱和区: ∣ x ∣ > 6 |x|>6 ∣x∣>6(仅为大致范围)
 - 导数均为正数
 - 导数变化幅度较小
 
3. sigmoid性质带来的问题
饱和区
sigmoid一个很大的问题是它存在饱和区。也就是在函数的两端,其对应的导数接近0。这个特性为训练带来了负面影响:
Saturation problem:
如果sigmoid激活函数的输入过大或者过小,进入饱和区,那么在反向传播时,因为对应的导数(下面公式中的  
     
      
       
        
         
         
           ∂ 
          
          
          
            o 
           
           
           
             l 
            
           
             , 
            
           
             i 
            
           
          
         
         
         
           ∂ 
          
          
          
            z 
           
           
           
             i 
            
           
             j 
            
           
          
         
        
       
      
        \frac{\partial o_{l,i}}{\partial z_{ij}} 
       
      
    ∂zij∂ol,i )近似于0,这个激活函数的权值基本不会被跟新。
  
      
       
        
         
          
           
            
            
              z 
             
             
             
               l 
              
             
               , 
              
             
               i 
              
             
            
           
          
          
           
            
             
            
              = 
             
             
             
               ∑ 
              
              
              
                j 
               
              
                = 
               
              
                1 
               
              
             
               M 
              
             
             
             
               w 
              
              
              
                i 
               
              
                j 
               
              
             
             
             
               o 
              
              
              
                l 
               
              
                − 
               
              
                1 
               
              
                , 
               
              
                j 
               
              
             
            
              + 
             
             
             
               b 
              
              
              
                l 
               
              
                , 
               
              
                i 
               
              
             
            
           
          
         
         
          
           
            
           
          
          
           
            
             
            
              M:上一层的神经元数目 
             
            
           
          
         
         
          
           
            
           
          
          
           
            
             
            
              l:层数 
             
            
           
          
         
         
          
           
            
           
          
         
         
          
           
            
            
              o 
             
             
             
               l 
              
             
               , 
              
             
               i 
              
             
            
           
          
          
           
            
             
            
              = 
             
            
              S 
             
            
              i 
             
            
              g 
             
            
              m 
             
            
              o 
             
            
              i 
             
            
              d 
             
            
              ( 
             
             
             
               z 
              
              
              
                l 
               
              
                , 
               
              
                i 
               
              
             
            
              ) 
             
            
           
          
         
         
          
           
            
           
          
         
         
          
           
            
             
             
               ∂ 
              
             
               L 
              
             
             
             
               ∂ 
              
              
              
                w 
               
               
               
                 i 
                
               
                 j 
                
               
              
             
            
           
          
          
           
            
             
            
              = 
             
             
              
              
                ∂ 
               
              
                L 
               
              
              
              
                ∂ 
               
               
               
                 o 
                
                
                
                  l 
                 
                
                  , 
                 
                
                  i 
                 
                
               
              
             
             
              
              
                ∂ 
               
               
               
                 o 
                
                
                
                  l 
                 
                
                  , 
                 
                
                  i 
                 
                
               
              
              
              
                ∂ 
               
               
               
                 z 
                
                
                
                  l 
                 
                
                  , 
                 
                
                  i 
                 
                
               
              
             
             
              
              
                ∂ 
               
               
               
                 z 
                
                
                
                  l 
                 
                
                  , 
                 
                
                  i 
                 
                
               
              
              
              
                ∂ 
               
               
               
                 w 
                
                
                
                  i 
                 
                
                  j 
                 
                
               
              
             
            
           
          
         
         
          
           
            
           
          
          
           
            
             
            
              = 
             
             
              
              
                ∂ 
               
              
                L 
               
              
              
              
                ∂ 
               
               
               
                 o 
                
                
                
                  l 
                 
                
                  , 
                 
                
                  i 
                 
                
               
              
             
             
              
              
                ( 
               
              
                S 
               
              
                i 
               
              
                g 
               
              
                m 
               
              
                o 
               
              
                i 
               
              
                d 
               
              
                ( 
               
               
               
                 z 
                
                
                
                  l 
                 
                
                  , 
                 
                
                  i 
                 
                
               
              
                ) 
               
               
               
                 ) 
                
                
                 
                
                  ′ 
                 
                
               
              
             
               ⏟ 
              
             
             
             
               o 
              
              
              
                l 
               
              
                − 
               
              
                1 
               
              
                , 
               
              
                j 
               
              
             
            
           
          
         
        
       
         \begin{aligned} z_{l,i}&=\sum_{j=1}^{M}w_{ij}o_{l-1,j}+b_{l,i}\\ &\text{M:上一层的神经元数目}\\ &\text{l:层数}\\ \\ o_{l,i}&=Sigmoid(z_{l,i})\\ \\ \frac{\partial L}{\partial w_{ij}} &=\frac{\partial L}{\partial o_{l,i}}\frac{\partial o_{l,i}}{\partial z_{l,i}}\frac{\partial z_{l,i}}{\partial w_{ij}}\\ &= \frac{\partial L}{\partial o_{l,i}}\underbrace{(Sigmoid(z_{l,i}))^{'}}o_{l-1,j}\\ \end{aligned} 
        
       
     zl,iol,i∂wij∂L=j=1∑Mwijol−1,j+bl,iM:上一层的神经元数目l:层数=Sigmoid(zl,i)=∂ol,i∂L∂zl,i∂ol,i∂wij∂zl,i=∂ol,i∂L 
                      
                      
                     (Sigmoid(zl,i))′ol−1,j
non zero-centered
这个问题主要由Sigmoid值域不跨0引起。
优化方向
基于上面的符号表达,继续讨论Sigmoid对gradient的影响。当应用gradient descent更新某个权重时,loss基于权重的偏导如下:
  
      
       
        
         
          
           
            
             
             
               ∂ 
              
             
               L 
              
             
             
             
               ∂ 
              
              
              
                w 
               
               
               
                 i 
                
               
                 j 
                
               
              
             
            
           
          
          
           
            
             
            
              = 
             
             
              
              
                ∂ 
               
              
                L 
               
              
              
              
                ∂ 
               
               
               
                 o 
                
                
                
                  l 
                 
                
                  , 
                 
                
                  i 
                 
                
               
              
             
             
              
              
                ∂ 
               
               
               
                 o 
                
                
                
                  l 
                 
                
                  , 
                 
                
                  i 
                 
                
               
              
              
              
                ∂ 
               
               
               
                 z 
                
                
                
                  l 
                 
                
                  , 
                 
                
                  i 
                 
                
               
              
             
             
              
              
                ∂ 
               
               
               
                 z 
                
                
                
                  l 
                 
                
                  , 
                 
                
                  i 
                 
                
               
              
              
              
                ∂ 
               
               
               
                 w 
                
                
                
                  i 
                 
                
                  j 
                 
                
               
              
             
            
           
          
         
         
          
           
            
           
          
          
           
            
             
            
              = 
             
             
              
              
                ∂ 
               
              
                L 
               
              
              
              
                ∂ 
               
               
               
                 o 
                
                
                
                  l 
                 
                
                  , 
                 
                
                  i 
                 
                
               
              
             
             
              
               
               
                 ( 
                
               
                 S 
                
               
                 i 
                
               
                 g 
                
               
                 m 
                
               
                 o 
                
               
                 i 
                
               
                 d 
                
               
                 ( 
                
                
                
                  z 
                 
                 
                 
                   l 
                  
                 
                   , 
                  
                 
                   i 
                  
                 
                
               
                 ) 
                
                
                
                  ) 
                 
                 
                  
                 
                   ′ 
                  
                 
                
               
              
                ⏟ 
               
              
             
               1:正负不变 
              
             
            
                
             
             
              
               
               
                 o 
                
                
                
                  l 
                 
                
                  − 
                 
                
                  1 
                 
                
                  , 
                 
                
                  j 
                 
                
               
              
                ⏟ 
               
              
             
               2:正负与激活函数的值域有关 
              
             
            
           
          
         
        
       
         \begin{aligned} \frac{\partial L}{\partial w_{ij}} &=\frac{\partial L}{\partial o_{l,i}}\frac{\partial o_{l,i}}{\partial z_{l,i}}\frac{\partial z_{l,i}}{\partial w_{ij}}\\ &= \frac{\partial L}{\partial o_{l,i}} \underbrace{(Sigmoid(z_{l,i}))^{'}}_{\text{1:正负不变}}\ \underbrace{o_{l-1,j}}_{\text{2:正负与激活函数的值域有关}}\\ \end{aligned} 
        
       
     ∂wij∂L=∂ol,i∂L∂zl,i∂ol,i∂wij∂zl,i=∂ol,i∂L1:正负不变 
                           
                           
                          (Sigmoid(zl,i))′ 2:正负与激活函数的值域有关 
                           
                           
                          ol−1,j
 因为Sigmoid的值均大于0,而激活函数的导数对于连接到同一个神经元的weights来说均相同( 此处weights对应 
     
      
       
       
         { 
        
        
        
          w 
         
         
         
           i 
          
         
           , 
          
         
           j 
          
         
        
       
         ∣ 
        
       
         ∣ 
        
       
         j 
        
       
         ∈ 
        
       
         { 
        
       
         1 
        
       
         , 
        
       
         2 
        
       
         , 
        
       
         . 
        
       
         . 
        
       
         . 
        
       
         M 
        
       
         } 
        
       
         } 
        
       
      
        \lbrace w_{i,j}||j\in\lbrace 1,2,...M\rbrace \rbrace 
       
      
    {wi,j∣∣j∈{1,2,...M}}) , 因此与同一个神经元相连接的所有weights 的更新方向均相同。这样的强制关系有可能会引起梯度更新中的zig-zagging,来回震荡的问题,增加收敛难度。
 下图为一个简单的例子:
 
 因为连接在同一个神经元上的所有权重只能朝一个方向更新,要达到收敛会花费更多次数,效率更低。
Gradient Vanishing
当计算偏导,进行梯度更新时,链式法则比较清晰地向我们展示了梯度如何在层间传递。现在用公式推导一下梯度是怎样在两个神经元 
     
      
       
        
        
          o 
         
         
         
           L 
          
         
           , 
          
         
           j 
          
         
        
       
      
        o_{L,j} 
       
      
    oL,j和 
     
      
       
        
        
          o 
         
         
         
           l 
          
         
           , 
          
         
           j 
          
         
        
       
      
        o_{l,j} 
       
      
    ol,j间的一条路径上传递的。
  
      
       
        
         
          
           
            
             
             
               ∂ 
              
             
               L 
              
             
             
             
               ∂ 
              
              
              
                o 
               
               
               
                 l 
                
               
                 , 
                
               
                 j 
                
               
              
             
            
           
          
          
           
            
             
            
              = 
             
             
              
              
                ∂ 
               
              
                L 
               
              
              
              
                ∂ 
               
               
               
                 o 
                
                
                
                  L 
                 
                
                  , 
                 
                
                  i 
                 
                
               
              
             
             
              
              
                ∂ 
               
               
               
                 o 
                
                
                
                  L 
                 
                
                  , 
                 
                
                  i 
                 
                
               
              
              
              
                ∂ 
               
               
               
                 o 
                
                
                
                  L 
                 
                
                  − 
                 
                
                  1 
                 
                
                  , 
                 
                
                  k 
                 
                
               
              
             
             
              
              
                ∂ 
               
               
               
                 o 
                
                
                
                  L 
                 
                
                  − 
                 
                
                  1 
                 
                
                  , 
                 
                
                  k 
                 
                
               
              
              
              
                ∂ 
               
               
               
                 o 
                
                
                
                  L 
                 
                
                  − 
                 
                
                  2 
                 
                
                  , 
                 
                
                  n 
                 
                
               
              
             
            
              . 
             
            
              . 
             
            
              . 
             
             
              
              
                ∂ 
               
               
               
                 o 
                
                
                
                  l 
                 
                
                  + 
                 
                
                  1 
                 
                
                  , 
                 
                
                  k 
                 
                
               
              
              
              
                ∂ 
               
               
               
                 o 
                
                
                
                  l 
                 
                
                  , 
                 
                
                  i 
                 
                
               
              
             
            
           
          
         
         
          
           
            
           
          
          
           
            
             
            
              = 
             
             
              
              
                ∂ 
               
              
                L 
               
              
              
              
                ∂ 
               
               
               
                 o 
                
                
                
                  L 
                 
                
                  , 
                 
                
                  i 
                 
                
               
              
             
            
              S 
             
            
              i 
             
            
              g 
             
            
              m 
             
            
              o 
             
            
              i 
             
            
              d 
             
            
              ( 
             
             
             
               z 
              
              
              
                L 
               
              
                , 
               
              
                i 
               
              
             
             
             
               ) 
              
              
               
              
                ′ 
               
              
             
             
             
               w 
              
              
              
                i 
               
              
                , 
               
              
                k 
               
              
             
            
              S 
             
            
              i 
             
            
              g 
             
            
              m 
             
            
              o 
             
            
              i 
             
            
              d 
             
            
              ( 
             
             
             
               z 
              
              
              
                L 
               
              
                − 
               
              
                1 
               
              
                , 
               
              
                k 
               
              
             
             
             
               ) 
              
              
               
              
                ′ 
               
              
             
             
             
               w 
              
              
              
                k 
               
              
                , 
               
              
                n 
               
              
             
            
              . 
             
            
              . 
             
            
              . 
             
            
           
          
         
         
          
           
            
           
          
          
           
            
             
            
              = 
             
             
              
              
                ∂ 
               
              
                L 
               
              
              
              
                ∂ 
               
               
               
                 o 
                
                
                
                  L 
                 
                
                  , 
                 
                
                  i 
                 
                
               
              
             
             
              
               
               
                 ∏ 
                
                
                
                  S 
                 
                
                  i 
                 
                
                  g 
                 
                
                  m 
                 
                
                  o 
                 
                
                  i 
                 
                 
                 
                   d 
                  
                  
                   
                  
                    ′ 
                   
                  
                 
                
               
              
                ⏟ 
               
              
             
               每项均小于0.25 
              
             
             
              
              
                ∏ 
               
               
               
                 w 
                
                
                
                  x 
                 
                
                  , 
                 
                
                  y 
                 
                
               
              
             
               ⏟ 
              
             
            
           
          
         
        
       
         \begin{aligned} \frac{\partial L}{\partial o_{l,j}} &=\frac{\partial L}{\partial o_{L,i}}\frac{\partial o_{L,i}}{\partial o_{L-1,k}}\frac{\partial o_{L-1,k}} {\partial o_{L-2,n}}... \frac{\partial o_{l+1,k}}{\partial o_{l,i}}\\ &=\frac{\partial L}{\partial o_{L,i}}Sigmoid(z_{L,i})^{'}w_{i,k}Sigmoid(z_{L-1,k})^{'}w_{k,n}...\\ &=\frac{\partial L}{\partial o_{L,i}}\underbrace{\prod{Sigmoid^{'}}}_\text{每项均小于0.25}\underbrace{\prod{w_{x,y}}}\\ \end{aligned} 
        
       
     ∂ol,j∂L=∂oL,i∂L∂oL−1,k∂oL,i∂oL−2,n∂oL−1,k...∂ol,i∂ol+1,k=∂oL,i∂LSigmoid(zL,i)′wi,kSigmoid(zL−1,k)′wk,n...=∂oL,i∂L每项均小于0.25 
                           
                           
                          ∏Sigmoid′ 
                      
                      
                     ∏wx,y
 可以看到,当梯度逐层往前传播时,每传播一层就需要乘以一项 
     
      
       
       
         S 
        
       
         i 
        
       
         g 
        
       
         m 
        
       
         o 
        
       
         i 
        
        
        
          d 
         
         
          
         
           ′ 
          
         
        
       
      
        Sigmoid^{'} 
       
      
    Sigmoid′。因为 
     
      
       
       
         S 
        
       
         i 
        
       
         g 
        
       
         m 
        
       
         o 
        
       
         i 
        
        
        
          d 
         
         
          
         
           ′ 
          
         
        
       
      
        Sigmoid^{'} 
       
      
    Sigmoid′小于0.25,当层数增加,公式中的第二项也逐渐减小,导致梯度逐渐消失。
tanh
hyperbolic tangent function:双曲正切函数
1. 公式

  
      
       
        
         
          
           
            
            
              T 
             
            
              a 
             
            
              h 
             
            
              n 
             
            
              ( 
             
            
              x 
             
            
              ) 
             
            
           
          
          
           
            
             
            
              = 
             
             
              
               
               
                 e 
                
               
                 x 
                
               
              
                − 
               
               
               
                 e 
                
                
                
                  − 
                 
                
                  x 
                 
                
               
              
              
               
               
                 e 
                
               
                 x 
                
               
              
                + 
               
               
               
                 e 
                
                
                
                  − 
                 
                
                  x 
                 
                
               
              
             
            
           
          
         
         
          
           
            
           
          
          
           
            
             
            
              = 
             
             
              
              
                1 
               
              
                − 
               
               
               
                 e 
                
                
                
                  − 
                 
                
                  2 
                 
                
                  x 
                 
                
               
              
              
              
                1 
               
              
                + 
               
               
               
                 e 
                
                
                
                  − 
                 
                
                  2 
                 
                
                  x 
                 
                
               
              
             
            
           
          
         
         
          
           
            
           
          
          
           
            
             
            
              = 
             
             
             
               1 
              
              
              
                1 
               
              
                + 
               
               
               
                 e 
                
                
                
                  − 
                 
                
                  2 
                 
                
                  x 
                 
                
               
              
             
            
              − 
             
             
              
              
                1 
               
              
                + 
               
               
               
                 e 
                
                
                
                  − 
                 
                
                  2 
                 
                
                  x 
                 
                
               
              
                − 
               
              
                1 
               
              
              
              
                1 
               
              
                + 
               
               
               
                 e 
                
                
                
                  − 
                 
                
                  2 
                 
                
                  x 
                 
                
               
              
             
            
           
          
         
         
          
           
            
           
          
         
         
          
           
            
           
          
          
           
            
             
            
              = 
             
            
              2 
             
            
              ∗ 
             
            
              S 
             
            
              i 
             
            
              g 
             
            
              m 
             
            
              o 
             
            
              i 
             
            
              d 
             
            
              ( 
             
            
              2 
             
            
              x 
             
            
              ) 
             
            
              − 
             
            
              1 
             
            
           
          
         
        
       
         \begin{aligned} Tahn(x)&=\frac{e^x-e^{-x}}{e^x+e^{-x}}\\ &=\frac{1-e^{-2x}}{1+e^{-2x}} \\ &=\frac{1}{1+e^{-2x}} -\frac{1+e^{-2x}-1}{1+e^{-2x}} \\ \\ &=2*Sigmoid(2x)-1\\ \end{aligned} 
        
       
     Tahn(x)=ex+e−xex−e−x=1+e−2x1−e−2x=1+e−2x1−1+e−2x1+e−2x−1=2∗Sigmoid(2x)−1
- 值域为 ( − 1 , 1 ) (-1,1) (−1,1)
 - zero-centered
 - T a h n ( 0 ) = 0 Tahn(0)=0 Tahn(0)=0
 - 近似饱和区: ∣ x ∣ > 3 |x|>3 ∣x∣>3(仅为大致范围,非饱和区比Sigmoid更窄)
 
2. 导数
导数推导
T a h n ′ ( x ) = ( 2 ∗ S i g m o i d ( 2 x ) − 1 ) ′ = 2 ∗ ( S i g m o i d ( 2 x ) ) ′ = 4 ∗ S i g m o i d ( 2 x ) ( 1 − S i g m o i d ( 2 x ) ) \begin{aligned} Tahn^{'}(x)&=(2*Sigmoid(2x)-1)^{'}\\ &=2*(Sigmoid(2x))^{'} \\ &=4*Sigmoid(2x)(1-Sigmoid(2x))\\ \end{aligned} Tahn′(x)=(2∗Sigmoid(2x)−1)′=2∗(Sigmoid(2x))′=4∗Sigmoid(2x)(1−Sigmoid(2x))
导数分析

- 最大导数处: T a h n ′ ( 0 ) = 1 Tahn^{\ \ '}(0)=1 Tahn ′(0)=1
 - 近似饱和区: ∣ x ∣ > 3 |x|>3 ∣x∣>3(仅为大致范围)
 - 导数均为正数
 - 导数变化幅度更大,更陡峭
 
3. 优点与问题
Saturation Problem
但它依然存在梯度消失的问题,且由于它的非饱和区更窄,Saturation的问题会更严重。
Gradient Vanishing
和Sigmoid类似,Tahn函数的导数在0到1之间,反向传播的梯度也存在逐渐减小至0的问题。
zero-centered
Tahn函数的性质于Sigmoid相似,最大的不同在于Tahn是zero-centered。也就是说,它不会限制连接到同一神经元的权重的更新方向。这一点使用上它比使用Sigmoid更容易收敛。
relu
relu相比以上提到的两个激活函数,最大的优点是它克服了梯度消失的问题。
1. 公式

  
      
       
        
        
          R 
         
        
          E 
         
        
          L 
         
        
          U 
         
        
          ( 
         
        
          x 
         
        
          ) 
         
        
          = 
         
         
         
           { 
          
          
           
            
             
             
               0 
              
             
            
            
             
             
               x <= 0 
              
             
            
           
           
            
             
             
               x 
              
             
            
            
             
             
               x > 0 
              
             
            
           
          
         
        
            
         
        
          = 
         
        
            
         
        
          m 
         
        
          a 
         
        
          x 
         
        
          ( 
         
        
          0 
         
        
          , 
         
        
          x 
         
        
          ) 
         
        
       
         RELU(x)=\begin{cases} 0 &\text{x <= 0}\\ x &\text{x > 0} \end{cases}\ =\ max(0,x) 
        
       
     RELU(x)={0xx <= 0x > 0 = max(0,x)
2. 导数
 
      
       
        
        
          R 
         
        
          e 
         
        
          l 
         
        
          u 
         
        
          ( 
         
        
          x 
         
         
         
           ) 
          
          
           
          
            ′ 
           
          
         
        
          = 
         
         
         
           { 
          
          
           
            
             
             
               0 
              
             
            
            
             
             
               x < 0 
              
             
            
           
           
            
             
             
               1 
              
             
            
            
             
             
               x > 0 
              
             
            
           
           
            
             
              
              
                u 
               
              
                n 
               
              
                d 
               
              
                e 
               
              
                f 
               
              
                i 
               
              
                n 
               
              
                e 
               
              
                d 
               
              
             
            
            
             
             
               x = 0 
              
             
            
           
          
         
        
            
         
        
       
         Relu(x)^{'}=\begin{cases} 0 &\text{x < 0}\\ 1 &\text{x > 0}\\ undefined &\text{x = 0} \end{cases}\ 
        
       
     Relu(x)′=⎩⎪⎨⎪⎧01undefinedx < 0x > 0x = 0 
 在实现中,一般会选择使  
     
      
       
       
         R 
        
       
         e 
        
       
         l 
        
       
         u 
        
       
         ( 
        
       
         0 
        
        
        
          ) 
         
         
          
         
           ′ 
          
         
        
       
         = 
        
       
         0 
        
       
      
        Relu(0)^{'}=0 
       
      
    Relu(0)′=0
3.优势
No Gradient Vanishing
Sigmoid和Tahn因为其梯度小于1,在层间反向传播时,需要反复乘以小于1的值,造成梯度消失。而对于大于0的输入来说,Relu的梯度稳定为1,即使层数较深也不会造成梯度不稳定的问题。
Representational Sparsity
ReLu是非线性函数,因此理论上来说,可以使用多层叠加ReLu来近似任何函数。用ReLu作为激活函数的网络,表达能力与用Sigmoid和Tahn的网络一样。但是他们网络表达的最终的性质不同。
 使用Sigmoid和Tahn的网络,最后绝大部分的神经元会被激活,也就是说网络表达是比较稠密的,这也会消耗更多的计算资源。但是由于ReLu的函数特性,对于某一特定输入,很多神经元都会处于未激活状态,网络的表达比较稀疏。这不仅减少了计算资源,也减弱了神经元之间的依赖性。
3. 问题
dying ReLu problem
原因
即便使用Relu有诸多好处,它也有其独特的问题,名为dying ReLu。在解释ReLu梯度稳定的时候,只探讨了输入大于0的神经元,一切看起来都是那么美好。但当神经元的输入为负时,问题产生了。
 在正向传播时输入小于0的这一类神经元,反向传播时对应的梯度为0,也就是说它们对应的权重不会被更新。因为使用的激活函数是ReLu,因此神经元在乘以权重之前的输入均为正,若最终的负输入是某个负权值引起的,则这些权重之后还有被更新的机会;如果所有权重均小于等于0,那么这个神经元所对应的权重不会再被更新,这个神经元之后的输出也会一直为0。就像“死掉”一样,对任何输入都没有反应了。把这个现象称为dying ReLu是不是很贴切?
Solution
- learning rate:当learning rate设置得过大时,某一神经元的所有对应权重一下全到负值域的可能性会急剧增大。因此使用ReLu要格外小心learning rate的设置。
 - Variation of Relu:让负输入部分的梯度不为0即可解决dying ReLu的问题。例如Leaky ReLU。
 
Reference
https://stats.stackexchange.com/questions/237169/why-are-non-zero-centered-activation-functions-a-problem-in-backpropagation
 https://www.quora.com/How-do-we-compute-the-gradient-of-a-ReLU-for-backpropagation