机器学习中,特征学习(feature learning)或表征学习(representation learning)[1]是学习一个特征的技术的集合:将原始数据转换成为能够被机器学习来有效开发的一种形式。它避免了手动提取特征的麻烦,允许计算机学习使用特征的同时,也学习如何提取特征:学习如何学习。

机器学习任务,例如分类问题,通常都要求输入在数学上或者在计算上都非常便于处理,在这样的前提下,特征学习就应运而生了。然而,现实世界中的数据,例如图片、影片,以及感测器的测量值都非常的复杂、冗长又多变,如何有效的提取出特征并且将其表达出来成为了一个重要挑战。传统的手动提取特征需要大量的人力并且依赖于非常专业的知识。同时,还不便于推广。这就要求特征学习技术的整体设计非常有效,自动化,并且易于推广。

特征学习可以被分为两类:监督的和无监督的,类似于机器学习。

  • 在监督特征学习中,被标记过的数据被当做特征用来学习。例如神经网络,多层感知器,(监督)字典学习。
  • 在无监督特征学习中,未被标记过的数据被当做特征用来学习。例如(无监督)字典学习,独立成分分析自动编码矩阵分解[2] ,各种聚类分析及其变形[3][4][5]

监督特征学习

编辑

监督特征学习就是从被标记的数据中学习特征。大致有以下几种方法。

监督字典学习

编辑

总体来说,字典学习是为了从输入数据获得一组的表征元素,使每一个数据点可以(近似的)通过对表征元素加权求和来重构。字典中的元素和权值可以通过最小化表征误差来得到。通过L1正则化可以让权值变得稀疏(例,每一个数据点的表征只有几个非零的权值)。

监督字典学习利用输入数据的结构和给定的标签(输出)来优化字典。例如,2009年Mairal等人提出的一种监督字典学习方案被应用在了分类问题上。这个方案的优化目标包括最小化分类误差,表征误差,权值的1范数(L1正则化)和分类器参数的2范数。 有监督的字典学习可以被视为一个三层神经网络(一层隐含层),第一层(输入层)到第二层(隐含层)是表征学习,第二层到第三层(输出)是分类器的参数回归。

神经网络

编辑

神经网络是通过多层由内部相连的节点组成的网络的一个学习算法。它的命名是受到神经系统的启发,它的每一个节点就像神经系统里的神经元,而每一条边就像一条突触。神经网络里面的每一条边都有对应的权值,而整个网络则定义运算法则将输入数据转换成为输出。神经网络的网络函数通过权值来刻画输入层跟输出层之间的关系。通过适当的调整网络函数,可以尽量最小化损耗的同时解决各种各样的机器学习任务。

无监督特征学习

编辑

κ-平均算法

编辑

主要成分分析

编辑

独立成分分析

编辑

局部线性嵌入算法

编辑

无监督字典学习

编辑

另见

编辑

参考文献

编辑
  1. ^ Y. Bengio; A. Courville; P. Vincent. Representation Learning: A Review and New Perspectives. IEEE Trans. PAMI, special issue Learning Deep Architectures. 2013, 35: 1798–1828. doi:10.1109/tpami.2013.50. 
  2. ^ Nathan Srebro; Jason D. M. Rennie; Tommi S. Jaakkola. Maximum-Margin Matrix Factorization. NIPS. 2004. 
  3. ^ 引用错误:没有为名为coates2011的参考文献提供内容
  4. ^ Csurka, Gabriella; Dance, Christopher C.; Fan, Lixin; Willamowski, Jutta; Bray, Cédric. Visual categorization with bags of keypoints (PDF). ECCV Workshop on Statistical Learning in Computer Vision. 2004 [2016-04-17]. (原始内容存档 (PDF)于2021-03-08). 
  5. ^ Daniel Jurafsky; James H. Martin. Speech and Language Processing. Pearson Education International. 2009: 145–146.