热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

[AI开发]一个例子说明机器学习和深度学习的关系

深度学习现在这么火热,大部分人都会有‘那么它与机器学习有什么关系?’这样的疑问,网上比较它们的文章也比较多,如果有机器学习相关经验,或者做过类似数据分析、挖掘之类的人看完那些文章可

深度学习现在这么火热,大部分人都会有‘那么它与机器学习有什么关系?’这样的疑问,网上比较它们的文章也比较多,如果有机器学习相关经验,或者做过类似数据分析、挖掘之类的人看完那些文章可能很容易理解,无非就是一个强调‘端到端’全自动处理,一个在特征工程上需要耗费大量时间和精力(半自动处理);一个算法更复杂、需要更多的数据和算力,能解决更复杂的问题,一个算法可解释性强,在少量数据集上就可以到达一定的效果。但是如果对于一个之前并没有多少机器学习相关背景、半路出道直接杀入深度学习领域的初学者来讲,可能那些文章太过理论。本篇文章尝试使用传统机器学习和深度学习两种不同的方法去解决同一个问题,告诉你它们之间有哪些联系。

首先需要指出的是,主流定义上机器学习包含深度学习,后者是前者的一个分支。机器学习中有不同的算法,比如线性回归、逻辑回归、SVM、决策树、神经网络等等。由于使用神经网络算法的机器学习比较特殊,所以单独命名这类机器学习为‘深度学习’(为什么叫深度,后面详细说)。因此,比较两者联系更准确的表述应该是:传统机器学习和深度学习的关系(这里的传统机器学习不包含使用神经网络算法这一类)。另外需要明确的是,在处理监督学习问题中,机器学习不管采用什么算法,解决问题最终方式都是一致的:即找出X->Y的映射关系。比如你的模型用线性回归或者神经网络算法,最后都是要从训练素材中找输入和输出之间的映射关系。

现在就以一个图片二分类的任务为例,分别使用基于神经网络的深度学习和基于逻辑回归算法的传统机器学习两种方式解决,让我们看看它们在解决问题上的区别和联系。这个例子并没有源代码,我希望用图片来说明问题。

 

如上图,有一堆风景照片,我们需要训练一个模型来判断给定图片是否属于绿植风景照,这是一个二分类问题,绿植风景照属于第一类,其他属于第二类。输入一张图片,模型输出图片类型。现在我们分别用深度学习和传统机器学习的方法尝试去解决该问题。这里需要明确的是,对于图片分类而言(或其他大部分跟CV有关的应用),不管是用深度学习还是传统机器学习,都是需要先得到每张图片的特征表示(特征向量),特征向量是一张图片的信息压缩表示,如果不太了解何为图像特征,可以参考这篇博客:https://www.cnblogs.com/xiaozhi_5638/p/11512260.html,里面介绍了图像特征的作用和传统图像特征提取方式。

 

深度学习

对于深度学习而言,这个图片二分类问题太简单了,网上深度学习入门教程一大堆,比如猫狗识别跟这个差不多。在神经网络开始,我们使用几个(卷积层-池化层)的block块,提取图片的高维特征,然后再使用几个连续的(卷积层)块提取低维特征。在神经网络末尾,我们再加一个MLP全连接网络做为特征分类器,分类器最后包含一个输出节点(使用Sigmoid激活函数),代表预测为绿植风景照的概率,概率越接近1代表它为绿植风景照的可信度越高。这个网络结构可以参考2012年将深度学习带入大众视野的AlexNet网络。

如上图,图片直接输入到模型,神经网络负责特征提取,并且对特征进行分类,最后输出概率值。我们可以看到,对于深度学习方式而言,我们在预测一张图的分类时,只需要将图片传给神经网络(可能需要事先调整一下图片尺寸),然后在神经网络的输出端就可以直接得到它所属分类的概率值。这种全自动、无需人工干预的工作方式我们称之为“端到端”(End-To-End)的方式。我们可以将上述网络结构(like-alexnet)使用python代码构建出来,然后图像化显示:

