机器学习算法的成功与否不仅仅取决于算法本身,也取决于数据的表示。数据的不同表示可能会导致有效信息的隐藏或是曝露,这也决定了算法是不是能直截了当地解决问题。表征学习的目的是对复杂的原始数据化繁为简,把原始数据的无效信息剔除,把有效信息更有效地进行提炼,形成特征,这也应和了机器学习的一大任务——可解释性。 也正是因为特征的有效提取,使得今后的机器学习任务简单并且精确许多。在我们接触机器学习、深度学习之初,我们就知道有一类任务也是提炼数据的,那就是特征工程。与表征学习不同的是,特征工程是人为地处理数据,也是我们常听的“洗数据”。 而表示学习是借助算法让机器自动地学习有用的数据和其特征。 不过这两个思路都在尝试解决机器学习的一个主要问题——如何更合理高效地将特征表示出来。

即稍微入门一点机器学习的都知道传统地做法都人为地设计特征或者说使用已经完全标记好的数据来试图接近最好的分类效果。但实际上很多未标记的或者说标记相对较少的训练数据,我们当然可以人为标记,但也可以自动地筛选出比较重要的特征,有点类似于PCA(主成分分析)的思路,这就是表示学习或者说特征学习。

表示学习虽然从结构上讲只是数据的一个预处理手段,但是正如“工欲善其事,必先利其器”一样,它的出现提供了进行无监督学习和半监督学习的一种方法。其重要性不言而喻,以至于在花书中被单独列出来作为一章。表示学习一个比较典型的方法就是自编码器,有兴趣的可以自查。

表征学习的自动化算法

我们定义了表示学习的自动化,那么这个自动化发展得如何呢?让我们来看看有哪些已有的算法和它们背后的意义。无监督学习算法中例如PCA/auto-encoder的自动化体现在它们可以对输入数据转化而使得输入数据更有意义;树模型可以自动地学习到数据中的特征并同时做出预测;深度学习的CNN/RNN/DBN/GCN则更加灵活,CNN大量地用在图像的研究上,RNN是时间序列数据学习的摇篮,而GCN可以用在图网的数据学习中。回想特征工程则是极度依赖人的判断的,人们会根据自己的理解来筛选数据或者做数据变换。

1) 无监督学习

在深度学习大幅发展之前,无监督学习是很好的表征学习的工具。无监督学习中的自动编码器可以用来对数据进行含义转换。举个单词表征的例子,单词有很多表示的方法,最简单的就是one-hot encoding, 这种方法是在一个庞大的词库向量中对要标注的目标单词用1来表示,而其余的用0。这样一来所有的单词都是相互独立的,即它们之间的距离都是一样的,非常地浪费空间。而如果我们用RBM, 中文叫作单层自编码器,来做word embedding, 将词库矩阵映射到新的矩阵空间,令词义更相近的单词靠得更近,这样节约了空间,同时新的表达还定义了相近词。这种自编码过程使用的一般是无标签数据,输入数据经过编码会有一定的抽象,然后这种抽象可以通过解码得到一个近似于输入的输出数据,所以它是一种稳定的转换。其实无监督的表征学习算法的精髓是学习从高维观察到低维表征空间的映射,使得可通过地位的表征(近似地)重建出原来的观察,比如PCA的映射空间就保证了原空间的多样性。尽管自动编码器与 PCA 很相似,但我们可以看出来自动编码器比 PCA 灵活得多。在编码过程中,自动编码器既能表征线性变换,也能表征非线性变换;而 PCA 只能执行线性变换。因为自动编码器的网络表征形式,所以可将其作为层用于构建深度学习网络。

2) 树模型

树模型的一大优势在于算法本身的高度可解释性,因此树模型在表征学习应用上是很有潜力的。前几章我们提到过当模型是可微分模型时,反向传播的效果非常好,又精确又高效,但是当使用的模型是非可微分的时候,我们该怎么解决这类问题呢?这里有个可替代模型——基于树的集成。这种模型可以为离散或表格类数据建模,使用树的集成可以获得分层分布式表征。但此时,我们不能再用链式法则来传播误差,反向传播也不再可行。所以决策树模型很难整合深度神经网络的表征学习能力,但是多层GBDT森林可以使用层见目标传播的变体进行联合训练,这样就无需推导反向传播和可微性。

