Py学习  »  机器学习算法

如何开发面向企业的机器学习应用软件

新机器视觉 • 4 年前 • 363 次点击  

点击蓝字关注我们






如今,大多数企业依赖机器学习(ML)应用程序来了解商机、识别市场趋势、预测客户行为和价格波动,以及做出正确的业务决策。开发这些机器学习应用程序需要遵循严格的计划和步骤。问题构建、数据清理、特征工程、模型培训和提高模型精度是开发机器学习应用程序可以遵循的几个步骤。

机器学习是人工智能技术的一个子集,它不仅有助于决策,而且有助于理解历史数据。机器学习是一种在数据中发现模式并围绕这些发现建立数学模型的技术。

一旦我们建立并训练了一个机器学习算法来形成这些数据的数学表示,我们就可以使用这个模型来预测未来的数据。例如,在零售业,根据历史购买数据,我们可以使用学习的算法预测用户是否会购买特定产品。

机器学习算法的类型

机器学习算法可以分为三类:

1.监督机器学习

2.无监督机器学习

3.强化机器学习

在企业中,我们大多使用有监督的机器学习算法来执行诸如分类(二进制和多类)、活动监视、预测数值等任务。我们还将无监督机器学习技术用于一些应用,如分组或聚类、降维和异常检测。

虽然这两种方法对企业都有许多实际意义,但强化学习(RL)对于交通行业的路径优化等业务应用非常有限。然而,RL正经历着广泛的研究,慢慢地取代了有监督和无监督的学习。相信我,RL拥有商业的未来,而且是超级强大的。

典型案例

为什么强化学习如此强大?

这是AlphaGo和AlphaGoZero的故事。

围棋是世界上最古老的棋盘游戏。它是如此的复杂,如果你从空板上计算所有的组合,它将有超过宇宙中粒子总数的组合。

DeepMind建立了基于强化算法的AlphaGo算法,通过分析游戏和与真实玩家比赛来学习。2015年10月,它以5比0战胜了职业球员范辉。

2016年3月,AlphaGo的对手是围棋冠军李世石(Lee Sedol)。每一位围棋专家都确信,李世石(Lee Sedol)将很容易以5比0击败AlphaGo。

Deep Mind再次邀请樊辉来检查AlphaGo在当时是如何通过强化学习算法成为一名训练有素的棋手的,以及它的进步有多大。在检查过程中,樊辉发现AlphaGo有一个很大的弱点,但是没有时间去纠正它。

令所有人惊讶的是,AlphaGo以4比1赢得了比赛。李世石发现了AlphaGo的弱点,并在第四轮战胜了AlphaGo。然而,AlphaGo只用了一场比赛就提高了自己的能力,尽管实力较弱,但还是在第五轮战胜了李世石。

AlphaGo是通过视频来学习围棋的。下一个版本名为AlphaGoZero,它只是通过与自己对弈和提供基本规则来学习这款游戏。在短短三天的训练中,它就超越了AlphaGo的能力,后者击败了世界冠军李世石(Lee Sedol)。

虽然这是通过强化学习实现的,但在其中,他们使用深度卷积神经网络(CNN)来处理图像。CNN是一种广泛应用于商业应用的深度学习算法。

何时使用机器学习

机器学习是一个强大的工具,但不应该经常使用,因为它的计算范围很广,需要定期培训和更新模型。有时候,依靠传统软件比机器学习要好。

对于某些用例,我们可以在不需要机器学习的情况下构建一个健壮的解决方案,它可以依赖于规则、简单的计算或预先确定的过程来获得结果和决策。这些东西很容易编程,不需要任何详尽的学习。因此,专家建议在某些特殊情况和场景中使用机器学习:

有两种情况我们可以使用机器学习解决方案:

1.无法代码规则:

任务不能通过部署一套rulesDifficulty识别和实现

识别和实施规则困难

多个规则齐头并进,很难编码

其他因素使基于这些因素的规则编码变得困难

重叠规则呈现不准确代码

2.数据规模高:

当您可以从几个样本中定义规则,但是很难扫描数百万个数据集以获得更好的预测时。

机器学习可以用于上述两种情况,因为它提出了一个包含规则的数学模型,可以解决大规模的问题。

开发机器学习应用程序的步骤

构建机器学习应用程序是一个迭代过程,并遵循一组序列。以下是开发机器学习应用程序所涉及的步骤:

