这些本质区别你知道多少?

发布者:横竖有理 2023-1-3 20:24

机器视觉

机器学习是指令计算机按照设计与编程算法行事的技术,它允许计算机利用业已存在的数据进行学习。相当一部分研究人员认为机器学习是帮助人类在人工智能方面取得进展的最佳途径。

机器学习包括多种模式类型,例如:

1.监督式学习模式

在这种模式下,各个例子或例证皆配合一种算法,该算法负责分析训练数据并生成推断函数。

2. 无监督学习模式

在这种学习模式下,基础算法将从一组未标记的响应数据当中推断出结论。最常见的无监督学习方法为聚类分析,主要用于发现分组数据内存在的隐藏模式。

机器学习的流程:

总的来说,机器学习是让计算机通过数据和经验自动学习,发现一个适配应用场景的最优“函数”或者称为“模型”,并通过它来模拟现实世界事物间的关系,从而实现预测、判断、分组和解决问题的技术,并且随着数据样本的增加,“函数”或者“模型”会进一步自我完善,具有很强的数据依赖性。

深度学习

深度学习(Deep Learning)属于机器学习的子类,是目前最热的机器学习方法,但它并不意味着是机器学习的终点。

与机器学习的区别在于我只需要提供图片,无需人为定义特征,机器从无数可能的规律中总结最显著最合适的特征,来完成预测。

我们来看看深度学习是如何工作的。以人脸识别为例,如果是传统机器学习,首先要确定相应的“面部特征”作为机器学习的特征(眼睛、鼻子等等),以此来对对象进行分类识别。

而深度学习能自动找出这个分类问题所需要的重要特征,总共分三步:

1. 确定出哪些边和角跟识别出人脸关系最大;

2. 根据上一步找出的很多小元素(边、角等)构建层级网络,找出它们之间的各种组合;

3. 在构建层级网络之后,就可以确定哪些组合可以识别人脸。


机器学习和深度学习有哪些维度的不同

机器学习是一种实现人工智能的方法,深度学习是一种实现机器学习的技术。一个同心圆就可以展现出它们的关系。

1. 数据相关性

深度学习与传统机器学习最重要的区别是,随着数据量的增加,其性能也随之提高。

当数据很小的时候,深度学习算法并不能很好地执行,这是因为深度学习算法需要大量的数据才能完全理解它。

下图便能很好的说明这个事实:

从上图我们可以看到,随着数据量的增大,深度学习的性能会越来越好,而传统机器学习方法性能表现却趋于平缓;但传统的机器学习算法在数据量较小的情况下,比深度学习有着更好的表现。

2. 硬件依赖性

深度学习算法在很大程度上依赖于高端机器,而传统的机器学习算法可以在低端机器上工作。这是因为深度学习算法对GPU有较高的要求,GPU是其工作的一个组成部分。因为深度学习算法要固有地执行大量的矩阵乘法运,而使用GPU可以有效地优化这些操作,这就免不了对GPU的依赖。而相比之下,机器学习算法对硬件配置没有很高的要求。

3. 特征工程

特征工程是将领域知识应用到特征抽取的创建过程,以降低数据的复杂性为目的。但这一过程在训练时间和如何提取特征方面十分地困难。在机器学习中,大多数应用的特征需要由专家识别,然后根据域和数据类型手工编码。例如,特征可以是像素值、形状、纹理、位置和方向,大多数机器学习算法的性能取决于特征识别和提取的准确程度。而深度学习算法则试图从数据中学习更高级的特性。

这是深度学习一个非常独特的部分,也是有别于传统机器学习的一部分。因此,深度学习减少了为每个问题开发新的特征抽取的任务,而是像卷积神经网络(CNN)这样尝试学习低层次的特征,如:早期层次的边缘和线条,然后是人脸的一部分,最后才是人脸的高层次表示。这样的方式相较于机器学习,在训练时间和成本上有较高的提升。

4. 解决问题方法

在使用传统的机器学习算法解决问题时,通常的做法是将问题分解成不同的部分,然后单独解决,最后结合起来得到结果。相比之下,深度学习更提倡端到端地解决问题。

让我们举个例子来理解这一点。

如图所示是一个多对象检测任务,我们的目标是确定对象是什么以及它在图像中的位置。

在典型的机器学习方法中,我们会将问题分为两个步骤:对象检测和对象识别。

首先,我们将使用一个边界检测算法,如:GrabCut,来浏览图像并找到图像中所有可能的对象;然后,在所有已识别的对象中,我们再使用对象识别算法(如:SVM)来识别相关对象,最后再判断对象的位置。

不同于传统机器学习算法,在深度学习的方法中,我们将进行端到端的学习过程。例如,使用YOLO算法(一种深度学习算法),我们往YOLO网络中传入一张图像,它将给出对象的具体位置和名称。

5. 执行时间

通常,深度学习算法需要很长的时间来训练,这是因为在深度学习算法中有太多的参数,所以训练这些参数的时间比平时要长。

即使比较先进的深度学习算法Resnet,从零开始完全训练也需要大约两周的时间。

相比之下,机器学习所需的训练时间要少得多,从几秒钟到几个小时不等。

相较于训练时间,测试时间就要短很多。在测试时,深度学习算法的运行时间要短得多。

但是,如果将其与k近邻机器学习算法进行比较,测试时间会随着数据大小的增加而增加。但这并不适用于所有机器学习算法,因为其中一些算法的测试时间也很短。

6. 可解释性

可解释性是区分深度学习与传统机器学习的重要因素。

对于深度学习,有时候无法知道它为什么会给出那样的检测结果。

比如说为了提高老师们的阅卷的效率,采用深度学习来对文章进行评分,虽然最后发现,通过深度学习训练出来的模型对文章的给分的准确性很高,但是却无法找到深度学习这么给分的理由。

原因在于对于较深层次的神经网络而言,其每一层都对应了相应的特征,但是由于层数太多而导致无法清楚其代表的具体是什么特征,因此也就无法对测试的结果进行解释,虽然可以找出到底是哪一个网络的节点被激活了,但是深度学习网络里面的规则仍然很难理解。

相反,对于机器学习来说,每一个规则都是给出的,因此可以很好地明白模型的决策。

7. 数据类型

深度学习在结构化和非结构化数据上表现得都非常好,而传统的机器学习方法仅在结构化数据上表现得很好。


矩视智能机器视觉低代码平台是一个面向机器视觉应用的云端协同开发平台,始终秉承0成本、0代码、0门槛、0硬件的产品理念。

平台以人工智能技术为核心,在机器视觉应用开发环节,为开发者提供图像采集、图像标注、算法开发、算法封装和应用集成的一站式完整工具链。覆盖字符识别、缺陷检测、目标定位、尺寸测量、视频流等上百项通用功能,致力于成为全球用户量最多,落地场景最广泛的机器视觉低代码平台。

如果你的工业生产线中需要用到类似的机器视觉:视觉检测、视觉识别、视觉定位等技术,那么不妨和我们聊聊,我们会先根据你的需求分析,从专业的角度来给你一个合适的方案!

大家都在看