在 MNIST 中,有 28x28 的手写数字图像。
在不涉及任何深度学习的情况下,为了分类需要提取哪些特征?
降维如何进入处理管道?
在 MNIST 中,有 28x28 的手写数字图像。
在不涉及任何深度学习的情况下,为了分类需要提取哪些特征?
降维如何进入处理管道?
图像有许多现代已知的特征。他们之中:
这些都是经典和流行的功能。由于深度学习的蓬勃发展,人们对研究新功能的投资越来越少。
基本上,每个任务的最佳特征提取是同时提取相关特征和低维度的特征。没有单一的最优特征提取器。尽管对于自然图像,我们可以看到现代网络(深度学习)可以很好地泛化。
以下部分中的附加代码是通用的,您可以使用不同的功能来获得更好的结果。
备注:我们将使用 MNIST 数据集分析这项工作。虽然结果很好,但我没有交叉验证任何步骤。所以它是概念的表示。然而,对于现实世界,应该优化每个块。
在经典机器学习中,标准管道可能类似于:
Input Image
│
│
┌─────────────────────────────▼─────────────────────────┐
│ │
│ Pre Processing │
│ │
└─────────────────────────────┬─────────────────────────┘
│
│
┌─────────────────────────────▼─────────────────────────┐
│ │
│ Feature Extraction and / or Dimensionality Reduction │
│ │
└─────────────────────────────┬─────────────────────────┘
│
│
┌─────────────────────────────▼─────────────────────────┐
│ │
│ Classifier │
│ │
└───────────────────────────────────────────────────────┘
备注
上述流程使用ASCII Flow。
这里的重点是特征提取/降维/特征选择(它们可以按顺序完成,但有一些。
我们在 MNIST 中拥有的每张图像都是 28x28 的图像。即我们在中有数据。
我们将构建我们的管道如下:
备注:请注意,可能直接在带有分类器的数据上使用 t-SNE 会产生更好的结果。因此,在这种情况下,t-SNE 既是特征提取器又是降维。任何好的特征提取器都应该这样做。但问题在于将 t-SNE 用于测试集。
应用 LDA 后,我们得到(只看前 2 个特征):
与 t-SNE / UMAP 相比,结果略好于我们在使用线性判别分析 (LDA) 的图像聚类中得到的结果。
使用分类器,我们得到以下混淆矩阵:
我们得到了91.48%
成功率。
在我们的时代,它一点也不令人印象深刻。但它仍然显示了一个管道的公式。
深度学习的神奇之处在于,第一层通过学习而不是硬编码的特征提取器/降维来完成这项工作。
该代码可在我的StackExchange Codes Signal Processing Q80949 GitHub 存储库中找到(查看SignalProcessing\Q80994
文件夹)。