你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

在机器教学和强化学习中使用行业专业知识

Azure
Azure 机器学习
Azure 容器实例
Azure 存储
Azure IoT

人工智能 (AI) 和机器学习 (ML) 为跨越虚拟和物理世界的运营提供了独特的机遇和挑战。 AI 和 ML 可识别现实世界输入数据和结果之间的相关性,并制定可实现复杂的物理工业系统自动化的决策。 但是,AI 机器学习系统无法执行更高级别的认知功能,如探索、即兴创作、创造性思维或确定因果关系。

机器教学是机器学习系统的一种新范例,用于:

  • 将行业专业知识注入到自动化 AI 系统模型。
  • 使用深度强化学习来识别学习过程中的模式,并在自己的方法中采用积极的行为。
  • 利用模拟环境为特定领域的用例和场景生成大量综合数据。

机器学习侧重于开发新颖的学习算法或改进现有算法。 机器教学侧重于教师自身的效能。 将 AI 复杂性抽象出来,以专注于行业专业知识和现实世界条件,并创建功能强大的 AI 和 ML 模型,用于将自动控制系统转变为自治系统。

本文讨论机器教学中所用的 AI 开发历史和概念。 相关文章详细讨论了自治系统

自动化的发展历史

数千年来,人类一直在设计物理工具和机器,以便更高效地执行任务。 这些技术旨在以更低的成本和更少的直接体力劳动来实现更加一致的产出。

第一次工业革命(十八世纪后期至十九世纪中期)引入了机器,以取代制造业中的手工生产方法。 工业革命通过蒸汽机实现自动化,并通过将生产从家庭转移到有组织的工厂来实现整合,从而提高了生产效率。 第二次工业革命(十九世纪中期至二十世纪初)通过电气化和生产线提高了生产能力。

第一次世界大战和第二次世界大战在信息论、通信和信号处理领域取得了重大进展。 晶体管的发展使得可将信息论轻松应用于控制物理系统。 第三次工业革命使计算机系统在生产、运输和医疗保健等物理系统的硬编码控制方面取得进展。 自动化编程的好处包括一致性、可靠性和安全性。

第四次工业革命引入了网络物理系统和工业物联网 (IoT) 的概念。 人类希望控制的系统已经变得过于庞大和复杂,无法编写完全规定的规则。 借助人工智能,智能计算机可以执行通常需要人类智能的任务。 借助机器学习,计算机无需显式编程即可自动学习并从经验中改进。

AI 和 ML

AI 和 ML 并非新的概念,许多理论数十年来从未改变,但最近在存储、带宽和计算领域的技术进步使算法预测变得更加准确和有用。 提高了设备处理能力,微型化、存储容量和网络容量可让系统和设备实现进一步自动化。 这些进步还可收集和整理大量实时传感器数据。

认知自动化指的是将软件和 AI 应用于信息密集型进程和系统。 认知 AI 可增强体力劳动者能力以提高生产力,在单调或危险的领域取代人类劳动者,并因其可处理大量数据而提供新的见解。 认知技术(如计算机视觉、自然语言处理、聊天机器人和机器人)可以执行以前只有人类才能完成的任务。

目前的许多生产系统都使用工业机器人在工程和制造领域实现了自动化和令人印象深刻的壮举。 工业自动化在制造业领域的使用和发展可产出更优质、更安全的产品,同时更高效地利用能源和原材料。 但是,在大多数情况下,机器人只能在高度结构化的环境中运行。 它们通常不够灵活,无法进行更改,也无法高度专业化地处理紧急任务。 由于控制其行为的硬件和软件规则,机器人的开发成本也可能十分高昂。

自动化的悖论宣称,自动化系统变得越高效,人为因素对运营的重要性就越大。 人类的角色从普通的每个单位工作劳动力转变为改进和管理自动化系统并贡献必要的领域专业知识。 虽然自动化系统可以更高效地生成输出,但如果设计不当或运行不正确,它也会造成浪费和问题。 如果高效地使用自动化,这会使人类变得更加重要,而不会变得不重要。

AI 用例

