zoukankan      html  css  js  c++  java
  • 深度学习: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.]))

      

  • 相关阅读:
    无法启动IIS Express Web服务器 端口"1025"正在使用
    mysql查看是否锁表并解除锁
    C#的栈
    面向对象VS面向过程
    Visual Studio包管理器NuGet 依赖管理
    Vue中的Promise.all()
    【1024练习】Mybatis练习三
    【1023练习】MyBatis练习二
    【练习】mybatis
    【练习】json数组,以及json对象数组循环在页面的选择下拉框,ul列表,table等中显示出来
  • 原文地址:https://www.cnblogs.com/javaXRG/p/11772699.html
Copyright © 2011-2022 走看看