1.1.3 表示学习
为了提高机器学习系统的准确率,需要将输入信息转化为有效的特征,或者更一般性地称为表示(Representation)。如果有一种算法可以自动地学习有效的特征,并提高最终机器学习模型的性能,那么这种学习就可以叫作表示学习(Representation Learning)。表示学习的关键是解决语义鸿沟(Semantic Gap)问题。语义鸿沟问题是指输入数据的底层特征与高层语义信息之间的不一致性和差异性。例如,在计算里如何表述花、楼房、颜色等,如果要表示一朵花的大小,则首先可以将其想象成一个圆形,花蕊是这个圆形的圆心;然后测量这个圆形的半径,这个半径就是一个可以被计算机使用的描述信息。这种描述信息在机器学习中一般被称为特征(Feature)。与特征有关的另外一个词是向量(Vector),可以看作空间中的一条有方向的线段,在计算机中一般用一维数组表示。从数学的角度来讲,向量也称为欧几里得向量、几何向量或矢量,指具有大小和方向的量。向量存在于向量空间中,可以进行加法或乘法操作。当使用向量表示特征时,无形中也为这些向量定义了一个向量空间。向量空间同时具备范数空间、内积空间和完备性等性质,更为详细的内容这里不再赘述。通常会定义一个性质较为优良的空间来表示特征,把特征向量所在的空间称为特征空间。在机器学习中,经常使用两种方式表示特征:局部表示(Local Representation)和分布式表示(Distributed Representation)。
如果认为颜色是有限的,那么颜色这一维度就是从有限的颜色集合中选择出来的。如果用某种颜色坐标系来表示颜色,如RGB(Red,Green,Blue)、HSV(Hue,Saturation,Value),那么颜色特征本身就是一个三维向量,被限定在一个向量空间的子集中。如果在计算机中表示颜色,则一般有以下两种表示方法。
一种表示颜色的方法是以不同的名字来命名不同的颜色,这种表示方法叫作局部表示,也称为离散表示或符号表示。局部表示通常可以表示为one-hot向量的形式。假设所有颜色的名字构成一个词表V,词表大小为|V|。此时,可以用一个|V|维的one-hot向量来表示每一种颜色,在第i种颜色对应的one-hot向量中,第i维的值为1,其他都为0。
局部表示有两个优点:①具有很好的可解释性,有利于人工归纳和特征总结,并通过特征组合进行高效的特征工程;②通过多种特征组合得到的表示向量通常是稀疏的二值向量,用于线性模型时计算效率非常高。但局部表示也有两个缺点:①one-hot向量的维数很高,且不能扩展,如果有一种新的颜色,就需要增加一维来表示;②不同颜色之间的相似度都为0,即无法知道“红色”和“中国红”的相似度要高于“红色”和“黑色”的相似度。
另一种表示颜色的方法是用RGB值来表示颜色,不同颜色对应R、G、B三维空间中的一个点,这种表示方法叫作分布式表示。分布式表示通常可以表示为低维的稠密向量。
与局部表示相比,分布式表示的表示能力要强很多。分布式表示的向量维度一般都比较低,只需用一个三维的稠密向量就可以表示所有颜色。并且,分布式表示也很容易表示新的颜色,不同颜色之间的相似度也很容易计算。局部表示和分布式表示示例如表1-1所示。
表1-1 局部表示和分布式表示示例
我们可以使用神经网络将高维的局部表示空间R|V|映射到一个非常低维的分布式表示空间RD中,D≪|V|。在这个低维空间中,每个特征不再是坐标轴上的点,而是分散在整个低维空间中,在机器学习中,这个过程也称为嵌入(Embedding)。嵌入通常指将一个度量空间中的一些对象映射到另一个低维的度量空间中,并尽可能保持不同对象之间的拓扑关系。例如,自然语言中词的分布式表示也经常叫作词嵌入。
图1-3展示了一个三维one-hot向量空间与一个二维嵌入空间的对比。在one-hot向量空间中,每个特征都位于坐标轴上,每个坐标轴上都有一个特征。而在低维的嵌入空间中,特征都不在坐标轴上,特征之间可以计算相似度。
图1-3 三维one-hot向量空间与二维嵌入空间的对比
要学习到一种好的高层次语义表示(一般为分布式表示),通常只有从底层特征开始,经过多步非线性转换才能得到。深层结构的优点是可以提高特征的重用性,从而指数级地增强表示能力。因此,表示学习的关键是构建具有一定深度的多层次特征表示(参见文献[29])。
在传统的机器学习中,也有很多有关特征学习的方法,如主成分分析、线性判别分析、独立成分分析等。但是,传统的特征学习一般人为地设计一些准则,根据这些准则选取有效的特征。这种特征的学习和最终预测模型的学习是分开进行的,因此学习到的特征不一定可以提升最终模型的性能。