Diagram of the AI use case spectrum from augmentation to autonomy.

在上图中,“控制”和“优化”类别与工作自动化相关。 在 AI 范围的这一侧,实际上存在无限的问题空间。 行业专业知识是一种战略资产,模拟是最可行的训练选择,可解释性是最重要的。

业务流程协调程序包括智能制造Bonsai 机器教学平台。 用例包括高级机器人、自动驾驶汽车、黑灯工厂、智能传感器、路线优化、库存优化和虚拟助理。

强化学习

机器教学依赖于强化学习 (RL) 来训练模型和识别学习过程中的模式,并在自己的方法中采用积极的行为。 深度强化学习 (DRL) 将强化学习应用于复杂的深度学习神经网络。

机器学习中的 RL 关注的是软件代理如何学习在其环境中实现奖励和期望的结果最大化。 RL 是三种基本机器学习范例之一:

  • “监督式学习”通过标记数据或结构化数据进行泛化。
  • “非监督式学习”压缩未标记数据或非结构化数据。
  • “强化学习”通过反复试验发挥作用。

监督式学习是通过示例进行学习,而强化学习是从经验中进行学习。 与侧重于查找和标记合适的数据集的监督式学习不同,RL 专注于设计如何执行任务的模型。

关键 RL 组件包括:

  • 智能体:可以决定改变当前环境的实体。
  • 环境:在其中运行智能体的物理或模拟世界。
  • 状态:智能体及其环境的当前情况。
  • 操作:智能体在其环境中的交互情况。
  • 奖励:来自环境的反馈,遵循来自智能体的操作。
  • 策略:用于将智能体的当前状态及其环境映射到操作的方法或函数。

RL 使用奖励函数和策略来评估智能体操作并提供反馈。 通过基于当前环境的顺序决策,智能体学会了随着时间的推移来实现奖励最大化,并预测在特定情况下的最佳可行操作。

RL 通过奖励期望的行为(而不是奖励不需要的行为)来教智能体完成目标。 下图说明 RL 的概念流程和关键组件的交互方式:

A diagram of the reinforcement learning (RL) process showing key components.

  1. 智能体(在本例中为机器人)在环境(本例中为智能生产线)中执行操作。
  2. 该操作会导致环境更改状态,并将其更改后的状态返回给智能体。
  3. 评估机制应用策略来确定要向智能体传递的结果。
  4. 奖励机制通过提供积极的奖励来鼓励有益的操作,并可能通过提供惩罚来阻止消极的操作。
  5. 奖励会导致所需的操作增加,而惩罚会导致不需要的操作减少。

问题本质上可以是随机的,也可以是确定性的。 虽然一个智能体是最常见的,但在环境中也可以有多个智能体。 智能体通过观察来感知环境。 环境可以是完全可观察的,也可以是部分可观察的,具体由智能体的传感器确定,观察可以是离散的或连续的。

每次观察之后都会执行一个操作,这会导致环境发生变化。 此循环会重复,直到达到最终状态为止。 通常,系统没有内存,算法只关心其来自的状态、到达的状态和获得的奖励。

当智能体通过反复试验进行学习时,它需要大量数据来评估其操作。 RL 最适合具有大量历史数据体或可以轻松生成模拟数据的领域。

奖励函数

奖励函数用于确定奖励特定操作的数量和时间。 奖励结构通常由系统所有者定义。 调整此参数会显着影响结果。

智能体使用奖励函数来了解其周围世界的物理和动力学。 至少在最初,智能体学习最大化其奖励的基本过程是反复试验。

探索与利用的权衡

根据目标和奖励函数,智能体必须平衡探索与最大化其奖励。 此选项称为“探索与利用的权衡”。 与现实世界的许多方面一样,智能体必须平衡进一步探索环境的优点,这可能会导致未来制定更好的决策,通过对环境的利用,使用智能体当前所拥有的关于世界的所有知识来最大化奖励。 采取不同的操作可提供一个全新的视角,特别是如果从未尝试过这些操作。

