亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

卷積神經網絡你需要知道的幾個基本概念

標簽:
深度學習

1.1 为什么有了全连接网络模型还要CNN?

全连接网络模型是指在神经网络中每两层之间的所有结点都是相连接的,但在处理图像数据时,全连接网络所需要的参数个数太多,比如处理一张单通道图片,图片大小为2828,设隐藏层的节点数为500个,则由其组成的全连接网络模型的参数有`2828*500+500=392500`,“+500”是因为考虑了偏置项b的情况,而当图片更大时,参数会急剧增多,参数过多不仅会导致网络模型计算速度变慢,同时也容易导致过拟合问题,CNN的出现就是为了在一定程度上改善这种情况。

1.2 卷积层和池化层

图1展示了一个典型的CNN模型结构图。

图片描述

从上图中可以看出,CNN的卷积层(Convolution)和池化层(Polling)中每个节点只与上一层的部分节点相连,卷积层的每个节点的输入只是上一层中的一小块,这个小块的大小由卷积核的窗口大小决定,通常来说,经过卷积层处理的节点矩阵会变得更深,具体的深度由卷积层中卷积核的多少来决定。卷积核的参数是共享可以使得图像上的内容不受位置的影响,即图片中的猫不管是在图片的左上角或者右下角都应该被分类为猫,同时共享卷积核的参数可以大幅减少网络模型中的参数,降低运算的复杂度。

池化层的每个节点的输入也是上一层(通常是卷积层)的一小块,这个小块的大小由池化核的窗口大小决定,池化层不会改变节点矩阵的深度,但它可以改变矩阵的大小,通俗来说,对于图像处理,池化层中池化操作可以理解为是将一张分辨率高的图片转化为分辨率低的图片。常用的池化操作有最大池化、平均池化等,通过卷积层和池化层后,可以进一步缩小网络模型中的参数个数,下面我们来分析下CNN如何减少网络模型中的参数。

1.2.1 维度变化过程

卷积层是CNN中重要的概念之一,通过卷积核对上一层进行卷积操作,完成特征抽取。本节主要分析卷积层和池化层的维度变化过程,在使用全0填充(如果步长为1则可避免节点矩阵通过卷积层后尺寸发生变化)时,卷积层\池化层的输出维度计算公式为:

图片描述

out(longth)表示卷积层输出矩阵的长度,它等于输入层矩阵长度除以在长度方向上的步长的向上取整值,out(width)表示卷积层输出矩阵的宽度,它等于输入层矩阵宽度除以在宽度方向上的步长的向上取整值。

如果不使用全0填充,则卷积层\池化层的输出维度计算公式为:

图片描述

filter(length)表示卷积核\池化核在在长度方向上的大小,filter(width)表示卷积核\池化核在在宽度方向上的大小。

假如输入层矩阵的维度为32*32*1,1代表灰度图像,第一层卷积核尺寸为5*5,深度为6(即有6个卷积核),不使用全0填充,步长为1。则卷积层的输出维度为(32-5+1=28),卷积层的参数共有5*5*1*6+6=156个,这里可以发现,卷积层的参数个数与图片大小无关,它只与卷积核尺寸、深度以及当前层节点矩阵的深度有关,这使得CNN可以扩展到任意大小的图像数据上,卷积层的输出维度即下一层(通常是池化层)的输入维度有28*28*6=4704个节点;池化层的池化核大小为2*2,步长为2,池化层的输出维度为(28-2+1)/2=13.5,向上取整的结果为14,池化层不影响节点矩阵的深度,则池化层的输出维度为14*14*6

點擊查看更多內容
3人點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
算法工程師
手記
粉絲
1532
獲贊與收藏
2735

關注作者,訂閱最新文章

閱讀免費教程

感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消