神经网络激活函数

# Activation Functions
#----------------------------------
#
# This function introduces activation
# functions in TensorFlow

# Implementing Activation Functions
import matplotlib.pyplot as plt
import numpy as np
import tensorflow as tf
from tensorflow.python.framework import ops
ops.reset_default_graph()

# Open graph session
sess = tf.Session()

# X range
x_vals = np.linspace(start=-10., stop=10., num=100)

# ReLU activation
print(sess.run(tf.nn.relu([-3., 3., 10.])))
y_relu = sess.run(tf.nn.relu(x_vals))

# ReLU-6 activation
print(sess.run(tf.nn.relu6([-3., 3., 10.])))
y_relu6 = sess.run(tf.nn.relu6(x_vals))

# Sigmoid activation
print(sess.run(tf.nn.sigmoid([-1., 0., 1.])))
y_sigmoid = sess.run(tf.nn.sigmoid(x_vals))

# Hyper Tangent activation
print(sess.run(tf.nn.tanh([-1., 0., 1.])))
y_tanh = sess.run(tf.nn.tanh(x_vals))

# Softsign activation
print(sess.run(tf.nn.softsign([-1., 0., 1.])))
y_softsign = sess.run(tf.nn.softsign(x_vals))

# Softplus activation
print(sess.run(tf.nn.softplus([-1., 0., 1.])))
y_softplus = sess.run(tf.nn.softplus(x_vals))

# Exponential linear activation
print(sess.run(tf.nn.elu([-1., 0., 1.])))
y_elu = sess.run(tf.nn.elu(x_vals))

# Plot the different functions
plt.plot(x_vals, y_softplus, ‘r--‘, label=‘Softplus‘, linewidth=2)
plt.plot(x_vals, y_relu, ‘b:‘, label=‘ReLU‘, linewidth=2)
plt.plot(x_vals, y_relu6, ‘g-.‘, label=‘ReLU6‘, linewidth=2)
plt.plot(x_vals, y_elu, ‘k-‘, label=‘ExpLU‘, linewidth=0.5)
plt.ylim([-1.5,7])
plt.legend(loc=‘upper left‘)
plt.show()

plt.plot(x_vals, y_sigmoid, ‘r--‘, label=‘Sigmoid‘, linewidth=2)
plt.plot(x_vals, y_tanh, ‘b:‘, label=‘Tanh‘, linewidth=2)
plt.plot(x_vals, y_softsign, ‘g-.‘, label=‘Softsign‘, linewidth=2)
plt.ylim([-2,2])
plt.legend(loc=‘upper left‘)
plt.show()

原文地址:https://www.cnblogs.com/bonelee/p/8994319.html

时间: 2024-11-08 22:01:22

神经网络激活函数的相关文章

机器学习笔记:形象的解释神经网络激活函数的作用是什么?

此文转自知乎,哈工大NLPer 忆臻 原出处:https://zhuanlan.zhihu.com/p/25279356 查阅资料和学习,大家对神经网络中激活函数的作用主要集中下面这个观点: 激活函数是用来加入非线性因素的,解决线性模型所不能解决的问题. 下面我分别从这个方面通过例子给出自己的理解~ @lee philip@颜沁睿俩位的回答已经非常好了,我举的例子也是来源于他们,在这里加入了自己的思考,更加详细的说了一下~ 开讲~ 首先我们有这个需求,就是二分类问题,如我要将下面的三角形和圆形点

神经网络激活函数及导数

ICML 2016 的文章[Noisy Activation Functions]中给出了激活函数的定义:激活函数是映射 h:R→R,且几乎处处可导. 神经网络中激活函数的主要作用是提供网络的非线性建模能力,如不特别说明,激活函数一般而言是非线性函数.假设一个示例神经网络中仅包含线性卷积和全连接运算,那么该网络仅能够表达线性映射,即便增加网络的深度也依旧还是线性映射,难以有效建模实际环境中非线性分布的数据.加入(非线性)激活函数之后,深度神经网络才具备了分层的非线性映射学习能力. 1.Sigmo

