1.0 深度学习面目初窥

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/niaolianjiulin/article/details/78850576

2017年4月,花了一个多月时间,学习了斯坦福大学李菲菲老师的 CS231n 课程(Convolutional Neural Networks for Visual Recognition),主要是通过研究课程笔记,对这几个问题有了认识: DL 如何用于视觉处理、 DL 的核心概念-最优化-BP、 CNN 的设计与实现、 DL 实践中遇到的一些问题-调参等。

本书被誉为 DL 之圣经书,可以来系统学习。

1. 计算机和人类的区别

AI,即赋予计算机能够自动处理人类世界常规劳动,理解语音或图像,帮助医学诊断等能力。

某些问题,对人类来说很困难,但是对计算机来说相对简单。比如通过一系列形式化的数学规则来描述的问题。1997年IBM的深蓝国际象棋系统,向计算机描述棋子及其允许的走法并不困难。AI早期,这些问题迅速解决。

人类不擅长解决抽象和形式化的任务,对于计算机是简单的。但是在识别对象、语音识别方面,计算机就像一个小孩子。人类的日常中,对于世界建立了巨量的知识体系,很难通过形式化的方法表达。计算机要智能,就要获取到这些知识。

因此,AI真正挑战在于:如何解决对人来说很容易执行,但很难形式化描述的任务。比如识别一张图中的人脸。换句话说,如何将人类非形式化的知识传达给计算机。

2. 知识库方法

前人在探索该问题时,一个想法是:将世界的知识用形式化的语言进行硬编码,计算机可以使用逻辑推理规则来自动理解这些形式化语言中的申明。这就是 AI 的知识库(knowledge base)方法。

然而探索并未取得重大进步。很简单,世界的复杂性,很难通过足够复杂的形式化规则来完全描述。而且该过程需要人类监督者输入,是个笨拙的过程。这个方法不好。

这表明,AI 系统需要具备自己获取知识的能力。就像小孩子,我们不会把世界上所有知识形式化,然后让他背诵,更多是小孩子潜移默化地自己学习的过程。

3. 机器学习和特征工程

AI 系统需要具备自己获取知识的能力,能够从原始数据中自己提取出模式。这种能力被称为机器学习(machine learning)。

机器学习能够赋予计算机一定程度上解决现实问题,并作出看似主观的决定。之所以说看似主观,是因为机器归根结底还不是像人那样的主观,而是巧妙的算法设计使然。

应用比较广泛的机器学习算法,如逻辑回归(LR)可以预测哪些广告将更受欢迎,并在排名中置前。朴素贝叶斯算法,可以区分垃圾邮件和合法邮件。这些机器学习算法表现出一定的人类智能。但和人对世界的直观感受仍相差甚远。

常用机器学习算法,很大程度上依赖于给定的数据表示,即特征工程。在广告预测系统中,AI 不会像人一样去看某条广告,而是需要人类告诉 AI 系统几条关键信息,比如该广告主信息、广告类别、推送人群相关度等。这就是特征。然后,LR 会学习这些特征如何与结果相关联(监督学习),即把特征映射到输出。

机器学习领域有句话:特征决定了效果的上限,机器学习算法只是尽量去逼近这个上限。因此,如何设计特征就是大家努力的方向。在今年6月份腾讯广告算法大赛中,深切体会到了特征设计对结果的影响。再举个例子:

这里写图片描述

有两堆点,现在需要学习一个分类器把它们分开。左图用每个点的 x,y 位置坐标作为特征,右图用每个点的球坐标作为特征。则右图可以用直线(即线性分类器)就分开。但左图不行。这个例子说明了特征表示对结果的好坏。

4. 表示学习

既然我们很难判断如何设计特征,一个思路就是使用机器学习来发掘特征本身,而不仅仅是把特征映射到输出。这称作表示学习。学习到的特征往往比手动设计特征更好,而且人工干预少。手动设计特征非常耗费时间,可遇不可求。

表示学习算法的经典案例:自编码器。它由一个编码器和解码器函数组成。编码器函数将输入数据转化为一种新的不同表示,解码器函数将这个新的表示转换到原先形式。我们期望的是:输入数据经过编、解码器之后尽可能多保留信息,而且新的表示有各种好的特性。所谓好的特征,就是指有助于分类器的。

当设计用于学习特征的算法时,我们的目标通常是:分离出能解释观察数据的变差因素(factors of variation)。这些因素通常不能被直接观察到,但确实影响着可观测量。比如分析骑车图像时,变差因素包括阳光角度(导致车体部分亮部分暗)、亮度(导致车体颜色发生改变)等。

在实际应用中,困难主要源于:多个变差因素可能同时影响着我们能够观察到的每一个数据。这就需要我们理清变差因素,并忽略我们并不关心的因素。然而从 raw data 中提取如此高层次、抽象的特征非常困难。这就引出了深度学习的解决思路。

5. 深度学习

深度学习,通过其他较为简单的表示,来表达复杂的表示,解决了这个问题。它的方案是这样的:让计算机从经验中学习,并根据层次化的概念体系来理解世界,每个概念通过与某些相对简单的概念之间的关系来定义。概念建立在彼此之上,绘制出来是一张层次很多、看起来较“深”的图,因此称为深度学习。

这里写图片描述

该图是解释深度学习如何通过组合简单的概念来表示图像的一个很好的例子。图像是人类大脑看到此图后形成的原始感观。对计算机来说,它并不理解,它只看到一大堆像素值集合。将一组像素值映射到某个物体,如图中的人,设计的函数将非常复杂。

深度学习将这个复杂映射分解为一系列嵌套的简单映射,每个由模型的不同层来描述。输入像素叫做可见层,这是我们人类直接观测的变量。然后第一层通过比较像素相邻的亮度来识别边缘。第二层基于第一层的边缘,可以识别出转角、轮廓的边的集合。第三层可以找到轮廓和转角的特定集合,来检测出对象的整个部分。最后根据图像部分,可以识别出存在的对象。

可以看到,这是一个不断发掘模式的问题。任何物体,都可以找到一种抽象的模式来描述它。但这个模式过于抽象,深度学习就层层组合把它描述出来。模式识别的概念就是这么来的。

6. 总结

这里写图片描述

深度学习 表示学习 机器学习 AI

这里写图片描述

AI 系统的不同学科间的联系。可以发现有共性,均属于输入到输出的映射关系。阴影框表示可学习部件,常用机器学习算法就是在此处发挥效果的。

猜你喜欢

转载自blog.csdn.net/niaolianjiulin/article/details/78850576
今日推荐