神经网络和深度学习之神经元和分类器

时间:2022-12-14 20:27:51

一、计算机和人相互依存

当今社会,计算机在我们的生活和工作中扮演着重要的角色,人类使用计算机帮助他们进行大量的计算,通过计算机让每个人相互通信等等。但时代的进步让我们对计算机的要求越来越高,人类希望它能够从事越来越复杂的工作。乍看计算机进行计算以及通信工作的原理好像很复杂难懂,实际上计算机能够进行这些工作是因为人们已经给它设定好了程序,计算机只要按照这些程序规范执行就好了,这是一种单向的工作模式,这种情况下,计算机是完全不会“思考”的,只知道按程序执行指令,而我们却想赋予计算机思考的能力,这便是人工智能的起点。


神经网络和深度学习之神经元和分类器

图1.1.1


我们希望计算机“思考”什么呢?比如,我们希望计算机能够帮我们识别出图片中动物是猫还是狗,帮我们对于图片中存在各种物体做标识,帮我们翻译一段文字,或者帮我们分析一段话或者一段句子中蕴含着说话人的什么情感等等。这些工作对人类而言非常简单,甚至一个2,3岁的孩子也完全可以很好的分辨出一张图片中的动物是猫还是狗,但这些对于计算机而已,却是非常困难的,因为计算机不会“思考”,它不明白什么是狗,什么是猫,除非我们训练它去认识狗和猫,这便是后来的机器学习。


神经网络和深度学习之神经元和分类器

图1.1.2


二、 我们的神经细胞

要想计算机学会“思考”,首先来看看人类是如何思考的。

生命是神奇,美妙,复杂的,这种复杂程度不知道是计算机系统的多少倍,人类能够思考并从事各种各样的复杂的工作,是因为我们身体内部微小的神经细胞起着作用。

神经细胞也叫神经元,它的功能是接受某些形式的信号并对之做出反应,比如传导兴奋、处理并储存信息以及发生细胞之间的联结等。正因为神经元的这些功能,才能使得人和动物能够对外界环境的变化做出反应。毋庸置疑,越高级的动物,神经元的个数和神经元之间的连接越复杂。


神经网络和深度学习之神经元和分类器

图1.1.3


神经元由树突、胞体、轴突、髓鞘、神经末梢等组成。树突接受信息,并转换成电信号,轴突传输电信号及处理等,神经末梢对信息进行反应。一个神经元完成了一个简单的信息接收,处理,输出的基本动作。人工智能专家们就从这里得到启发,开始了人工智能模型——“神经网络”的研究。

三、人造神经元

哲学告诉我们,世界上的万物都是联系的。生物学的神经元启发我们构造了最简单原始的“人造神经元”。下图中的圆就好比一个神经元,它接受外部输入,在圆内进行简单或复杂的处理后形成输出,在神经网络中我们称之为感知机。


神经网络和深度学习之神经元和分类器

图1.1.4


神经元是人体神经系统的基本结构和功能单位,是无数个神经元相连而成(如下图1.1.5所示),这是一个非常复杂的网络系统。神经元间联系方式是互相接触,而不是细胞质的互相沟通。接触部位的结构特化称为突触,通常是一个神经元的轴突与另一个神经元的树突或胞体借突触发生机能上的联系,神经冲动由一个神经元通过突触传递到另一个神经元。


神经网络和深度学习之神经元和分类器

图1.1.5


同理,从人体神经系统的构成可以进一步创建更加复杂的人造神经系统,比如我们让多个人造神经元(感知机)相连接,便形成了人工智能里面声称的“神经网络”。如下图所示,一个圆圈代表一个神经元,黄色的第一层称为输入层,蓝色的第二层称为隐藏层,隐藏层可以有多层,绿色的第三层称为输出层。


神经网络和深度学习之神经元和分类器

图1.1.6



