AI基础入门:一文让你读懂什么是机器学习

2018-02-05 来源:深瞐科技官方微信

机器学习多么高大上又有逼格的一个词,从字面来理解,让机器像人一样去学习?像科幻片里机器人一样的去瞬间拥有高能大脑一样牛逼的技术?更多好奇的人可能会带着疑问去找度娘求解,可得到的一定是一些更高深且听不懂的词汇、数学公式。其实机器学习并没有那么高深,单从理解上来说,这是一个绝大多数人(智商只要不低于50)都可以理解的一种技术,至少你可以搞清楚机器是怎么学习的、学完了能干点什么。今天瞐瞐君进行了一些整理。


blob.png



机器如何识别一只猫呢?



所谓人类的智能就是能根据已有的信息结合过往的经验逻辑去做判断,然后用这个判断去指导行动,再根据行动获得的反馈去修正判断,如此循环往复。人工智能就是通过编程让计算机拥有接近人类的智能。


传统的计算机编程方式是人类自己总结经验,归纳成严谨的逻辑公式,然后用编程语言描述出来,编译成机器码交给计算机去执行。


机器学习是一种新的编程方式,它不需要人类来总结经验、输入逻辑,人类只需要把大量数据输入给计算机,然后计算机就可以自己总结经验归纳逻辑,这个过程就叫训练,训练过后得到一个模型,这个模型就可以用来代替人去做判断了,训练得比较好的模型甚至可以达到超过人类的判定准确度。


这种新的编程方式未来可能成为日常软件开发中常用的技术,用来解决一些传统编程方式不太好解决的问题。每个程序员都应该学一下机器学习。


blob.png


然而,这个问题解决的过程是有局限性的。我们如何识别一张猫的照片呢?这个看起来很简单的任务却难以用一种算法来描述。让我们稍等片刻,仔细想想。即使是简单的说明(如“有四条腿”或“有两只眼睛”)也有其缺点,因为这些特点可能会被隐藏,或照片可能只显示了猫的一部分。如果我们遇到识别腿或眼睛的任务时,那与识别猫一样的困难。

这正是机器学习展现其实力的地方。计算机不需要开发算法来解决问题,而是使用示例来学习算法本身。我们用样本来训练计算机。对于识别猫这个例子,我们需要使用大量的标注了猫的照片来训练系统(监督学习)。通过这种方式,算法会发生进化,继而成熟,并最终能够识别出陌生图片上的猫。


blob.png



机器学习的分支:深度学习



深度学习的概念并不新颖,深度学习的概念其实很简单,就是把大象放进冰箱一样,只需要三个步骤:打开冰箱、放进大象、关上冰箱门。


blob.png

许多与练习有关的问题更倾向于属于“识别猫”这个类别,而不是“数字加法”,因此,很难用人类编写的算法来解决这些问题。这些问题通常是在某些数据中识别模式,例如识别图像中的对象、语言中的文本或交易数据中的欺诈行为。

虽然机器学习的原理并不新鲜,但目前深受大众的追捧。这主要有三个原因:首先,用于应用和训练的大量数据的可用性(“大数据”);其次,我们现在拥有巨大的计算能力,特别是在云端;第三,一系列的开源项目使得每个人或多或少会使用一些算法。



机器学习和深度学习的对比





现在的你应该已经对机器学习和深度学习有所了解,接下来我们将会学习其中一些重点,并比较两种技术。


数据依赖性


深度学习与传统的机器学习最主要的区别在于随着数据规模的增加其性能也不断增长。当数据很少时,深度学习算法的性能并不好。这是因为深度学习算法需要大量的数据来完美地理解它。另一方面,在这种情况下,传统的机器学习算法使用制定的规则,性能会比较好。下图总结了这一事实。


blob.png


硬件依赖


深度学习算法需要进行大量的矩阵运算,GPU 主要用来高效优化矩阵运算,所以 GPU 是深度学习正常工作的必须硬件。与传统机器学习算法相比,深度学习更依赖安装 GPU 的高端机器。


特征处理


特征处理是将领域知识放入特征提取器里面来减少数据的复杂度并生成使学习算法工作的更好的模式的过程。特征处理过程很耗时而且需要专业知识。


在机器学习中,大多数应用的特征都需要专家确定然后编码为一种数据类型。


特征可以使像素值、形状、纹理、位置和方向。大多数机器学习算法的性能依赖于所提取的特征的准确度。


深度学习尝试从数据中直接获取高等级的特征,这是深度学习与传统机器学习算法的主要的不同。基于此,深度学习削减了对每一个问题设计特征提取器的工作。例如,卷积神经网络尝试在前边的层学习低等级的特征(边界,线条),然后学习部分人脸,然后是高级的人脸的描述。更多信息可以阅读神经网络机器在深度学习里面的有趣应用。


blob.png


问题解决方式


当应用传统机器学习算法解决问题的时候,传统机器学习通常会将问题分解为多个子问题并逐个子问题解决最后结合所有子问题的结果获得最终结果。相反,深度学习提倡直接的端到端的解决问题。


举例说明:

假设有一个多物体检测的任务需要图像中的物体的类型和各物体在图像中的位置。


blob.png


传统机器学会将问题分解为两步:物体检测和物体识别。首先,使用一个边界框检测算法扫描整张图片找到可能的是物体的区域;然后使用物体识别算法(例如 SVM 结合 HOG )对上一步检测出来的物体进行识别。


相反,深度学习会直接将输入数据进行运算得到输出结果。例如可以直接将图片传给 YOLO 网络(一种深度学习算法),YOLO 网络会给出图片中的物体和名称。


执行时间


通常情况下,训练一个深度学习算法需要很长的时间。这是因为深度学习算法中参数很多,因此训练算法需要消耗更长的时间。最先进的深度学习算法 ResNet 完整地训练一次需要消耗两周的时间,而机器学习的训练会消耗的时间相对较少,只需要几秒钟到几小时的时间。


但两者测试的时间上是完全相反。深度学习算法在测试时只需要很少的时间去运行。如果跟 k-nearest neighbors(一种机器学习算法)相比较,测试时间会随着数据量的提升而增加。不过这不适用于所有的机器学习算法,因为有些机器学习算法的测试时间也很短。


可解释性


至关重要的一点,我们把可解释性作为比较机器学习和深度学习的一个因素。


我们看个例子。假设我们适用深度学习去自动为文章评分。深度学习可以达到接近人的标准,这是相当惊人的性能表现。但是这仍然有个问题。深度学习算法不会告诉你为什么它会给出这个分数。当然,在数学的角度上,你可以找出来哪一个深度神经网络节点被激活了。但是我们不知道神经元应该是什么模型,我们也不知道这些神经单元层要共同做什么。所以无法解释结果是如何产生的。


另一方面,为了解释为什么算法这样选择,像决策树(decision trees)这样机器学习算法给出了明确的规则,所以解释决策背后的推理是很容易的。因此,决策树和线性/逻辑回归这样的算法主要用于工业上的可解释性。


0.gif



机器学习和深度学习用于哪些领域?



维基百科上关于机器学习的文章概述了所有使用机器学习的领域。这些包括:

 ● 计算机视觉 用于车牌识别和面部识别等的应用。

 ● 信息检索 用于诸如搜索引擎的应用 - 包括文本搜索和图像搜索。

 ● 市场营销 针对自动电子邮件营销和目标群体识别等的应用。

 ● 医疗诊断 诸如癌症识别和异常检测等的应用。

 ● 自然语言处理 如情绪分析和照片标记等的应用。


相关推荐