直觉化深度学习教程——极致解读 M-P模型、感知器、多层感知器

往事不察,无以知来者。

在追逐新潮概念(ResNet、Mask R-CNN、Bert、GPT等)的时候,非常有必要回顾一下最初的源头脉络。

出发点并不是考古,而是为了从最基本的思维原型着手,建立直觉的认识

如果循着这个脉络,你会发现:神经网络的由来是如此的自然而然,每一步的迭代亦是如此朴素,却又意义深远。

文章目录

  • 四个概念的关系
  • M-P模型
    • 特点
    • 功能
    • 不足
  • 感知器(Perceptron)
    • 特点
    • 功能
    • 不足
  • 多层感知器(Multi-Layer Perceptrons)
    • 特点
    • 功能
    • 不足
    • 后来的解决方法
  • 参考

四个概念的关系

人工智能、机器学习、深度学习、神经网络,这四个词几乎经常出现,我想下面这个图1非常合适。
直觉化深度学习教程——极致解读 M-P模型、感知器、多层感知器_第1张图片

图1.人工智能、机器学习、神经网络、深度学习的发展时序及概念范畴关系
  • 概念范畴来看,人工智能>机器学习>深度学习

    如果图1描述的很模糊,那么图2所说的更明白一些。
    直觉化深度学习教程——极致解读 M-P模型、感知器、多层感知器_第2张图片

图2.人工智能、机器学习、深度学习的关系
  • 神经网络与深度学习的关系。

    神经网络:诞生于神经元(M-P模型),经历感知器、多层感知器后逐渐发展为成熟,但是由于神经网络拟合能力的强大,数据有限,硬件能力有限,训练与构造技巧匮乏,网络一直无法向深层发展。

    深度学习:最早是2006年提出,得益于1986年到2012年这几十年对网络的构造技巧、训练技巧的积累,以及互联网时代的数据积累,硬件的提升,三个封印终于凑齐,网络大踏步向更深层次、更多花样发展。

    就如同乔布斯时代年前的iphone与iphone11的关系,同为智能手机(算法思想未变),但是由于积累了足够多的迭代,手机的可玩性增强了太多(算法能力倍增)。


M-P模型

尽管M-P模型常常被忽略,然而它才是神经网络的真正起源。

1943年,Warren McCulloch和Walter Pitts参考了生物神经元的结构,提出了神经元模型M-P(他俩姓氏首字母的组合)。(生物神经元之于人工神经元差别,可能比飞鸟之于飞机的差别还大,只能说人类喜欢追根溯源或者喜欢建立关联。)
直觉化深度学习教程——极致解读 M-P模型、感知器、多层感知器_第3张图片

图3.M-P模型

就像这个图中所展示的,原理很简单,就是输入的加权和,再通过一个阶跃函数,加权和大于阈值 h h h就输出1,否则输出0。注意:一个神经元干的活,包括两个操作,即加和与非线性化,在下文中将用一个圆圈所代表。

可以描述为:M-P模型 = 加权和 + 阶跃函数

特点

即使这么简单的模型,我们依然可以有几点解读:

  • 权重 w i w_i wi越大, x i x_i xi对加权和结果 z z z的影响越大,即 x i x_i xi越重要,即 w i w_i wi x i x_i xi的重要性度量;
  • 加权和 z z z越大, f ( z ) f(z) f(z)越容易被激活,即 f ( z ) f(z) f(z)的值变为1,即加权和 z z z具备强度的意义;
  • 阈值 h h h越大, f ( z ) f(z) f(z)越难被激活, h h h决定了 f ( z ) f(z) f(z)被激活的难易度。

功能

可实现各种逻辑运算,以下三个公式分别实现非门、或门、与门。
y = f ( − 2 x + 1 ) y=f(-2x+1) y=f(2x+1)

y = f ( x 1 + x 2 − 0.5 ) y=f(x_1+x_2-0.5) y=f(x1+x20.5)

y = f ( x 1 + x 2 − 1.5 ) y=f(x_1+x_2-1.5) y=f(x1+x21.5)

