全文共2047字,预计学习时长6分钟
图源:unsplash
如果人类已经造出了人造大脑,你会想让它做什么呢?写作业,称霸股市,还是霸占世界?人造大脑的可能性是无穷的。事实上,在一定程度上我们已经做到了!人造大脑不像我们的大脑那么复杂,却是能改变世界的强有力工具,它就是神经网络。
神经网络是什么?
神经网络(简称NN)是能够接收、处理并输出信息的一组连接节点。我们的大脑也是一种神经网络!它的内部有许许多多生物神经元连接,能够获取信息(屏幕上的文字),并将其处理、输出(理解文字并储存信息)。
生物神经网络:
生物神经的简图
理解生物神经的工作机制是直观理解人造神经的关键。我们先来看看生物神经的物质构造,再将其与人造神经进行比较。生物神经的构造如下:
· 树突:接收其它神经的输入信号。
· 胞体:联合树突收集的所有信息并进行计算,它能根据计算判断是否输出信号(会根据强度有所差异)。
· 轴突:接受胞体的计算并传输信号。
· 轴突末端:向其它神经元输出信号。
人工神经网络:
人工神经网络不是像人脑一样实体的神经网络(但它们可以是!),它们实际上只是电脑中运行的软件!我们先来看看人工神经网络的构造,再来深究它们是如何相互作用的。
简化的神经网络
神经网络的构成:
· 节点:接收之前节点的输入,进行计算并输出。节点与生物意义上神经网络的胞体、树突和轴突末端类似。
· 突触:将一个节点输出的信号传输到下一个节点进行输入,类似生物神经网络的轴突。
· 输入层:输入数据(以数字的形式)嵌入的部位。
· 隐藏层:不参与输入输出的层级(好处:如果层级多于1个,神经网络就会由简单神经网络升级成深度神经网络)。
· 输出层:参与神经网络最终输出的层。
神经网络如何工作?
神经网络的实际工作机制:
· 首先要将输入数据以数字的形式放置在输入层中。
· 数据会通过突触传送。数据在从节点传输到突触的过程中,会通过参数放大,就会产生一个偏差。这样就放大或者抑制了信号。
· 这个信号会被归于下一个节点,会同其它所有的信号整合,传递到突触中。
· 在各个层级中重复“计算+传送”的步骤。
· 最终的输出会是一系列数字,能够转化为我们想要的结果。
这5个步骤(+另外一个后续会提到的步骤)就是我们的大脑在处理信息时会遵循的步骤。人工神经网络是模仿我们的大脑建成的!
更复杂些的神经网络
这张图片看起来有些复杂,每个层有很多个节点,节点又通过许多突触连接,但它仍不能反映真实的神经网络。实际生活中,神经网络有几十个层,每一层有上千个节点。虽然过程都是相同的,但仍有这样的问题存在:电脑是如何将所有数据一一计算出来的呢?
给神经网络编程
神经网络中只存在数字,它们由向量(数字列表)表示,以点积的方式相互作用。这样做是因为计算机处理向量和点积非常迅速。这次再运用矩阵浏览一下整个过程:
· 输入层是输入数据的向量表示(例如:属性的单个图像或单个列表)。
· 在下一层里,向量会被传递给每一个节点。
· 每个节点中会有参数向量来取代突触。两个。向量之间会以点乘的方式来产生一个数字。这个数字会产生一个偏差形成输出
· 整个层会得出很多个输出结果,结合在一起形成向量。
· 这个向量会被传送出去。这个过程会一直重复到最后一个层。
有注意到在步骤3中,通过常数放大了输入,又添加了另一个常数吗?这听起来像是9年级学的线性函数!这个函数中需要记忆的等式y=mx+b(在最后)有一个实际运用。y是输出,m是参数,x是输入,b是偏差!所以又把步骤3叫做线性层。
你或许还会注意到这个问题:神经网络中的众多线性层可以整合为1个层,为什么还要那么多层级呢?这是个很好的想法,会在缺失的一个关键步骤——非线性中得到处理。
非线性函数:
线性整流函数是最简单最常见的非线性函数
通过在每个线性层之间添加非线性的方法,就能将它们分隔开!所要做的只是将非线性函数运用到线性层的所有输出。非线性函数的数量很多。最简单常用的叫做线性整流函数。瞄准这个函数,因为它理解起来很容易,需要的时间很短。(注意:非线性函数层叫做**层。)
那么,为什么一定要有这么多层呢?1个层不可以吗?答案是:通用近似定理。通用近似定理描述了如果有足够的线性层和非线性层,就可以以任意精度近似任意函数。也就是说,神经网络可以做任何事。
到这里,你就已经了解了神经网络的工作方式,可以深入研究其训练过程啦!
推荐阅读专题
留言点赞发个朋友圈
我们一起分享AI学习与发展的干货
编译组:邓逸瑶、杨娴
相关链接:
https://medium.com/datadriveninvestor/the-easiest-and-most-intuitive-explanation-of-neural-networks-53162e5ce104
如转载,请后台留言,遵守转载规范
推荐文章阅读
长按识别二维码可添加关注
读芯君爱你