【深度学习入门—2015MLDS】1. What is Machine Learning, Deep Learning and Structured Learning?

机器学习、深度学习和结构化学习


一. 机器学习的定义

为什么需要机器学习?

传统的编程大多数情况下只能让计算机解决人推理好的问题,但对于一些复杂的、人无法完全解决的问题,我们就无法显式编程,无法让计算机做运算。

例如语音识别(李宏毅老师自己的研究方向),如果不应用机器学习的方法,那么只能人工去找某个词发音的共同模式,不难发现这种模式非常难用程序(if-else)描述的,在大型语料的情况下简直是无法想象。

机器学习(machine learning)是通过不显式地编程,让计算机自动地学习样本数据中隐含的模式,因此又称为模式识别(pattern recognition)。”学习“就相当于找到一个将输入X映射到输出Y的、抽象意义上的函数f,这种映射蕴含的就是上述的模式。

例如对于语音识别,输入一段语音信号,经过函数f,输出”你好“;对于手写字识别,输入手写体2的图片,经过函数f,输出数字2。

机器学习的框架:

机器学习的框架
上图给出的是有监督学习的架构。

给定训练数据集(Training Data)X和Y,其中每一对数据 xiyi 分别对应函数f的输入和输出,接下来要做的就是根据训练数据,从模型(Model)的假设函数集合(Hypothesis Function Set)中找到一个“最好”的函数 f 。面对新的测试数据 x f(x) 可以输出最接近我们预期的结果 y

那么“最好”的定义是什么?如何从无穷大的假设空间中找到这个“最好”的函数 f 呢?这些问题贯穿了整个课程。

机器学习的两大分支

本门课主要围绕机器学习中两大重要的分支——深度学习(Deep Learning)和结构化学习(Structured Learning)。


二. 深度学习的定义

初识深度学习

(外行人对神经网络的看法:模拟人脑的运作方式。实际上只是受到启发而已,并没有实质性地涉及脑神经科学-_-||)

从形象上理解,可以把深度学习当做一种“生产线”。对于机器学习框架中的Model而言,这条生产线使得一系列简单的函数集合 f1f2...fn 串接成一整个相对复杂的函数,每一个函数都将前一个函数的输出为输入,加工后产生输出给下一个函数。

同时深度学习是一种端到端训练(End-to-end training),生产线每一阶段所做的加工并不是由人去定义好的,人只是给出输入和输出数据,计算机会自动学习出每个阶段应该如何加工。
深度学习概览

当前阶段,深度学习(Deep Learning)主要是指基于神经网络(Neural Network)的方法。

神经网络概览

上文所说的受到人脑运作方式的启发,就是在神经元细胞中,树突(们)接收来自其它树突的信号,经过加工处理后,通过轴突传导给其它神经元细胞。

首先来看我们的人工神经网络中,最基本的部件神经元(neuron)的定义。每个神经元都是一个简单的函数,输入是一个N维的向量x,输出是一个标量a。对于输入x中的每一维xi都乘上对应的权重(weight)wi,累加之后再加上一个偏置(bias),得到z,z又经过一个激励函数σ(Activation Function),得到的输出a = σ(z)。其中,最常用的激励函数是sigmoid函数 σ(z)=11+ez

neuron

将多个神经元串接到一起,就形成了一个神经网络。这个神经网络的目标,就是将N维的输入向量映射到M维的输出向量,即 f:RN>RM

神经网络结构图

如上图所示,我们可以看出神经网络分为三种层次:输入层(Input Layer)、隐藏层(Hidden Layer)、输出层(Output Layer)。其中隐藏层的每一层就相当于“生产线”的每一个阶段。

Layer1中的所有神经元都分别与输入的每一维 x1,x2...xN 建立连接,每根连接线都代表了不同的权重,神经元们各自按照上面的定义操作。该层所有神经元的输出作为下一层的输入,层层递进直到神经网络的最后一层,Layer L的M维输出 y1,y2...yN 就是这个神经网络的输出。“深度”二字由此而来。

深度学习的发展历史

深度学习在历史上经历了浮浮沉沉的过程。

  • 1960年代因感知机(perceptron,即单层神经网络)而兴起。
  • 1969年有人指出感知机的限制,渐渐不受人关注。
  • 1980年代的多层感知机的出现使得深度学习重新流行。直到今天,DNN和彼时的多层感知机都没有本质区别,所以很多人不看好深度学习的原因之一就是没有根本性突破,还是在啃老本。
  • 1986年Hinton提出反向传播BP算法,人们开始知道怎么训练多层感知机。可惜的是,当时多于3层的神经网络表现不佳(原因第3课会提)。
  • 1989年有人提出一个隐藏层就足以完成任务,因此不必讲究“深度”,导致其沉默了相当长一段时间。
  • 2006年Hinton大叔又提出了用RBM(限制玻尔兹曼机)做初始化,实现了当时深度学习的突破。
  • 2009年随着硬件性能的提升,开始用GPU做运算
  • 2011年深度学习在语音识别领域开始流行,2012年在图像领域取得优异成绩。
  • 近年来越来越热门。

Deep vs Shallow

已有的定理:任何一个连续函数 f:RN>RM ,都可以用只有单个隐藏层的神经网络实现,只要该层的神经元够多。

既然如此,为什么我们要讲究多层的“深度”神经网络,而不是单层的“宽度”神经网络?

测试

如图所示,在手写数字识别的实践中表明,当含有同样多的参数时,3层神经网络的效果要比1层神经网络的准确率高,因此为了得到相同的准确率,深层神经网络所需要训练的参数更少。

后面还提到了类比数字电路中,多层的逻辑门构建相同操作会更轻量级,这里就不再展开了。

总之,要达到相同的性能,深层神经网络所需要的参数更少、训练数据量也更少,因此不要把所有神经元堆在同一层。


三. 结构化学习的定义

在上述的深度学习中,输入和输出都只是向量或者矩阵,而现实中很多时候需要处理输入、输出都是结构化对象(语音、文字序列、图结构、树结构等)的情形。

应用情景:

  • 信息检索(Information Retrieval)中,输入关键词“Machine Learning”,返回的输出结果是相关网页的一个列表;
  • 机器翻译(Machine Translation)中,输入的一种序列式“Machine Learning and having it deep and structured”,输出的另一种翻译序列是“机器学习及其深层与结构化”;
  • 语音识别(Speech Recognition)中,输入一段语音,输出识别的文字。
  • 目标检测(Object Detection)中,输入一张图片或一段视频,输出要检测的目标的位置。

四. 本课总结

总结

本门课程主讲机器学习的两大部分——深度学习和结构化学习。需要注意的是,Deep Learning是一种实践方法,而Structured Learning是一种思想,代表了某一类问题,实践上有很多不同的方法。

推荐的深度学习教材

(点击链接就可以进入在线阅读)

这两本都是深度学习里公认的好教材,后者由张志华老师审校的中文翻译版已经发布。

今后研究生阶段看来是要好好啃一啃了(╯▽╰)。

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值