以下训练仪表板显示探索与利用的权衡。 该图表显示连续奖励和回合奖励,其中回合奖励位于 y 轴上,训练迭代位于 x 轴上。 在前 50,000 次迭代中,回合奖励密度上升到 400,然后保持稳定,直到 400,000 次迭代,随后密度上升到 1,500 并保持稳定。

Reinforcement learning reward: chart showing exploration versus exploitation trade-off.

眼镜蛇效应

奖励取决于经济学领域中所谓的“眼镜蛇效应”。 在英国对印度的殖民统治期间,政府决定通过针对每条死去的眼镜蛇为人们提供奖励,以此来扑杀大量的野生眼镜蛇。 最初,这项政策取得了成功,因为人们为获得奖励而杀死了大量的眼镜蛇。 然而没过多久,人们就开始钻这项制度的空子,通过故意养殖眼镜蛇来获取奖励。 最终,当局政府注意到了这种行为并取消了该计划。 在没有进一步的激励措施的情况下,眼镜蛇饲养者们放生了他们的蛇,结果,与激励措施开始时的野生眼镜蛇数量相比,野生眼镜蛇的数量反倒增加了。

善意的激励措施并没有使情况变得更好,反而变得更糟了。 从该故事中学到的是,智能体会学习激励的行为,这可能不会产生你想要的结果。

塑造奖励

创建具有特定形状的奖励函数可以让智能体更轻松、更快速地学习相应的策略。

阶跃函数是稀疏奖励函数的一个示例,它不会告诉智能体其操作有多好。 在下面的阶跃奖励函数中,只有距离介于 0.0 和 0.1 之间的操作才会生成完整奖励 (1.0)。 如果距离大于 0.1,则没有奖励。

Reinforcement learning reward: chart showing a step reward function.

相比之下,塑造奖励函数为智能体提供了表示操作与期望响应的接近程度的标志。 以下塑造的奖励函数根据响应与所需 0.0 操作的接近程度提供更大的奖励。 该函数的曲线为双曲线。 距离为 0.0 的奖励为 1.0,随着距离接近 1.0,奖励逐渐下降到 0.0。

Reinforcement learning: chart showing a shaped reward function.

与更直接的奖励相比,塑造可能会降低未来奖励的值,或者通过缩小目标的奖励规模来鼓励探索。

有时,奖励函数可能会指定时间和空间考虑因素,以鼓励有序的操作序列。 但是,如果塑造奖励函数变得庞大而复杂,请考虑将问题分解为更小的阶段并使用概念网络。

概念网络

概念网络允许指定和重用特定领域的知识和行业专业知识,以将所需的行为顺序收集到特定的单独任务序列中。 概念网络有助于限制智能体可以操作和采取行动的搜索空间。

在以下用于抓取和堆叠对象的概念网络中,“抓取和堆叠”框是两个灰色框“到达”和“移动”以及三个绿色框“定向”、“抓取”和“堆叠”的父级。

Example concept network allowing a reinforcement learning reward function to be more easily defined.

概念网络通常允许更轻松定义奖励函数。 每个概念都可以使用最适合该任务的方法。 概念网络的概念有助于将解决方案分解为组成部分。 无需重新训练整个系统即可更换组件,从而允许重复使用预先训练的模型并使用现有控制器或其他现有生态系统组件。 特别是在工业控制系统中,增量式碎片改进可能比完全删除和更换更适合。

课程学习和学徒学习

使用概念网络将问题划分为单独的顺序任务,可以将问题拆分为难度阶段,并将其作为难度不断增大的课程提供给智能体。 此分阶段的方法从一个简单的问题开始,让智能体练习,然后随着其能力的提高而不断增大难度。 奖励函数随着智能体变得更有能力完成其任务而变化和演变。 此课程学习方法有助于引导探索并大大减少所需的训练时间。

还可以通过指示智能体通过模仿外部专家的行为来学习,从而约束智能体的策略搜索空间。 学徒学习使用专家引导式范例来约束智能体探索的状态空间。 学徒学习可以在不发现新的解决方案的情况下更快地权衡学习已知的解决方案。

