ReLU、LeakyReLU

ReLU作为激活函数被广泛应用于各种深度神经网络中。在这篇博客中,我主要记录一下它和它的变种在caffe中的实现。
先看下来自wikipedia的一张示意图,图中蓝色的线表示的就是ReLU函数。

ReLU激活函数极为 f(x)=max(0,x) f(x)=\max(0,x)。而LeakyReLU则是其变体 f(x)=max(0,x)+negative_slope×min(0,x) f(x)=\max(0,x)+negative\_slope\times\min(0,x),其中, negative_slope negative\_slope是一个小的非零数。

综上,在caffe中,ReLU和LeakyReLU都包含在relu_layer中。
在后向传播过程中,ReLU做如下运算:

∂E∂x=⎧⎩⎨⎪⎪0∂E∂yifx≤0ifx>0

\frac{\partial E}{\partial x} = \left\{\begin{array}{lr}0 & \mathrm{if} \; x \le 0 \\\frac{\partial E}{\partial y} & \mathrm{if} \; x > 0\end{array} \right.
而变体的LeakyReLU则做:

∂E∂x=⎧⎩⎨⎪⎪ν∂E∂y∂E∂yifx≤0ifx>0

\frac{\partial E}{\partial x} = \left\{\begin{array}{lr}\nu \frac{\partial E}{\partial y} & \mathrm{if} \; x \le 0 \\\frac{\partial E}{\partial y} & \mathrm{if} \; x > 0\end{array} \right.
接下来,我们来看看ReLU层的参数。

// Message that stores parameters used by ReLULayer
message ReLUParameter {// Allow non-zero slope for negative inputs to speed up optimization// Described in:// Maas, A. L., Hannun, A. Y., & Ng, A. Y. (2013). Rectifier nonlinearities// improve neural network acoustic models. In ICML Workshop on Deep Learning// for Audio, Speech, and Language Processing.optional float negative_slope = 1 [default = 0]; //如之前分析的,默认值0即为ReLU,非零则为LeakyReLUenum Engine {DEFAULT = 0;CAFFE = 1;CUDNN = 2;}optional Engine engine = 2 [default = DEFAULT]; //运算引擎选择,一般选择默认
}

PReLU

PReLU,即Parametric ReLU,是何凯明组提出的一种改进ReLU。它的数学表示为 yi=max(0,xi)+ai×min(0,xi) y_i = \max(0, x_i) + a_i\times\min(0, x_i) ,其中 a a是可学习参数。当aa为固定的非零较小数时,它等价于LeakyReLU;当它为0时,PReLU等价于ReLU。它的后向传播进行如下计算:

∂E∂xi=⎧⎩⎨⎪⎪⎪⎪ai∂E∂yi∂E∂yiifxi≤0ifxi>0

\frac{\partial E}{\partial x_i} = \left\{\begin{array}{lr}a_i \frac{\partial E}{\partial y_i} & \mathrm{if} \; x_i \le 0 \\\frac{\partial E}{\partial y_i} & \mathrm{if} \; x_i > 0\end{array} \right.
参数 a a的更新公式如下:

∂E∂ai=⎧⎩⎨⎪⎪∑xixi∂E∂yi0ifxi≤0ifxi>0

\frac{\partial E}{\partial a_i} = \left\{\begin{array}{lr}\sum_{x_i} x_i \frac{\partial E}{\partial y_i} & \mathrm{if} \; x_i \le 0 \\0 & \mathrm{if} \; x_i > 0\end{array} \right.
PReLU的实现不包含在ReLU中,主要是有可学习参数 a <script type="math/tex" id="MathJax-Element-12">a</script>,它的实现包含在prelu_layer中。

message PReLUParameter {// Parametric ReLU described in K. He et al, Delving Deep into Rectifiers:// Surpassing Human-Level Performance on ImageNet Classification, 2015.// Initial value of a_i. Default is a_i=0.25 for all i.optional FillerParameter filler = 1;  //默认填充,a_i的初始值为0.25// Whether or not slope parameters are shared across channels.optional bool channel_shared = 2 [default = false]; //是否通道共享参数,默认为不共享
}

Delving Deep into Rectifiers:Surpassing Human-Level Performance on ImageNet Classification

[Caffe]:关于ReLU、LeakyReLU 、PReLU layer相关推荐

  1. (Caffe)基本类Blob,Layer,Net(一)

    本文地址:http://blog.csdn.net/mounty_fsc/article/details/51085654 Caffe中,Blob.Layer,Net,Solver是最为核心的类,下面 ...

  2. 激活函数(ReLu LReLU PReLU CReLU ELU SELU)

    ReLU   tensorflow中:tf.nn.relu(features, name=None) LReLU (Leaky-ReLU)    其中aiai是固定的.ii表示不同的通道对应不同的ai ...

  3. 深度学习基础(十二)—— ReLU vs PReLU

    从算法的命名上来说,PReLU 是对 ReLU 的进一步限制,事实上 PReLU(Parametric Rectified Linear Unit),也即 PReLU 是增加了参数修正的 ReLU. ...

  4. 【Python--torch(激活函数说明+代码讲解)】激活函数(sigmoid/softmax/ELU/ReLU/LeakyReLU/Tanh)

    [Python–torch]激活函数(sigmoid/softmax/ELU/ReLU/LeakyReLU/Tanh) 文章目录 [Python--torch]激活函数(sigmoid/softmax ...

  5. 小技巧(10):使用Python绘制激活函数(Sigmoid、Tanh、ReLU、PReLU)图像

    文章目录 一.单张绘制 1.1 代码 1.2 绘制结果 二.4张图绘制成1张图 2.1 代码 2.2 绘制结果 一.单张绘制 1.1 代码 import numpy as np import matp ...

  6. 激活函数ReLU、Leaky ReLU、PReLU和RReLU

    "激活函数"能分成两类--"饱和激活函数"和"非饱和激活函数". sigmoid和tanh是"饱和激活函数",而ReLU ...

  7. 常见激活函数持续更新)sigmoid Tanh Relu Leaky-ReLU RReLU

     激活函数是来向神经网络中引入非线性因素的,通过激活函数,神经网络就可以拟合各种曲线. sigmoid 公式: 函数图像:  Sigmoid函数也叫 Logistic 函数,用于隐层神经元输出,取值范 ...

  8. 深入理解ReLU、Leaky ReLU、 PReLU、ELU、Softplus

    文章目录 ReLU Leaky ReLU PReLU ELU Softplus ReLU ReLU(Rectified Linear Unit,修正线性单元),也叫Rectifier 函数,它的定义如 ...

  9. 激活函数(relu,prelu,elu,+BN)对比on cifar10

    最近做了个对比实验,通过修改激活函数观察对图片分类准确率的影响,现记录如下: 一.理论基础 1.1激活函数 1.2 elu论文(FAST AND ACCURATE DEEP NETWORK LEARN ...

最新文章

  1. linux基础-总结题 (每日更新)
  2. 安卓APP_ 控件(5)—— ProgressBar
  3. Apache Camel Intellij IDEA插件的工作已开始
  4. 阿里巴巴使命、愿景、价值观、绩效管理中的六大价值观、
  5. 关于html语义化 以下哪个说法是正确呢,前端面试题2019年网易工程师面试题及答案解析...
  6. Windows Server 2012 +WDK7600.16385.1+VS2008驱动开发环境搭建
  7. linux apache访问日志,linux分析apache日志获取最多访问的前10个IP
  8. TTPlayer越来越靓了
  9. 阶段3 1.Mybatis_01.Mybatis课程介绍及环境搭建_01.mybatis课程介绍
  10. 转:SQL注入攻击的原理
  11. 利用VB.Net 通过Windows Sockets (Winsock)以及多线程编程进行桌面电脑与Pocket PC间的双向通信
  12. pdf关键字高亮 java_Java PDF查找和高亮文本-Go语言中文社区
  13. 对耳朵伤害最小的耳机类型是哪种?如何保护我们的耳朵?
  14. 台达PLC实现远程下载程序
  15. 如何通过maven官网查询相关依赖的具体代码和版本?
  16. java创建多个线程 延时1秒_Java 多线程(三)优化任务执行
  17. 诶嘿,~~o(╥﹏╥)o~~大东北我又来了
  18. 盘点:十大电磁仿真软件
  19. python读取只读word只读_10.9 只读数据库(Read-only Database)
  20. 一个小老板的日常管理,希望能让创业朋友学到东西

热门文章

  1. 云计算的主要应用领域
  2. 运维PaaS平台,让数据发挥更大的价值
  3. GCP 搭建 tg代理 MTG
  4. WordPress搜索引擎蜘蛛统计分析插件:Spider Analyser
  5. 新路由2VS斐讯k2,这样的“0元购”你还买么?
  6. 当你同事工作出色时,如何得体地告知他上司
  7. 基于C++的《元素战争》基于win32框架的电脑游戏设计
  8. pandas 计算累计和及累计占比
  9. python pip、conda、windows CMD常用命令大全!
  10. 罗升阳:那两年炼就的Android内功修养