【问题标题】:Queries regarding basics of PCA有关 PCA 基础知识的查询
【发布时间】:2018-10-02 22:51:35
【问题描述】:

我想使用 PCA 进行具有 CNN 特征的特征选择。从 PCA 的理论来看,数据应该是相关的。从 CNN 中提取特征后,特征的组织方式是[f1 f2 f3 f4 f5 f6],对应的标签是[L1 L1 L2 L2 L3 L3]。如何检查我的数据是否相关?如果数据不相关,那我怎么做呢?

【问题讨论】:

  • 高维数据总是*相关的。如果您在谈论 CNN,则“C”部分用于卷积,它进一步加强了某种形式的相关性。但这当然取决于您在 CNN 中的哪个位置使用这些功能。 *除非特别生成,当然不相关。
  • 我不太明白从PCA的理论来看,数据应该是相关的或者如果数据不相关,那我怎么做呢?。 PCA 是一种将具有可能相关特征的数据减少为较小的一组不相关特征的技术。您认为目前使用 PCA 有什么问题?就目前而言,这是一个统计问题,而不是编程问题。
  • @CrisLuengo 我有 5 层网络,我正在使用特征层 3、4 和 5。

标签: matlab statistics computer-vision pca feature-selection


【解决方案1】:

确实,对于有意义的 PCA,PCA 的输入列之间应该存在相关性。但是,您只有一个特征向量作为 PCA 输入,因此无法应用相关性和 PCA。您可以做的一件事是计算每个特征 [f1..f6] 的等待与另一个之间的相关性。同样,您可以将 PCA 应用于权重矩阵。但我的感觉是,您首先尝试在功能太少的环境中应用特征减少方法 (PCA)。您可以将特征从 6 个减少到 3 个(对 [L1..L3] 进行分类),但添加一个具有 3 个节点的全连接层可能会以更标准的方法执行相同的操作。 这是一个使用 vgg16 的示例。

net=vgg16;
[~,score]=pca(net.Layers(39).Weights);
figure;
plot(score(:,1))

标签 1 到 398(自然类)的第一个组件的 PCA 分数较高,而标签 399 到 1000(人工类)的 PCA 分数较低。这意味着至少有一些 PCA 组件可用于将节点分组在一起。检查权重之间的相关性表明确实存在相关性,最大相关性约为 0.7。我希望现在更清楚了。

【讨论】:

  • 实际上,我正在从不同层(例如后面的​​ 5、7 和 9)中获取特征,并将这些层的特征合并为一个。如果第 5 层的特征是 4000,第 7 层是 500,第 9 层是 50。那么我的总特征有 4550 个特征。现在我想将这 4550 个特征减少到例如 400 个。这就是我应用 PCA 的原因。
  • 如果您可以制作有意义的二维矩阵,则可以测试相关性并应用 PCA
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-16
  • 2018-05-25
  • 2014-11-28
相关资源
最近更新 更多