神经网络-初识Perceptron感知器

Table of content
  1. 1. Artificial Neuron
  2. 2. 激活函数
  3. 3. 感知器计算
  4. 4. 感知器作用
  5. 5. 参考

人工神经网络的实现和背后的思想,都是来自于人类大脑,初中生物课上讲膝跳反射其实就能很好地解释人脑是如何工作的。

上图可知,人类神经系统由三部分构成,Receptors接收到外部环境的刺激后,将这种刺激转换成电脉冲信号传送到Neural net,经过处理,将电脉冲信号发送给Effectors,最后生成可识别的响应。整个环节中有两个方向:

  1. 黑色线 forward
  2. 蓝色线 feedback

Neural net位于大脑,持续收集,感知信号并作出决策,结构异常复杂,1911年Ramón y Cajál提出大脑内部的神经网络是由神经元Neuron组成,每个Neuron之间由神经突触(Synapses,nerve ending)连接,进而构成复杂的网络。

Artificial Neuron

基于我们来对人类神经的理解,计算机科学家设计了人工神经网络Artificial Neural Networks,现在火热的深度学习Deep Learning就是基于人工神经网络的框架。

multilayer of deep neural networks by 3Blue1Brown

看着这么复杂, 立马觉得高大上了,是不是。上图是一个包含多层感知网络的深度学习网络,所谓万丈高楼平地起,上图中复杂结构的基础都是由每一个圆圈组成,圆圈代表人工神经元Artificial Neuron,它就是构成人工神经网络ANN的基础。

McCulloch和Pitts 在1943提出关于计算机器的神经网络,在1958年,Rosenblatt首先提出感知器Perceptron一词,现在说的人工神经元就主要指Rosenblatt感知器McCulloch–Pitts模型,就是上图中那些圆圈。现在来详细介绍下人工神经元模型,先上图:

nonlinear model of a neuron

模型左侧是输入xmx_m,可以将它们理解为神经突触Synapses集合,也叫feature,根据外部环境的不同,synapse刺激强度也会不同,对应于人工神经元中不同的weight,即图中wkmw_{km},训练前就是几个随机数,输入xxww相乘,表示不同的输入拥有不同的权重,同时还有一个bias, 用于降低/减少求和后的结果,经过累加器求和,进入激活函数activation function,也叫squashing function,它将输出信号的幅度限定在某个范围内,通常如果wmxm>=w_m{\cdot}x_m >= 某个阈值,输出1,否则输出0。

数学公式表示:

可以简化成如下信号流图:

图中,bias变成了由x0x_0wk0w_{k0}组成。

激活函数

  1. threshold function,又叫Threshold Logical Unit(TLU)

    就是做一个阈值判断,图中阈值为0,核心为如果点积和大于等于t,输出1,否则输出0。

  2. sigmoid function

    有点像一个‘S’形状,aa定义了曲线的斜率,aa越大,斜率越大。

    常用的还有ReLU函数:

    感知器计算

    1. 初始化weights,可以设置成随机数

    2. 训练数据集中,将xxww做点积求和

    3. 经过激活函数判断输出

      θ\theta为阈值,移到左边变为θ-\theta,可以替换成x0=1x_0=1w0=θw_0=-{\theta}

    输出结果如下图:

感知器作用

从上面的图中,不难发现其作用就是用来分类,将两个的object映射到X、Y坐标轴(代表不同的feature),用感知器构造一条直线来划分两个object,二维当中这条直线称为decision boundary,更高维叫做hyperplane

了解模型后,接下来就是如何确定这条直线呢?因为bias和weights都是随机选的,如何找到最好的直线来做分类呢?这就需要感知器自己学习(训练)找到合适的weights和bias,后面再讲。

⛵️

参考

  1. Neural Networks and Learning Machines (3rd Edition), Simon Haykin
  2. https://en.wikipedia.org/wiki/Perceptron

欢迎阅读本篇文章,如有兴趣可以关注博主公众号哦: