机器学习理论篇之CNN 卷积神经网络

本文详细介绍了卷积神经网络(CNN)的定义、基本结构、卷积核的作用,以及在图像处理中的工作原理。CNN在图像处理中通过卷积层和池化层提取特征,其滤波器能够检测并识别不同级别的图像特征。在训练过程中,滤波器的权重会通过反向传播不断调整,以识别特定模式。TensorFlow等框架提供了实现CNN所需的功能。
摘要由CSDN通过智能技术生成

CNN 卷积神经网络

一.定义

卷积神经网络(ConvolutionalNeural Network,CNN)是一种前馈神经网络,对于大型图像处理有出色表现。[1] 它包括卷积层(convolutionallayer)和池化层(poolinglayer)。由于该网络避免了对图像的复杂前期预处理,可以直接输入原始图像,因而得到了更为广泛的应用。

CNN的基本结构包括两层,其一为特征提取层,每个神经元的输入与前一层的局部接受域相连,并提取该局部的特征。一旦该局部特征被提取后,它与其它特征间的位置关系也随之确定下来;其二是特征映射层,网络的每个计算层由多个特征映射组成,每个特征映射是一个平面,平面上所有神经元的权值相等。特征映射结构采用影响函数核小的sigmoid函数作为卷积网络的激活函数,使得特征映射具有位移不变性。

二.与全连接网络区别:
全连接神经网络:

结构:每两层间所有节点都有连接
输入输出:输入特征,输出预测
参数个数:求和(前层神经元个数×后层神经元个数+后层(偏置))
缺点:参数个数如果过多,会导致计算慢且易发生过拟合。

卷积神经网络:

结构:每两层间节点部分连接,为了展示每一层神经节点的维度,一般会将每一层卷积层的节点组织成一个三维矩阵。前几层中每一个节点只和上一层中部分的节点相连。
输入输出:输入特征,输出预测
参数个数:卷积核体积+卷积核个数(长×宽×高+个数)
目的:借助卷积核提取特征点的过程。
作用:高层次抽象特征,精简特征点。

全连接到卷积网络:二维到三维的过程,灰度值到RGB的操作。

三.卷积神经网络的五大组成部分:
1.输入层:
输入图片的像素矩阵,三维,有深度,代表RGB
2.卷积层:每一个节点的输入是上一层神经网络的一小块,这个小块大小有3×3或者5×5.卷积层试图将神经网络中的每一小块进行更加深入地分析,从而抽象程度更高的特征。
3.池化层:池化层不改变三维矩阵的深度,但是它可以缩小矩阵的大小。池化操作可以认为是将一张分辨率较高的图片转化为分辨率较低的图片。
4.全连接层:经过几轮卷积层和池化层处理之后,在卷积神经网络的最后一般会是1到2个全连接层来给出最后的分类结果。
5.Softmax层:用于分类问题,给出不同分类的概率情况。

四.两个核心结构:
1.卷积核(过滤器):
卷积操作:有深度概念,深度为3的卷积核,就是一个3×3×3的立方体。每次优化的是一个小方格。
卷积层前向传播:就是拿卷积核中的参数,和像素点进行乘积,然后求和。左上,左下,右上,右下的顺序。


卷积核的深度由样本决定。

我们可以改变卷积核的个数,大小(长和宽),步长,还要padding(要不要填0)。。

大小:卷积核的长×宽,常用的有3×3, 5×5.
Padding:当过滤器大小不为1×1是,卷积层前向传播得到的矩阵尺寸要小于当前层矩阵的尺寸。

为了避免尺寸的变化,我们可以在当前矩阵的边界上加入全0填充(zero-padding),这样可以使得卷积层的前向传播结果矩阵大小和当前矩阵保持一致。

步长:分为在长度和高度上的移动长度,即每一次卷积核移动的长度,这也会改变结果矩阵的大小。


结果矩阵大小公式:

全0填充下:
结果矩阵长度=(输入长度/长度方向步长)向上取整
结果矩阵宽度=(输入宽度/宽度方向步长)向上取整


不使用全0填充下:

结果矩阵长度=((输入长度-卷积核长度+1)/步长)向上取整
结果矩阵宽度=((输入宽度-卷积核宽度+1)/步长)向上取整

性质:(共享权值)每一个卷积层中使用的过滤器(卷积核)中的参数都是一样的。因为共享过滤器的参数可以使得图像上的内容不受位置影响。而且共享每一个卷积层中过滤器的参数可以巨幅减少神经网络中的参数。

2.池化层:
在卷积层之间往往加上一个池化层,池化层可以非常有效地缩小矩阵的尺寸,从而减小最后全连接层中的参数,使用池化层既可以加快计算速度也有防过拟合问题的作用。
池化层前向传播也是移动类似与过滤器的结构来完成的。不过池化层中过滤器结果不是计算加权和。而是采取更加简单的求最大值或平均值的方法,因此这里就分为 最大池化层和平均池化层。
还有个 区别就是卷积层上的过滤器是横跨整个深度的,而池化层使用的过滤器是只影响一个深度上的节点.。所以池化层的过滤器除了在长和宽两个维度上移动之外,它还需要在深度这个维度上移动。
池化层主要用于减少矩阵的长和宽。虽然池化层也可以减少矩阵的深度,但是矩阵中一般不这么做。

五.工作原理

链接:https://www.zhihu.com/question/39022858

机器之心那篇文章好好看看很有启发,不过有点长。

下面是我摘录的第一个回答,感觉也是挺不错的,如果不想点链接的话,就看看这个。


也就相当于对原矩阵,按照顺序将各区域元素与W矩阵相乘,

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值