问题:即便对于复杂的函数,感知机也可以将其表示出来,为什么引入神经网络呢?
答案:确定合适的能符合预期结果的输入和输出的权重,还是由人工选定的。因此引入了神经网络,自动地从数据中学习到合适的权重参数。
引入激活函数:激活函数我的理解就是,将原本感知机得到的结果放入激活函数中,最后将得到的结果输出。
注意:注意朴素感知机是指单层网络,指的是激活函数使用的是阶跃函数(0or1)。多层感知机是指的神经网络,使用的是其他激活函数。也就是说如果激活函数从阶跃函数变成其他激活函数了,那么就从感知机进入了神经网络的世界了。感知机和神经网络的区别就是在于激活函数。
绘制阶跃函数:
import numpy as np
import matplotlib.pylab as plt
def step_function(x):
x=np.array(x>0,dtype=np.int)#x>0为1 否则为0
print(x)
return x
x=np.arange(-5.0,5.0,0.1)#-5.0到0.5 间隔0.1
y=step_function(x)
plt.plot(x,y)
plt.ylim(-0.1,1.1)#指定y轴的范围
plt.show()
绘制sigmoid函数:sigmoid函数的平滑性对神经网络的学习具有重要意义。感知机神经元之间流动的是0或1的二元信号,而神经网络中流动的是连续的实数值信号。
def sigmoid(x):
return 1/(1+np.exp(-x))
x=np.array([-5.0,5.0,0.1])
y=sigmoid(x)
plt.plot(x,y)
plt.ylim(-0.1,1.1)#指定y轴范围
plt.show()



