新手司机带你看神经网络

什么是神经网络

我们现在所谈论的神经网络不是动物或者人上的神经网络,而是为计算机量身定制的神经系统。

计算机神经网络是一种模仿生物的神经中枢或者动物的神经网络的功能所涉及的结构,他本质上是一种数学模型或者是计算机模型。神经网络是由大多数的计算机神经元进行连接进行计算,大多数情况下,计算机神经元能够在外界的影响下可以改变自己的内部结构,可以逐步的适应的这样的一个逐步的过程。现代神经网络是一种基于现代统计学,逻辑概率学所构建的一种工具,常用来对于输入和输出间的特殊关系进行建模或者来探索数据间的模式,神经网络是一种高大的数学模型,有大量的节点或者说神经元之间的联系构成。正如人类神经系统的神经元一样,他们负责传递信息和加工信息,神经元也可以被训练和被强化,形成固定的神经意识形态,对特殊的信息会有更加强烈的反应。

现在举一个例子,你现在看见一只猫,不管他现在是睡觉,跳跃,还是飞奔,你都会知道他就是一只猫,这一点不会改变。因为你已经被告知过圆眼睛,毛茸茸有着尖耳朵的那个动物叫做猫,所以你通过你已经成熟的视觉神经系统判定他就是一只猫,计算机也是这样,通过不断地训练那些是猫,那些是狗,哪些是牛。他们会用一个统一的数据模型来统一概括学习者的判断力,最后用数学形式,也就是我们所熟知的0101的数字编码的方式判断他看到的应该是属于哪一类,目前的百度图片搜索和Google photos都可以轻易的判别人物地点或者事物,这些都归功于计算机视觉的突破发展

新手司机带你看神经网络_第1张图片
图片发自App

上图所示的是一个可视化的视觉神经系统,是由多层的神经元组成,为了区分不同的神经层,我们会有不同的神经层的名称,输入层是负责接受信息的神经层,负责传递接收到的信息,比如说你看到一只猫的图片,输出层是信息在神经元当中传递和中转,分析和权衡的输出的结果,通过输出的结果我们就可以直接清晰的看出计算机对于事物的认知。隐藏层是在输入和输出层之间众多的各个神经元构成的各个神经元的连接层面,隐藏层可以有多层,但是习惯上只会用一层,其主要作用就是对于传入信息的分析加工和处理,就像人类的感知系统一样,信息的传递往往也需要多层的信息的加工才能延伸出对于这样的感觉的理解。

通常来是说计算机所看到的和所处理到的东西是和人类的理解是有很大的不同的,无论是图片声音和文字,在计算机中都只能以数字01出现,如果在当时你想问电脑,你看看我给你的这个图片是不是只猫的时候,他能真正看到的就是一堆数字,通过对这一对的数字的加工处理从而生成另外一堆的数字,而生成出来的数字也就有了认知上的意义,通过一点点的处理,我们就能够判别出计算机所分析出的图片是猫还是狗。

接下来让我们说说神经网络是怎样被训练的,首先,我们得需要很多很多的数据,非常多的数据,比如说我想要计算机判别猫或者狗,首先我就先得贮备好上千万张带有标签的猫猫狗狗的照片,然后再进行上千万次的训练。庆幸的是我们现在的计算机的运算速度已经做够快,我们并不需要对计算速度而发愁。我们所要做的就是给计算机看图片,然后计算机给你一个极不成熟也不准确的答案,然后在接下来的运算中,100次的计算中有10次是正确的。在这样你给计算机看的是一只猫,但是计算机却认为他是一只狗,显然是区分错误,但是这一次的区分错误,对于计算机是有极大的价值的,我们可以利用这一个的错误的经验作为我们从错题中获取的经验,那么计算机是如何学习经验的呢,那就是计算机通过预测的答案和真实的答案然后吧这样的差别反向的传递回去,对每一个神经元向正确的方向上改进一点点,这样通过下一次识别的时候,所有改进的识别网络计算机又可以识别的准确的一点点,这样的每一次的一点点类加上上千次的训练,这样就像正确的方向上迈进了正确的一大步。

最后到了验收结果的时候,再给计算机几张猫咪的图片,计算机就可以毫不犹豫的给出一个自信满满的答案,这就是只猫。现在我们就可以更进一步的来看看神经网络是如何进一步的被训练的

原则上,每一个的神经元在他的位置上都有属于他的次级函数,我们可以用这样的函数给计算机一个刺激的行为,第一次给计算机看一只飞奔的猫时,神经网络里只有部分的神经元被激励或者是被激活,被激活的信息就是计算机最重视的信息,也是输出结果最有价值的信息,如果预测的结果是一个狗,所有的神经元的参数就会被调整,这时候让一些原本容易被激活的神经元变得迟钝而一些却变得敏感起来,这就说明所有的神经元都在被激励起来,正在对正确的答案研究起来

就得出了他是一只猫。

这就是神经网络建模的基本过程,如果想深入了解,请大家多多交流。

你可能感兴趣的:(新手司机带你看神经网络)