学徒学习的一个示例是,教自动驾驶汽车智能体模仿人类驾驶员的行为。 智能体会学习如何驾驶,但也继承了驾驶员的任何缺陷和特质。

基于 RL 的 AI 系统设计

以下策略是用于构建和生成基于 RL 的 AI 系统的实用指南:

  1. 制定和迭代状态、终端条件、操作和奖励。
  2. 创建奖励函数,根据需要对其进行塑造。
  3. 为特定的子目标分配奖励。
  4. 如有必要,可主动减少奖励。
  5. 对初始状态进行试验。
  6. 尝试使用示例进行训练。
  7. 限制训练过程中模拟动力学参数的变体。
  8. 在预测过程中进行泛化并使训练尽可能顺利。
  9. 引入一些与物理相关的噪声以适应真实机器中的噪声。

模拟

AI 系统需要大量数据,并且需要在许多场景中进行运用,以确保它们经过训练能够做出适当的决策。 这些系统通常需要成本高昂的原型,这些原型可能会在现实环境中造成损坏。 无论是在时间还是直接人工方面,收集和手动标记高保真训练数据的成本都很高。 使用模拟器和由该模拟器生成的密集标记的训练数据是解决大部分数据不足的有效方法。

“维数灾难”是指在高维空间中处理大量数据时出现的现象。 对某些场景和问题集进行准确建模需要使用深度神经网络。 这些网络本身是高维的,具有许多需要拟合的参数。 随着维度的增加,空间的体积以这样的速度增加,以至于可用的真实世界数据变得稀疏,这使得收集足够的数据以建立具有统计意义的相关性变得具有挑战性。 如果没有足够的数据,训练会导致模型欠拟合数据并且不能很好地泛化到新数据,这就违背了模型的目的。

问题在于两个方面:

  • 训练算法具有较大的学习能力,可以准确地对问题进行建模,但需要更多的数据来防止欠拟合。
  • 收集和标记大量数据(如果可行)十分困难、价格高昂且容易出错。

模拟提供了一种替代方法,通过在预期的物理环境中对系统进行虚拟建模,从而收集大量真实世界的训练数据。 模拟允许在危险环境或在现实世界中难以重现的条件下进行训练,例如各种天气条件。 人工模拟的数据规避了数据收集方面的难题,并为算法提供了适当的示例场景,使它们能够准确地泛化到现实世界。

模拟是 DRL 的理想训练源,因为它们:

  • 可以灵活地自定义环境。
  • 安全且经济高效地生成数据。
  • 可并行化,允许更快地进行训练。

模拟适用于各种行业和系统,包括机械和电气工程、自动驾驶汽车、安全和网络、运输和物流以及机器人。

模拟工具包括:

  • Simulink:一种由 MathWorks 开发的图形编程工具,用于对动态系统进行建模、模拟和分析。
  • Gazebo:一种工具,用于在复杂的室内和室外环境中准确模拟机器人数量。
  • Microsoft AirSim:一个开源机器人模拟平台。

机器教学范例

机器教学为生成 ML 系统提供了一个新的范式,可将重点从算法转移到成功的模型生成和部署上。 机器教学在学习过程本身中识别模式,并将积极行为融入到自己的方法中。 机器学习中的大部分活动都侧重于改进现有算法或开发新的学习算法。 相反,机器教学侧重于教师自身的效能。

机器教学:

  • 将人类领域专家的行业专业知识与 AI 和 ML 相结合。
  • 自动生成和管理深度强化学习算法和模型。
  • 集成用于模型优化和可伸缩性的模拟。
  • 对生成模型的行为提供更好的解释性。

机器学习的状态大都由少数算法专家决定。 这些专家对 ML 有深入的了解,并且可以更改 ML 算法或体系结构,以满足所需的性能或准确度指标。 全球范围内 ML 专家的数量估计成千上万,这减缓了 ML 解决方案的采用速度。 由于模型太过复杂,这使得 ML 功能超出了许多人的能力范围。

