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

Machine learning 当输入大小不同时,如何进行机器学习?,machine-learning,neural-network,deep-learning,Machine Learning,Neural Network,Deep Learning,在标准的cookbook机器学习中,我们在矩形矩阵上操作;也就是说,我们所有的数据点都具有相同数量的特征。我们如何应对所有数据点具有不同数量特征的情况?例如,如果我们想进行视觉分类,但我们所有的图片都有不同的维度,或者如果我们想进行情感分析,但我们所有的句子都有不同数量的单词,或者如果我们想进行恒星分类,但所有的恒星都被观察了不同的次数,等等 我认为通常的方法是从这些不规则大小的数据中提取规则大小的特征。但我最近参加了一次关于深度学习的演讲,演讲人强调,深度学习者能够自己学习适当的功能,而不是从

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


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

您通常可以很容易地使所有实例的特征数量相同:

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

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

如果我们想做情感分析,但我们所有的句子都有不同数量的单词

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

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


以观测到的所有恒星的特征为例

但我最近参加了一次关于深度学习的演讲,演讲者强调,深度学习者可以自己学习适当的功能,而不是从数据中手工制作功能


我认为演讲者可能提到了更高层次的功能。例如,如果要检测图像中的人脸,则不应手动提取特征“包含鼻子”。你应该给它输入原始像素,深度学习者将在更深层次的某个地方学习“包含鼻子”功能。

既然你是在问深度学习,我想你更感兴趣的是端到端系统,而不是功能设计。能够处理可变数据输入的神经网络包括:

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

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

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

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


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

“以观测到的所有恒星的特征为例。”我不确定这意味着什么。在这个例子中,我们有一个恒星被观测到的时间列表,以及在这些时间测量到的震级列表。对于每颗恒星,不仅观测时间不同,而且时间列表的大小也不同。因此,所有恒星都观测到了0个特征。在实践中,可以构建从这些观察中提取的特征集。但算法不是从观察中学习,而是从一些手工设计的功能中学习。基本上,我想知道如何在不做这些事情的情况下完成这些任务:不调整图像大小,不建立字典。@rhombidodecaderon-我想你做不到。您必须能够提取所有要使用的实例的一些基本特性。