AI 开发指南:机器学习产品是什么?
为什么管理机器学习(ML)产品比一般软件困难? 「实验」是关键!
关于管理AI产品,我认为最重要的几件事:
- 机器学习(ML)产品管理比一般软件更具挑战性,因为它涉及更多的不确定性。 不仅需要技术上的改变,还需要组织上的改变。
- ML最适合做出决策或预测。
- ML产品经理最重要的工作:明确定义问题,确定需求,设定衡量成功的标准,并为ML工程师提供足够的空间和时间探索解决方案。
- 从第一天就开始计划数据策略(Data Strategy)。
- 构建ML产品是跨领域的,不只是数据科学。
在《AI重新定义机器人》文章中,我提到了ML带来的最大不同是:
让机器从依赖人工编写程序,转向真正的自主学习。
机器不需要人工指示,而是自行根据数据中识别出的模式,进行预测和改进。 这就是为什么ML特别适用于那些,以往难以明确解释定义的问题。 这也代表ML可以使你的产品更个人化,更自动化,和更精确。
先进的算法,大数据,和硬件价格下降,成为ML成长的主要驱动力。
AI已在各个领域逐渐被采用。 麦肯锡 (Mckinsey)最近的报告中显示,近一半的公司在其研发流程中整合了AI,另外有30%的公司正在试验AI项目。
不难看出为什么,许多人预期ML将比移动技术带来更巨大的产业变革。但是,与此同时,公司引进ML的难度,也可能比当年采用移动技术更高数倍以上。 为什么呢? 在讨论具体原因之前,让我们先一起聊聊什么是ML。
机器学习(ML)三大类型:监督学习、无监督学习、强化学习
AI人工智能并没有一个普遍被认同的定义,而且它的定义不断在改变。 一旦某项任务能够成功被机器执行,该任务就不再属于AI的范围。
ML是AI的一部分。 Carnegie Mellon大学教授汤姆· 米切尔(Tom M.Mitchell)将机器学习定义为对一种,「允许程序根据经验自动进行改进」的算法。
机器学习有三种主要类型:
- 监督学习(Supervised Learning) :最常见和最被广泛使用的类型。 这些算法从被事先标记好的数据(labeled data)中学习,大多时候被用以预测结果。 例如,给予机器大量标记好的动物图片,让机器学习判断猫和狗。
- 无监督学习(Unsupervised Learning) :无监督学习算法不需要事先标示,而是直接从数据学习判读模式。 它可以用于聚类(clustering),关联(association) 和异常检测(anomaly detection)问题。 另外还有半监督学习,是监督学习与非监督学习之间的混合体。
- 强化学习(Reinforcement Learning) :算法藉由得到环境中的反馈而学习。 RL通常用于机器人技术,或自动驾驶汽车等控制领域。 例如将目标函数(Objective Funcion)设定为「成功从A点移动到B点」,每次机器人成功到达B点,就会得到正面响应(reward),一直到重复直到机器人学会执行这项任务为止。
机器学习产品的类型
根据产品的类型和核心价值的来源,你将需要不同技能,并且专注于产品的不同面向。
用户是企业,还是一般消费者?
像Alexa或Google Assistant这样的消费性ML产品,具有更强的社交互动成分。因此,用户体验(User Experience)在设计消费类ML产品中扮演着极关键的角色,而ML技术则往往是达成更好用户体验的方式之一。
例如,NLP(自然语言处理)被用于达成Alexa及用户之间更自然的沟通。 另一方面,B2B的ML产品对应的是企业,甚至是工业用户(例如用于预测工厂仪器维护时程的算法),其核心价值往往来自预测的准确性,而非UX。
这并不是说UX对面向企业的ML产品不重要。 而是,当你的资源有限,并且需要集中精力优化产品的某些部分时,就需要考虑这个问题。
你要设计的是ML产品? 或是将ML应用到你的产品中?
如果你产品的核心价值来自ML模型,那么你很可能正在设计一个ML产品。 相反的,如果ML仅用于增强产品的用户体验或部分性能,那么你很可能正在将ML应用于产品上。
在第二种情况下,身为产品经理,你不应该花太多时间顾虑技术细节;像是「ML模型是以CNN(卷积神经网络)还是R-CNN为基础」,而是应该花时间了解模型的输入(input)和输出(output)。
举例来说,你要使用的这个ML模型,采用用户的人口统计数据(input)来预测用户在平台上的每月支出(output)? 另一方面,设计ML产品通常需要PM具备更高的技术能力,以帮助团队确定关键决策和权衡取舍。
产品类型也会影响组织结构。 对于研发机器学习产品的公司,或像Facebook和Google这类在ML上投入大量资金的的大型公司,通常会雇用机器学习研究人员或数据科学家,并将他们与机器学习工程师组成团队。
相反的,对于想将ML应用于其产品的公司,或资源有限的小型公司,最好的策略是雇用跨领域的ML工程师,或培训软件工程师学习ML,而不是雇用ML研究人员。
构建ML产品通常是跨领域的
研发机器学习产品很少会只涉及ML。 它通常是跨领域的,不仅涉及ML模型设计及训练,还涉及软件工程,后端结构,数据分析,UX / UI设计,甚至是软硬件整合等等。
产品经理需要能够管理跨职能的团队,并处理团队之间的相互依赖和潜在冲突。 ML从根本上不同于其他学科,这点会在下一段进一步说明。 如果你要设计和现实世界互动的ML产品(例如机器人技术或自动驾驶汽车),情况将变得更加复杂。
PM需要知道使用ML可以做什么,和不能做什么,何时应该使用ML和何时不应该使用ML。
其他需要理解的关键ML概念
过拟合(Overfit)
是一种常见的错误类型,当机器学习模型过于匹配特定的数据集时发生。 可靠的ML模型不仅在「训练数据集」(training dataset),也在「验证数据集」(validation dataset)上表现良好。 但是,在过拟合的情况下,训练数据的表现会变好,但对于没有看过的,验证数据的表现却反而会变差。
深度学习(Deep Learning)
主要用于图像分类。 DL使用深度神经网络,并以卷标图像作为输入。 神经网络的每一层,都会将输入转换为稍微抽象和复合的表示形式。 最终,模型将能学会识别图像中的内容。
自然语言处理(Natural Language Processing)
这是计算机科学中的一个领域,目的是使机器可以理解人类语言,但不一定涉及ML。 NLP通常用于聊天机器人、语音助手、或是预处理数据。
管理机器学习产品的挑战
实验是机器学习的关键部分
ML也会用到程序代码和数据,但若因此就认为ML与软件工程本质相同,那就大错特错了。
与软件工程不同,开发ML产品需要进行更多的实验,涉及更多的不确定性和可变性。 软件工程是一个为机器编写规则的确定性过程,而机器学习则具有更高的机率性,因为它可以自行学习,而不需要我们来编写规则。
例如,如果你想教机器识别猫。 透过软件工程,你可能会想出「一只猫有四只腿和两个尖尖的耳朵」这样的明确规则。
但如果使用深度学习,要做的就不是提供明确的规则。
而是为机器提供一堆猫的照片(事先标记好这些是猫的图像),然后让机器自行学习,摸索出规则。
你和你的团队要做的是:定义问题,准备数据,建立机器学习模型,测试和迭代,直到你拥有可以提供所需结果的模型为止。
这就是为什么在开发ML产品时通常需要承担更多的风险。 对于产品经理而言,重要的是要帮团队建立正确的期望,以避免团队之间可能发生的冲突。
例如,软件工程师可能会觉得,ML团队没有给他们足够明确的需求。 但这并不一定是ML团队的问题,在实验阶段,就连ML团队也很难预测最后模型的表现是好是坏。 这时让其他团队了解ML产品的实验本质就很重要。
让工程师与研究人员,数据科学家紧密合作也很重要,这样他们才能彼此平衡,不让产品研究失焦。 更重要的是,最好早点开发出可供测试的产品,定期测试,以确保ML团队所用的算法与产品目标一致。
开发ML是一个高度迭代的(iterative)过程
正如前面提到的,ML非常适合解决人类无法明确定义的复杂问题。 模型需要训练,测试和调整。 通常,数据科学家在选择令人满意的方法之前,必须先测试好几种方法。 这就是为什么通常很难定义ML产品的里程碑和时间表。
也因此,对于产品经理来说,明确定义需求,设定产品成功标准,并确保团队经常根据所需标准来测试ML模型,都是相当重要的。
除技术挑战外,还有更多的组织结构挑战
因为ML与软件工程本质截然不同,所以更需要进行一些根本性的组织变革:例如尊重实验文化,数据分析驱动的思维方式,以及对不确定性的包容。
如果将机器学习视为纯粹的技术问题,而忽略了相关的组织变革,公司很可能会面临所谓「创新者的困境」(The Innovator’s Dilemma)。 这对机器人制造商等硬件公司来说尤其具有挑战,因为它们对于过去一直追求高精度,然而,ML虽然会随着数据增加而进步,却通常无法在一开始就达到100%精准。 此外,机器学习产品需要大量的数据,所以业者必须建立自己的数据管道和基础架构,以支持ML产品的扩展。 对大多数的公司来说,这也是一个全新的课题。
机器学习仍然是一个新领域,并且会不断发展
「软件工程」一词最早于1965年出现,也就是程序语言出现15年后。 大约20年后,软件工程学院才成立,以管理软件工程开发流程。 今天,我们已经找到了软件工程的最佳实践(best practice)。
反观机器学习,在1990年才开始作为一个单独的领域而蓬勃发展。 深度学习是ML的一部分,它在图像识别和NLP等领域创造了新的记录,但直到2012年AlexNet出现之后,才被大众广泛讨论。
与软件工程相比,ML仍处于起步阶段,因此仍缺乏行业标准,衡量指针,基础架构和开发工具。 因此,相关企业仍在探索最佳作法和热门应用。
机器学习产品的可解释性和透明度
机器学习算法就像一个黑盒子,它接受输入(例如图像)并输出预测(例如图像中的人物是什么)。 这使得产品经理很难解释ML模型是如何运作的,也很难从用户和相关单位得到全面支持。
尤其是在医疗保健等关键领域,责任归属和信息透明度至关重要。 在没有清楚地了解算法实际工作原理的情况下,确保ML模型与产品目标之间的一致性是一项艰巨的挑战。
面对这些挑战,我们应该如何管理机器学习产品? 在第二部分中,我将分享我所学习到的最佳作法。
作者:Bastiane Huang。目前在旧金山担任 AI/Robotics新创公司产品经理,专注于开发机器学习软件,用于机器人视觉和控制。 她拥有近10年产品及市场开发管理经验,并在美国《机器人商业评论》及《哈佛商业评论》发表文章及个案研究。
本文由@Bastiane 原创发布于人人都是产品经理,未经许可,禁止转载
题图来自Unsplash,基于 CC0 协议。