虽然 ML 专家很少,但行业专家却很多。 在全球范围内,有数以千万计的领域专家。 机器教学利用这个更大的专家库,他们了解问题的语义并可以提供示例,但不需要了解 ML 的复杂性。 机器教学是通过编码教学内容和方式来有效地编程行业专业知识所需的基本抽象。 没有 AI 背景的行业专家可以将其专业知识分解为步骤和任务、标准和期望的结果。

对于工程师来说,机器教学提高了抽象的标准,超越了 AI 算法选择和超参数调整,以专注于更有价值的应用领域问题。 生成自治系统的工程师可以创建准确、详细的系统和环境模型,并使用深度学习、模仿学习和强化学习等方法使其变得智能。 机器教学的另一个受欢迎的结果是,通过减少或消除在开发过程中对机器学习专家手动干预的需要,从而更快地进行模型部署。

机器教学通过查看常见的 ML 做法并在其自己的方法中采用有益的策略,来简化构建 ML 解决方案的过程。 在开发人员的指导和配置下,Microsoft 自治系统平台中的机器教学服务 Bonsai 可以自动将 AI 模型开发到 AI 系统。

Bonsai 提供一个易于理解的中心仪表板,它使用版本控制工具来跟踪每个项目的当前状态。 使用此机器教学基础结构,可确保模型结果可以重现,并让开发人员可通过未来的 AI 算法突破性进展轻松地更新 AI 系统。

Project Bonsai dashboard: a low code industrial AI development platform.

向机器教学方法的视角转变通过更简化和可访问的生成和部署 ML 模型的过程,从而促进了 ML 的采用。 机器教学为领域专家提供了一种可将 DRL 的强大功能用作工具的方法。 机器教学将 AI 技术从侧重于 ML 算法和技术转移到领域专家将这些算法应用于现实世界的问题。

机器教学过程

机器教学开发和部署有三个阶段:构建、训练和部署。

Machine teaching process phases: build, train, and deploy.

  1. 构建阶段包括编写机器教学程序和连接到特定领域的训练模拟器。 模拟器为试验和机器练习生成足够的训练数据。
  2. 在训练阶段,训练引擎通过将高级域模型与适当的 DRL 算法和神经网络相结合,自动生成和训练 DRL 模型。
  3. 部署阶段将经过训练的模型部署到云、本地或站点上嵌入的目标应用程序。 特定的 SDK 和部署 API 将经过训练的 AI 系统部署到各种目标应用程序、执行计算机优化和控制物理系统。

模拟环境会生成大量涵盖许多用例和场景的综合数据。 模拟为模型算法训练提供安全且具有成本效益的数据生成,并通过模拟并行化更快地进行训练。 模拟有助于在不同类型的环境条件和场景下训练模型,比在现实世界中可行的方法速度更快、更安全。

行业专家可以在智能体解决模拟环境中的问题时对其进行监督,并提供反馈和指导,让智能体在模拟中灵活地适应。 训练完成后,工程师将经过训练的智能体部署到实际硬件上,在那里它们可以利用其知识为现实世界中的自治系统提供支持。

机器学习和机器教学

机器教学和机器学习既是相辅相成的,又可以独立发展。 机器学习研究的重点是通过改进机器学习算法使学习者变得更好。 机器教学研究的重点是让教师可以更高效地生成机器学习模型。 机器教学解决方案需要多种机器学习算法才能在整个教学过程中生成和测试模型。

下图显示用于生成机器学习模型的代表性管道:

A diagram showing a typical pipeline for building a machine learning model.

  1. 问题所有者收集和标记数据集,或汇编标签指南,以便可以外包标记任务。
  2. 问题所有者查看标签,直到其质量令人满意为止。
  3. 机器学习专家选择算法、模型体系结构、目标函数、正则化器和交叉验证集。
  4. 工程师定期训练模型,调整特征或创建新特征,以提高模型的准确度和速度。
  5. 通过少量样本对该模型进行了测试。 如果系统在测试中表现不佳,请重复上述步骤。
  6. 在现场监视模型性能。 如果性能低于临界水平,则通过重复前面的步骤来修改模型。

