无论我用谷歌搜索什么或阅读什么论文,我都找不到我的问题的答案。在深度卷积神经网络中,比方说 AlexNet (Krizhevsky, 2012),过滤器的权重是通过反向传播来学习的。
但是内核本身是如何选择的呢?我知道内核早在 CNN 之前就已用于图像处理,因此我想会有一组基于内核的过滤器(例如,参见这篇文章),这些过滤器被证明对边缘检测等有效。
在网上阅读,我还发现了一些关于“随机生成的内核”的东西。有谁知道是否以及何时采用这种做法?
无论我用谷歌搜索什么或阅读什么论文,我都找不到我的问题的答案。在深度卷积神经网络中,比方说 AlexNet (Krizhevsky, 2012),过滤器的权重是通过反向传播来学习的。
但是内核本身是如何选择的呢?我知道内核早在 CNN 之前就已用于图像处理,因此我想会有一组基于内核的过滤器(例如,参见这篇文章),这些过滤器被证明对边缘检测等有效。
在网上阅读,我还发现了一些关于“随机生成的内核”的东西。有谁知道是否以及何时采用这种做法?
在图像处理(以及通常的信号处理)的上下文中,内核(也称为过滤器)用于对图像执行一些特定的操作。例如,您可以使用高斯滤波器来平滑图像(包括其边缘)。
在卷积神经网络 (CNN) 的上下文中,过滤器(或内核)是模型的可学习参数。
在训练之前,内核通常是随机初始化的(因此它们通常不是硬编码的)。在训练过程中,根据网络的损失或错误(根据损失函数),更新内核(或过滤器),以最小化损失(或错误)。训练后,它们通常是固定的。令人难以置信的是,CNN 学习的过滤器可以类似于Gabor 过滤器(这被认为与我们的视觉系统有关 [ 1 ])。请参见Goodfellow 等人的《深度学习》一书第 9 章(第 365 页)的图 9.19。
在 CNN 中应用于给定输入(并且经常应用多个内核)的内核数量是一个超参数。
在这两种情况下,“内核”和“过滤器”这两个词大致是同义词,因此它们经常互换使用。此外,在这两种情况下,内核都与卷积(或互相关)操作有关。更具体地说,过滤器的应用,它是一个函数, 到一个输入,这是另一个函数, 相当于卷积和. 在数学中,这通常表示为, 在哪里是卷积算子并且是卷积运算的结果,通常称为卷积(的和)。在图像处理的情况下,是过滤后的图像。在 CNN 的情况下,通常称为激活图。
看看这个和这个答案,分别了解关于 CNN 和卷积操作的更多细节。
您可能还想查看Visualizing what ConvNets learn ,了解有关在 CNN 训练期间学习的内核的可视化的一些信息。
如果您正在寻找具有已知效果的过滤器,高斯过滤器会进行平滑处理,Gabor 过滤器可用于边缘检测等。
通常,在从头开始训练事物的深度学习模型中,过滤器是随机初始化的,然后通过模型的训练方案学习。在大多数情况下,不使用上述任何众所周知的内核。
大部分情况下的澄清:所以过滤器的初始化不是为了确切地知道它将激活哪个功能,而是什么将有助于训练过程。最近,人们甚至通过找到好的初始点来训练带或不带批归一化的 ResNet——这是一个正在进行的研究领域。