激活函数对输入信息进行非线性变换,然后将变换后的输出信息作为输入信息传给下一个神经元。

如果不用激活函数,每一层输出都是上层输入的线性函数,无论神经网络有多少层,最终的输出都是输入的线性组合。

激活函数给神经元引入了非线性因素,使得神经网络可以任意逼近任何非线性函数。

激活通常为非线性函数,可以增强神经网络的表示能力和学习能力。常用的激活函数有S型函数和ReLU函数。

Sigmoid 型函数是指一类S型曲线函数,为两端饱和函数。常用的 Sigmoid 型函数有 Logistic 函数和 Tanh 函数,其数学表达式为:

人工智能中复合函数的作用(95.人工智能激活函数的作用与函数图像的绘制)(1)

公式表达式

函数图像绘

import numpy as np import matplotlib.pyplot as plt #定义Logistic函数 def logistic(x): return 1.0 / (1 np.exp(-x)) #定义Tanh函数 def tanh(x): return np.tanh(x) #定义ReLU函数 def relu(x): return np.maximum(0, x)

#绘制函数图像 #调整坐标轴位置 def adjust_axis(): #隐藏xy坐标轴 plt.gca().spines['top'].set_visible(False) plt.gca().spines['right'].set_visible(False) #调整xy坐标轴位置 plt.gca().spines['left'].set_position(('data', 0)) plt.gca().spines['bottom'].set_position(('data', 0)) x = np.arange(-10, 10, 0.01) plt.figure(figsize=(16, 8)) #划分子图,1行2列 plt.subplot(1, 2, 1) adjust_axis() plt.plot(x, logistic(x), label='logistic', color='red') plt.plot(x, tanh(x), label='tanh', color='green') plt.legend() plt.xlabel('x') plt.ylabel('f(x)') plt.subplot(1, 2, 2) adjust_axis() plt.plot(x, relu(x), label='relu', color='blue') plt.legend() plt.xlabel('x') plt.ylabel('f(x)') plt.show()

人工智能中复合函数的作用(95.人工智能激活函数的作用与函数图像的绘制)(2)

函数图像

,