机器教学可自动创建此类模型,无需在学习过程中进行手动干预,以改进特征选择或示例或调整超参数。 实际上,机器教学在模型的 AI 元素中引入了一定程度的抽象,使开发人员能够专注于领域知识。 这种抽象还可让 AI 算法及时被新的更具创新性的算法所取代,而无需重新指定问题。

教师的作用是优化知识向学习算法的转移,以便生成有用的模型。 教师在数据收集和标记方面也发挥着核心作用。 教师可以筛选未标记的数据以选择特定的示例,或者查看可用的示例数据并根据自己的直觉或偏见猜测其标签。 同样,基于大型未标记集上的两个特征,教师可以推测其中一个比另一个更好。

下图显示机器教学的大致过程:

The machine teaching process at a high level.

  1. 教师首先质疑训练集是否可实现。
  2. 如果训练集不可实现,教师会确定问题是由于标签不足还是特征缺陷造成的。 在修正标签或添加特征后,教师再次评估该训练集是否可实现。
  3. 如果训练集可实现,则教师评估是否满足训练质量标准。
  4. 如果没有达到质量标准,教师会发现测试错误并将修补程序添加到训练集中,然后重复评估步骤。
  5. 一旦训练集可实现并达到质量标准,该过程就结束了。

该过程是一对无限循环,只有当模型和训练本身具有足够的质量时才会结束。

模型的学习能力按需增加。 不需要传统的正则化,因为教师通过仅在必要时添加特征来控制学习系统的能力。

机器教学和传统编程

机器教学是编程的一种形式。 编程和机器教学的目标都是创建函数。 在给定输入 X 的情况下,创建返回值 Y 的无状态目标函数的步骤对于这两个进程类似:

Machine teaching vs. programming or traditional software engineering.

  1. 指定目标函数。
  2. 将目标函数分解为子函数(如果适用)。
  3. 调试和测试函数和子函数。
  4. 记录函数。
  5. 共享函数。
  6. 部署函数。
  7. 使用计划和计划外的调试周期维护函数。

调试或评估解决方案的性能在两个进程之间具有不同的属性。 在编程中,调试涉及手动编辑和重新编译代码。 在机器教学中,调试包括添加知识标签和特征,以及进一步训练。

在给定输入 X 的情况下生成返回类 Y 的目标分类函数涉及机器学习算法,而机器教学的过程类似于上面的一组编程步骤。

下表说明了传统编程和机器教学之间的一些概念上的相似之处:

编程 机器教学
编译器 机器学习算法、支持向量机 (SVMS)、神经网络、训练引擎
操作系统、服务、集成开发环境 (IDE) 训练、采样、特征选择、机器训练服务
框架 ImageNet、word2vec
编程语言,如 Python 和 C# Inkling、标签、特征、架构
编程专业知识 教学专业知识
版本控制 版本控制
开发流程,如规范、单元测试、部署、监视 教学过程,如数据收集、测试、发布

允许软件工程师编写可解决复杂问题的系统的一个强大概念是分解。 分解使用更简单的概念来表达更复杂的概念。 机器教师可以学习使用合适的工具和经验来分解复杂的机器学习问题。 机器教学学科可以使机器教学的成功期望达到类似于编程的水平。

机器教学项目

先决条件:

  • 具备收集、探索、清理、准备和分析数据的一些经验
  • 熟悉基本的 ML 概念,如目标函数、训练、交叉验证和正则化

在构建机器教学项目时,从一个逼真但相对简单的模型开始,以便快速迭代和制定。 然后,以迭代方式提高模型的保真度,通过更好的场景覆盖使模型更具泛化性。

下图显示迭代机器教学模型开发的各个阶段。 每个连续的步骤都需要大量的训练样本。

Diagram showing the phases of iterative model development.

  1. 为方法验证设置初始粗略模拟模型。
  2. 通过对环境动力学进行建模并同时进行迭代教学改进,来提高模拟保真度。
  3. 具有动态随机化和扩展的泛型模型。
  4. 度量真实系统动态并在真实设备上测试经过训练的模型。
  5. 扩展模型以涵盖更多设备变体。