[转]神经网络-激活函数

神经网络之激活函数(Activation Function) 本博客仅为作者记录笔记之用,不免有很多细节不对之处. 还望各位看官能够见谅,欢迎批评指正. 更多相关博客请猛戳:http://blog.csdn.net/cyh_24 如需转载,请附上本文链接:http://blog.csdn.net/cyh_24/article/details/50593400 日常 coding 中,我们会很自然的使用一些激活函数,比如:sigmoid.ReLU等等.不过好像忘了问自己一(n)件事: 为什么需要激

BP神经网络C代码实现

网络结构:2个输入神经元,5个隐层,1个输出神经元 输入和输出:一共6组数据,input1和input2为输入,output1为输出 学习率:0.5 精度控制:0.00001 最大循环次数:1000000 代码如下: #include <stdlib.h> #include <math.h> #include <stdio.h> #include <time.h> #include <windows.h> #define COUT 6 //样本数

从程序员的角度设计一个Java的神经网络

欢迎大家前往云+社区,获取更多腾讯海量技术实践干货哦~ 来自维基百科: 人工神经网络(ANN)或连接系统是受生物神经网络启发构成生物大脑的计算系统.这样的系统通过考虑例子来学习(逐步提高性能)来完成任务,通常没有任务特定的编程. 用Java或任何其他编程语言设计神经网络我们需要理解人工神经网络的结构和功能. 人工神经网络执行的任务比如有模式识别.从数据中学习以及像专家一样预测趋势,而不像传统的算法方法那样需要执行一组步骤来实现所定义的目标.人工神经网络由于其高度交互的网络结构,可以学习如何自己解

Deep Learning 22:总结一些deep learning的基本知识

1.交叉熵代价函数 2.正则化方法:L1和L2 regularization.数据集扩增.dropout 3. 数据预处理 4.机器学习算法中如何选取超参数:学习速率.正则项系数.minibatch size 5.随机梯度下降(Stochastic gradient descent)和 批量梯度下降(Batch gradient descent )的公式对比.实现对比 随机梯度下降中,momentum的理解 Optimization: Stochastic Gradient Descent 6.

深度学习(一)-------算法岗面试题

● BatchNormalization的作用 参考回答: 神经网络在训练的时候随着网络层数的加深,激活函数的输入值的整体分布逐渐往激活函数的取值区间上下限靠近,从而导致在反向传播时低层的神经网络的梯度消失.而BatchNormalization的作用是通过规范化的手段,将越来越偏的分布拉回到标准化的分布,使得激活函数的输入值落在激活函数对输入比较敏感的区域,从而使梯度变大,加快学习收敛速度,避免梯度消失的问题. ● 梯度消失 参考回答: 在神经网络中,当前面隐藏层的学习速率低于后面隐藏层的学习

Titer软件学习(Translation Initiation siTE detectoR)

Titer Source Codes lnk: https://github.com/zhangsaithu/titer 函数: collections.namedtuple()函数:https://www.cnblogs.com/jiangbingyang/p/7455853.html numpy.zeros().numpy.ones():https://blog.csdn.net/henu1710252658/article/details/98509533 numpy.load()数据存储

神经网络的双曲线正切激活函数

在数学中,双曲函数类似于常见的(也叫圆函数的)三角函数.基本双曲函数是双曲正弦"sinh",双曲余弦"cosh",从它们导出双曲正切"tanh"等.也类似于三角函数的推导.反函数是反双曲正弦"arsinh"(也叫做"arcsinh"或"asinh")依此类推. y=tanh x,定义域:R,值域:(-1,1),奇函数,函数图像为过原点并且穿越Ⅰ.Ⅲ象限的严格单调递增曲线,其图像被限制在两