您的位置:首页 > 理论基础 > 计算机网络

卷积神经网络基础

2015-12-23 18:03 786 查看
最近几年这个东西太火了,每年三大会议的oral都被CNN占据的大半的江山,特别在high-level上,年年刷新上限,足以说明其强大及潜力。

既然CNN里包含了“神经网络”字眼,免不得让人将其与一般的神经网络(如BP神经网络)进行对比,首先我们介绍一下神经网络。

神经网络

神经网络的基本元素是神经元,一组神经元组成一层神经网络,下图是一个神经元的示意图:



神经元的左边为其输入,右边则为其输出,对应的输出结果公式:



W为该神经元的每个输入的权重,b为其偏移(bias),对应输入里的+1。所以,神经元的输出即为输入与其权重的乘积的和加上其偏移。

和前文所述一样,每层神经网络由一组神经元组成,输入与神经元之间是全连接关系,且各自有各自的权重及偏移,前一层神经元的输出作为下一层神经元的输入,

如下图:



各神经元的输出如下:



上述模型可以延展到N层隐藏层,通过链式求导和最小二乘法反复修改参数直至收敛,名曰反向传播求解。

神经网络的瓶颈就在于全连接带来的参数庞大,假设有m-1和m层均有N个元素,则m-1层到m层便有N×N个参数,整个网络下来...

训练的时间成本和过拟合问题便随之而来。

卷积神经网络

1.感受野

卷积神经网络利用感受野来解决全连接的限制问题,感受野的概念来自于新的生物学发现:人类感受认知事物是通过局部关系的组合来达到全局认知的。

这个发现为机器学习打开了新的方向,人们改用一种局部的连接方式来训练样本,如下图:



左图为传统神经网络的全局连接方式,n+1层的神经元连接n层的所有输入节点。

右图为卷积神经网络的局部连接方式,每个神经元只与一块区域内的输入节点相连。

这样的连接方式显而易见的大大减少了参数个数,而且,同层各神经元的参数也是共用的(其实就是套用了同一个卷积核),

一般来讲通过一种方式的局部认知所能认识到的事物是很单一的甚至可能错误的认知事物,所以需要多种认知方式的结合,

这在卷积神经网络中体现为同层神经元会采用多套不同参数的卷积核并将卷积结果结合,来达到对该局部区域的深度分析目的。

举例来说,看下图是m层拥有N个神经元(图中只画出两个神经元)且有两个卷积核的情况:



m-1层是一个四通道的输入矩阵,最左边的四幅小图是输入矩阵的各通道与其中一个卷积核相连区域(2×2)的元素值,

各通道的卷积结果的加权和即为m层该神经元的卷积结果:



显然m层结果是一个双通道的矩阵,与该层的卷积核数目相同。

2.池化(下采样)

单纯多层的卷积运算还是会使得数据迅速庞大化,所以CNN在隔几个卷积层便会做一次下采样(pooling)来进行数据降维。

一般的pooling方式有max-pooling,min-pooling,mean-pooling等,从词上即可看出它们的下采样方式吧。

卷积神经网络大致的思想就是以上了,通过卷积与池化操作的组合,构成了各色各样的卷积神经网络模型。

给个例子,最经典CNN模型,LeNET:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: