AI产品设计总结:AI产品的设计框架

19 评论 24158 浏览 108 收藏 12 分钟

文章为作者对人工智能领域产品的学习总结,主要内容为AI茶农的设计框架,希望此文能够给大家一些启发与帮助。

我是一名PC/移动互联网的产品经理,现在正在努力转型进入人工智能领域,这是我的第2篇学习总结。本篇文章总结了一个刚刚学习到的AI产品设计框架,框架中整合了很多目前AI方面的知识体系。也许这个设计框架能够给想学习AI的朋友们一个知识框架,也就是学习AI到底都要学习哪些知识的一个框架,希望借此文章能够给大家抛砖引玉,与大家共同学习。

本文分为两个主要章节。首先,从基础概念的角度给大家介绍一下这个产品设计框架。第二章则使用了一个小示例来讲解如何应用框架。

一、AI产品设计框架基础知识

如上图,这就是本篇要讲解的AI产品设计框架。其中左侧的Agent就是今天的主角,可以称为“学习的基于效用的Agent”。这个名称中包含了三个部分,我们就先来解释一下这三个部分:

  • Agent:能够行动的某种东西。(第二章示例所讲解的Agent,对应的就是一个可以自主玩牌的Agent)。
  • 学习的Agent:可以简单理解为可以自主学习自我升级的Agent。

基于效用的Agent:可以简单理解为此类Agent在选择执行的行为时,总是选择期望能得到最大化收益的行为。

上图中右侧的是环境,也就是Agent所处的环境,可以理解为Agent的外部环境。这个环境可以是真实环境,也可以是网络虚拟环境。

Agent可以通过传感器来感知环境的当前情况,通过执行器对环境产生影响。举个例子:假如一个机器人Agent,就是将摄像头或麦克风作为传感器来获取图像与声音,将机器手臂与机器腿作为执行器来进行特的定操作与移动物理位置。再比如微软的聊天机器人小冰也是一个Agent,只不过所处的环境是网络,他通过获取文字输入的接口作为传感器,通过发送回复信息的接口作为执行器。

已经讲解了最基本的一个Agent的结构情况,如果说想让Agent在环境下运行,那么首先要做的事情就是定义环境。

1.1 环境定义

Agent都会有其需要完成的任务,在设计Agent时,第一步就是尽可能完整地详细说明任务环境。任务环境的定义内容包括:性能度量、环境以及Agent的执行器与传感器,称之为PEAS描述(Performance(性能度量),Environment(环境),Actuators(执行器),Sensors(传感器))。我们通过以下描述来理解各个定义内容:

  • Agent在其所处的环境中,通过传感器收集感知信息,形成Agent内部的感知序列。
  • Agent在其所处的环境中,针对感知信息会生成一个行动序列,并由执行器完成。
  • 一个理性Agent,对每一个可能的感知序列,根据已知的感知序列和Agent具备的当前知识信息,选择能使其性能度量最大化的行动。

下面给出一个示例:

1.2 基于效用的Agent的设计

定义好环境,我们就要回到对主体Agent的设计上来了。

上图就是基于效用的Agent的设计框架。其中,矩形表示Agent决策处理过程,椭圆形表示对应处理过程所中用到的背景知识信息。

下面我们将按照Agent的处理顺序依次说明每一个处理步骤的具体处理方法,并且会说明每一个步骤为下一步骤所输入的信息。

1.3 学习的基于效用的Agent的设计

以上已经完成了对一个基于效用的Agent的设计描述。但真的一个智能Agent就这样就完成了么?如果对于一个不能自主学习并进化系统逻辑的Agent,还不能称其为智能化的。那么我们只需将上述的Agent设计加入一个能够学习的环境中即可。接下来我们看看能够学习的基于效用的Agent是如何设计的吧。

学习Agent可以被划分为4个概念上的组件:学习组件、性能组件、评判组件、问题产生器。在此部分中的性能组件,就是“学习的基于效用的Agent”中“基于效用的Agent”的整体。设计框架如下图所示:

下面将对于除性能组件外的其他组件进行简单说明:

  • 学习元件:利用来自评判元件的反馈评价Agent做的如何,并确定应该如何修改性能元件以便将来做得更好。
  • 评判元件:根据固定的性能标准告诉学习元件Agent的运转情况。评判元件是必要的,原因是感知信息自身无法指出Agent的成功程度。性能标准是固定的。概念上说,应该把性能标准置于Agent之外加以考虑,理由是Agent不应该修改性能标准来适应他自己的行为。
  • 问题产生器:负责可以得到新的和有信息的经验的行动建议。如果性能元件自行其是,他会一直根据已知的知识采取最佳行动。但是,如果Agent希望进行少量探索,做一些短期内可能次优的行动,那么他也许会发现对长期而言更好的行动。问题发生器的任务就是建议探索性行动。它的目标是发现一种更好的物体运动的理论并改进自己的头脑。

到现在为止我们已经简单了解了如何搭建一个“学习的基于效用的Agent”。此时是不是非常希望从概念的层次实操一把?由于笔者正在学习AI的入门阶段,还没有真正了解到每个具体概念的应用方法,因此我也只能从最表面的层次演练一下。对于没有描述清楚的内容,笔者会在今后的学习中逐步完善并分享。同时,如果文章中存在错误,也希望大牛们多多指出。

二、一个简单的产品定义示例

下面将要分享的简单事例是《自动斗地主Agent》,一个YY的成果,自己玩耍而已大家不要太过认真。

我的想法是,设计一款能够自主学习优化并且帮我最大化获胜的某个移动端斗地主App游戏的智能自动化游戏Agent。

第一步:首先定义一下游戏的环境

模型信息:关于独立于Agent的世界如何变化的规则信息与Agent自身的行动会影响世界的规则信息,此处会将游戏中对于斗地主的全部规则录入,诸如:发牌规则、叫地主规则、出牌规则、加分规则、获胜规则等等。并且会录入一般化的出牌策略,诸如:压制策略、辅助同伙策略等等。

第二步:对于基于效用的Agent,我们做如下定义

  • 效用判断的规则信息:这里根据环境中已经出过的牌,每个选手的出牌历史、角色以及猜测可能剩余的牌等信息,判断出最能符合最大化收益的出牌行为。
  • 传感器就是获取环境中当前的游戏状态信息,如:谁出了什么牌等;
  • 执行器就是能够模拟手机点击来执行叫地主、出牌等操作;

第三步:对于学习的Agent,我们做如下定义

  1. 性能标准:根据初始时手中的牌、过程中的得分情况与最终完成后其他选手中剩余牌的情况给出一个对于一轮玩牌结果的奖励或惩罚的分数。
  2. 学习组件:会不断对更为一般化的开局与出牌策略、更为一般化的农民合作策略、针对识别某个人或某种类型的人的开局与出牌策略、如何试探其他玩家的出牌策略等策略提出学习目标,并根据结果修正Agent中的效用判断。

好了,其实我也只能定义到这里了,后面我还会根据学习成果来不断补充这些信息。由于此处内容纯属我个人的理解,可能存在错误的认识,希望大家指正。

附:我的学习计划

  • 《人工智能:一种现代的方法(第3版)》
  • 《深度学习》书籍中的数学知识
  • 《终极算法:机器学习和人工智能如何重塑世界》
  • 《传感器实战全攻略》
  • 《数学之美》

 

本文由 @howie杨 原创发布于人人都是产品经理。未经许可,禁止转载。

题图来自PEXELS,基于CC0协议

