当输入大小不同时,如何进行机器学习?

时间:2015-03-02 20:43:39

标签: machine-learning neural-network deep-learning

在标准的食谱机器学习中,我们使用矩形矩阵;也就是说,我们所有的数据点都具有相同数量的功能。我们如何应对所有数据点具有不同数量的特征的情况?例如,如果我们想要进行视觉分类,但我们所有的图片都有不同的维度,或者我们想要进行情感分析,但我们所有的句子都有不同的单词数量,或者我们想要进行恒星分类但是已观察到恒星的次数不同等等。

我认为通常的方法是从这些不规则大小的数据中提取常规大小的特征。但是我最近参加了一个关于深度学习的演讲,演讲者强调说,深度学习者不是手工制作数据中的特征,而是能够自己学习相应的特征。但我们如何使用,例如如果输入层不是固定大小的神经网络?

2 个答案:

答案 0 :(得分:3)

由于您在询问深度学习,我认为您对端到端系统更感兴趣,而不是特征设计。可以处理可变数据输入的神经网络是:

1)具有汇集层的卷积神经网络。它们通常用于图像识别上下文,但最近也应用于建模句子。 (我认为他们也应该擅长分类明星)。

2)递归神经网络。 (适用于顺序数据,如时间序列,序列标记任务,也适用于机器翻译)。

3)基于树的自动编码器(也称为递归自动编码器),用于以树状结构排列的数据(可应用于句子分析树)

通过谷歌搜索可以很容易地找到很多描述示例应用程序的文章。

对于不常见的任务,您可以根据数据结构选择其中一项,也可以设计这些系统的一些变体和组合。

答案 1 :(得分:2)

您通常可以非常轻松地使所有实例的功能数量相同:

  

如果我们想进行视觉分类,但我们所有的照片都有不同的尺寸

将它们全部调整为特定尺寸/像素数。

  

如果我们想进行情绪分析,但我们所有的句子都有不同的词数

在所有文字数据中保留k字词的字典。每个实例都包含一个大小为k的布尔向量,如果字典中的单词i出现在该实例中,则i条目为真(这不是最好的表示,但是许多是基于它)。看一下单词模型袋。

  

如果我们想进行恒星分类,但所有恒星都被观察到不同的次数

采用已经观察过的所有恒星的特征。

  

但是我最近参加了一个关于深度学习的演讲,演讲者强调说,深度学习者不是手工制作数据,而是能够自己学习适当的特征。

我认为发言者可能提到了更高级别的功能。例如,您不应该手动提取功能"包含鼻子"如果要检测图像中的面部。你应该用原始像素喂它,而深度学习者将学习"包含一个鼻子"在更深层次的某个地方展示。