你如何告诉神经网络的层去寻找/寻找特定的特征,比如眼睛和边缘?

Posted

技术标签:

【中文标题】你如何告诉神经网络的层去寻找/寻找特定的特征,比如眼睛和边缘?【英文标题】:How do you tell a neural network's layer to look for/at specific traits such as eyes, and edges? 【发布时间】:2020-04-18 20:45:24 【问题描述】:

在人脸识别图像分类中,我了解每一层都关注图像的不同关键方面?

例如,第 1 层可能会查看边缘,第 2 层可能会查看颜色,第 3 层可能会查看眼睛等...

每一层都有一个激活函数,并将前一层的输出作为输入。

您如何具体告诉图层在图像中寻找特定特征? 你怎么知道每一层都在寻找什么?

【问题讨论】:

据我所知,我们“告诉”神经网络寻找特定特征的方式是通过提供数据来强化这样一个事实,即给定特征是我们分类的良好指标试图实现....也就是说,我们不能明确要求它寻找特征...我们可以希望它根据在数据中看到的内容自行选择所需的特征... 【参考方案1】:

要了解深层 CNN 层正在寻找输入图像的哪些特征,您可以获得该层的过滤器和过滤器激活/特征图,并通过绘制激活和内核权重的颜色图来可视化它们。尽管我们可以可视化层的激活并推断过滤器可能在寻找什么,但是很难强制网络层学习特定的特征,因为在训练之前权重是随机初始化的,这样网络的任何过滤器都可能会选择学习输入图像的任何随机特定特征。

【讨论】:

以上是关于你如何告诉神经网络的层去寻找/寻找特定的特征,比如眼睛和边缘?的主要内容,如果未能解决你的问题,请参考以下文章

如何告诉 CMake(通过 externalNativeBuild 调用)在哪里寻找库?

如何寻找最长回文子串

DBA深度丨如何寻找需求:财富再平衡

Python 聚类算法

如何在 SHAP 汇总图上绘制特定特征?

Django:如何告诉 Django 它应该在哪里寻找应用程序?