在你作为项目经理的职业生涯中,肯定参与过各种 IT 项目,从复杂的单体建筑到软件即服务网站 (SaaS Web)应用程序。然而,随着人工智能和机器学习的发展,越来越多的具有各种需求和问题的新项目正在出现。
对于技术项目经理来说,由于这些技术的发展,与这些想法建立积极的联系比以往任何时候都更加重要。根据高德纳公司(Gartner)的数据,到2020年,人工智能将创造230万个就业岗位,超过它将减少的180万个,到2021年,人工智能将为经济增加2.9万亿美元的价值。谷歌的首席执行官甚至说:“人工智能是人类正在从事的最重要的项目之一,其地位甚至更深重于火与电。”
能够利用这个机会的技术项目经理必须意识到人工智能项目管理与其他形式的项目管理的区别,以及他们如何为不断变化的业务环境做好最好的准备。人工智能应用已经在颠覆从金融到医疗保健的各个行业。
理论:人工智能与机器学习意味着什么
深入研究之前,清楚了解什么是人工智能至关重要。让我们从最常用词的含义开始,因为它们中的许多词经常在相同的上下文中使用。
人工智能(AI)
模式识别、学习和泛化是人工智能(AI)可能解决的几个问题,人工智能是计算机科学的一个分支。
通用人工智能(AGI),指的是具有真实认知的具有自我意识的计算机程序,是近年来被过度使用的一个词组。然而,在可预见的未来,大多数人工智能系统将是计算机科学家所称的“狭义人工智能”,这意味着它们将被创建为非常出色地执行单一的认知工作,而不是真正独立地“思考”。
机器学习 (ML)
被称为“机器学习”的人工智能分支使用统计方法使计算机无需显式编程即可从数据中学习。
由于各种机器学习技术在人工智能领域的成功,许多企业现在可以互换使用人工智能和机器学习这两个术语。需要明确的是,人工智能包括学习以及其他能力,而机器学习是指程序的学习能力。
人工智能和标准算法之间的区别
人工智能一个重要教训是,它的算法广泛使用数据来修改其内部结构,以便根据先前提供的数据对新数据进行分类。我们没有严格遵循代码中包含的分类指令,而是将其称为从数据中“学习”。
想象一下,我们想要创建可以区分卡车和汽车的软件。在传统的编程方法中,我们会尝试创建一个程序来搜索某些暗示性的属性,例如更大的轮子或更长的车身。这些功能的外观和位置必须在代码中明确指定。创建这样的软件极具挑战性,极有可能产生误报和误报,甚至最终可能无法使用。
在这种情况下,人工智能算法非常有用。一旦人工智能算法经过训练,我们就可以为其提供大量实例,它会调整其内部结构,开始寻找对准确分类图像很重要的特征,而不仅仅是依赖于静态的、预先确定的特征定义。
行动中的人工智能项目管理
数据是重中之重
因为我们不擅长处理大量数据,所以我们可以访问的大量数据有时会阻止我们直接使用它。人工智能系统可以在这种情况下提供帮助。
人工智能系统的预测与其数据一样准确的想法是该领域的基础。例如,具有一百万个数据点的算法将比具有 10,000 个数据点的算法执行得更好。此外,据波士顿咨询公司(BCG) 所言,“许多公司并不理解数据和培训对人工智能性能的重要性。在许多情况下,对于开发智能系统来说,更好的数据比更好的裸算法更重要,这类似于人类的后天培养往往胜过先天的能力。
有了这些信息,项目过程将越来越多地包括准备和清理数据。由于大多数组织缺乏正确形式的必要数据,因此这一阶段通常是开发人工智能系统中劳动强度最大的阶段。因此,数据分析师可能需要一些时间来完成这一关键步骤。
此外,与典型的软件开发相比,数据基础架构的构建和数据清理任务更加线性,因此需要使用不同的项目管理方法。
总之,开发适当的数据基础设施并准备好数据使用可能比构建将处理数据的机器学习模型花费更长的时间。项目经理在管理团队、确定人工智能的范围和估算项目成本时必须考虑到这一点。
此外,应定期将新数据添加到数据集中。访问独特数据集的能力可能是决定哪种机器学习解决方案最有效的主要因素。为了让你的机器学习项目获得最佳性能,即使在启动之后,及时了解这一点也很重要。
人工智能开发的生命周期
标准系统开发生命周期(SDLC)以及各种方法和技术是如何影响它的,对于大多数人来说都是可以识别的。需要强调的是,随着人工智能的发展,该学科将面临新的障碍。人工智能开发的阶段可以分为构想和数据发现,确定最小化可行产品优先级,以及将最小化可行产品转化为成品。
理念和数据研究
机器学习产品的最终用户和可访问的数据池应该是这个早期阶段的主要关注领域。
通过从两个不同的角度处理问题,这些方法可以帮助项目经理迅速减少企业内部可获得的机器学习产品选项。顶级项目经理可以利用这个阶段,利用他们对机器学习领域的理解,更好地理解给定挑战的复杂性。在机器学习的世界里,事情发展得很快,最近的研究进展可能会大大简化某些具有挑战性的问题。
如前所述,必须在发现数据后对其进行清理和处理。尽管它们可能会被推进到冲刺阶段,但这种特殊的工作通常是在线性阶段进行的,不完全适合传统的项目技术,如敏捷或瀑布。数据清理通常是通过逐步扩大数据集和与其他开发过程同时准备数据集来迭代执行的。
将最小可行产品作为优先事项 (MVP)
当谈到机器学习产品时,有句格言仍然是正确的,那就是拥有一个更小的产品的功能性原型,而不是一个不完整的巨大产品。根据交付的速度和对业务的价值,对新的机器学习最小化产品进行优先级排序。如果你能够快速提供道具,这可能是整个团队的快速胜利,即使是较小的道具,你应该优先考虑这些产品。
以传统的敏捷方式准备这些最小化产品是一个好主意,开发团队应该专注于基于独立创建的、不断改进的数据集生成机器学习模型。数据团队不一定需要与创建最小化产品的团队在同一个组织下运作,这是一个至关重要的区别。
从最小化产品到完整产品
在这个阶段,数据基础设施变得至关重要。如果你的机器学习产品需要来自世界各地的高频应用程序接口访问,你现在应该考虑如何扩展基础架构以支持机器学习产品。
在这里,必须仔细考虑对机器学习模块的修改,以防止降低当前产品的功能。在实时部署之前,需要进行大量测试,因为使用新方法或数据集重新训练机器学习模块不一定会带来线性性能提升。尽管生成对抗网络 (GAN) 攻击和机器学习模块中的边缘案例测试仍处于起步阶段,但项目经理在使用实时机器学习产品时应牢记这一点。
人工智能开发生命周期中的重要位置
机器学习应用程序的开发需要大量数据,这为人工智能产品的标准系统开发生命周期引入了新的职责。数据科学家、数据工程师和基础设施工程师是你需要高度熟悉的三项工作,才能成为机器学习应用程序领域的成功项目经理。理解这些关键角色以及它们如何影响机器学习系统的开发至关重要,即使它们有时被称为机器学习科学家、工程师或基础设施专家。
数据专家
创建机器学习模型的人是数据科学家。他们根据对应用统计、机器学习和分析的深入了解结合概念,然后利用他们的发现解决实际的业务问题。
有时,数据科学家被比作更有经验的数据分析师。但是,数据科学家通常具有良好的编程能力,可以轻松处理来自许多数据中心的大量数据,并且熟悉机器学习。
他们还必须能够独立开展探索活动,查看数据以识别初步提示和见解,并扎实掌握数据基础设施和大数据挖掘。
Python、R、Scala、Apache Spark、Hadoop、机器学习、深度学习、统计、数据科学、Jupyter 和 RStudio 是基本编程语言的示例。
数据工程师
注于开发机器学习产品运行所需的基础设施和软件的软件工程师被称为数据工程师。虽然他们可能不是机器学习、分析或大数据方面的专家,但他们需要牢牢掌握这些主题才能测试他们的软件和基础设施。他们更喜欢专注于整体架构。这是正确应用数据科学家的机器学习模型并将其展示给现实世界所必需的。
Python、Hadoop、MapReduce、Hive、Pig、数据流、NoSQL、SQL、编程、DashDB、MySQL、MongoDB 和 Cassandra 是基本技能的示例。
环境工程师
基础设施工程师负责基础设施层,这是机器学习产品的基础。虽然此基础架构的一部分可能由数据工程师构建,但它通常构建在基础架构团队已建立和批准的层之上。
为了创建一个可扩展且有效的环境,让机器学习应用程序可以增长以服务数百万用户,基础设施工程师可以与各种机器学习团队的成员协作。除了照顾平台的软件需求外,基础架构工程师还与数据中心合作伙伴密切合作,以确保一切正常运行,从托管数据的物理放置到硬件。基础设施工程师在人工智能驱动的公司中越来越重要,因为这些因素对于机器学习计划变得更加重要。
Kubernetes、Mesos、EKS、GKE、Hadoop、Spark、HDFS、CEPH、AWS、云计算和数据中心运营是基本技能。端到端计算、IT 基础设施和服务管理。
当今常见的问题
随着人工智能和基于机器学习的技术变得越来越普遍,项目经理可能会遇到众所周知的和全新的问题。在整个过程中,从项目范围到结论,高级项目经理都强烈地意识到这些可能出现的问题。
检验真相
尽管人工智能很受欢迎,而且前景广阔,但你正在寻求解决的问题时可能并不需要复杂的人工智能解决方案。
许多预测问题可以使用更直接且在某些情况下更准确的统计回归模型来解决。在开始一个项目之前,对项目经理进行全面检查以确保情况确实需要机器学习是至关重要的。
有时将基于机器学习的解决方案与基本统计模型一起使用是有意义的。例如,如果你正在构建推荐引擎,那么从一个简单的解决方案和更短的开发周期开始是一个好主意,这将为后来的机器学习的模型提供一个坚实的基础。
人工智能的范围蔓延
机器学习项目中范围蔓延的最常见原因与试图同时 处理太多任务和低估数据准备所需的时间有关。
管理利益相关者,让他们意识到为了解决最初的问题,最好从小小胜利开始,而不是雄心勃勃的目标。在你构建和测试项目时,始终如一地传达此策略。
首先定义和测试简单、微小的原子特性。如果你面临具有挑战性的工作,请尝试将其划分为较小的项目,作为较大项目的可靠替代品。这些任务要实现的目标应该很容易解释。
例如,你可能会尝试猜测一个人是否会完全忽略广告,然后再尝试预测他们何时会点击它。这种方法简化了问题,并使当前的机器学习模型更容易预见和处理它。 脸书(Facebook) 创建了一个精彩的系列,进一步深入研究这个主题,更多地关注从模型创建到模型分发的机器学习管道。
确保你能够生成数据以支持你的机器学习工作,以解决范围蔓延的第二个原因。项目经理在开始机器学习计划时犯的最大错误是认为他们已经拥有所需格式的所需数据。管理此阶段至关重要,因为它通常是机器学习项目过程中最耗时的阶段。在开发任何机器学习功能之前,请确保你的数据科学家能够访问适当的数据并能够评估其准确性和有效性。
由于项目可能总是需要更好和更多的数据,因此准备好将数据标记和清理作为整个项目的持续活动,而不仅仅是作为开始。因为这个阶段不是最有趣的任务,所以把它分成几个冲刺,这样你的数据团队就可以看到他们的劳动成果,而不是处理无限积压的工单。
公司可能会与其他组织签订合同以标记数据。这可能会节省前期时间和金钱,但也可能导致数据不正确,最终阻止你的机器学习模型按预期工作。使用多重重叠策略来防止这种情况,其中每条数据在使用之前由许多人检查,只有当他们的发现一致时才使用。
在计划你的项目时,请为数据团队提供足够的时间进行更改,以防你的标签规范在项目中期发生变化并且需要应用新标签。
检查你的数据是否可以与当前的机器学习技术一起使用,而不是开发新的技术,因为这样做可能会显着延长项目的时间线和范围。请注意,如果你尝试解决以前未解决的机器学习问题,则很有可能会失败。尽管机器学习很受欢迎,并且已经写了很多关于它的研究论文,但解决机器学习挑战可能非常具有挑战性。与其尝试创建任何新东西,不如从已经拥有许多强大实例和方法的机器学习领域开始并努力增强它们通常更简单。
期望,用户体验和机器学习
每个项目经理都应该准备好考虑如何最好地领导团队生产他们正在生成的人工智能产品以及这些产品的用户体验。在一篇精彩的文章中,谷歌讨论了它对用户体验和人工智能的看法,并将重点放在了人类参与上。
如果你的机器学习解决方案必须与操作员一起使用或可能替换它们,则此概念尤其重要。系统的操作员和用户应该只感受到设计带来的绝对最小的压力。例如,聊天机器人通常依赖机器学习,但人类操作员可以随时轻松控制。
此外,机器学习解决方案的用户可能需要的数量可能远远超过他们能够提供的数量。对于项目经理而言,建立现实的期望至关重要,因为这通常是由媒体在撰写有关人工智能技术时产生的兴奋引起的问题。
仔细向你的利益相关者充分解释人工智能工具的功能,以便你可以在他们尝试该技术之前控制他们的期望。对于任何相关的项目经理来说,管理这些并告知他们的利益相关者关于人工智能及其真正的能力是至关重要的,因为良好的用户体验不能满足有错误期望的消费者。
人工智能和机器学习中的质量保证和测试实践
在目前的状态下,它是一个相对年轻的学科。现在,比以往任何时候都更多的应用程序正在使用深度学习来实现其目标。与这些新进展相关的独特困难,尤其是在测试方面。
彻底测试机器学习模型,尤其是那些使用神经网络创建的模型,比测试具有由人类开发的定义“规则集”的典型软件更具挑战性。大多数机器学习模型目前仅由数据科学家进行评估,并且没有太多商定的程序可以与传统的质量保证团队一起机器学习产品,以确保它们不会以意想不到的方式失败。
当开发出改变已知模型结果的新方法(如 GAN 攻击)时,综合模型测试将变得越来越重要。许多机器学习项目将把它作为首要目标,在未来几年,我们将看到更多的机器学习模型“集成”测试。如果你正在开发任务关键型机器学习产品,请务必牢记这一点,即使对于大多数简单项目而言,这可能还不是问题。
机器学习抄袭和欺诈建模
自从最初的研究在 2016 年的 USENIX 安全会议上提出并发表了这个连线故事以来,很明显可以窃取实时机器学习模型。
尽管成功地做到这一点仍然具有挑战性,但如果你的模型通过可广泛访问的应用程序界面运行,了解其潜力至关重要。从理论上讲,拥有足够访问权限的一方可能会根据你的网络训练自己的网络,并从本质上复制你的预测能力。
尽管发生这种情况的可能性仍然很低,但如果你的项目受到影响,请务必与你的团队合作,为潜在的攻击制定预防计划。
人才短缺
目前对顶级人工智能专业知识的需求正在推高招聘合适人员的成本。事实上,根据《纽约时报》的一项调查,顶级人工智能专业人士通过与重要的硅谷科技巨头合作,每年可赚取高达 100 万美元的收入。当你寻找人工智能专家加入你的团队时,请注意作为项目经理的这些动态,它们可能会影响你的招聘流程、支出或工作产品质量。
缺乏一流的数据科学家和工程师,不仅限于最近的深度学习算法背后的创造性大脑。
在像 Kaggle 这样的机器学习竞赛中,参与者可能会争夺高达 100,000 美元的奖金来解决具有挑战性的机器学习任务,许多最熟练的人都会参加。如果无法在本地找到机器学习专业人员,建议探索非常规的解决方案,例如远程雇用专业承包商或举办自己的 Kaggle 竞赛来完成最具挑战性的机器学习任务。
道德和法律上的困难
在项目管理中使用人工智能提出了两个不同的法律和伦理问题。
用于训练机器学习模型的数据是第一组困难的来源。了解所使用数据的来源非常重要,同样重要的是了解你是否拥有使用数据的合法权限以及必要的许可。
为了在部署对数据进行训练的模型之前解决这些问题(你可能没有适当的许可),与你的律师交谈总是至关重要的。项目经理应该确保他们的团队只访问他们有权使用的数据集,因为这个主题仍然处于初级阶段,而且这些问题的许多解决方案还不清楚。
这里是一个有用的数据集的选择,可以免费访问,用于训练机器学习算法。
第二组困难来自于控制系统中系统偏差的出现。最近发生了几起类似的事件,其中一家相机公司被迫承认,其微笑识别系统只识别某一种族的人,因为该系统只使用该种族的人脸数据进行训练。另一个例子是,一家著名的软件公司不得不在学习了几天后删除了它的自学推特(Twitter)机器人,因为一群网络喷子合作让它产生种族主义侮辱,并反复传播奇怪的理论。
在创建至关重要的系统时,项目经理应该确保他们考虑到这些可能性,并尽可能早地避免它们,因为这些问题的严重性可能很小,甚至会破坏项目。
坚实的结构建立在坚实的基础之上
总而言之,下一次人工智能革命将迎来一系列有趣的、动态的项目,这些项目通常包括改变的开发方法、不同的团队类型和新的困难。
顶级技术项目经理对每个项目阶段的复杂性以及与他们的团队一起实现什么是真正可行的,除了对人工智能基础知识有扎实的了解外,都有直观的感觉。由于人工智能不是商业上可用的现成解决方案,即使是想要购买特定机器学习解决方案的企业仍然需要花钱测试新想法并正确管理其基础设施和数据。
很明显,人工智能的发展正在改变软件产品的种类和生产方法。能够理解并将这些新想法付诸实践的项目经理将极大地帮助未来的机器学习产品。
作者的附加读物
深度学习和神经网络是两种理论
除了更常用的术语人工智能和机器学习神经网络 (NN) 之外,项目经理可能会受益于了解深度学习 (DL) 和神经网络之间的进一步区别。
深度学习
与传统的特定任务算法相比,深度学习是专注于学习数据表示的更大机器学习技术家族的成员。
尽管他们可能会使用各种附加技术,但大多数当代深度学习模型都是建立在人工神经网络上的。
神经网络
神经网络是相互关联的数学结构,具有生物学灵感,允许人工智能系统从提供给它们的数据中学习。
这些网络可以被认为是数以百万计的小门,响应我们的数据摄入,要么打开要么关闭。近年来图形处理器(GPU) 处理能力的发展使这些方法取得了成功,使我们能够迅速修改神经网络中更多的“小门”。
有多种神经网络,每种都有独特的应用集和复杂程度。可以使用卷积神经网络 (CNN) 或循环神经网络 (RNN)等名称来指代不同形式的神经网络架构。