基于python手写深度学习网络系列(8)卷积神经网络的实现(结构、卷积层、池化层)

本文详细介绍了如何使用Python实现卷积神经网络(CNN),涵盖其结构、卷积层、池化层的原理及实现方法。通过CNN,我们可以处理图像识别等任务。文中还探讨了卷积层的滤波器、池化层的作用以及CNN的可视化,展示了从简单边缘到复杂信息的层次提取过程。
摘要由CSDN通过智能技术生成

基于python手写深度学习网络系列(8)

卷积神经网络的实现(结构、卷积层、池化层)

CNN,很重要,主要用于图像识别、语音识别等场合。

7.1 整体结构

也是通过层的组装结合来搭建,但是相比之前的神经网络多了卷积层(convolution层)和池化层(Pooling层)

之前的神经网络,相邻层的神经元之间都会有连接,也就是全连接(fully-connected)

基于全连接层

基于CNN网络

7.2 卷积层

全连接层有一个问题就是输出的形状被忽视了,三维数据一般都被拉成了一维的数据

但实际上,三维的数据,相邻的像素值比较接近,RGB各个通道之间有密切的关联性,较远的像素之间就没有关联了。

卷积层保持形状不变,有可能正确理解图像等具有形状的数据。CNN中有时将卷积层的输入输出数据称为特征图

卷积运算:相当于图像处理中的“滤波器运算”

(4,4)(3,3),最后输出大小(2,2)

对于输入数据,卷积运算以一定间隔滑动滤波器的窗口并应用。这里所说的窗口是指图7-4中灰色的3×3的部分。如图7-4所示,将各个位置上滤 波器的元素和输入的对应元素相乘,然后再求和(有时将这个计算称为乘积累加运算)。然后,将这个结果保存到输出的对应位置。将这个过程在所有位置都进行一遍,就可以得到卷积运算的输出。

CNN中,滤波器的参数就对应之前全连接层网络的权重。并且,CNN中也存在偏置。     

在进行卷积的处理前,有时需要对周围填入固定的数据,这叫做填充。(padding)

这个例子中将填充设成了1,不过填充的值也可以设置成2、3等任意的整数。在图7-5 的例子中,如果将填充设为2,则输入数据的大小变为(8,8);如果将填充设为3,则大小变为(10, 10)。

只要填充1就可以保证图像的大小不发生变化

应用滤波器的位置间隔称

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值