如上图所示,神经网络在处理该图片分类任务时,从开始到结束一条龙服务。神经网络接收一张214*214大小的3通道彩图,矩阵形状为(214,214,3)。然后经过特征提取,得到一个256维的特征向量。最后进行特征分类,直接输出它的概率。注意上图为了简化结构,神经网络仅仅包含必要的卷积层、池化层以及全连接层,实际情况可能还需要归一化、Dropout等结构。(忽略上图Input和Output中的?号,它表示batch-size,即穿过神经网络的图片数量)需要说明的是,随着问题的复杂性加大(比如图片特征不明显,分类数量增多,数据复杂等等),我们还可以灵活调整上图中神经网络的结构,图中是最简单的直线型网络结构(Sequential结构),我们可以设计出来分支结构、循环结构、残差结构,这些都是可以用来提取更复杂的特征、解决更复杂的问题,当然这样的话训练需要的数据、算力、时间相应就会增加。关于神经网络的输入输出可以参考这篇博客:https://www.cnblogs.com/xiaozhi_5638/p/12591612.html

 

传统机器学习

看完深度学习解决该问题的流程,我们再来看一下如何使用传统机器学习来解决该问题。传统机器学习做不到‘端到端’的全自动处理,对于一个具体的任务需要拆分成几步去解决,第一步就是特征工程,(以图片分类任务为例)需要人为确定使用哪种特征以及特征提取方式,第二步才是对已有特征进行训练,得到一个特征分类模型。这里有两个问题,一是人为确定使用哪种特征,需要专业人士判断;而是知道要使用什么特征后,如何去提取?相比深度学习而言,传统机器学习可以总结为‘半自动’模式:

如上图所示,传统机器学习在解决当前具体问题时,需要人工确认使用什么特征,以及提取该特征的方法,最后才能用得到的特征去训练机器学习模型去做分类。那么这里有个比较重要:选择什么特征更有利于问题的解决呢?既要考虑特征对原数据的代表性,又要考虑特征提取的可行性。具体到当前图片二分类任务时,我们可以看到数据集中,绿植风景照大部分都是绿色,和其他图片在像素分布上有很大差异,因此我们可以选取‘颜色分布’来做为解决本次任务的图像特征,具体采用‘颜色直方图’的方式去生成每张图片的特征向量。

颜色直方图简单理解就是统计图片中每种颜色所占比例,RGB图片每个通道颜色值在0-255之间,如果我们将这个区间分成10等份(子区间)然后计算每个子区间颜色占比(和为1),那么就可以得到3个10维向量,将这3个向量合并组成一个30维的向量,那么这个30维向量就是基于颜色分布的图像特征。由于这种方式提取到的特征没有考虑颜色在图片中的位置分布,因此通常做法是,先将一张图切成若干等份,然后分别计算单个图片区域的特征向量,最后将所有图片区域的特征向量拼接起来得到最终的图像特征。如果将图片切成5份,那么最终得到的特征向量维度为:5*3*10=150,这个特征向量从一定程度上代表了颜色位置分布。

如上图所示,利用颜色直方图可以为每张图片提取到一个150维的特征向量,后面我们再用这些特征向量训练机器学习模型,由于是一个二分类问题,我们直接选用‘逻辑回归’算法即可。需要明确的是,一些常见的图像特征点提取方法比如SIFT、SURF等等在这里是无效的,因为这些方式提取得到的特征向量更侧重描述原图像中像素之间的局部联系,很显然对于我们这个图片二分类任务而言,根据颜色分布提取到的特征更适合解决本问题。这也同时说明,在传统机器学习中的特征提取环节非常重要,特征工程也是制约传统机器学习发展的一大瓶颈。

 

看完上面的举例,现在总结一下:

深度学习在解决问题的时候采用‘端到端’的全自动模式,中间无需人为干预,能够自动从原有数据中提取到有利于解决问题的特征,该部分原理相对来讲‘可解释性弱’。同时,神经网络的结构多变,可以根据问题的复杂程度灵活调整网络结构,更复杂的网络结构需要更多更丰富的训练数据去拟合参数,相对应对算力的要求也高一些。而对于传统机器学习来讲,一个很重要的工作就是特征工程,我们必须人工筛选(挑选)什么特征有利于问题的解决,比如本篇文章中的例子,像素分布就是一个很好的特征,同时我们还需要人工去提取这些特征,这部分原理相对来讲‘可解释性更强’。对于特征工程这块工作而言,它对人工专业性要求较高,因为对于稍微复杂的问题,很难识别出数据集的哪些特征有利于解决问题,尤其像图片、语音、文本等等非结构化数据,这个也是制约传统机器学习发展的瓶颈之一。不管怎样,其实深度学习和传统机器学习解决问题的思路基本是一致的,我们可以看到本文中两种解决问题的过程中都会生成一个特征向量,一个256维,一个150维,最后根据特征向量分类。有问题的朋友欢迎留言讨论。

 


