关于深度学习的几点认识

导言:学习深度学习有一段时间了,写点自己对该深度学习的一些粗浅认识。

0 目录

  1. 机器学习 vs. 深度学习
  2. 表示学习 vs. 深度学习

1 机器学习 vs. 深度学习

几乎公认,深度学习是机器学习的子域,两者共性是“从某一类任务的有限样本中,通过算法总结出一般性的规律,并可以应用到新的未知数据上。” 那么两者区别呢?

机器学习与深度学习

我觉得这幅图(来源《Deep Learning》第一章)最能说明两者区别,传统的机器学习的流程有:原始数据->数据预处理->特征提取->特征变换->模型预测->结果,简言之就是特征工程+预测模型,众所周知特征工程是重中之重。深度学习的流程是:原始数据->低层特征->中层特征->高层特征->模型预测,简言之表示学习+预测模型。深度学习希望可以通过算法自动从原始数据中学习到有效的特征(可以认为是表示学习),之前特征工程主要靠人工经验或特征转换方法来抽取特征,然后有一些问题无法用有效特征描述,特别是那些对于人来说很容易的任务,比如图像识别、语音识别等,因此在这些任务上深度学习往往会取得很好的效果(当然也有前提条件,至少数据量要够吧,但是多少算够,就不得而知了)。

一句话概括,传统机器学习是人工设计有效特征,深度学习从数据中自动学习有效特征。

2 表示学习 vs. 深度学习

表示学习是指算法从数据中自动学习有效特征。这么说的话,可以认为深度学习是表示学习中一种技术。通过多层的非线形变换,把原始数据变成更高层次、更抽象的表示,来代替人工设计的特征,进而“避免”特征工程。

本书指出表示学习的两个核心问题:一是“什么事一个好的表示?” 二是“如何学习到好的表示?” 表示能力的关键是构建具有一定深度的多层次特征表示

这里我引述周志华老师在2018年4月15日在京东人工智能创新峰会上《关于深度学习一点思考》的报告,供大家参考。周志华老师讨论了几个问题,我在本文中复述一下。周老师指出我们谈到的深度模型基本上都是深度神经网络,用术语来说的话,它是多层可参数化的可微分的非线性模块所组成的模型,这模型可以用BP算法来训练。周志华老师总结深度神经网络成功的三个原因:

  1. 有逐层的处理 (Layer-by-layer processing)
  2. 有特征的内部变换 (Feature transformation)
  3. 足够的模型复杂度 (Sufficient model complexity)

同时周志华老师指出深度神经网络的缺陷,第一,需要花大精力调参,特别是跨任务的调参经验不太有借鉴作用;第二,可重复性弱;第三,训练深度神经网络之前,模型的复杂度必须事先指定,导致大家先用复杂度大的模型达到效果,然后再缩减网络的复杂度。必须指出的是,神经网络擅长的任务是在图像、视频、声音等经典任务上,而在混合建模、离散建模、符号建模任务上,神经网络的性能比其他模型要稍差一些。

周志华老师研究组尝试从其他技术路径来做深度模型,提出深度森林方法,是基于树模型的方法,具有以下优点,第一,跨任务表现好,可以用同一套参数在不同任务中取得不错的性能,不需要逐任务慢慢调参;第二,有自适应的模型复杂度,可以根据数据量的大小自动判定模型的复杂度。感兴趣的同学可以去看周老师组的论文吧。

参考文献

  1. 邱锡鹏《神经网络与深度学习》第一章 绪论
  2. 周志华《关于深度学习一点思考》于2018年4月15日在京东人工智能创新峰会报告
  3. Goodfellow《Deep Learning》Chap1. Introduction

有任何问题,欢迎和我讨论!【个人主页:http://guohai.tech 邮箱:xuguohai7@163.com】