过滤器是固定的还是学习的?

人工智能 卷积神经网络 反向传播 梯度下降 过滤器
2021-11-08 09:41:43

无论我用谷歌搜索什么或阅读什么论文,我都找不到我的问题的答案。在深度卷积神经网络中,比方说 AlexNet (Krizhevsky, 2012),过滤器的权重是通过反向传播来学习的。

但是内核本身是如何选择的呢?我知道内核早在 CNN 之前就已用于图像处理,因此我想会有一组基于内核的过滤器(例如,参见这篇文章),这些过滤器被证明对边缘检测等有效。

在网上阅读,我还发现了一些关于“随机生成的内核”的东西。有谁知道是否以及何时采用这种做法?

2个回答

图像处理中的滤镜是什么?

在图像处理(以及通常的信号处理)的上下文中,内核(也称为过滤器)用于对图像执行一些特定的操作。例如,您可以使用高斯滤波器来平滑图像(包括其边缘)。

CNN 中的过滤器是什么?

在卷积神经网络 (CNN) 的上下文中,过滤器(或内核)是模型的可学习参数。

在训练之前,内核通常是随机初始化的(因此它们通常不是硬编码的)。在训练过程中,根据网络的损失或错误(根据损失函数),更新内核(或过滤器),以最小化损失(或错误)。训练后,它们通常是固定的。令人难以置信的是,CNN 学习的过滤器可以类似于Gabor 过滤器(这被认为与我们的视觉系统有关 [ 1 ])。请参见Goodfellow 等人的《深度学习》一书第 9 章(第 365 页)的图 9.19

在 CNN 中应用于给定输入(并且经常应用多个内核)的内核数量是一个超参数

有什么不同和相似之处?

在这两种情况下,“内核”和“过滤器”这两个词大致是同义词,因此它们经常互换使用。此外,在这两种情况下,内核都与卷积(或互相关)操作有关。更具体地说,过滤器的应用,它是一个函数h, 到一个输入,这是另一个函数f, 相当于卷积fh. 在数学中,这通常表示为fh=g, 在哪里是卷积算子并且g是卷积运算的结果,通常称为卷积(的fh)。在图像处理的情况下,g是过滤后的图像。在 CNN 的情况下,g通常称为激活图

进一步阅读

看看这个这个答案,分别了解关于 CNN 和卷积操作的更多细节。

您可能还想查看Visualizing what ConvNets learn ,了解有关在 CNN 训练期间学习的内核的可视化的一些信息。

如果您正在寻找具有已知效果的过滤器,高斯过滤器会进行平滑处理,Gabor 过滤器可用于边缘检测等。

通常,在从头开始训练事物的深度学习模型中,过滤器是随机初始化的,然后通过模型的训练方案学习。在大多数情况下,不使用上述任何众所周知的内核。

大部分情况下的澄清:所以过滤器的初始化不是为了确切地知道它将激活哪个功能,而是什么将有助于训练过程。最近,人们甚至通过找到好的初始点来训练带或不带批归一化的 ResNet——这是一个正在进行的研究领域。