卷积层(convolutional layer)

来源:Coursera吴恩达深度学习课程

如何构建卷积神经网络的卷积层(convolutional layer)呢?来看一个例子。

假设使用两个过滤器进行卷积,第一个过滤器得到第一个4×4矩阵,形成一个卷积神经网络层,然后增加偏差(bias),它是一个实数(real number),通过Python的广播机制给这16个元素都加上同一偏差。然后应用非线性函数,它是一个非线性激活函数ReLU,输出结果是一个4×4矩阵。

对于第二个4×4矩阵,加上不同的偏差,它也是一个实数,16个数字都加上同一个实数,然后应用非线性函数,也就是一个非线性激活函数ReLU,最终得到另一个4×4矩阵。重复我们之前的步骤,把这两个矩阵堆叠起来,最终得到一个4×4×2的矩阵。我们通过计算,从6×6×3的输入推导出一个4×4×2矩阵,它是卷积神经网络的一层,把它映射到标准神经网络中四个卷积层中的某一层或者一个非卷积神经网络中。

注意向前传播的一个操作是:

这里的过滤器用变量W^[1]表示。卷积的输出结果是一个4×4矩阵,它的作用类似于W^[1]*a^[0],然后加上偏差。这一部分(图中蓝色边框标记的部分)就是应用激活函数ReLU之前的值,它的作用类似于z^[1],最后应用非线性函数(non-linearity),得到的这个4×4×2矩阵,成为神经网络的下一层,也就是激活层(activation layer)。

这就是a^[0]到a^[1]的演变过程,首先执行线性函数,然后所有元素相乘做卷积,具体做法是运用线性函数再加上偏差,然后应用激活函数ReLU。这样就通过神经网络的一层把一个6×6×3的维度a^[0]演化为一个4×4×2维度的a^[1],这就是卷积神经网络的一层。

这个示例中有两个过滤器(两个特征),因此最终得到一个4×4×2的输出。如果我们用了10个过滤器,而不是2个,最后会得到一个4×4×10维度的输出图像,因为我们选取了其中10个特征映射。

为了加深理解,做一个练习。

假设你有10个过滤器,神经网络的一层是3×3×3,那么,这一层有多少个参数呢?下面来计算一下,每一层都是一个3×3×3的矩阵,因此每个过滤器有27个参数,然后加上一个偏差,用参数b表示,现在参数为28个。上一页幻灯片里有2个过滤器,而现在有10个,加在一起是28×10,也就是280个参数注意一点,无论输入的图片多大,参数始终是280个。用这10个过滤器来提取特征,如垂直边缘,水平边缘和其它特征。即使这些图片很大,参数却很少,这就是卷积神经网络的一个特征,叫作“避免过拟合”

最后总结一下,用于描述卷积神经网络的一层,例如l层的各种标记。

其中,上标[l]用来标记l层,f^[l]表示过滤器大小,p^[l]表示padding的数量,s^[l]表示步幅。输入为上一层的激活值,所用图片的高度和宽度可能不同,分别用下标H和W标记,即:

输出图像的大小为:

联系之前的内容,l层输出图像的高度和宽度分别为:

那么通道数量又是什么?这些数字从哪儿来的?我们知道输出图像也有深度,它等于该层中过滤器的数量。如果有2个过滤器,输出图像就是4×4×2,它是二维的,如果有10个过滤器,输出图像就是4×4×10。输出图像中的通道数量就是神经网络中这一层所使用的过滤器的数量。因此,输出通道数量就是输入通道数量,所以过滤器维度为:

加上偏差和应用非线性函数之后,这一层的输出等于它的激活值a^[l],它的输出维度为:

当你执行批量梯度下降或小批量梯度下降算法时,如果有m个例子,就是有m个激活值的集合,那么输出表示为:

如果采用批量梯度下降(batch gradient descent),变量的排列顺序如下:首先是索引(index)和训练示例(training examples),然后是其它三个变量(these three variables)。

该如何确定权重参数(weights parameters),即参数W呢?权重也就是所有过滤器的集合再乘以过滤器的总数量,即

最后我们看看偏差参数(bias parameters),每个过滤器都有一个偏差参数,它是一个实数。偏差包含了这些变量,它是该维度上的一个向量。后续为了方便,偏差表示为一个的四维矩阵(four dimensional matrix)或四维张量(four dimensional tensor),即

注意一下,大家在线搜索或查看开源代码时,关于高度,宽度和通道的顺序并没有完全统一的标准卷积,有些作者会采用把通道放在首位的编码标准,有的按高度,宽度和通道损失数量的顺序依次计算。。实际上在某些架构中,当会有一个变量(variable)或参数(parameter)来标识计算通道数量和通道损失数量的先后顺序。只要保持一致,这两种卷积标准都可用。

说明:记录学习笔记,如果错误欢迎指正!转载请联系我。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值