加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

Wolfram语言和Mathematica版本13的最新功能(8)

(2022-05-27 11:00:33)
标签:

哲想

软件

办公

解决方案

分类: 软件

https://image.135editor.com/files/users/1050/10507216/202205/24391273-Td6ZEK.jpg


用于机器学习的内容检测器

Classify 可让您训练“全数据”分类器。“这是猫吗?”或“这是关于电影的文本吗?”在13.0版中,我们添加了训练内容检测器的功能,这些检测器用作数据子部分的分类器。“这里有什么猫?”“该内容的哪个部分讲电影?”


该功能的基本思想是给出整个输入的范例,在每种情况下都说明输入中的哪个位置对应于特定的类。以下是在文本中挑选主题类别的一些基本训练:

https://image.135editor.com/files/users/1050/10507216/202205/24391273-dv4Ka7.jpg


现在我们可以在特定输入上使用内容检测器:


https://image.135editor.com/files/users/1050/10507216/202205/24391273-L6I356.jpg


这是如何运作的?基本原理是Wolfram语言已经对文本、单词和含义有诸多了解。所以你可以举一个与足球相关的例子,它可以从它的内置知识库中给出篮球是同一类物品的信息。


在13.0版中,您不仅可以为文本创建内容检测器,还可以为图像创建内容检测器。图像的问题要复杂得多,因此构建内容检测器需要更长的时间。但是,一旦构建完成,它就可以在任何图像上快速运行。


就像文本一样,您可以通过提供范例图像来训练图像内容检测器,并说明您给出的事物类别在这些图像中出现的位置:


https://image.135editor.com/files/users/1050/10507216/202205/24391273-TIOLpy.jpg

完成此训练后(在支持GPU的机器上花费了大约5分钟),我们可以应用我们刚刚创建的检测器:



https://image.135editor.com/files/users/1050/10507216/202205/24391273-IFMvma.jpg


当您应用检测器时,您可以向它询问各种信息。这里提供了可用于注释原始图像的边界框:


https://image.135editor.com/files/users/1050/10507216/202205/24391273-x6YmuJ.jpg

顺便说一句,这个功能的原理比较复杂。总之我们使用了大量关于通常出现的图像类型的内置知识。当您提供样本图像时,我们会使用通过转换样本获得的各种“典型相似”图像来增强这些图像。然后再利用从您的范例中获得的新信息有效地重新训练我们的图像系统。


机器学习的可视化功能和诊断

我一直使用的机器学习功能之一是FeatureSpacePlot。13.0版添加了一种新的默认方法,使FeatureSpacePlot更快更稳健生成很好的结果。这是它在10,000张图像上运行的示例:


https://image.135editor.com/files/users/1050/10507216/202205/24391273-rEwWK5.jpg


Wolfram语言中机器学习的一大优点是您可以以高度自动化的方式使用它。您只需给Classify一组训练范例,它就会自动生成一个您可以立即使用的分类器。但它究竟是如何做到的呢?流程的一个关键部分是弄清楚如何提取特征并将数据转换为数字数组。在13.0版中,您现在可以获得为之构建的显式特征提取器(例如,您可以在其他数据上使用它):


https://image.135editor.com/files/users/1050/10507216/202205/24391273-wMzsKq.jpg


以下是单个数据的提取特征:

https://image.135editor.com/files/users/1050/10507216/202205/24391273-J5ZsRC.jpg

这解释了Classify的工作逻辑。您还可以询问Classify给出的输出影响最大的是什么。有一种方法是使用SHAP值来确定您提供的任何数据中指定的每个属性对输出的影响。在13.0版中,我们添加了一种方便的图形方式来显示给定输入的内容:


https://image.135editor.com/files/users/1050/10507216/202205/24391273-tPmgb7.jpg


自动化追踪机器人等问题

设计控制系统是很复杂的。首先,必须为要控制的系统建立一个模型。然后必须定义控制器的目标。然后必须实际构建一个实现这些目标的控制器。借助Wolfram语言和WolframSystem Modeler 中的整个技术栈,我们可以用前所未有的自动化流程来完成这些事情。


13.0版专门增加了设计控制器的功能,使系统跟踪指定的信号——例如让机器人遵循特定的轨迹。


思考一个非常简单的机器人,它由一个移动的小车组成,并附有一个指针:


https://image.135editor.com/files/users/1050/10507216/202205/24391273-WOta8e.jpg

首先,我们需要一个机器人模型,我们可以在WolframSystem Modeler 中创建(或作为Modelica模型导入):


https://image.135editor.com/files/users/1050/10507216/202205/24391273-Pr2GCc.jpg


我们现在的目标是建立一种方法来“驱动”机器人的输入变量(移动推车的力,以及指针的扭矩):


https://image.135editor.com/files/users/1050/10507216/202205/24391273-WhUDQL.jpg

为了实现输出变量的某些行为(指针末端的位置):


https://image.135editor.com/files/users/1050/10507216/202205/24391273-dJtJkJ.jpg

这是我们希望指针末端随时间变化的曲线:

https://image.135editor.com/files/users/1050/10507216/202205/24391273-QGkU4M.jpg

现在我们要实际构建控制器——这也是我们需要了解一些控制理论的地方。在这里,我们将使用极点放置的方法来创建控制器。使用13.0版的新功能设计一个“跟踪控制器”来跟踪指定的输出(要设置这些数字,您必须了解控制理论):

https://image.135editor.com/files/users/1050/10507216/202205/24391273-vHm23g.jpg

现在制作包含机器人及其控制器的闭环系统:

https://image.135editor.com/files/users/1050/10507216/202205/24391273-pZYRtw.jpg

现在我们可以模拟整个系统的行为,将参考轨迹的x和y坐标列表作为输入:

https://image.135editor.com/files/users/1050/10507216/202205/24391273-3DAwTh.jpg


基于这个模拟,这里有一个关于指针末端位置的图:

https://image.135editor.com/files/users/1050/10507216/202205/24391273-tZtDfb.jpg


初始瞬态之后就会遵循我们想要的路径。而且,尽管有些复杂,但比我们直接使用真实的硬件而不是进行理论上的“基于模型的设计要简单得多。

公司名称:北京哲想软件有限公司

北京哲想软件官方网站:cogitosoft.com

北京哲想软件微信公众平台账号:cogitosoftware

北京哲想软件微博:哲想软件

北京哲想软件邮箱:sales@ cogitosoft.com

销售(俞先生)联系方式: 86(010)68421378

微信:18610247936     QQ:368531638

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有