caffe中五种层的实现与参数配置(3)------激活函数层

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/w_q_q2017/article/details/79182901
1.激活函数作用:激活函数是用来引入非线性因素的。
2.激活函数一般具有以下性质:
         (1)非线性
         (2)处处可导:反向传播时需要计算激活函数的偏导数,所以要求激活函数除个别点外,处处可导。
 (3)单调性:当激活函数是单调的时候,单层网络能够保证是凸函数。

 (4)输出值的范围: 当激活函数输出值是有限的时候,基于梯度的优化方法会更加稳定,因为特征的表示受有限权值的影响更显著;当激活函数的输出是无限的时候,模型的训练会更加高效,不过在这种情况小,一般需要更小的learning rate.

3.激活层的结构

layer {
  name: "relu1"  //该层名称
  type: "ReLU"   //激活函数类型
  bottom: "conv1" //该层输入数据blob
  top: "conv1"  //该层输出数据blob
}
参数解释:

Type为该层类型,可取值分别为:
 (1)ReLU:表示我们使用relu激活函数,relu层支持in-place计算,这意味着该层的输入和输出共享一块内存,以避免内存的消耗。
 (2)Sigmoid:代表使用sigmoid函数;
 (3) TanH:代表使用tanh函数;
 (4) AbsVal:计算每个输入的绝对值f(x)=Abs(x)
 (5)power对每个输入数据进行幂运算
 f(x)= (shift + scale * x) ^ power
 层类型:Power
 可选参数:
   power: 默认为1
   scale: 默认为1
   shift: 默认为0

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

一般比较常见的激活函数有sigmoid、tanh和Relu,其中Relu由于效果最好,现在使用的比较广泛。 

 

猜你喜欢

转载自blog.csdn.net/w_q_q2017/article/details/79182901