更多精彩内容,请关注人人都是产品经理微信公众号或下载App
评论
评论请登录
  1. 刚刚转到产品岗位,想往AI PM方向发展,但不知道从何入手,请问有什么书籍推荐吗

    来自浙江 回复
  2. 老杨,在这里又看到你的文章了

    来自北京 回复
    1. 🙂

      来自北京 回复
  3. 您好,我目前也在考虑转型到AI产品经理,但了解甚少,还没有明确的学习切入点,会持续关注您 有问题会留言向您请教

    来自浙江 回复
    1. 一起学习交流吧,我也是正在学习转型中

      来自北京 回复
  4. 做了这么久的AI产品经理第一见过这种操作。。。。

    来自福建 回复
    1. 有啥问题,欢迎指点

      回复
  5. 我个人理解:这些是套路化模式化的东西,有可能跟您移动端产品经理的工作经验有关。我觉得了解ai产品的输入输出更为重要,哪些东西现在能够实现,做的必要性是什么。了解这些技术边界之后再套这些外部模型效果会更好一点。个人愚见,欢迎讨论。

    回复
    1. 谢谢白衣卡尔,非常受用,非常希望有过从业经验的朋友一起讨论与指点。以上文章内容是来自《人工智能:一种现代的方法》中总结的内容,不过目前也暂停了该书的学习。
      我目前的感觉也偏向学习基础的数学知识与机器学习技术,因此目前转向学习《终极算法》与《数学之美》这两本书。不知道这个方向是否更易于入门?

      来自北京 回复
    2. 哈哈,咱们都是一样,我也不是科班出身,我是学物理的。目前正在学习深度学习,运用pytorch跑跑demo,个人觉得只有在真正实践过程中才能体会到需要什么,要实现什么,比如说我输入的是图片,输出的是语音,这就是看图说话。虽说不求将代码里面的细节全部掌握,但是至少要熟悉流程,就跟您做产品经理一样要能跟程序员交流,尤其目前ai产业还是以技术为导向,落地需求各大公司正在探索,所以说懂一点基本的程序还是要的。个人见解,欢迎讨论。

      回复
    3. 其实关于如何自学深度学习,知乎上有许多建议,您不妨看一下,主要还是兴趣爱好,如果真的想学这些都不是困难,正向您说的,转型人工智能,我已在路上。如果您有问题,欢迎加我的微信pkuphykale,我们共同讨论共同进步。

      回复
    4. 非常感谢,内容非常受用。我目前也正在考虑学习python呢,就是还没有决定好啥时候开始学习,一会儿加微信,一同学习讨论

      来自北京 回复
    5. 机器学习或者深度学习只是解决了无法构建规则或者细化标准的情况下的一种方法,AI本身是提高效率,将人类对事务的优化、总结的想法用计算机的方式落地,至于什么方法不重要,作业介绍的是一种产品框架思路,本身是没问题,问题是现实生活中很多的事情无法用规则或者标准去建模。也就是学习器设计的难道。

      来自台湾 回复
    6. 非常赞同,随着学习的深入,目前的观点也有所调整,AI代表的是劳动力,替代技能性工作的一种技术,至于是什么样的方法确实不很重要。非常感谢回复

      来自北京 回复
  6. 本文的内容是学习《人工智能:一种现代的方法》后的总结,可能与实际工作中的AIPM有一定差别。大家可以参考这个框架对AI产品有一个轮廓性的认识,之后可以根据兴趣选择学习具体的知识领域。目前我在学习的内容就是数学基础知识、机器学习以及深度学习方面,文中的结尾处也给出了建议的书籍,请大家参考。

    来自北京 回复
  7. 你的文章也给我了踏出AIPM一定的启迪和方向,会持续关注你,共同成长。

    来自北京 回复
    1. 非常感谢,一起在路上,一同探索

      来自北京 回复
  8. 很抱歉,可能由于鄙人对AI技术了解不多,拜读完您的文章有点没太看懂。哈哈

    来自吉林 回复
    1. 谢谢评论。我也是刚开始学习这方面的技术,上述内容是总结自一本大学人工智能教材。
      总结的目的是对未来所要学习的内容建立一个基本的认识。基于文中的内容,我理解如果最终想完成AI产品的设计,需要具备线性代数、统计学、概率论等基础知识,需要深入了解框架中学习组件,并且对市场上的传感器与执行器有一定程度了解。
      对于学习组件,我理解需要补充机器学习与深度学习的知识,因此选择了《终极算法》这本书继续进行学习。对于数学知识方面,我选择了《数学之美》这本书。
      也许是我掌握程度不佳,后续会继续深入学习,并且文章并不属于科普型内容,因此较难理解。
      如果对这方面感兴趣,希望能够继续讨论,如有错误的地方也希望能给与帮助指导,谢谢!

      来自北京 回复