根据我对卷积神经网络的了解。通过训练过程,卷积过滤器从随机值开始,这些值可以找到随机的小/基本特征。这个结果被池化,然后被下一层使用,下一层找到这些特征的组合。该过程重复,每次构建原始图像的更复杂的特征表示。然后使用反向传播,以减少错误并更接近预测目标的方式调整过滤器。
我的问题是为什么我们不只使用静态过滤器设置第一层来找到各种角度的线条,而只训练其余部分?无论如何,培训过程似乎就是这样做的,我们正在努力寻找相同的最终结果。
注意:我熟悉迁移学习,但我更多地询问“人为”设置值。
根据我对卷积神经网络的了解。通过训练过程,卷积过滤器从随机值开始,这些值可以找到随机的小/基本特征。这个结果被池化,然后被下一层使用,下一层找到这些特征的组合。该过程重复,每次构建原始图像的更复杂的特征表示。然后使用反向传播,以减少错误并更接近预测目标的方式调整过滤器。
我的问题是为什么我们不只使用静态过滤器设置第一层来找到各种角度的线条,而只训练其余部分?无论如何,培训过程似乎就是这样做的,我们正在努力寻找相同的最终结果。
注意:我熟悉迁移学习,但我更多地询问“人为”设置值。
我的问题是为什么我们不只使用静态过滤器设置第一层来找到各种角度的线条,而只训练其余部分?
根据您的描述,您的建议称为极限学习机(ELM)。
这些是特定类型的前馈神经网络,它们基本上与其他神经网络不同,它们的隐藏层固定(未训练),而只是训练以调整输出层。这些层是随机初始化的(或根据启发式手动设置)并且在训练期间不会改变。
这个想法是,就像你说的那样,通过这样做可以训练得比必须针对所有隐藏层和节点进行优化要快得多。根据一些文献,它们倾向于更好地概括(因为它们不太容易过度拟合),甚至优于其他一些方法。
我还猜想这个原则可以扩展或修改,所以你可以固定任意数量的层,同时训练其他层;如果我们将第一层固定并为其他层进行训练,我们会得到您所说明的具体情况。
此外,我能想到的一种实现方式是“冻结层”,这是一些 API 已经具备的功能,例如 Tensorflow(请查看此问题以获取多种替代方案)。那里提到的最直接的选项是设置trainable=False这些变量。
对我来说,这似乎是为了最小的利益而做的很多工作。当可能已经有几十层时,再增加一层来反向传播意味着硬编码过滤器的性能无济于事。
此外,你只是人为地限制自己——我们知道 CNN 倾向于在第一层学习 Gabor 滤波器——但是如果你有一个不寻常的数据集怎么办?或者你正在探索一种新的架构?等等。充其量,您可以希望通过在第一层进行硬编码,您不会错过参数空间中更好的解决方案。
我认为这就是您所说的迁移学习的意思,但是从一个模型中获取预训练的权重并使用它来启动另一个网络的权重是一种有效的策略,并且与静态过滤器的想法非常相似,没有缺点。
以下引自 2002 年评论论文的引述解释了预置初始层在用于图像处理的神经网络中的作用。
“根据 Perlovsky 的说法,抑制 ANN 高度灵活的学习算法的关键在于与先验(几何)知识的结合。然而,大多数模式识别方法甚至不使用相邻像素=体素值高度的先验信息相关。
这个问题可以通过首先从图像中提取特征,通过对像素数据使用距离或误差测量(考虑到空间相干性)或通过设计具有空间相干性 [LeCun1989] 或考虑对象之间的上下文关系的人工神经网络来规避”[Egmont -彼得森2002]。
[LeCun1989] Y. LeCun, LD Jackel, B. Boser 等人,手写数字识别——神经网络芯片和自动学习的应用,IEEE Commun。麦格。27 (11) (1989) 41-46。
[Egmont-Petersen2002] M. Egmont-Petersen、D. de Ridder、H. Handels。使用神经网络进行图像处理 - 综述,模式识别,卷。35,第 10 期,第 2279-2301 页,2002 年。