推荐阅读
  • 本文探讨了图像标签的多种分类场景及其在以图搜图技术中的应用,涵盖了从基础理论到实际项目实施的全面解析。 ... [详细]
  • 强人工智能时代,区块链的角色与前景
    随着强人工智能的崛起,区块链技术在新的技术生态中扮演着怎样的角色?本文探讨了区块链与强人工智能之间的互补关系及其在未来技术发展中的重要性。 ... [详细]
  • 大数据时代的机器学习:人工特征工程与线性模型的局限
    本文探讨了在大数据背景下,人工特征工程与线性模型的应用及其局限性。随着数据量的激增和技术的进步,传统的特征工程方法面临挑战,文章提出了未来发展的可能方向。 ... [详细]
  • 本文详细介绍了 TensorFlow 的入门实践,特别是使用 MNIST 数据集进行数字识别的项目。文章首先解析了项目文件结构,并解释了各部分的作用,随后逐步讲解了如何通过 TensorFlow 实现基本的神经网络模型。 ... [详细]
  • 计算机视觉初学者指南:如何顺利入门
    本文旨在为计算机视觉领域的初学者提供一套全面的入门指南,涵盖基础知识、技术工具、学习资源等方面,帮助读者快速掌握计算机视觉的核心概念和技术。 ... [详细]
  • 微信小程序实现拍照与图片上传功能
    本文介绍如何在微信小程序中实现用户通过拍照或从相册选择图片,并将图片上传至服务器的功能,包括调用相关API和处理上传响应。 ... [详细]
  • 吴恩达推出TensorFlow实践课程,Python基础即可入门,四个月掌握核心技能
    量子位报道,deeplearning.ai最新发布了TensorFlow实践课程,适合希望使用TensorFlow开发AI应用的学习者。该课程涵盖机器学习模型构建、图像识别、自然语言处理及时间序列预测等多个方面。 ... [详细]
  • 京东AI创新之路:周伯文解析京东AI战略的独特之处
    2018年4月15日,京东在北京举办了人工智能创新峰会,会上首次公开了京东AI的整体布局和发展方向。此次峰会不仅展示了京东在AI领域的最新成果,还标志着京东AI团队的首次集体亮相。本文将深入探讨京东AI的发展策略及其与BAT等公司的不同之处。 ... [详细]
  • 大数据核心技术解析
    本文深入探讨了大数据技术的关键领域,包括数据的收集、预处理、存储管理、以及分析挖掘等方面,旨在提供一个全面的技术框架理解。 ... [详细]
  • 《计算机视觉:算法与应用》第二版初稿上线,全面更新迎接未来
    经典计算机视觉教材《计算机视觉:算法与应用》迎来了其第二版,现已开放初稿下载。本书由Facebook研究科学家Richard Szeliski撰写,自2010年首版以来,一直是该领域的标准参考书。 ... [详细]
  • 本文分享了作者在蚂蚁集团内部转岗过程中经历的四轮技术面试及一次项目负责人面谈的详细情况,旨在为准备类似面试的读者提供参考。 ... [详细]
  • 深入解析:主流开源分布式文件系统综述
    本文详细探讨了几款主流的开源分布式文件系统,包括HDFS、MooseFS、Lustre、GlusterFS和CephFS,重点分析了它们的元数据管理和数据一致性机制,旨在为读者提供深入的技术见解。 ... [详细]
  • ICML2020: 利用贝叶斯元学习在全局关系图上实现小样本关系抽取
    本文介绍了加拿大蒙特利尔大学Mila研究所唐建教授团队在ICML2020上发布的一项研究,该研究探讨了如何利用全局关系图来探索句子间的新关系,并提出了一种创新的贝叶斯元学习方法。 ... [详细]
  • 贝叶斯方法的核心理念
    在探索概率深度学习的过程中,理解贝叶斯方法是至关重要的一步。本文旨在深入探讨贝叶斯方法的基本理念及其在深度学习中的应用,通过实例解析贝叶斯公式的内涵。 ... [详细]
  • 深度学习与神经网络课程总结
    本文档总结了神经网络和深度学习课程中的关键概念和理论,包括机器学习的基本要素、算法类型以及数据特征表示等。 ... [详细]
author-avatar
2102球地转反
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有