神经网络和深度学习之神经元和感知器

1、计算机和人相互依存

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



图1.1.1网络


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



图1.1.2函数


2、 咱们的神经细胞

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

生命是神奇,美妙,复杂的,这种复杂程度不知道是计算机系统的多少倍,人类可以思考并从事各类各样的复杂的工做,是由于咱们身体内部微小的神经细胞起着做用。动画

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



图1.1.3spa


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

3、人造神经元

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



图1.1.4


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



图1.1.5


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



图1.1.6



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

4、神经元第一次工做

如今咱们须要神经元来帮咱们处理一个信息,把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\)升,过了!”
“好吧,我知道怎么调整了......”

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

5、由神经元联想到感知器

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



表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!这里强调一下,人体神经系统中神经元接收到信号,并非立刻就传导,而是要在信号刺激较达到必定阈值时候才开始处理信息并把信息传导出去。这跟以前咱们用\(y=\alpha x\)这样的线性线段来进行加仑和升的换算不同,咱们把\(y=\alpha x\)当作一个感知器,咱们输入\(x\)一定会有一个\(y\)与之对应,无论\(x\)多小,\(y\)也会及时的响应输入\(x\)。而生物神经元传导是须要有个阈值刺激的,\(x\)小了,神经元并不理会。因为咱们喜欢模仿生物神经元的工做,因此一般在神经网络的应用实践中,生物神经元这种处理信号的方式也会被咱们抄袭过来。这就是咱们经常在线性感知器后面加入激活函数的意义。当信号达到必定阈值,激活层才能处理信息并输出。以下图1.1.11所示。



图1.1.11


加入激活函数后,前面线性感知器的输出就不是线性的了,咱们把线性输出作了非线性化处理,整个网络称得上是真正的完美。可是为何咱们须要加入激活,激活是什么呢?第二节咱们会详细讲到。

6、线性回归的缺陷

前面咱们提到过一次线性回归,什么是线性?从数学上来说就是变量\(x\)和变量\(y\)的函数图形呈现为一条直线或线段,那么咱们就说\(x\)\(y\)是一种线性关系,不只如此,其实还有一些数学解释也能够说明什么是线性,但这里,咱们用上面的分类线\(y=\alpha x+\beta\)就能够说明了,而实际上线性回归问题就是感知器的非网络表达形式。

上面的感知器能够有效的进行二分类,在实际应用中咱们也常常这样使用,可是这种感知器就必定很强大吗,有没有它完成不了的分类呢?固然,万事万物都有局限性,咱们引入几个逻辑门来阐明一下这种局限性。
咱们曾经在逻辑电路中学过与门,或门,与非门,或非门,异或门等几种基本原件,以下图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


事实上的确如此,生活中咱们没多大可能会遇到如此简单的线性问题,由于大多数事物的分布或者运动规律都不是线性的,这给咱们的工做带来的不止是挑战,还有阻碍,但更多的是趣味,就是由于有了这些有趣的问题,才使得这世界多姿多彩。

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

相关文章
相关标签/搜索