Wolfram语言和Mathematica版本13的最新功能(8)
标签:
哲想软件办公解决方案 |
分类: 软件 |
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

加载中…