通过representation learning,我们可以把一些抽象的知识转化为具体的数值的形式,例如我们使用word2vec对“上下文”的模糊的概念进行了具象的表达,生成的word vector包含了这种先验知识(具体的表现形式就是常出现在上下文里的单词其向量的距离很接近,实际上理解word2vec是基于embedding 空间的相似性作为目标函数进行设计的就不难理解为什么word2vec可以捕捉到这种抽象关系了)
在机器学习中,特征学习或表征学习[1]是学习一个特征的技术的集合:将原始数据转换成为能够被机器学习来有效开发的一种形式。它避免了手动提取特征的麻烦,允许计算机学习使用特征的同时,也学习如何提取特征:学习如何学习。
机器学习任务,例如分类问题,通常都要求输入在数学上或者在计算上都非常便于处理,在这样的前提下,特征学习就应运而生了。然而,在我们现实世界中的数据例如图片,视频,以及传感器的测量值都非常的复杂,冗余并且多变。那么,如何有效的提取出特征并且将其表达出来就显得非常重要。传统的手动提取特征需要大量的人力并且依赖于非常专业的知识。同时,还不便于推广。这就要求特征学习技术的整体设计非常有效,自动化,并且易于推广。
特征学习可以被分为两类:监督的和无监督的,类似于机器学习。
- 在监督特征学习中,被标记过的数据被当做特征用来学习。例如神经网络,多层感知器,(监督)字典学习。
- 在无监督特征学习中,未被标记过的数据被当做特征用来学习。例如(无监督)字典学习,独立成分分析,自动编码,矩阵分解[2] ,各种聚类分析及其变形[3][4][5]。
目录
监督特征学习
监督特征学习就是从被标记的数据中学习特征。大致有以下几种方法。
监督字典学习
总体来说,字典学习是为了从输入数据获得一组的表征元素,使每一个数据点可以(近似的)通过对表征元素加权求和来重构。字典中的元素和权值可以通过最小化表征误差来得到。通过L1正则化可以让权值变得稀疏(例,每一个数据点的表征只有几个非零的权值)。
监督字典学习利用输入数据的结构和给定的标签(输出)来优化字典。例如,2009年Mairal等人提出的一种监督字典学习方案被应用在了分类问题上。这个方案的优化目标包括最小化分类误差,表征误差,权值的1范数(L1正则化)和分类器参数的2范数。 有监督的字典学习可以被视为一个三层神经网络(一层隐含层),第一层(输入层)到第二层(隐含层)是表征学习,第二层到第三层(输出)是分类器的参数回归。
神经网络
神经网络是通过多层由内部相连的节点组成的网络的一个学习算法。它的命名是受到神经系统的启发,它的每一个节点就像神经系统里的神经元,而每一条边就像一条突触。神经网络里面的每一条边都有对应的权值,而整个网络则定义运算法则将输入数据转换成为输出。神经网络的网络函数通过权值来刻画输入层跟输出层之间的关系。通过适当的调整网络函数,可以尽量最小化损耗的同时解决各种各样的机器学习任务。