《深度学习入门:基于Python的理论与实现》学习笔记——感知机

《深度学习入门:基于Python的理论与实现》学习笔记——感知机

  • 感知机
    • 一、感知机基础
    • 二、感知机与逻辑电路
      • 2.1 与门(AND gate):
      • 2.2 与非门(NAND gate):
      • 2.3 或门(OR gate):
      • 2.4 异或门(XOR gate)
    • 三、感知机的局限性
      • 3.1 线性与非线性
      • 3.2 局限性
    • 四、多层感知机
    • 参考:

感知机

一、感知机基础

感知机(perceptrpn)是由美国学者Frank ROsenblatt 在1957年提出的。是神经网络(深度学习)的 起源的算法。

严格地讲,下面的感知机应该被称为“人工神经元”或“朴素感知机”。但是因为很多基本的处理都是共通的,所以这里就简单地称为“感知机”。

感知机接收多个信号,经过处理后会输出一个信号。

组成感知机的单元即 ”神经元“或者”节点“。


【示例】:接收两个输入信号的感知机。

  • 图示: 《深度学习入门:基于Python的理论与实现》学习笔记——感知机_第1张图片

  • 形式一 数学公式:
    y = { 0 ( w 1 x 1 + w 2 x 2 ⩽ θ ) 1 ( w 1 x 1 + w 2 x 2 > θ ) y=\begin{cases} \begin{matrix} 0& \left( w_1x_1+w_2x_2\leqslant \theta \right)\\ \end{matrix}\\ \begin{matrix} 1& \left( w_1x_1+w_2x_2>\theta \right)\\ \end{matrix}\\ \end{cases} y={0(w1x1+w2x2θ)1(w1x1+w2x2>θ)

    • 权重参数 w 1 , w 2 w_1,w_2 w1,w2,控制输入信号的重要性;
  • 形式二 数学公式
    y = { 0 ( b + w 1 x 1 + w 2 x 2 ⩽ 0 ) 1 ( b + w 1 x 1 + w 2 x 2 > 0 ) y=\begin{cases} \begin{matrix} 0& \left( b+w_1x_1+w_2x_2\leqslant 0 \right)\\ \end{matrix}\\ \begin{matrix} 1& \left( b+w_1x_1+w_2x_2>0 \right)\\ \end{matrix}\\ \end{cases} y={0(b+w1x1+w2x20)1(b+w1x1+w2x2>0)

    • 权重参数 w 1 , w 2 w_1,w_2 w1,w2,控制输入信号的重要性;
    • 偏置参数 b b b,控制神经元被激活的容易程度。

一般情况下,我们采用第二种形式,即含有权重参数与偏置参数的感知机形式。

输入信号 与 控制参数 运算后流向 神经元,神经元 会计算传递过来的 信号总和,当 信号总和 超过了 阈值 时,称 神经元被激活


二、感知机与逻辑电路

感知机可用来解决逻辑电路。

2.1 与门(AND gate):

《深度学习入门:基于Python的理论与实现》学习笔记——感知机_第2张图片
从图中可以看出,能够分割红蓝点的直线可有无数条。相应的,满足条件的参数 ( w 1 , w 2 , θ ) (w_1,w_2,\theta) (w1,w2,θ) 的选择方法也就有无数种。例如:

  • ( w 1 , w 2 , θ ) = ( 0.5 , 0.5 , 0.7 ) (w_1,w_2,\theta)=(0.5,0.5,0.7) (w1,w2,θ)=(0.5,0.5,0.7):
    0.5 × 0 = 0 , 0.5 × 0 = 0 , ( 0 , 0 , 0 ) : 0 + 0 < 0.7 0.5\times 0=0,0.5\times 0=0,(0,0,0):0+0<0.7 0.5×0=00.5×0=0(0,0,0)0+0<0.7;
    0.5 × 0 = 0 , 0.5 × 1 = 0.5 , ( 0 , 1 , 0 ) : 0 + 0.5 < 0.7 0.5\times 0=0,0.5\times 1=0.5,(0,1,0):0+0.5<0.7 0.5×0=00.5×1=0.5(0,1,0)0+0.5<0.7;
    0.5 × 1 = 0.5 , 0.5 × 0 = 0.5 , ( 1 , 0 , 0 ) : 0.5 + 0 < 0.7 0.5\times 1=0.5,0.5\times 0=0.5,(1,0,0):0.5+0<0.7 0.5×1=0.50.5×0=0.5(1,0,0)0.5+0<0.7;
    0.5 × 1 = 0.5 , 0.5 × 1 = 0.5 , ( 1 , 1 , 1 ) : 0.5 + 0.5 > 0.7 0.5\times 1=0.5,0.5\times 1=0.5,(1,1,1):0.5+0.5>0.7 0.5×1=0.50.5×1=0.5(1,1,1)0.5+0.5>0.7.

  • ( w 1 , w 2 , θ ) = ( 0.5 , 0.5 , 0.8 ) ) (w_1,w_2,\theta)=(0.5,0.5,0.8)) (w1,w2,θ)=(0.5,0.5,0.8)):
    0.5 × 0 = 0 , 0.5 × 0 = 0 , ( 0 , 0 , 0 ) : 0 + 0 < 0.8 0.5\times 0=0,0.5\times 0=0,(0,0,0):0+0<0.8 0.5×0=00.5×0=0(0,0,0)0+0<0.8;
    0.5 × 0 = 0 , 0.5 × 1 = 0.5 , ( 0 , 1 , 0 ) : 0 + 0.5 < 0.8 0.5\times 0=0,0.5\times 1=0.5,(0,1,0):0+0.5<0.8 0.5×0=00.5×1=0.5(0,1,0)0+0.5<0.8;
    0.5 × 1 = 0.5 , 0.5 × 0 = 0.5 , ( 1 , 0 , 0 ) : 0.5 + 0 < 0.8 0.5\times 1=0.5,0.5\times 0=0.5,(1,0,0):0.5+0<0.8 0.5×1=0.50.5×0=0.5(1,0,0)0.5+0<0.8;
    0.5 × 1 = 0.5 , 0.5 × 1 = 0.5 , ( 1 , 1 , 1 ) : 0.5 + 0.5 > 0.8 0.5\times 1=0.5,0.5\times 1=0.5,(1,1,1):0.5+0.5>0.8 0.5×1=0.50.5×1=0.5(1,1,1)0.5+0.5>0.8.

  • 与门的Python实现

2.2 与非门(NAND gate):

《深度学习入门:基于Python的理论与实现》学习笔记——感知机_第3张图片
显然,与非门 是 与门 的 非运算。
情形和 与门 类似。同样地,能够分割红蓝点的直线存在无数条。

2.3 或门(OR gate):

《深度学习入门:基于Python的理论与实现》学习笔记——感知机_第4张图片
从图示中也可以看出,能够分割红蓝点的直线同样存在无数条。

另外,对比与门、与非门、或门 三种逻辑电路可知:
这三种逻辑电路可以使用具有相同构造的感知机表示,区别仅在于权重参数的值

2.4 异或门(XOR gate)

《深度学习入门:基于Python的理论与实现》学习笔记——感知机_第5张图片
从图示中可以看出,异或门 无法使用 单层感知机 表示。

三、感知机的局限性

3.1 线性与非线性

线性:由曲线分割而成的空间称为 非线性空间

非线性:由直线分割而成的空间称为 线性空间

3.2 局限性

感知机的局限性在于 它只能表示由一条直线分割的空间。弯曲的曲线无法用感知机来表示。

严格地讲:单层感知机无法表示异或门(XOR)。或者说,单层感知机无法分离非线性空间。

四、多层感知机

异或门 无法使用 (单层感知机)表示,但可以叠加感知机,即使用 多层感知机 进行表示。

事实上,感知机可以通过叠加层进行非线性的表示,理论上甚至还可以表示计算机进行的处理

参考:

  • 《深度学习入门:基于Python的理论与实现》;

你可能感兴趣的:(深度学习,python)