您的位置:首页 > 其它

【李宏毅老师机器学习课程笔记】第一课:What is Machine Learning, Deep Learning and Structured Learning?

2017-07-04 18:09 706 查看
机器学习可近似描述为寻找一个特定函数的过程。



而机器学习的框架主要由一个包含hypothesis function set的model和一个包含了很多对输入输出pair的training data库组成,训练的过程就是通过这一系列的输入输出pair来找到一个最好最合适的function,而对这个function进行测试就是输入一个x,这个function能输出我们想要的y的过程。



而深度学习的概念可以用一个生产线的模型来说明。深度学习的model包含的不是一个个的单个函数,而是一系列由多个函数串联组成的复杂函数体,并且这是一个端到端的训练过程——即复杂函数体中的每一个子函数都可以完成自主学习。



为了更具体地说明深度学习,我们不妨看一下浅层学习与深度学习的对比:

在语音识别领域,有一个曾经非常著名的算法法“MFCC”,该算法对语音波形进行了6个步骤的处理以获取识别的结果,但前五个步骤都是人工设定的,只有最后的GMM是可以由计算机从大量的data中学习的,所以这是一种典型的浅层学习方法 (shallow approach)。


  


而深度学习与之明显不同,它所包含的数个函数每一个都能对数据进行学习,工程师的劳动成本减少了,更多的工作交由机器来完成。

受人脑结构的启发,神经网络在机器学习领域有着广泛应用,但到目前为止脑神经生理学的研究对机器学习还没有什么实际的作用,机器学习更多地只是借鉴了由多个神经元组成的多层神经网络的结构特性,从而衍生出一系列的神经网络算法。

一个典型的神经元结构是:对于一个输入的矢量X,使其与另一个相同维度的矢量 W进行内积的处理,同时内积过程中不同的项乘上一个通常不相等的权值b(bias),得到一个标量z,而最终的输出a由激活函数(activation function)sigma(z)给出。激活函数可以是任意的一个函数,常用的激活函数是sigmoid function,但实践中人们也逐渐发现了它的一些不理想的特性(会在后续课程中说明)。



而神经网络则是由最少三层的网状结构组成,每一层网络结构都对应着生产线模型中的一个function,它完成了一个由N维空间到M维空间的转变:输入层,即包含N个元素的输入矢量X;输出层,即由M个神经元组成的输出矢量;隐层(hidden layer),是输入层和输出层之间的结构,在浅层学习中隐层只有一层,而在深度学习中隐层则包含若干层的神经网络结构。



那么为什么我们要采用深度学习的策略呢?答案当然是因为——deeper is better

在神经元的数目相等(也就是神经网络的parameter相同)时,我们可以选用浅层学习的策略(使三层神经网络变得fat and short),也可以采用深度学习的策略(使多层神经网络变得thin and tall)。实验表明,往往更多的hidde
4000
n layer能有更高的精确度;在另外一个角度上来说,对于同样的training data,深度学习得出结果也远比浅层学习给出的结果要好。


    


以上就是deep learning的简单介绍。接下来我们看看什么叫structure learning。

实际上,deep learning 和 structure learning 不是一对可以并列的定义,两者所侧重的内容也不一样,在structure learning的过程中也应用了deep learning的思想。所谓的structure learning,就是要求机器学习这个function给出的输出不是一个简单的标量或一个普通的矩阵,而是一个结构体(如sequence、graph structure、tree structure等)。举例来说,structure learning的应用一个object
detection。比如我们给出一张image,上面有凉宫春日和朝比奈实玖瑠,那么机器学习就能给出这张图上凉宫春日和朝比奈的位置:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