人工神经网络的实现和背后的思想,都是来自于人类大脑,初中生物课上讲膝跳反射其实就能很好地解释人脑是如何工作的。
上图可知,人类神经系统由三部分构成,Receptors接收到外部环境的刺激后,将这种刺激转换成电脉冲信号传送到Neural net,经过处理,将电脉冲信号发送给Effectors,最后生成可识别的响应。整个环节中有两个方向:
- 黑色线 forward
- 蓝色线 feedback
Neural net位于大脑,持续收集,感知信号并作出决策,结构异常复杂,1911年Ramón y Cajál提出大脑内部的神经网络是由神经元Neuron组成,每个Neuron之间由神经突触(Synapses,nerve ending)连接,进而构成复杂的网络。
Artificial Neuron
基于我们来对人类神经的理解,计算机科学家设计了人工神经网络Artificial Neural Networks,现在火热的深度学习Deep Learning就是基于人工神经网络的框架。
看着这么复杂, 立马觉得高大上了,是不是。上图是一个包含多层感知网络的深度学习网络,所谓万丈高楼平地起,上图中复杂结构的基础都是由每一个圆圈组成,圆圈代表人工神经元Artificial Neuron,它就是构成人工神经网络ANN的基础。
McCulloch和Pitts 在1943提出关于计算机器的神经网络,在1958年,Rosenblatt首先提出感知器Perceptron一词,现在说的人工神经元就主要指Rosenblatt感知器或McCulloch–Pitts模型,就是上图中那些圆圈。现在来详细介绍下人工神经元模型,先上图:
模型左侧是输入,可以将它们理解为神经突触Synapses集合,也叫feature
,根据外部环境的不同,synapse刺激强度也会不同,对应于人工神经元中不同的weight
,即图中,训练前就是几个随机数,输入和相乘,表示不同的输入拥有不同的权重,同时还有一个bias
, 用于降低/减少求和后的结果,经过累加器求和,进入激活函数activation function,也叫squashing function,它将输出信号的幅度限定在某个范围内,通常如果 某个阈值,输出1,否则输出0。
数学公式表示:
可以简化成如下信号流图:
图中,bias变成了由和组成。
激活函数
-
threshold function,又叫Threshold Logical Unit(TLU)
就是做一个阈值判断,图中阈值为0,核心为如果点积和大于等于t,输出1,否则输出0。
-
sigmoid function
有点像一个‘S’形状,定义了曲线的斜率,越大,斜率越大。
常用的还有ReLU函数:
感知器计算
-
初始化weights,可以设置成随机数
-
训练数据集中,将与做点积求和
-
经过激活函数判断输出
为阈值,移到左边变为,可以替换成和
输出结果如下图:
-
感知器作用
从上面的图中,不难发现其作用就是用来分类,将两个的object映射到X、Y坐标轴(代表不同的feature),用感知器构造一条直线来划分两个object,二维当中这条直线称为decision boundary,更高维叫做hyperplane。
了解模型后,接下来就是如何确定这条直线呢?因为bias和weights都是随机选的,如何找到最好的直线来做分类呢?这就需要感知器自己学习(训练)找到合适的weights和bias,后面再讲。
⛵️
参考
- Neural Networks and Learning Machines (3rd Edition), Simon Haykin
- https://en.wikipedia.org/wiki/Perceptron
欢迎阅读本篇文章,如有兴趣可以关注博主公众号哦: