特征向量表示神经网络

时间:2014-12-01 11:29:51

标签: algorithm machine-learning neural-network feature-extraction

目标:使用神经网络进行数字识别

说明:将图片规范化为8 x 13 pixels。对于每一行,黑色像素由1和每个白色白色0表示。因此,每个图像由矢量矢量表示如下: enter image description here

问题:是否可以在神经网络中使用vector of vectors?如果不是如何表示图像?

  1. 将行合并到1向量?
  2. 将每一行转换为十进制格式。示例: Row1:11111000 = 248

3 个答案:

答案 0 :(得分:2)

简单地通过连接将它们组合成一个向量当然是可能的。事实上,您应该注意到,只要数据在培训和分类之间保持一致,任意重新排序数据都不会改变结果。

关于你的第二种方法,我认为(我真的不确定)你可能会失去一些信息。

答案 1 :(得分:1)

要使用多维输入,您需要多维神经元(我认为您的形式主义并不支持)。遗憾的是,您没有提供有关您的网络结构的任何信息,我认为这是您混淆问题的主要原因。每当评估特征表示时,您需要知道输入图层的结构:如果它不切实际,您可能需要不同的表示。

你的多维向量: 接受1个图像作为输入的网络只有1个(!)输入节点,其中包含多个向量(分别为行)。这是您的数据的最差可能的表示形式。如果我们:

  • 展平输入层次结构:每行得到1个输入神经元。
  • 完全展平输入层次结构:我们为每个像素获得1个输入神经元。

考虑所有3种方法及其对数据的作用。后一种方法几乎总是和第一种方法一样糟糕。神经网络最适合功能。功能不是像素重组(行向量)。它们应该是您可以从像素中获得的META数据:亮度,我们从背部到白色的位置,边界框,边缘,形状,重力,......可以选择的东西很多作为图像处理的功能。你必须考虑你的问题并选择一个(或更多)。

最后,当你询问如何将行组合成1个向量"时,你只需要重新描述"找到整个图像的特征向量"。你绝对不希望"连接"您的向量并将原始数据提供给网络,您需要在使用网络之前找到信息。这对预处理至关重要。

有关哪些功能可能适用于OCR的更多信息,请阅读一些文章。最成功的网络atm是Convolutional Neural Network。主题特征提取的起点是here

答案 2 :(得分:1)

1)是合并成一个矢量适合我用这种方式 http://vimeo.com/52775200

2)不适合,因为从rang(0-255)归一化后 - >到范围(0 - 1)differt行给出aprox相同的值,所以丢失数据