3) 深度学习

深度学习是最灵活的表征学习。要理解深度神经网络为什么可以做表征学习很简单,其实一般深度神经网络的最后一层都是一个线性分类器,其他层则可看成是在给这个线性分类器提供特征,所以最后一层之前的隐藏层都可被理解为是表征学习。而在这之前,深度学习在CNN图像识别的任务上大获成功,却在实际被诟病为黑箱,让很多搞理论的专家百思不得其解。所以从表征学习这点上看,深度学习的黑箱或许是可以被一窥究竟的。其实就单隐层神经网络已经很好用了,它有个普适性的特点,意思就是给足了隐节点,它就能够估算任何函数来适应你给它的训练数据,也就是单隐层就可以很好地学习表征。近期的研究已经开始为深度学习的表征建立信息论基础,比如观察到的信息瓶颈损失可以被用于计算最佳表征。

表征学习vs. 特征工程

说完表征学习典型的算法,那么问题来了,我们什么时候用表示学习,什么时候又用特征工程呢?第一个需要考虑的是数据的大小,如果数据量很大的时候,我们比较依赖于自动化的表示学习,如果数据量很小,其实目前特征工程的表现更加好。这是什么原因呢?因为数据小,我们根据自己的数据经验和先验知识,就可以判断用什么模型更好,但是数据一旦多了,我们对数据的理解就相对比较浅薄,先验知识所占的分量急剧下降,此时就需要依靠极其强大的计算力去弥补我们自身知识的不足。不管是全自动化的表征学习也好,人为经验的特征工程也好,都是基于数据和经验选择模型,这个过程其实是一个贝叶斯模型。在中小数据集上的机器学习往往使用的就是强假设模型(人类知识先验)+一个简单线性分类器。当数据愈发复杂,数据量逐渐加大后,我们对于数据的理解越来越肤浅,做出的假设也越来越倾向于随机,那么此时人工特征工程往往是有害的,而需要使用摆脱了人类先验的模型,比如深度学习或者集成模型。

不管是特征工程还是特征学习,我们衡量它们作用的一个标准就是看后续的学习任务是否能够得益于这种表示。这是机器学习的一个核心问题——到底是什么因素决定了一种表示比另一种表示更好呢?大概有三个方面的解释:

1.是否能提供解离性的线索。假设数据是基于互相独立的因素(这些因素内部也存在一定的变化范围)生成的,比如目标图像中的目标方向和光照条件,作为一个元先验,解离性更倾向于用表征中不同的独立变量表示这些因素。这样应该就能得到数据的简洁的抽象表示,从而可用于各种下游任务并有望提升样本效率。因此,某种方法更能得到数据的简介的抽象的表示就更占据优势;

2. 是否有分布式表示的优势。分布式表示可以组合许多特征来表达指数级别的概念特征。有很多分布式表示的算法比如聚类算法,KNN算法,决策树等等,同时分布式表示也是深度学习的最重要的性质之一,深度学习的分布式实现了参数共享,即非局部繁华的目的,可以有效应对curse of dimensionality。

3. 深度可以带来指数级别的增益。

这篇文章写得很好,可以参考:https://blog.csdn.net/weixin_40449300/article/details/89941348

