什么是神经网络?
计算机神经网络是一种模仿生物神经网络的神经中枢。神经网络由大量的神经元连结进行计算,大多数神经网络可以在外界的信息基础上改变内部结构,是一种逐渐适应学习的过程。在输入和输出之间复杂的关系进行建立模型,如同人类的神经元一样,神经元与神经元之间的联系负责传递与加工信息。
如上图,生物神经网络则是在大脑神经系统学习之后,由视觉神经中枢来作出回应告诉大脑这是一只猫。
计算机神经网络则是给电脑input一张猫猫图片,由神经网络在进行大量数据训练之后,判断出这是一只猫而不是一只狗,最终output给我们训练后较为准确的信息。
如上图,在隐藏层中则是计算机构建的神经网络层,具体的工作则是通过神经元节点之间进行数据交流和训练,最终能够实现图片识别,语音处理,文本处理等人工智能的实现。
2.什么是卷积神经网络(CNN:Convoltional Neural Networks)?
卷积神经网络最初是为解决图像识别方面的问题,为了得到更准确的结果,之后更延伸到其它应用如语音识别,文本数据等方面的研究。
最近比较热门的AlphaGo围棋就是运用该项技术实现的。
例如卷积神经网络实现的图像识别,卷积就是说计算机并不是对每个像素进行处理,而是对某一小块区域的处理。这种做法加强了图片的连续性,使得神经网络能够看清图像而不是单纯的一个点,这种做法能够加强计算机对图片的理解,使得识别图像的准确率大大的提高。具体来说,卷积神经网络有一个批量过滤器,持续不断的在图片上滚动收集图片里的信息,每一次收集的时候都只是收集一小块像素区域,然后把收集来的信息进行整理,这时候整理出来的信息有了一些实际上的呈现,比如这时的神经网络能看到一些边缘的图片信息,然后在以同样的步骤,用类似的批量过滤器扫过产生的这些边缘信息,神经网络从这些边缘信息里面总结出更高层的信息结构,比如说总结的边缘能够画出眼睛,鼻子等等。再经过一次过滤,脸部的信息也从这些眼睛鼻子的信息中被总结出来。最后我们再把这些信息套入几层普通的全连接神经层进行分类,这样就能得到输入的图片能被分为哪一类的结果了。
卷积
下面是一张猫的图片,图片有长、宽、高 三个参数。对! 图片是有高度的! 这里的高指的是计算机用于产生颜色使用的信息。如果是黑白照片的话,高的单位就只有1,如果是彩色照片,就可能有红绿蓝三种颜色的信息,这时的高度为3。我们以彩色照片为例子。过滤器就是影像中不断移动的东西,他不断在图片收集小批小批的像素块,收集完所有信息后,输出的值,我们可以理解成是一个高度更高,长和宽更小的”图片”。这个图片里就能包含一些边缘信息。然后以同样的步骤再进行多次卷积,将图片的长宽再压缩,高度再增加,就有了对输入图片更深的理解。将压缩,增高的信息嵌套在普通的分类神经层上,我们就能对这种图片进行分类了。
池化
在每一次卷积的时候,神经层可能会无意地丢失一些信息。这时,池化 (pooling) 就可以很好地解决这一问题。而且池化是一个筛选过滤的过程,能将layer中有用的信息筛选出来,给下一个层分析。同时也减轻了神经网络的计算负担 (具体细节参考)。也就是说在卷集的时候,我们不压缩长宽,尽量地保留更多信息,压缩的工作就交给池化了,这样的一项附加工作能够很有效的提高准确性。
通过卷积一层一层的获取有用的信息,再通过池化功能最终能够提高图像识别的准确性。