深度学习介绍
什么是深度学习
深度学习(deep learning)是机器学习拉出的分支
深度学习是机器学习中一种基于对数据进行表征学习的方法。观测值(例如一幅图像)可以使用多种方式来表示,如每个像素强度值的向量,或者更抽象地表示成一系列边、特定形状的区域等。而使用某些特定的表示方法更容易从实例中学习任务(例如,人脸识别或面部表情识别)。深度学习的好处是用非监督式或半监督式的特征学习和分层特征提取高效算法来替代手工获取特征。
上面这段话是维基百科摘要的,可以看出深度学习是机器学习的一个分支,那么机器学习是什么?
人工智能和机器学习
机器学习(Machine Learning, ML)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。
它是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域,它主要使用归纳、综合而不是演绎。
人工智能(Artificial Intelligence),英文缩写为AI。它是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。人工智能是计算机科学的一个分支,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器,该领域的研究包括机器人、语言识别、图像识别、自然语言理和专家人工智能可以对人的意识、思维的信息过程的模拟。人工智能不是人的智能,但能像人那样思考、也可能超过人的智能。
可以看到,每次技术的突破,都会迎来一波人工智能的发展浪潮。这次人工智能浪潮的基石有三个,分别是算法、数据和计算能力。尤其是算法,直接决定了人工智能的发展水平。
机器学习能干嘛
简单的几个应用:email过滤,检测网络入侵者,OCR(文字、车牌号码等识别),排序学习,计算机视觉。
我们应该了解一下机器学习里面三个主要类别:监督学习,无监督学习和强化学习。
- 在监督学习(supervised learning)中,每个数据点都会获得标注,如类别标签或与数值相关的标签。一个类别标签的例子:将图片分类为「猫」或「狗」;数值标签的例子如:预测一辆二手车的售价。监督学习的目的是通过学习许多有标签的样本,然后对新的数据做出预测。例如,准确识别新照片上的动物(分类)或者预测二手车的售价(回归)。
- 在无监督性学习(unsupervised learning)中,数据点没有相关的标签。相反,无监督学习算法的目标是以某种方式组织数据,然后找出数据中存在的内在结构。这包括将数据进行聚类,或者找到更简单的方式处理复杂数据,使复杂数据看起来更简单。
- 在强化学习(reinforcement learning)中,算法会针对每个数据点来做出决策(下一步该做什么)。这种技术在机器人学中很常用。传感器一次从外界读取一个数据点,算法必须决定机器人下一步该做什么。强化学习也适合用于物联网应用。在这里,学习算法将收到奖励信号,表明所做决定的好坏,为了获得最高的奖励,算法必须修改相应的策略。
监督学习有个经典的入门案例就是预测房子价格,房价取决于很多因素比如:地段、客厅卧室数量、是否靠近学校地铁、楼层小区等。有经验的房产专家一定对各个地区的房价有个基准价格,然后根据一些其他因素如:位置、朝向、楼层等做一些调整得到一个最终定价。我们如何教会计算机来预测房价呢?可以把各个地区的房价和影响的因素做成一个表格给计算机,让机器去学习这些因素(特征)对价格的影响。最终可能得到这样的公式:房价=地区平均单价*房屋面积-(楼龄-5年)*1000
无监督学习典型的就是聚类:比如豆瓣里面,推荐你可能喜欢看的电影,就是用的无监督学习,把一些“臭味相投”的人,聚成一类。如果那类人都普遍给某部电影好评 ,而你没有看过,那么就推荐给你,很大概率你也喜欢这一部电影。电商网站里面分析数据得出喜欢爱马仕包包的女性也喜欢拉菲红酒等。
深度学习牛逼在哪里
上文我举了房价的例子,想要摆脱繁琐的房屋价格预测活,一个办法就是训练计算机来报价,只要把几个参数(特征)输入进去,就能预估出价格。但是刚需房的价格估算和别墅豪宅肯定不一样,他们需要的参数(特征)也是不同的。未来最紧缺的就是针对某些问题能提取出合适特征的人才,不过深度学习的好处就是能代替手工获取特征。
在人工智能的早期,那些对人类智力来说非常困难、但对计算机来说相对简单的问题得到迅速解决,比如,那些可以通过一系列形式化的数学规则来描述的问题。人工智能的真正挑战在于解决那些对人来说很容易执行、但很难形式化描述的任务,如识别人们所说的话或图像中的脸。对于这些问题,我们人类往往可以凭借直觉轻易地解决。让计算机计算1乘以2乘以3一直到100,不用1秒就能获得答案,但是让计算机识别图片里面的动物可能就很难,而识别小猫小狗却是一个婴幼儿都会的技能。
对于许多任务来说,我们很难知道应该提取哪些特征。例如,假设我们想编写一个程序来检测照片中的车。我们知道,汽车有轮子,所以我们可能会想用车轮的存在与否作为特征。遗憾的是,我们难以准确地根据像素值(对于人来说图片有什么一看就知道,对于计算机来说图片和声音就是一些2进制数字)来描述车轮看上去像什么。虽然车轮具有简单的几何形状,但它的图像可能会因场景而异,如落在车轮上的阴影、太阳照亮的车轮的金属零件、汽车的挡泥板或者遮挡的车轮一部分的前景物体等。解决这个问题的途径之一是使用机器学习来发掘表示本身,而不仅仅把表示映射到输出。这种方法我们称之为表示学习(representation learning)。学习到的表示往往比手动设计的表示表现得更好。并且它们只需最少的人工干预,就能让AI系统迅速适应新的任务。表示学习算法只需几分钟就可以为简单的任务发现一个很好的特征集,对于复杂任务则需要几小时到几个月。手动为一个复杂的任务设计特征需要耗费大量的人工、时间和精力,甚至需要花费整个社群研究人员几十年的时间。
在许多现实的人工智能应用中,困难主要源于多个变差因素同时影响着我们能够观察到的每一个数据。比如,在一张包含红色汽车的图片中,其单个像素在夜间可能会非常接近黑色。汽车轮廓的形状取决于视角,比如你正面看可能看不到轮胎是圆形的表述,侧面看会发现车有圆形的轮胎,斜着看可能会发现有椭圆的轮胎。大多数应用需要我们理清变差因素并忽略我们不关心的因素。
显然,从原始数据中提取如此高层次、抽象的特征是非常困难的。许多诸如说话口音这样的变差因素,只能通过对数据进行复杂的、接近人类水平的理解来辨识。这几乎与获得原问题的表示一样困难,因此,乍一看,表示学习似乎并不能帮助我们。
深度学习deep learning通过其他较简单的表示来表达复杂表示,解决了表示学习中的核心问题。
总之,这本书的主题 —— 深度学习是通向人工智能的途径之一。具体来说,它是机器学习的一种,一种能够使计算机系统从经验和数据中得到提高的技术。我们坚信机器学习可以构建出在复杂实际环境下运行的 AI 系统,并且是唯一切实可行的方法。
下一遍:机器学习基础——线性代数