• 深度学习:tensorflow中激励函数的实现


    激励函数是所有神经网络算法的必备神器, 激励函数的目的是为了调节权重和误差,对张量进行非线性操作,增强网络的表达能力。Tensorflow中的激励函数位于神经网络(neural network, nn)库。常用的激励函数有:

    1、整流线性单元(Rectifier linear unit, Relu)

      函数为max(0, x),连续但不平滑,如下图所示:

        

      tensorflow中表达为:print(sess.run(tf.nn.relu([-3., 3., 10.])

      2、有时,为抵消Relu激励函数的线性增长部分,会在min()函数中嵌入max(0,x),其在Tensorflow中的实现称作Relu6,函数表示为min(max(0, x), 6)

      使用方式如下:print(sess.run(tf.nn.relu6([-3., 3., 10.]),图示为:

      

      3、sigmoid函数是最常用的连续、平滑的激励函数,也被称作逻辑函数,表示为1/(1 + exp(-x))。由于其在机器学习训练中反向传播趋近于0,因此不怎么使用。

      使用方式如下:print(sess.run(tf.nn.sigmoid([-1., 0., 1.]))

      

      4、双曲正切函数(hyper tangent, tanh)

      双曲正切函数为双曲正弦与双曲余弦的比值,另外一种写法是(exp(x) - exp(-x))  / (exp(x) + exp(-x))

      使用方式:print(sess.run(tf.nn.tanh([-1., 0., 1. ]))

      

      5、softsign函数,表达式为:x / (abs(x) + 1)

      使用方式:print(sess.run(tf.nn.softsign([-1., 0., 1.]))

      

      6、softplus激励函数是Relu激励函数的平滑版,表达式为:log(exp(x) + 1)

      使用方式如下:print(sess.run(tf.nn.softplus([-1., 0., 1. ]))

      

      7、ELU激励函数(Exponential Linear Unit, ELU),表达式为(exp(x) + 1) if x < 0 else x

      使用方法:print(sess.run(tf.nn.elu([-1., 0., -1.]))

      

  • 相关阅读:
    烟台的两大建筑均初具规模,看一看现在的样子。
    ExpressBars Suite V6.29的安装
    又是一年返乡时,春运又开始了!
    C# 3.0新特性之扩展方法
    ObservableCollection<T> 类
    ControlTemplate和ItemTemplate的区别
    teechart属性和方法
    UpdateSourceTrigger 属性控制绑定源更新的执行时间
    "Lc.exe已退出 代码为1 "
    ObservableCollection 类
  • 原文地址:https://www.cnblogs.com/javaXRG/p/11772699.html
Copyright © 2020-2023  润新知