什么是表示学习(representation learning)表征学习 表达学习相关推荐

  1. 表示学习(representation learning)的初印象

    文章目录 0 写在前面 1 什么是表示? 2 表示学习? 3 参考资料 0 写在前面 表示学习(representation learning)是深度学习领域中一个比较重要的方面,本文则提供对表示学习 ...

  2. 表征学习 Representation Learning(特征学习、表示学习)是什么?

    在机器学习领域,表征学习(或特征学习)是一种将原始数据转换成为能够被机器学习有效开发的一种技术的集合.在特征学习算法出现之前,机器学习研究人员需要利用手动特征工程(manual feature lea ...

  3. 表征学习Representation Learning

    1入门 https://zhuanlan.zhihu.com/p/136554341 2. representation learning 解耦(disentangled).可解释( Interpre ...

  4. 【论文翻译|2021】A survey on heterogeneous network representation learning 异构网络表示学习综述

    文章目录 摘要 1引言 2 相关工作 3 相关概念 4 分类 4.1 异构信息网络表示方法概览 4.2 异构信息网络嵌入算法的分类 4.3 基于路径的算法 4.3.1 传统的机器学习 5 讨论 5.1 ...

  5. 【论文翻译 IJCAI-20】Heterogeneous Network Representation Learning 异构网络表示学习

    文章目录 摘要 1 引言 2 异构网络挖掘 3 异构网络表示 3.1 异构网络嵌入 3.2 异构图神经网络 3.3 知识图谱与属性网络 3.4 应用 4 挑战.方向和开源数据 4.1 未来方向 避免设 ...

  6. 表示学习(Representation Learning) Part1--Pretext Text

    文章目录 Representation Learning Inferring structure(推断结构) Transformation prediction Rotation prediction ...

  7. 表示学习(Representation Learning)

    一.前言 2013年,Bengio等人发表了关于表示学习的综述.最近拜读了一下,要读懂这篇论文还有很多文献需要阅读.组会上正好报了这篇,所以在此做一个总结. 鉴于大家都想要我的汇报PPT,那我就分享给 ...

  8. 深度学习 Deep Learning UFLDL 最新Tutorial 学习笔记 4:Debugging: Gradient Checking

    1 Gradient Checking 说明 前面我们已经实现了Linear Regression和Logistic Regression.关键在于代价函数Cost Function和其梯度Gradi ...

  9. Unsupervised Degradation Representation Learning for Blind Super-Resolution(基于无监督退化表示学习的盲超分辨率处理)

    文章目录 Abstract(摘要) 1. Introduction 2. Related Work 2.1. Single Image Super-Resolution 2.2. Contrastiv ...

最新文章

  1. 介绍ABC 蜂群算法网站
  2. 计算机原理及其应用的题,微机原理及应用习题与答案(4)
  3. asp实用类库--DataList
  4. word转换成pdf java代码_java代码实现word转换成pdf
  5. python 读取wav 音频文件的两种方式
  6. 推荐七款精挑细选的电脑软件,欢迎收藏!
  7. jquery1.9 下检测浏览器类型和版本
  8. 教师节快乐!Python无限弹窗,让老师们感受到你对他们的爱
  9. AHP权重计算方法案例
  10. 电容电感充电曲线仿真图
  11. Crontab 在线生成器 - Linux计划任务
  12. 抖音初始权重快速提升3大攻略,新人必看丨国仁网络资讯
  13. 计算机控制plc开机,PLC控制系统与工控计算机控制系统的区别
  14. 计算机声卡原理,什么是电脑声卡 电脑声卡的工作原理
  15. 【长期维护】程序员锻炼法则
  16. Python爬虫实战,requests模块,Python实现拉勾网求职信息数据分析与可视化
  17. iOS 设置tableview组头组尾的背景色
  18. 安卓系统PK浏览器:物联网开发,哪个才是最佳之选?
  19. 超好看的二次元透明网站登录页模板
  20. Camera效果测试-色彩准确性及饱和度测试

热门文章

  1. webpy —— 简单直接的 python web 框架
  2. 使用Web浏览器访问远程ssh终端
  3. 又猎一“狐”:一名外逃越南嫌疑人落网啦
  4. [湖南集训]谈笑风生
  5. 使用CCleaner删除系统还原点
  6. Excel 宏 将工作表中的数据按照顺序分拆到 本工作簿 的其他工作表
  7. 秦曾昌人工智能课程---5、KNN和朴素贝叶斯
  8. 2022年电工(初级)考试报名及电工(初级)试题及解析
  9. 什么是微分?导数和微分的区别是什么?微分和积分的联系?
  10. 10大高权重博客_你知道几个?