深度学习 – 感知器原理

人工神经元也称为感知器。它接受输入信号,处理后再向一下层神经元输出信号。

原始感知器

感知器由Frank Rosenblatt在1957年提出,他介绍了一种基于人工神经元的感知器学习规则。

感知器定义

感知器的结构,如下图所示:

人工神经元

感知器中,输入信息被加权求和,再经过一个激活函数处理,然后生成输出信息。

假设正确的输出是预定义的,每次通过感知器传递数据时,都会将最终结果与正确的结果进行比较,并根据差值对感知器中的输入权重值进行调整,直到网络可以生成正确的最终输出。

所以,感知器的学习过程,实际上就是根据一组样本数据,确定感知器输入权重的过程。

感知器输入

一个感知器可以接受多个输入(x_1, x_2, …, x_n),每个输入都有一个权重值,另外还有一个偏置项(bias),即上图中的w0,通常也记为b(bias)。

加权求和

对于输入信号,感知器首先会对其加权求和:

z(x) = w_0 + w_1x_1 + w_2x_2 + … + w_nx_n

激活函数

激活函数作用是模拟生物神经元中阈值的作用,当信号强度达到阈值时,就输出信号,否则就没有输出。数学中的许多函数可以作为激活函数使用,例如阶跃函数(step funciton),sign函数,sigmoid函数。

激活函数

  • 阶跃函数的输入信号大于t, 输出1,否则输出0。
  • 符号(sign)函数的输入大于0,输出1,小于0,输出-1。
  • Sigmoid函数是s曲线,输出值在0到1之间。

感知器的输出

感知器的输出,可以表示为:

输入

输入项:1, x_1, x_2, …, x_n,表示为向量x

X = [1, x_1, x_2, …, x_n]

权重

权重项:w_1, w_2, …, w_n,表示为向量w

W = [w_0, w_1, w_2, …, w_n]

偏置项(bias)

偏置项为 w_0 \times 1,也记为b

激活函数

激活函数为f(Z)

输出

加权求和的值可以表示为:

Z = W · X = W^TX = \sum _{i=0}^n w_i*x_i

经过激活函数处理后:

Y = f( W · X )

例子:用感知器实现逻辑门

用感知器实现逻辑与

设计一个感知器,实现逻辑与功能。逻辑与函数,有两个输入,一个输出,真值表如下所示:

x1 x2 y
0 0 0
0 1 0
1 0 0
1 1 1

0表示false, 1表示true。

我们让权重:w0 = -0.8, w1 = 0.5, w2 = 0.5,激活函数使用阶跃函数(t=0),这时,感知器就相当于and函数。

我们验算一下:

  • x1 = 1, x2 = 1, y = x1 * w1 + x2 * w2 + w0 = 0.5*1 + 0.5*1 + (-0.8) = 0.2 > 0,输出为1,即true
  • x1 = 0, x2 = 1, y = x1 * w1 + x2 * w2 + w0 = 0.5*0 + 0.5*1 + (-0.8) = -0.3 < 0,输出为0,即false

用感知器实现逻辑或

类似的,可以使用感知器实现逻辑或功能。

我们让权重:w0 = -0.3, w1 = 0.5, w2 = 0.5,激活函数使用阶跃函数(t=0),这时,感知器就相当于or函数。

  • x1 = 1, x2 = 1, y = x1 * w1 + x2 * w2 + w0 = 0.5*1 + 0.5*1 + (-0.3) = 0.7 > 0,输出为1,即true
  • x1 = 0, x2 = 1, y = x1 * w1 + x2 * w2 + w0 = 0.5*0 + 0.5*1 + (-0.3) = 0.2 > 0,输出为1,即true

感知器还能做什么

事实上,感知器不仅仅能实现简单的布尔运算。它可以拟合任何的线性函数,任何线性分类或线性回归问题都可以用感知器来解决。

感知器训练

现在,你可能困惑前面的权重项和偏置项的值是如何获得的呢?

在感知器学习规则中,将实际输出与样本中的正确输出进行比较,根据输出偏差调整权重与偏置项。重复多次迭代样本数据,直到实际输出与正确输出匹配,从而得出正确的权重与偏置项,这就是感知器的学习过程。后面章节,将有更详细的介绍。

感知器学习



浙ICP备17015664号 浙公网安备 33011002012336号 联系我们 网站地图  
@2019 qikegu.com 版权所有,禁止转载