传统神经网络的输入是一维的数据(比如28*28的图片,需要转化为一维向量)。
而卷积神经网络的输入是一个三维的(比如RGB)。
结构
卷积神经网络有以下结构:
- 输入层
- 卷积层
- 池化层
- 全连接层
输入层
顾名思义,输入层就是输入数据(可以是图片等数据)。
卷积层
卷积是什么?
在数学和信号处理中,卷积是一种将两个函数(或信号)结合以生成新函数的操作。卷积的操作可以用于信号的平滑、特征提取等多种用途。对于离散信号,卷积操作可以描述为:
给定两个离散信号 f[n]f[n] 和 g[n]g[n],它们的卷积 (f∗g)[n](f∗g)[n] 定义为:
- f[n]:第一个信号或函数(通常是输入信号)。
- g[n]:第二个信号或函数(通常是卷积核或滤波器)。
- n:卷积结果的位置索引。
- k:求和的索引变量,遍历所有可能的重叠位置。
在计算卷积时,我们将卷积核 gg 在信号 ff 上滑动,并对每个位置计算重叠部分的加权和。
对于有限长信号 f=[f0,f1,…,fM−1]f=[f0,f1,…,fM−1] 和卷积核 g=[g0,g1,…,gN−1]g=[g0,g1,…,gN−1],卷积的具体计算公式可以写成:
案例引入一
如果有一只猫咪的图片,我需要进行训练分类。
我们知道猫咪的特征是耳朵、眼睛、鼻子。我在第二张图片上画的红色圈圈就是重要的特征。相反,绿色圈圈的就是不重要的特征。
我们要做的就是将这些重要的特征提取出来,将不重要的特征删除。
首先先看一下卷积的过程:
我们来仔细讲解以下这个过程:
假如我有一张5*5*3的图片作为输入。
我们首将5*5*1的这一层拿出来,作为案例。
我们接下来会设置一个权重矩阵,为3*3的矩阵,然后将所选区域与权重矩阵对应相乘得到一个特征点。然后得到一个特征图。
第一次:1*3+2*2+1*1+2*2=12。
第二次:1*2+2*1+2*1+1*2+2*2=12.0