zoukankan      html  css  js  c++  java
  • keras_9_激活函数 Activations

    1. 激活函数的使用

    • 激活函数可以通过设置单独的激活层实现,也可以在构造层对象时通过传递activation参数实现

      from keras.layers import Activation, Dense
      model.add(Dense(64))
      model.add(Activation('tanh'))
      
      # 等价于
      model.add(Dense(64, activation='tanh'))
      
      # 你也可以通过传递一个【逐元素运算】的Theano/TensorFlow/CNTK函数来作为激活函数:
      from keras import backend as K
      model.add(Dense(64, activation=K.tanh))
      model.add(Activation(K.tanh))
      

    2. keras支持的激活函数

    1. softmax
    2. elu (指数线性单元)
    3. selu (可伸缩的指数线性单元)
      • SELU 等同于:scale * elu(x, alpha),其中 alpha 和 scale 是预定义的常量。只要正确初始化权重(参见 lecun_normal 初始化方法)并且输入的数量「足够大」(参见Self-Normalizing Neural Networks),选择合适的 alpha 和 scale 的值,就可以在两个连续层之间保留输入的均值和方差。(即可以保证activation value稳定传播,有点后来的BN的作用)
    4. softplus (log(exp(x) + 1))
    5. softsign (x / (abs(x) + 1))
    6. relu (cs231n推荐)
      • 线性修正单元激活:如果 x > 0,返回值为 x;如果 x < 0,返回值为 alpha * x。alpha:负数部分的斜率,默认为 0。如果定义了 max_value,则结果将截断为此值。
    7. tanh
    8. sigmoid
    9. hard_sigmoid
      • 计算速度比 sigmoid 激活函数更快。如果 x < -2.5,返回 0。如果 x > 2.5,返回 1。如果 -2.5 <= x <= 2.5,返回 0.2 * x + 0.5
    10. linear (线性激活函数,即不做任何改变)
    11. 对于Theano/TensorFlow/CNTK不能表达的复杂激活函数,如含有可学习参数的激活函数,可通过高级激活函数实现,可以在 keras.layers.advanced_activations 模块中找到。 这些高级激活函数包括 PReLULeakyReLU
  • 相关阅读:
    Lucene in action 笔记 case study
    关于Restful Web Service的一些理解
    Lucene in action 笔记 analysis篇
    Lucene in action 笔记 index篇
    Lucene in action 笔记 term vector
    Lucene in action 笔记 search篇
    博客园开博记录
    数论(算法概述)
    DIV, IFRAME, Select, Span标签入门
    记一个较困难的SharePoint性能问题的分析和解决
  • 原文地址:https://www.cnblogs.com/LS1314/p/10380639.html
Copyright © 2011-2022 走看看