[英]How to do machine learning when the inputs are of different sizes?
在标准的食谱机器学习中,我们在矩形矩阵上操作; 也就是说,我们所有的数据点都具有相同数量的功能。 我们如何应对所有数据点具有不同数量的特征的情况? 例如,如果我们想要进行视觉分类,但我们所有的图片都有不同的维度,或者我们想要进行情感分析,但我们所有的句子都有不同的单词数量,或者我们想要进行恒星分类但是已观察到恒星的次数不同等。
我认为通常的方法是从这些不规则大小的数据中提取常规大小的特征。 但是我最近参加了一个关于深度学习的演讲,演讲者强调说,深度学习者不是手工制作数据中的特征,而是能够自己学习相应的特征。 但是,如果输入层不是固定大小,我们如何使用例如神经网络?
既然你在询问深度学习,我认为你对端到端系统更感兴趣,而不是特征设计。 可以处理可变数据输入的神经网络是:
1)具有汇集层的卷积神经网络。 它们通常用于图像识别上下文,但最近也应用于建模句子。 (我认为他们也应该擅长分类明星)。
2)循环神经网络。 (适用于顺序数据,如时间序列,序列标记任务,也适用于机器翻译)。
3)基于树的自动编码器(也称为递归自动编码器),用于以树状结构排列的数据(可应用于句子分析树)
很多描述示例应用程序的论文都可以通过谷歌搜索轻松找到。
对于不常见的任务,您可以根据数据结构选择其中一项,也可以设计这些系统的一些变体和组合。
您通常可以非常轻松地使所有实例的功能数量相同:
如果我们想进行视觉分类,但我们所有的图片都有不同的尺寸
将它们全部调整为特定尺寸/像素数。
如果我们想进行情绪分析,但我们所有的句子都有不同的单词
在所有文本数据中保留k
单词的字典。 每个实例将由大小为k
的布尔向量组成,其中如果字典中的单词i
出现在该实例中,则第i
个条目为真(这不是最佳表示,但许多基于它)。 看到袋子里的单词模型。
如果我们想进行恒星分类,但所有的恒星都被观察到不同的次数
采用所有恒星观察到的特征。
但是我最近参加了关于深度学习的演讲,演讲者强调说,深度学习者不是手工制作数据,而是能够自己学习相应的特征。
我认为演讲者可能提到了更高级别的功能。 例如,如果要检测图像中的面,则不应手动提取“包含鼻子”功能。 您应该将其作为原始像素,深度学习者将在更深层中的某处学习“包含鼻子”功能。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.