1.2.4 深度学习和机器学习的对比
机器学习是一种实现人工智能的方法,而深度学习是一种实现机器学习的技术。深度学习本来并不是一种独立的学习方法,其本身也会用到有监督和无监督的学习方法来训练深度神经网络。但由于近几年该领域发展迅猛,一些特有的学习手段相继被提出(如残差网络等),因此越来越多的人将其单独看作一种学习的方法。
假设需要识别某个照片是狗还是猫,如果是用传统机器学习的方法,首先会定义一些特征,如有没有胡须,耳朵、鼻子、嘴巴的模样等。总之,首先要确定相应的“面部特征”作为机器学习的特征,以此将对象进行分类识别。而深度学习的方法则更进一步,它会自动找出这个分类问题所需要的重要特征,而传统机器学习则需要人工地给出特征。那么,深度学习是如何做到这一点的呢?继续以猫狗识别的例子进行说明,步骤如下。
1)首先确定出有哪些边和角与识别出猫狗的关系最大。
2)然后根据上一步找出的很多小元素(如边、角等)构建层级网络,找出它们之间的各种组合。
3)在构建层级网络之后,就可以确定哪些组合可以识别出猫和狗了。
注意:其实深度学习并不是一个独立的算法,在训练神经网络的时候也通常会用到监督学习和无监督学习。但是由于一些独特的学习方法被提出,也可以把它看成是单独的一种学习算法。深度学习可以大致理解成包含多个隐含层的神经网络结构,深度学习的深指的就是隐藏层的深度。
在机器学习方法中,几乎所有的特征都需要通过行业专家再确定,然后就特征进行人工编码,而深度学习算法会自己从数据中学习特征。这也是深度学习十分引人注目的一点,毕竟特征工程是一项十分烦琐、耗费很多人力物力的工作,深度学习的出现大大减少了发现特征的成本。
在解决问题时,传统机器学习算法通常先把问题分成多块,一个个地解决好之后,再重新组合起来。深度学习则是一次性地、端到端地解决。
假设一个任务:识别出在某图片中有哪些物体,并找出它们的位置。
传统机器学习的做法是把问题分为两步:发现物体和识别物体。首先,使用盒型检测算法找出几个物体的边缘,把所有可能的物体都框选出来。然后,再使用物体识别算法识别出这些物体中分别是什么。图1-1所示为一个机器学习识别的例子。
但是深度学习不同,它会直接在图片中把对应的物体识别出来,同时还能标明对应物体的名字。这样就可以做到实时的物体识别,例如YOLO可以在视频中实时识别物体,图1-2所示为YOLO在视频中实现深度学习识别的例子。
· 图1-1 机器学习的识别
· 图1-2 深度学习的识别
注意:人工智能、机器学习、深度学习三者的关系如下。
机器学习是实现人工智能的方法,深度学习是机器学习算法中的一种,是实现机器学习的技术和学习方法。