问题框架

第一步是根据我们想要预测的以及我们必须做出这些预测的观测数据类型来构建一个机器学习问题。预测通常是一个标签或目标答案;它可以是是/否标签(二进制分类)或类别(多类分类)或实数(回归)。

收集和清理数据

一旦我们确定了问题的框架并确定了我们有什么样的历史数据用于预测建模,下一步就是从历史数据库、开放数据集或任何其他数据源收集数据。

并非所有收集的数据对机器学习应用程序都有用。我们可能需要清理不相关的数据,这些数据可能会影响预测的准确性,或者在不帮助结果的情况下进行额外的计算。

准备ML应用程序的数据

一旦数据准备好用于机器学习算法,我们就需要以ml系统能够理解的形式转换数据。机器无法理解图像或文本。我们需要把它转换成数字。它还需要根据机器学习应用程序的需要构建数据管道。

特征工程

有时原始数据可能无法揭示有关目标标签的所有事实。特征工程(feature engineering)是一种将两个或多个现有特征与更相关、更合理的算术运算结合起来创建附加特征的技术。

例如:在计算引擎中,ram和cpu的使用率通常达到95%,但当ram使用率为5%而cpu为93%时,情况就很糟糕了。我们可以将ram对cpu的使用率作为一个新特性,这可以提供更好的预测。如果我们使用深度学习,它会自动构建特性本身;我们不需要显式的特性工程。

训练模型

在训练模型之前,我们需要将数据分割成训练和评估集,因为我们需要监控模型对不可见数据的泛化程度。现在,算法将学习特征和标签之间的模式和映射。

根据激活函数和算法的不同,学习可以是线性的,也可以是非线性的。影响学习和训练时间的超参数有很多,比如学习速度、正则化、批量大小、遍历数(历元)、优化算法等等。

评估和提高模型精度

精确度是一种度量方法,用来知道一个模型在一个不可见的验证集上的表现是好是坏。基于当前的学习,我们需要评估一个模型在一个验证集上的表现。根据应用程序的不同,我们可以使用不同的精确度度量方法。例如,对于分类,我们可能使用精度和召回或F1评分;对于对象检测,我们可以使用IoU(联合之上的交互)。

如果一个模型做得不好,我们可以将问题分为1)过拟合和2)欠拟合。

当一个模型在训练数据上做得很好,但在验证数据上做得不好时,它就是过拟合场景。不知何故,模型不能很好地推广。该问题的解决方案包括正则化算法、减少输入特征、消除冗余特征以及使用k-fold交叉验证等重采样技术。

在拟合不足的场景中,模型在训练和验证数据集上都做得很差。解决这个问题的方法可能包括使用更多的数据进行培训、评估不同的算法或体系结构、使用更多的遍历、测试学习速度或优化算法。

经过迭代训练,算法将从输入数据中学习一个表示这些标签的模型,该模型可用于对不可见数据进行预测。

与生产中的模型一起服务

经过训练,该模型对未知数据的处理效果良好,可用于预测。这对企业来说是最重要的。这也是面向业务的机器学习应用程序最困难的阶段之一。在此阶段,我们将模型部署到生产环境中,以便对实际数据进行预测,从而得到结果。

结束

机器学习是一种使能技术,但如果我们不按照正确的计划和执行对算法模型进行培训和学习,我们可能会失败。因此,对于想要构建复杂机器学习系统的企业来说,雇佣人工智能和机器学习服务提供商并专注于它们的核心竞争力始终是一个好主意。

 小编推荐HOT

视觉+机器人,如何实现连接器的自动装配?

机器视觉在制造业应用的10个案例 

机器视觉技术发展的五大趋势 

搞懂机器视觉基本内容,这份PPT就够了!

机器视觉系统集成发展的现状和前景 

2019年光技术发展的十大趋势 

机器视觉:PC式视觉系统与嵌入式视觉系统区别  

干货:变成计算机视觉大师,需要经历的几个阶段  

计算机视觉和图像处理之间有什么区别?

基于HALCON的机器视觉开发,C++或C#如何选择?


 End 

商务合作:QQ1504328545

声明:部分内容来源于网络,仅供读者学习、交流之目的。文章版权归原作者所有。如有不妥,请联系删除。

更多是视觉资讯尽在“新机器视觉”微信公众号~


Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/39905
 
363 次点击