卷积神经网络~简单的卷积网络

简单卷积网络示例

    一个卷积网络的例子,假设我们有一张图,我们要识别它是否是一张猫图。 〇假设这张图是39×39×3的图。 则,nH^[0] = nW^[0] = 39,即图片的高度和宽度都是39。nC^[0] = 3。 ①假设第一层我们使用3×3的过滤器来提取特征,则f^[1] = 3,s^[1] = 1 , p^[1] = 0,并且有10个过滤器。则第二层的卷积输入是37×37×10的矩阵。37为[(n+2p-f)/s+1]的值,而10为第一层到第二层之间过滤器的个数。 则,第一层的标记为,nH^[1] = nW^[1] = 37,nC^[1]= 10,它是第一层过滤器的个数,也是第一层激活值的维度。 ②假设第二层我们使过滤器的f = 5,即f^[2] = 5,s^[2] = 2,p^[2] = 0,有20个过滤器,则第三层的卷积输入为17×17×20的矩阵。即a^[2]的维度为17×17×20。 则,nH^[2] = nW^[2] = 17,nC^[2]= 20。 ③我们来构建最后一个卷积层。假设第三层到第四层的过滤器仍是5×5,步长为2,使用40个过滤器,不进行padding。最后得到7×7×40维度的第三个激活值。 最后我们得到一个7×7×40的矩阵,总共有1960个元素,我们将它展开成为一个1960维的向量,把这个长向量放入logistic回归函数或是softmax回归函数中,以预测它的最终输出。 这是一个典型的GCN的例子,随着卷积网络的加深,输入的图的宽和高都在减小,而通道的数量channels在逐渐上升,这是在使用卷积神经网络时数据变化的普遍趋势。 一个典型的卷积神经网络通常有三层。一个是卷积层,通常用Conv来标记。还有两种常见类型的层,一个叫Pooling层,另一个是全连接层FC(Fully Connected)。虽然在卷积神经网络中只使用卷积层已经能达到很好的效果,但是许多神经网络架构师仍然会在卷积神经网络中加入池化层和全连接层以进行优化。不需担心的是,池化层和全连接层都是很好设计的。

池化层

池化层可以缩小模型的大小,提高计算速度,同时提高所提取数据的鲁棒性。

    假设我们有一个4×4的矩阵,用到的池化类型为最大池化,执行最大池化输出的是2×2矩阵。 我们所要做的事情也非常的简单,把4×4的输入拆分成不同的区域,把四个区域用不同颜色标记。对输出的2×2矩阵同样用不同的颜色标注,输出的每个元素都是其对应颜色区域中的最大元素值。 这就像运用了一个规模为2,步长为2的过滤器。 另一个池化层的例子,输入是一个5×5的矩阵。我们仍然采用最大池化的方法,设置f = 3,s = 1。 如果加上通道层,那么池化层的输出也会升维。 升维的方式是对每个信道都执行刚刚的计算过程。对于每个nc channels,分别进行最大池化计算。 还有另一种池化方式,成为平均池化,即过滤器选取的不是最大值,而是计算过滤器覆盖范围内的平均值。平均池化可用于缩小数据,如对于一个7×7×1000的矩阵,可以使用平均池化使它降为1×1×1000的矩阵。 池化操作的参数: 池化过滤器的大小、步长和池化类型。当然,我们也可以自行添加padding,但是极少使用。
经验分享 程序员 微信小程序 职场和发展