函数ℎ(x)会将输入信号的总和转换为输出信号,这种函数一般称为激活函数 (activation function)。
激活函数的作用在于决定如何来激活输入信号的总和。
一、阶跃函数
感知机使用的激活函数为阶跃函数,阶跃函数的实现如下:
主要功能代码:
注:不能简单使用if else语句实现,因为函数不能接受数组类型,如:
整体代码
import matplotlib.pyplot as plt
import numpy as np
plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']
def jy(X):
y=X > 0
return y.astype(np.int)
X=np.arange(-5.0,5.0,0.1)
Y=jy(X)
plt.plot(X,Y,color='indianred')
#设置X轴标签
plt.xlabel('X坐标')
#设置Y轴标签
plt.ylabel('Y坐标')
plt.title('阶跃函数图像')
plt.show()
效果
二、sigmoid函数
神经网络中经常使用的一个激活函数就是sigmoid函数
感知机和神经网络的主要区别就在于这个激活函数。其他方面,比如神经元的多层连接 的构造、信号的传递方法等,基本上和感知机是一样的。
整体代码
import matplotlib.pyplot as plt
import numpy as np
#处理中文乱码
plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']
X=np.arange(-5.0,5.0,0.1)
def sigmoid(X):
return 1/(1+np.exp(-X))
Y=sigmoid(X)
plt.plot(X,Y,color='indianred')
#设置X轴标签
plt.xlabel('X坐标')
#设置Y轴标签
plt.ylabel('Y坐标')
plt.title('sigmoid函数图像')
plt.show()
三、relu函数
在神经网络发展的历史上,sigmoid函数很早就开始被使用了,而最近则主要使用ReLU (Rectified Linear Unit)函数
整体代码
import matplotlib.pyplot as plt
import numpy as np
#处理中文乱码
plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']
X=np.arange(-5.0,5.0,0.1)
def relu(X):
return np.maximum(0,X)
Y=sigmoid(X)
plt.plot(X,Y,color='indianred')
#设置X轴标签
plt.xlabel('X坐标')
#设置Y轴标签
plt.ylabel('Y坐标')
plt.title('sigmoid函数图像')
plt.show()



