深度学习——**函数ReLu、LReLu、PReLu原理解析

简介

论文链接: https://arxiv.org/abs/1502.01852
深度学习——**函数ReLu、LReLu、PReLu原理解析

  • 由于项目需要,需要了解msra 权重初始化方法原理, 正好Kaiming 大神这篇论文提出了PReLu。本博客主要介绍PReLu。文中两个创新点是使用PReLu和msra初始化后,在I ImageNet 2012 classification dataset上,达到top5=4.94%,超越了人类识别水平。

原理分析

**函数主要来做非线性变换,目前我知道**函数有20多种,CV领域主要用到是sigmoid、ReLu系列。

  • ReLu公式
    f(yi)={yiif,yi>00if,yi0(1) f(y_i)=\left\{ \begin{aligned} y_i & & {if, \quad y_i >0 } \\ 0 & & {if ,\quad y_i \leq0 } \\ \end{aligned} \qquad(1)\right.
  • Leaky ReLu(LReLu)公式
    f(yi)={yiif,yi>00.01yiif,yi0(2) f(y_i)=\left\{ \begin{aligned} y_i & & {if, \quad y_i >0 } \\ 0.01*y_i & & {if ,\quad y_i \leq0 } \\ \end{aligned} \qquad(2)\right.
  • PReLu公式
    f(yi)={yiif,yi>0aiyiif,yi0(3) f(y_i)=\left\{ \begin{aligned} y_i & & {if, \quad y_i >0 } \\ a_i * y_i & & {if ,\quad y_i \leq0 } \\ \end{aligned} \qquad(3)\right.
  • The motivation of LReLU is to avoid zero gradients, PReLu是为了防止ReLu在小于0的情况下,梯度为0。根据文中作者介绍,LReLu相对与ReLu对模型影响相差不大。故作者提出了PReLu,通过学习aia_i,让模型更加完美。其实PReLu=ReLu+aimin(0,yi) PReLu= ReLu+a_i *min(0,y_i)
  • aia_i = 0.01时候,等于LReLu.
  • aia_i 中的ii是指ithi^{th} channel的参数,yiy_i是指ithi^{th}feature map.

PReLu 反向传播过程

  • 来自上一层的delta为δ\delta, 求aia_i梯度 ,根据 chain rule
  • 当一个层中a_i每个通道不共享时候
    δai=i=1whδf(yi)f(yi)ai=i=1whδf(yi){0if,yi>0yiif,yi0(4)\frac{\partial \delta}{\partial a_i } = \sum_{i=1}^{w*h}\frac{\partial \delta}{\partial f(y_i)} \frac{\partial f(y_i)}{\partial a_i} = \sum_{i=1}^{w*h}\frac{\partial \delta}{\partial f(y_i)} \left\{ \begin{aligned} 0 & & {if, \quad y_i >0 } \\ y_i & & {if ,\quad y_i \leq0 } \\ \end{aligned} \qquad(4)\right.
  • 当一个层中只要一个a时,也就是所有通道共享。
    δai=j=1channeli=1whδf(yi)f(yi)ai=j=1channeli=1whδf(yi){0if,yi>0yiif,yi0(5)\frac{\partial \delta}{\partial a_i } = \sum_{j=1}^{channel}\sum_{i=1}^{w*h}\frac{\partial \delta}{\partial f(y_i)} \frac{\partial f(y_i)}{\partial a_i} = \sum_{j=1}^{channel}\sum_{i=1}^{w*h}\frac{\partial \delta}{\partial f(y_i)} \left\{ \begin{aligned} 0 & & {if, \quad y_i >0 } \\ y_i & & {if ,\quad y_i \leq0 } \\ \end{aligned} \qquad(5)\right.
  • update aia_i
    adopt the momentum method when updating ai
    Δai=uΔai+εδai(6)\varDelta a_i = u\varDelta a_i+\varepsilon \frac{\partial \delta}{\partial a_i}\qquad(6)
    uumomentum, ε\varepsilon代表学习速率。use ai = 0:25 as the initialization
    throughout this pape

实验结果

文中主要对aa做了两种实验,一种是一个层只要一个a,也就是share模式。另外一种是一个层中每个通道都有一个a,wise模式。实验表明wise结果更好。
深度学习——**函数ReLu、LReLu、PReLu原理解析

相关文章: