第一节,直观理解卷积神经网络

本文参考https://www.zhihu.com/question/39022858/answer/203073911

1、计算机如何识别图

每个图像都是一系列特定排序的点(像素),通过改变像素值的大小或顺序来改变图像。

2、如何帮助神经网络识别图像

使用一个权重乘以初始像素值,识别出【4】就变得简单。

案例 2

现在我们可以看到,把图像平整化完全破坏了它的排列。我们需要想出一种方式在没有平整化的情况下把图片馈送给网络,并且还要保留空间排列特征,也就是需要馈送像素值的 2D/3D 排列。

我们可以尝试一次采用图像的两个像素值,而非一个。这能给网络很好的洞见,观察邻近像素的特征。既然一次采用两个像素,那也就需要一次采用两个权重值了

图像变小了,但是能在很大程度上理解这是【4】,

上面我们所做的事是试图通过使用图像的空间的安排从图像中提取特征。为了理解图像,理解像素如何安排对于一个网络极其重要。上面我们所做的也恰恰是一个卷积网络所做的。我们可以采用输入图像,定义权重矩阵,并且输入被卷积以从图像中提取特殊特征而无需损失其有关空间安排的信息。

这个方法的另一个重大好处是它可以减少图像的参数数量。正如所见,卷积图像相比于原始图像有更少的像素。

3、定义一个卷积神经网络

卷积层、池化层(可选)、输出层

卷积层:定义一个权值矩阵,用来从图像中提取一定的特征

权值矩阵在图像里表现得像一个从原始图像矩阵中提取特定信息的过滤器,一个权值组合可能用来提取边缘信息,另一个可能用来提取一个特定颜色。

先对权值进行学习,然后损失函数可以被最小化,类似于多层感知机(MLP)。因此需要通过对参数进行学习来从原始图像中提取信息,从而来帮助网络进行正确的预测。当我们有多个卷积层的时候,初始层往往提取较多的一般特征,随着网络结构变得更深,权值矩阵提取的特征越来越复杂,并且越来越适用于眼前的问题。

池化层:降维

有时图像太大,需要减少训练参数的数量,在随后的卷积层之间周期性的引进池化层,减少图像的空间大小。最大池化和平均池化。

在这里,我们把步幅定为 2,池化尺寸也为 2。最大化执行也应用在每个卷机输出的深度尺寸中。正如你所看到的,最大池化操作后,4*4 卷积的输出变成了 2*2。

输出层

在多层卷积和填充后,我们需要以类的形式输出。卷积和池化层只会提取特征,并减少原始图像带来的参数。然而,为了生成最终的输出,我们需要应用全连接层来生成一个等于我们需要的类的数量的输出。仅仅依靠卷积层是难以达到这个要求的。卷积层可以生成 3D 激活图,而我们只需要图像是否属于一个特定的类这样的内容。输出层具有类似分类交叉熵的损失函数,用于计算预测误差。一旦前向传播完成,反向传播就会开始更新权重与偏差,以减少误差和损失。

4. 小结

正如你所看到的,CNN 由不同的卷积层和池化层组成。让我们看看整个网络是什么样子:


    • 我们将输入图像传递到第一个卷积层中,卷积后以激活图形式输出。图片在卷积层中过滤后的特征会被输出,并传递下去。
    • 每个过滤器都会给出不同的特征,以帮助进行正确的类预测。因为我们需要保证图像大小的一致,所以我们使用同样的填充(零填充),否则填充会被使用,因为它可以帮助减少特征的数量。
    • 随后加入池化层进一步减少参数的数量。
    • 在预测最终提出前,数据会经过多个卷积和池化层的处理。卷积层会帮助提取特征,越深的卷积神经网络会提取越具体的特征,越浅的网络提取越浅显的特征。
    • 如前所述,CNN 中的输出层是全连接层,其中来自其他层的输入在这里被平化和发送,以便将输出转换为网络所需的参数。
    • 随后输出层会产生输出,这些信息会互相比较排除错误。损失函数是全连接输出层计算的均方根损失。随后我们会计算梯度错误。
    • 错误会进行反向传播,以不断改进过滤器(权重)和偏差值。
    • 一个训练周期由单次正向和反向传递完成。

猜你喜欢

转载自www.cnblogs.com/wyx501/p/10561497.html
今日推荐