以这些门可以实现更为复杂的逻辑运算。

不足

  • 仅有逻辑运算的功能。
  • w w w h h h 参数只能靠人为设置,也就是靠试,没有可以work的训练算法。
  • 不能解决线性不可分的问题。
  • f ( z ) f(z) f(z)为阶跃函数,显然限制了它的能力,只能用于分类。

感知器(Perceptron)

好了,终于到了感知器,Rosenblat,可是上世纪50年代大火的概念。为什么它当时那么火,我们先看看结构图。
直觉化深度学习教程——极致解读 M-P模型、感知器、多层感知器_第4张图片

图4.感知器

注意,图4中的一个圆圈表示一个神经元,代表M-P模型中的加权和与非线性化两个操作。可以这么说:感知器= M-P模型+双层概念+误差修正算法

特点

  • 双层概念

    输入层神经元,输出层神经元,即原来是一个神经元的概念,现在是多个神经元的相互连接。人们很自然想到:输出层不再拘泥于一个单独的神经元,而可以是多个神经元,将能实现多分类!输入层被构造成神经元,继续堆叠层数,将引出后来的多层感知器!

  • 误差修正算法

    之前的M-P模型的参数靠尝试,现在可以靠误差修正算法修正了。

    误差修正算法值得后期专门写一篇文章分享。

功能

能实现简单的线性分类任务。

不足

  • 依然不能解决线性不可分的问题。

    只要是单层神经网络(即一个线性加权和和一个非线性变换),必然不能处理线性不可分问题,这点已经被证明了(Shynk 1990; Shynk and Bershad, 1991)。


多层感知器(Multi-Layer Perceptrons)

好了,终于到了MLP,多层感知器是谁提出的,我没考证到,可能是因为感知器提出后,MLP的提出就显得水到渠成,这个里程碑就变得模糊。下图即为多层感知器的结构图。
直觉化深度学习教程——极致解读 M-P模型、感知器、多层感知器_第5张图片

图5.多层感知器

多层感知器= 感知器+sigmoid激活函数+反向传播

特点

  • sigmoid激活函数

    在M-P模型、感知器中,我们使用的都是阶跃,而后来,可以想到:既然阶跃只有两个状态的离散变化,能不能用一个就渐变的函数来代替它,这样激活函数的输出是连续且可导的。如此,便构造了sigmoid函数(意为形状像s一样的函数)
    s i g m o i d ( x ) = 1 1 + e − x sigmoid(x)=\frac{1}{1+e^{-x}} sigmoid(x)=1+ex1

​ 这个激活函数的函数曲线如图6所示,输出的激活值在[-1,1]之间,是对阶跃函数很好的近似。你可能会为 h h h去哪了,稍后会专门聊聊它去哪了。
直觉化深度学习教程——极致解读 M-P模型、感知器、多层感知器_第6张图片

图6.sigmoid函数曲线
  • 反向传播

    在多层感知器刚提出的那些年,输出层的权重使用误差修正算法获得,然而隐藏层的权重只能靠随机获取,这限制了网络向深发展;直到1986年反向传播被引入神经网络。

    反向传播值得后面专门写一篇分享。

隐藏层() 输出层
1986年之前 随机取 误差修正算法
1986年之后 反向传播 反向传播

功能

可应对所有复杂的分类问题

(已被理论证明,两层便可以无限逼近任意连续函数;问题是我们是否有足够的数据、训练技巧、耐心)

不足

  • 耗时太久(浅层网参数太多,深层网梯度消失)
  • 局部最优解问题

后来的解决方法

  • 减少参数的努力(CNN、RNN及各种训练技巧)
  • 激活函数优化、正则化技巧、训练技巧等。
  • 数据的积累,数据增强
  • 硬件的发展

参考

[1] Rosenblatt’s Perceptron

https://www.pearsonhighered.com/assets/samplechapter/0/1/3/1/0131471392.pdf

你可能感兴趣的:(深度学习,神经网络,机器学习,Perceptron,感知器,多层感知器,感知机)