激活函数(activation function)运行时激活神经网络中某一部分神经元,将激活信息向后传入下一层的神经网络。神经网络之所以能解决非线性问题(如语音、图像识别),本质上就是激活函数加入了非线性因素,弥补了线性模型的表达力,把“激活的神经元的特征”通过函数保留并映射到下一层。
因为神经网络的数学基础是处处可微的,所以选取的激活函数要能保证数据输入与输出也是可微的。那么激活函数在 TensorFlow 中是如何表达的呢?激活函数不会更改输入数据的维度,也就是输入和输出的维度是相同的。TensorFlow 中有如下激活函数,它们定义在 tensorflow-1.1.0/tensorflow/python/ops/nn.py 文件中,这里包括平滑非线性的激活函数,如 sigmoid、tanh、elu、softplus 和 softsign,也包括连续但不是处处可微的函数 relu、relu6、crelu 和 relu_x,以及随机正则化函数 dropout
#4,激活函数的使用
import numpy as np
import matplotlib.pyplot as plt
import tensorflow as tf
# fake data
x = np.linspace(-5, 5, 200) #产生-5至5之间200个点
y_relu = tf.nn.relu(x)#定义relu激活函数,输入数据点
y_sigmoid = tf.nn.sigmoid(x)#定义sigmod激活函数,输入数据点
y_tanh = tf.nn.tanh(x)#定义tanh激活函数,输入数据点
y_softplus = tf.nn.softplus(x)#定义softpl