小白带你学习卷积神经网络

小白带你学习卷积神经网络

首先我们先需要先了解全连接网络和部分连接网络的概念。

对于小图像将每个节点和隐藏层的每个节点都是有连接的,小图像例如8X8的图像这样全连接没有问题。

如果是100X100的那么全连接的输入特征维10000个输入单元, 假设我们希望在隐藏层学习100个特征,那么就是10000*100

就是10的6次方的参数,这样无论是前向和后向传播都是难以接受。这种方式我们就叫全连接网络。将这神经元全连接的隐藏层叫做全连接网络(full connect layer),也叫FC层。

为了提升性能,节省时间,神经元之间的连接进行限制,用部分全连接网络概念。

卷积

CNN,为什么要进行卷积首先,我们把图像100X100,进行随机抽取一个小块,来看看学学这小块的特征,假设我们抽取的图像大小为5X5,然后我建立一个更小的3X3的矩阵,3X3的矩阵我们称为卷积核(kernel),矩阵如图表示

输入图像
3X3卷积核

我们把3X3的卷积核从5X5的第一个位置开始滑动,比如我们将这个卷积放在(1,1)点,然后计算卷积核和图像的每个像素的值得乘积,并且求和:下面为公式,所以3X3的卷积核在5X5的第一个(1,1)的元素,每个元素的乘积和为4 结果为,按照卷积核继续右移动,乘积的和为3,依次类推所有的卷积核的乘积和的值为

4    
     
     
所有卷积核移动后的结果值

 

通过卷积核的运算,100X100的图像,学习特征维5X5的,假设隐藏层具有100个隐含单元,那么100X100的图像抽取的卷积特征维96X96,那么卷积到底什么意义?比如辨别一个图像是否一个人,我们可以判断人的轮廓,脸,脚身体等,如果都具备这些特征,我们可以确定为一个人,卷积核都是人工事先设定,是经过算法设计人员精心设计的,他们发现这样就可以设计的卷积核突出某个什么样的特征。

池化(Pooling)

我们希望对一个图像100*100进行卷积,如果使用5X5的卷积核进行计算,假设要学习250个特征

(100+5-1)X(100+5-1)的特征,最终特征数量为96X96*250个,这个计算效率不理想。

为此,我们需要优化,可以想到的平时统计分析的时候常用需要一个数值来计算统计。我们可以用求区域内最大值或者平均值,使用统计特征而不是通过原始特征来降低特征维度,最后还可以改善训练结果,防止过拟合,我们把统计聚和的方法叫做‘池化’

卷积神经网络结构图

首先是输入层,接着是卷积层,池化层,全连接层,最后是分类器做输出。卷积神经网络代表就是CNN

猜你喜欢

转载自blog.csdn.net/keny88888/article/details/106756172