深度学习之神经网络的结构

一、神经网络的结构

 

二、神经网络的变种

   convolutional neural network(卷积神经网络)---->good for image recognition(擅长图像识别)

  long short-term memory network(长短期记忆网络)---->good forspeech recognition(擅长语音识别)

  ③最简单的原版---->多层感知机(MLP)

 

三、神经网络的介绍

  神经元网络之名来源于人的大脑,那么它的神经元指的是什么呢?相互的神经元之间又是如何连接的呢?

  

  对于神经元而言,我们可以理解为一个用来装数字的容器,装着的数字在0到1之间:

 例子:

神经元中装着的数字代表对应的像素的灰度值,其中0代表纯黑像素,1代表纯白像素,我们把神经元里装着的数叫做‘激活值(activation)’

神经网络的最后一层的十个神经元分别代表0到9这十个数字,它们的激活值同理都在0到1之间,这些值代表系统认为输入的图像对应着的哪个数字的可能性

网络中间还有几层称之为‘隐含层’,里面进行着处理识别数字的具体工作

神经网络工作的时候,上一层的激活值决定下一层的激活值,所以说神经网络处理信息的核心机制是一层的激活值是通过怎样的运算,算出下一层的激活值的。某种程度上这是模仿生物中神经元组成的网络:某些神经元的激发就会促使另一些神经元的激发。

对于一个已经训练好了的神经网络(可以识别数字)而言,大体过程是这样的:

①如果你的输入图像是28x28=784,那么首先在你的网络输入层的784个神经元处输入了784个代表输入图像各像素的灰度值:

 

 ②接着,这一层激活值图案会让下一层的激活值产生某些特殊的图案(注:这里的‘图案’pattern等价于‘模式识别’中的‘模式’)

 

四、为何就觉得这种层状结构就可以做到智能判断呢?

  当人类在识别数字的时候,我们是在组合数字的各个部件:

在理想情况下,我们希望倒数第二层中的各个神经元能分别对应一个笔画部件,这样一来当我们输入一个9或者8这种带圈的数字时,某一个神经元的激活值就会接近1,而且我并不特指某种样子的圈,而是希望这种所有位于图像顶部的圆圈图案都能点亮这个神经元,这样一来,从第三层到最后一层,我们只要学习哪些部件能组合出哪个数字即可。

识别圆圈的任务同理可以拆分成更细微的问题,一种合理的方法便是首先识别出数字图形中更小的边:

于是我们希望也许网络第二层的各个神经元就能对应上各种各样的短边:

如果神经网络真的能够识别出这类边缘和图案,它就能很好的运用到其他的图像识别任务上来。

甚至不光是图像识别,世界上各种人工智能的任务都可以转化为抽象元素,一层层的抽丝剥茧,就比如语音识别:

 语音识别就是从原音频中识别出特殊的声音,组合成特定的音节,再组合成单词再组合成短语,以及更加抽象的概念

 

posted @ 2017-11-27 18:36  Stoooner  阅读(2097)  评论(0编辑  收藏  举报