我们可以用普通的机器学习来完成很多任务,但是对于一些人工智能应用它是无法完成的(比如图像识别,语音识别,自然语言处理等)。
原因如下:
1、维度灾难,我们知道,当输入向量增加时,他们的不同配置数量是指数增长的。比如一维的10个单位,就是10,二维的,就是100,三维的就是1000.
在高维空间,计算机付出的计算代价是巨大的。
2、统计挑战,正如我们所说,我们的不同配置数量指数增加,同时,我们就需要更多的训练样本,要获得海量的训练样本也是很难达到的目标。

在机器学习中,我们其实用到了一种先验信念,也就是平滑先验,局部不变性。函数在很小的范围内不会有很大的变化。我们希望新样本的输出和距离他最近样本输出是相同的,我们想想这么多的机器学习算法,svm,决策树,最近邻算法等等都是利用了这种先验。
但是在高维空间中,区间数量大于训练样本数量,也就是我们说的统计挑战,对于一个没有训练样本的区间,我们就无法判断一个在这个区间的测试点的输出到底是什么。
并且在高维空间中,即使是非常平滑的函数,也会在不同维度有不同变化方式,如果函数在不同区间表现不一样,我们就无法用一组训练样本表示这个函数,也就是泛化能力很差。
所以一些机器学习方法对一些特定问题提出了更强的假设,比如额外生成数据分布,周期性假设等。但是我们的人工智能任务结构很复杂,人为的构造假设是很难的。我们需要一种更通用的假设。
这个时候,深度学习就派上用场了。它的核心思想是数据是由因素或特征组合而成的,而且这些因素很可能来自不同的层级。这些很温和的假设使较少的样本数目可以表示较多的区间,达到一种指数增益,这就很好地解决了维度灾难的问题。

这里可能有人想到了降维,既然维数高,我们可以先降低维度再使用机器学习的方法。确实,比如PCA等方法,对于高维度的信息降维。但是再怎么降,总是会损失信息的,只不过是最大限度减少信息的损失,并且对于特征如何组合,如何影响输出,我们也是不太清楚的。对于我们的语音文字等,他就是拥有高维度的信息,很多特征都是强势的,无论如何降维都是会损失很多信息的。
这里我主要再讲一下流形学习
流形其实就是一组点,每个点有它的邻域。比如地球就是三维空间的一个球状流形。
流形学习通过一个假设:高维空间中大部分区域是无效输入,只有包含数据点的区域构成的一组流形才是有效的输入。有意义的变化都是在流形的方向上或切换到另一组流形中。通过这样,我们可以利用机器学习来研究高维空间有趣的变化函数。
流形学习假设前提是概率集中,也就是数据是集中分布在某些区间,当然这个假设是合理的。并且对于语音文字也同样适用。
比如:从26个字母中随机抽取组成一个有意义的文档,这是不可能的。因为自然语言序列的分布只占据了字母序列总空间的很小一部分。

并且光有概率集中是不够的,还必须满足:每个样本和其他样本相互连接,样本被其他高度相似的样本包围,并且这些样本可以通过变换得到。这一点在图片语音等也是适用的。比如;我们通过变换可以逐步变亮变暗图片等。我们可以想象,人脸的流形不可能连接到猫脸的流形。
因此,有些研究就致力于把高位空间坐标提取到流形中的坐标,改进我们的机器学习算法,这是非常具有挑战性的工作。

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