caffe学习(6)激活层

来源:互联网 发布:电动车定位软件多少钱 编辑:程序博客网 时间:2024/05/18 03:40

激活(Activation)层又叫神经元(Neuron)层,最主要的是激活函数的设置。

Activation / Neuron Layers
Caffe源码解析6:Neuron_Layer,楼燚航的blog


一般来说,这一层是元素级的运算符,从底部blob作为输入并产生一个相同大小的顶部blob:

  • 输入:n * c * h * w
  • 输出:n * c * h * w

ReLU / Rectified-Linear and Leaky-ReLU

  • 层类型:ReLU
  • 参数(ReLUParameter relu_param):
    • 可选参数
      • negative_slope [default 0]: 用来指定负斜率部分的因子ν。完整的函数表达式为:y=max(0,x)+νmin(0,x)。反向传播的公式为
        Ex=νEyEyifx0ifx>0
  • 示例(./models/bvlc_reference_caffenet/train_val.prototxt):

    layer {name: "relu1"type: "ReLU"bottom: "conv1"top: "conv1"}

    支持in-place计算,bottom输入和top输出可以相同避免内存消耗。

Sigmoid

  • 层类型:Sigmoid
  • 示例( ./models/bvlc_reference_caffenet/train_val.prototxt):

    layer {  name: "relu1"  type: "ReLU"  bottom: "conv1"  top: "conv1"}

    激活函数表达式为y=(1+exp(x))1,由于收敛速度问题现在用的不多了。

TanH、AbsVal、BNLL

  • 层类型:TanH、AbsVal、BNLL
  • 示例:

    layer {  name: "layer"  bottom: "in"  top: "out"  type: "TanH"#"AbsVal"、“BNLL”官网上BNLL没有加双引号,应该是有误}

    分别是双曲正切函数、绝对值、binomial normal log likelihood(f(x)=log(1+ex))的简称。

Power

  • 层类型:Power
  • 参数 (PowerParameter power_param):
    • 可选
      • power [default 1]
      • scale [default 1]
      • shift [default 0]
  • 示例:

    layer {  name: "layer"  bottom: "in"  top: "out"  type: "Power"  power_param {        power: 2        scale: 1        shift: 0  }}

    幂运算函数为f(x)=(shift+scalex)p


Caffe中的激活层还有很多,也有一些是加速的层。比如DropoutLayer现在是非常常用的一种网络层,只用在训练阶段,一般用在网络的全连接层中,可以减少网络的过拟合问题。
具体的使用再具体看./src/caffe/layers/下的文件吧。

0 0
原创粉丝点击