为机器教学项目定义准确的参数需要大量的试验和经验探索。 Microsoft 自治系统平台中的 Bonsai 等机器教学平台使用 DRL 创新和模拟来帮助简化 AI 模型开发。

示例项目

自治系统 AI 项目的一个示例是制造过程优化的用例。 目标是优化在生产线上制造的钢梁的厚度公差。 碾轧机在一块钢板上施加压力,使其成型为设计的厚度。

AI 系统的机器状态输入是轧制力、轧辊误差和轧辊噪声。 AI 系统的控制操作是执行器命令,用于控制碾轧机的操作和运动,并优化钢梁的厚度公差。

首先,找到或开发一个可以模拟智能体、传感器和环境的模拟器。 下面的 Matlab 模拟模型为该 AI 系统提供了一个准确的训练环境:

Simulink model for steel beam manufacturing process.

使用 Microsoft 自治系统平台中的 Bonsai 机器教学服务将机器教学计划构建为模型,针对模拟器训练模型,并将经过训练的 AI 系统部署到实际生产设施中。 Inkling 是一种针对特定目的的语言,用于正式描述机器教学计划。 在 Bonsai 中,可以使用 Inkling 将问题解构为架构:

Define machine state and control action in Inkling code.

然后,定义关键概念并创建课程来教授 AI 系统,并指定模拟状态的奖励函数:

Define curriculum in Inkling code.

AI 系统通过在模拟中练习优化任务并遵循机器教学的概念来进行学习。 可将模拟上传到 Bonsai,它在运行时提供训练进度的可视化效果。

在生成和训练模型或大脑之后,可以将其导出以部署到生产设施,在其中,来自 AI 引擎的最佳执行器命令可以实时支持操作员决策。

其他示例应用程序

以下机器教学示例创建用于控制物理系统运动的策略。 在这两种情况下,手动为智能体创建策略都是不可行或非常困难的。 让智能体在模拟中探索空间,并通过奖励函数引导它做出选择,从而生成准确的解决方案。

Cartpole

在 Bonsai 中的示例 Cartpole 项目中,目标是让一根杆子在移动的推车上保持直立。 杆子通过一个未激活的关节连接到推车上,该推车沿着无摩擦的轨道移动。可用的传感器信息包括推车位置和速度,以及极角和角速度。

对推车施加力来控制系统。 支持的智能体操作是将推车往左推或往右推。 该程序为使杆保持直立的每个时间步提供积极的奖励。 当杆子与垂直方向的夹角超过 15 度,或者推车从中心移动的单位数量超过预定义数量时,该回合就结束了。

该示例使用 Inkling 语言编写机器教学程序,并使用提供的 Cartpole 模拟器来加快和改进培训。

Inkling code and Cartpole simulator

以下 Bonsai 屏幕截图显示 Cartpole 训练,“目标满意度”位于 y 轴上,“训练迭代”位于 x 轴上。 Bonsai 仪表板还显示了目标满意度百分比和总训练时间。

Bonsai dashboard showing the Cartpole training example.

有关 Cartpole 示例的更多信息或亲自尝试,请参阅了解如何教 AI 智能体让一根杆子保持平衡

石油钻探

水平石油钻探应用程序是一种运动控制器,用于实现在井下水平钻探的石油钻井平台自动化。 操作员用操纵杆控制井下钻机,使钻头保持在油页岩内,同时避开障碍物。 钻头尽可能少地进行转向动作,以便更快地钻探。 目标是使用强化学习来自动控制水平石油钻头。

可用的传感器信息包括钻头受力的方向、钻头的重量、侧向受力和钻探角度。 受支持的智能体动作是向上、向下、向左或向右移动钻头。 当钻头在腔室壁的公差距离内时,该程序会提供积极的奖励。 该模型学会适应不同的井计划、钻探起始位置和传感器不准确。

Horizontal oil drilling example application.

有关此解决方案的详细信息和演示,请参阅运动控制:水平石油钻探

作者

本文由 Microsoft 维护, 它最初是由以下贡献者撰写的。

首席作者:

若要查看非公开领英个人资料,请登录领英。

后续步骤

详细了解机器教学: