点击上方关注,All in AI中国
众所周知,深度神经网络的最基本单位被称为人工神经元/感知器。但是,我们今天使用的感知器是由McCulloch和Pitts在1943年通过模仿生物神经元的功能而获取的。
生物神经元:一个简化的例子
树突:接收来自其他神经元的信号
Soma:处理信息
轴突:传输这个神经元的输出
突触:与其他神经元的连接点
基本上,神经元接受输入信号(树突),像处理CPU(soma)一样处理它,通过类似电缆的结构将输出传递给其他相连的神经元(轴突与突触到其他神经元的树突)。这可能在生物学上是不准确的,因为还有更多的事情在发生,但在更高的层次上,这就是我们大脑中的神经元正在发生的事情——接受一个输入,处理它,然后得到一个输出。
我们的感觉器官与外部世界相互作用,并将视觉和声音信息发送给神经元。假设你在和你的朋友聊天。现在,你的大脑收到的信息被一组"笑或不笑"的神经元接收,这些神经元将帮助你决定是否笑。每个神经元只有在满足其各自的标准时才会被激活,如下所示。
当然,这并非完全正确。在我们的大脑中有一个大规模并行的 10¹¹神经元(1000亿)互连网络,它们之间的联系并不像上面所看到的那么简单。它们看起来可能像这样:
现在感觉器官将信息传递给神经元的第一层/最低层来处理它。 并且输出以分层的方式传递到下一层,一些神经元将被激活,一些神经元将不会被激活,这个过程持续进行,直到它得到最终响应——在这个例子中,笑声就是响应。
这种大规模并行网络还确保了工作的分工。每个神经元仅在满足其预期标准时才会被激活,即,神经元可能对某个刺激起一定的作用,如下所示。
显然,神经元以分层方式排列,每一层都有自己的角色和职责。 为了检测面部,大脑依赖于整个网络而不是单个的层。
现在我们已经得知了生物神经元是如何工作的,让我们来看看McCulloch和Pitts能提供什么。
注意:作者对大脑如何工作的理解非常有限。以上插图也过于简化。
McCulloch-Pitts 神经元
第一个神经元的计算模型是由Warren McCulloch(神经科学家)和Walter Pitts(逻辑学家)在1943年提出的。
它可以分为两部分。第一部分,g接受输入(ahem dendrite ahem),执行聚合,再基于聚合值的第二部分,使f做出决策。
假设决定是否在电视上观看足球比赛。输入都是布尔值,即{0,1},输出变量也是布尔值{0:将观看它,1:不会观看它}。
· x_1可能是"isPremierLeagueOn"(更喜欢英超联赛)
· x_2可能是"isItAFriendlyGame"(倾向于关心友谊赛)
· x_3可能是"isNotHome"(当出差的时候不能观看)
· x_4可能是"isManUnitedPlaying"(是一名曼联球迷)等等。
这些输入可以是兴奋性的或抑制性的。抑制性输入是对决策产生最大影响的输入,如果有抑制性输入则不考虑其他输入因素,比方说如果x_3为1(不在家中),那么输出将始终为0,即,神经元永远不会被激活,因此x_3是抑制性输入。兴奋性输入不是使神经元自身发出信号的输入,但当它们结合在一起时,它们可能会发出信号。在形式上,这是正在发生的事情:
我们可以看到g(x)只是对输入进行求和。这里的theta称为阈值参数。例如,如果总是在求和为2或大于2的时候观看比赛,则θ在这里为2。这称为阈值逻辑。
使用M-P神经元的布尔函数
到目前为止,我们已经看到了M-P神经元是如何工作的。现在让我们看看这个神经元是如何表示一些布尔函数的。请注意,我们的输入都是布尔值,输出也是布尔值,所以在本质上,神经元只是在试图学习布尔函数。
M- P神经元:简洁的表示
这种表示仅对于布尔输入x_1,x_2和x_3时,如果g(x),即sum≥theta,则神经元将以其他方式。
AND Function(和函数)
只有当所有输入都包含时,AND函数神经元才会被激活,即g(x)≥3。
OR Function(或函数)
如果任何输入为ON,则OR函数神经元将被激活,即g(x)≥1。
抑制性输入函数
这可能看起来很棘手,但实际上并非如此。在这里,我们有一个抑制性输入,即x_2,所以每当x_2=1时,输出将为0。记住这一点,我们知道只有当x_1=1且x_2=0时,才会输出1,因此显然阈值参数应为1。
让我们验证一下,g(x),即x_1 + x_2仅在3种情况下≥1:
情况1:当x_1=1且x_2=0时
情况2:当x_1=1且x_2=1时
情况3:当x_1=0且x_2=1时
在情况2和情况3中,由于抑制性输入的原因,它们的输出将为1。
NOR函数
对于将被激活的NOR神经元,我们希望所有输入都为0,这样阈值参数也应为0,我们将它们全部作为抑制性输入。
NOT Function
对于NOT神经元来说,输入1输出0,输入0输出1。因此我们将输入作为抑制性输入并将阈值参数设置为0。
任何布尔函数都可以用M-P神经元表示吗?在回答这个问题之前,让我们先了解一下M-P神经元的几何特性。
M-P神经元的几何解释
OR Function(或函数)
我们已经讨论过OR函数的阈值参数thetais 1,输入为布尔值,只有4种组合可能:(0,0),(0,1),(1,0)和(1,1)。现在将它们绘制在2D图上并利用OR函数的聚合方程。即,x_1 +x_2≥1,我们可以使用它绘制决策边界,如下图所示:
我们刚刚使用了聚合方程式,即x_1 + x_2 = 1,以图形化的方式显示,所有经过OR函数M-P神经元的输出位于该线之上,而位于该线之下的输入点将输出0。
M- P神经元将输入集分为正负两类。正数(输出1)是位于决策边界上或上面的那些,负数(输出0)是位于决策边界之下的那些。
AND Function(和函数)
在这种情况下,决策边界方程是x_1 + x_2 = 2。在这里,所有输入点都位于线之上,只有(1,1)当通过AND函数M-P神经元时输出1。
Tautology
如果我们有超过2个输入怎么办?
有3个输入的函数
让我们通过查看输入OR功能M-P来概括它。在这种情况下,可能的输入是8种:(0,0,0),(0,0,1),(0,1,0),(1,0,0),(1,0,1)...。 我们可以在3D图上绘制这些图,这次我们在三维中绘制决策边界。
满足决策边界方程x_1 + x_2 + x_3 = 1的平面如下所示:
当通过OR函数MP单元时所有位于上方或上方的点(正半空间)将输出1,位于该平面下方的所有点(负半空格)将输出0。
只需手动编码阈值参数,M-P神经元就能够方便地表示线性可分离的布尔函数。
线性可分性(对于布尔函数):存在一条线(平面),使得产生1的所有输入位于线(平面)的一侧,并且产生0的所有输入位于线的另一侧(平面)。
M-P神经元的局限性
· 关于非布尔输入的问题?
· 我们是否总是需要手动编码阈值?
· 所有输入都相等吗?如果我们想要更重视某些输入怎么办?
· 非线性分离的函数怎么做?
美国心理学家弗兰克罗森布拉特克服了M-P神经元的局限性,于1958年提出了经典感知模型,即强大的人工神经元。它是比McCulloch-Pitts神经元更通用的计算模型,可以随时间学习权重和阈值。
结论
在本文中,我们简要介绍了生物神经元。然后我们建立了MuCulloch-Pitts神经元的概念,这是有史以来第一个生物神经元的数学模型。我们用M-P神经元表示了一些布尔函数。最后,我们还建立了一个更广义模型的动机,即唯一的人工神经元/感知器模型。