TensorFlow2.0常用激活函数

激活函数是神经网络中一个十分重要的组成部分,它可以对神经元的接收信息进行非线性变换,将变换后的信息输出到下一层神经元

激活函数给神经元引入了非线性因素,使得神经网络可以任意逼近任何非线性函数,这样神经网络就可以应用到众多的非线性模型中


构造数据

import tensorflow as tf
import matplotlib.pyplot as plt

x = tf.linspace(-5., 5., 100)	# 构造一段连续的数据
x_np = x.numpy()	# 转换为 ndarray 的类型,画图时 x 和 x_np 都可以使用

Relu

ReLU 对小于 0 的值全部抑制为 0;对于正数则直接输出,具有单侧抑制、相对宽松的兴奋边界等特性

表达式:
r(x)=max(0,x)r(x )=max(0, x)
代码:

y_relu = tf.nn.relu(x)    # 使用 Relu 函数运算

plt.plot(x, y_relu, c='red', label='relu')    # 画折线图
plt.ylim((-1, 6))
plt.legend(loc='best')

plt.show()

形状如图:
在这里插入图片描述


Sigmoid

Sigmoid 能够把 xRx \in R 的输入“压缩”到 x(0,1)x \in (0, 1) 区间

表达式:
σ(z)=11+ex\sigma(z)=\frac{1}{1+e^{-x}}
代码:

y_sigmoid = tf.nn.sigmoid(x)	# 使用 Sigmoid 函数运算

plt.plot(x, y_sigmoid, c='red', label='sigmoid')	# 画折线图
plt.ylim((-0.2, 1.2))
plt.legend(loc='best')

plt.show()

形状如图:
在这里插入图片描述


Tanh

Tanh 函数能够将 xRx \in R 的输入“压缩”到 (1,1)(−1,1) 区间

表达式:
tanh(x)=exexex+extanh(x)=\frac{e^{x}-e^{-x}}{e^{x}+e^{-x}}
代码:

y_tanh = tf.nn.tanh(x)    # 使用 Tanh 函数运算

plt.plot(x, y_tanh, c='red', label='tanh')    # 画折线图
plt.ylim((-1.2, 1.2))
plt.legend(loc='best')

plt.show()

形状如图:
在这里插入图片描述


Softplus

表达式:
ζ(x)=log(1+ex)\zeta(x)=log(1+e^x)
代码:

y_softplus = tf.nn.softplus(x)    # 使用 Softplus 函数运算

plt.plot(x, y_softplus, c='red', label='softplus')    # 画折线图
plt.ylim((-0.2, 6))
plt.legend(loc='best')

plt.show()

形状如图:
在这里插入图片描述

发布了78 篇原创文章 · 获赞 214 · 访问量 15万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 创作都市 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览