这仅仅是几个神经元相连构成的简单网络,想想人类大脑1000亿个神经细胞错综复杂的关联在一起,是何等的复杂和繁忙,它们不停在处理信号,发出信号,让我们能够思考和从事各种工作,如果换成上万个人造神经元相连,你觉得计算机可以做更加复杂的工作吗,答案是肯定的。

四、由神经元联想到分类器

现在我们需要神经元来帮我们处理一个信息,把10加仑(gallon)的汽油换成以升(L)为单位的汽油。对于加仑和升两种单位,国际上有标准的换算比例,1加仑=3.785412升,我们可以用一个公式来表示,即\(G=3.78L\)或者\(y=3.78x\),通过公式,我们可以简单的换算就知道答案,这个难不到读过初中的你。再仔细看看,\(y=3.78x\)不就是在坐标系中过原点的一条直线吗?3.78是直线的斜率。

接着我们用神经元来进行学习换算(忽略一下激活层),如下图1.1.7,神经元的输入为\(x\),我们给输入x赋了一个权重\(\alpha\),最后经过神经元的计算,得到输出\(y\)


神经网络和深度学习之神经元和分类器

图1.1.7


在神经元的计算中,最重要的一步是必须知道权值\(\alpha\),才能得到输出\(y\),怎么换算呢?首先,正真的值应该是37.8升,核心就是神经元把正确答案37.8的和它预测的答案来对比着不断学习改进!第一步,先像人一样猜猜看,假设\(\alpha=3\),则神经元预测值\(y'=30\)升。

“这与实际值有差异吧,误差为37.8-30=7.8升;哦,我明白了!”神经元继续想着下一个计算。
“再计算一次我肯定能减小误差,让\(\alpha=3.5\)吧”,这一次预测值为35升。
“第二次计算误差为\(37.8-35=2.8\)升,哈哈误差在不断缩小,也许下一次计算就接近真实值了!”
“这次我让\(\alpha=4\),哦,糟了,预测值为40升,与实际值的误差为\(37.8-40=-2.2\)升,过了!”
“好吧,我知道怎么调整了......”

神经元就这样从误差中不停的学习,最后输出的值越来越接近真实值,这无疑是一次成功的训练!

五、分类器

现在我们有两堆豆子,豆子的特征如下表所示,我们想通过计算机预测一下哪一种是黄豆,哪一种是蚕豆。对于识别两种不同种类的物体,人类眨巴眼就可以很容易的分辨出来,但计算机怎么分辨?是否有解决方案,答案是肯定的。


神经网络和深度学习之神经元和分类器

表1.1.1


我们用坐标来直观的可视化这些特征,如下图1.1.8所示。两种豆子的长宽分别落在一定值范围内,他们有明显的特征,分布在坐标中的不同区域。


神经网络和深度学习之神经元和分类器

图1.1.8


如果我们想分类这两种豆子,最好的办法是什么呢,当然是在中间划一条线了!在线的上面是蚕豆,线的下面是黄豆,如下图1.1.9所示。这样的线在数学中是一条线性线段,在神经网络中被称为分类器。只要计算机能给出一条最合理的分类线(最优的分类器),那么计算机就完成了分类任务,也就意味着计算机可以认识豆子了!哈哈,居然这么简单!


神经网络和深度学习之神经元和分类器

图1.1.9


你或许会问,这种线太多了,比如下面图1.1.10(a)就不是一个很好的分类器,它完全没有把黄豆和蚕豆分开,图(b)也未能把两种豆子分开,或许图(c)应该不错,它把两种豆子很明显的分类开了,但图(c)的分类器并不一定是最优的分类器,一个分类器如何优化,这取决于黄豆和蚕豆样品输入的特征值来刺激分类器进行不断的优化。


神经网络和深度学习之神经元和分类器

图1.1.10


怎么才能找到最优的一条线呢?这正是分类器内部需要做的工作,它通过一系列的计算,找出最优的线性线段,也就是我们的最优分类器。反观我们的神经系统,人体神经元也是通过树突接收信号,在细胞质中经过处理后通过轴突传到其他地方的,以上的人工神经元换算加仑和升不就是这样的吗?

原来,神经元和分类器如此类似!

But!这里强调一下,人体神经系统中神经元要收到信号,并不是马上就传导,而是要在信号刺激较达到一定阈值时候才开始处理信息并把信息传导出去,而在人造神经元中,信息的处理和传播也是如此,这样说来,神经元并不仅仅就是第一节中图1.1.4所示的一个圆圈,而是还有一层激活,信号达到一定阈值,激活层才能处理信息,并输出。如下图1.1.11所示。


神经网络和深度学习之神经元和分类器

图1.1.11


因此,如果把神经元看成一个黑盒的话,这个黑盒应该包括了上图中的第一个计算器和第二个激活层,而激活层中是些什么东东呢,下一节我们会详细讲到。

六、分类器解决所有二分类问题吗

上面的线性分类器可以有效的进行二分类,在实际应用中我们也经常使用到,但是这种分类器一定就很强大吗,有没有它完成不了的分类呢?当然,万事万物都有局限性,我们引入几个逻辑门来阐明一下这种局限性。

我们曾经在逻辑电路中学过与门,或门,与非门,或非门,异或门等几种基本原件,如下图1.1.12,这些原件组成的电路构成了最早的计算机。虽然这些原件的名字听起来太理工科了,但是我们可以换个方式来理解这些生硬的器件,比如,儿子想看动画片,与门表示完成作业和吃完饭两个条件均满足才能看动画片;或门表示,只要完成作业或者吃完饭两个条件其中有一个满足就可以看动画片等等,对照表1.1.2,你可以更容易地去理解。


神经网络和深度学习之神经元和分类器

图1.1.12


继续观察这些逻辑门均有两个输入,一个输出,输入我们可以用1或0表示,输出也可以用1或0表示,实际上计算机也就是通过0和1来处理信息的,计算机把0视为假,1视为真,并把0和1组成的一系列信息经过处理,得到一个输出。现在,我们把这些逻辑门视为几个逻辑函数,这些函数的输入输出是什么关系呢,我们用下表1.1.2表示。


神经网络和深度学习之神经元和分类器

表1.1.2



同时,我们把表格中前四个逻辑函数用坐标来观察一下,规定同输出且输出为1的坐标用红色表示,同输出且输出为0的坐标用绿色表示,如下图1.1.13所示。可以看到,所有相同的输出均可以用一个分类器来进行分类,也意味着分类器均可以很好的学习,这是我们希望看到的,并且分类器也做得很好。

神经网络和深度学习之神经元和分类器


神经网络和深度学习之神经元和分类器

图1.1.13


紧接着我们看看最后一个逻辑函数——异或逻辑,糟糕!一个分类器根本没办法进行正确的分类,我们不希望看的事发生了,它无法解决这个有趣的问题,但我们希望计算机再智能一点,能够帮助我们进行正确的分类。有解决方法吗?仔细想想其实不难,再增加一个线性分类器怎么样?如图1.1.15所示,Yes!这达到了我们想要的效果。

在实际应用中,我们可能会遇到各种奇怪但有趣的问题,让不同的分类器或者多个分类器一起工作,这是神经网络的核心思想。


神经网络和深度学习之神经元和分类器

图1.1.14




神经网络和深度学习之神经元和分类器

图1.1.15


分类器的局限性好像与我们后续的神经网络关系不大,但事实并不是如此,因为神经网络的一个重要设计特征就来源于对这个局限性的了解。神经网络并不仅仅就是解决一些简单的问题,实际问题会复杂很多,对于各种有趣的情况我们均讨论一下,对于后续的深入学习会有很大的帮助。

参考文献:
1、《Python神经网络编程》[英]塔里克·拉希德