使用神经网络识别矩阵中的模式


10

我正在尝试开发一种神经网络,该网络可以识别CAD模型中的设计特征(即槽,凸台,孔,凹穴,台阶)。

我打算用于网络的输入数据是anxn矩阵(其中n是CAD模型中的面数)。矩阵右上角三角形中的“ 1”表示两个面之间的凸关系,而左下角三角形中的“ 1”表示凹关系。两个位置均为零表示面不相邻。下图给出了这样一个矩阵的例子。 在此处输入图片说明

可以说,我将最大模型尺寸设置为20个面,并对小于此尺寸的任何物体应用填充,以使网络输入的尺寸恒定。

我希望能够识别5种不同的设计特征,因此将具有5种输出神经元-[槽,袋,孔,凸台,台阶]

我会说这成为一种“模式识别”问题,对吗?例如,如果我为网络提供了许多训练模型-以及描述模型中存在的设计特征的标签,网络会学会识别与某些设计特征相关的矩阵中表示的特定邻接模式吗?

我是机器学习的一个完整的初学者,我试图了解这种方法是否有效-如果需要更多信息来理解问题,请发表评论。任何输入或帮助,将不胜感激,谢谢。


1
这看起来真的很有趣。但是你在说什么三角形?你能画清楚吗?
FelicityC

Answers:


1

我会说这成为一种“模式识别”问题,对吗?

从技术上讲,是的。实际上:没有。

我认为您可能对术语“模式识别”的解释过于直白。即使维基百科将模式识别定义为“机器学习的一个分支,专注于数据模式和规律性的识别”,但这并不是要解决可以通过逻辑推理“轻松”推导出的问题。

例如,你说

矩阵右上角三角形中的“ 1”表示两个面之间的凸关系,左下角三角形中的“ 1”表示凹关系

总是如此。在典型的机器学习情况下,您(通常)不会拥有此先验知识。至少在某种程度上,“用手解决”是不容易的。

模式识别通常是解决问题的统计方法,当问题变得过于复杂而无法使用常规逻辑推理和更简单的回归模型进行分析时。维基百科还(带有消息来源)指出模式识别“在某些情况下被认为与机器学习几乎是同义的”。

话虽如此:您可以在此问题上使用模式识别。但是,在这种情况下,这似乎有些过分。据我了解,您的问题具有实际的“分析”解决方案。也就是说:按照逻辑,您可以始终获得100%正确的结果。理论上,机器学习算法也可以做到这一点,在这种情况下,机器学习的这一分支称为元建模[1]。

例如,如果我为网络提供了许多训练模型-以及描述模型中存在的设计特征的标签,网络会学会识别与某些设计特征相关的矩阵中表示的特定邻接模式吗?

一句话:大概吧。最好的方法?可能不是。你为什么不问?

总是有可能您的模型没有完全了解您想要的东西。此外,您还有许多挑战,例如过拟合,您需要担心自己。正如我所说的,这是一种统计方法。即使将所有测试数据分类为100%正确,也无法(除非您检查了难以处理的数学问题)100%确保它将始终正确分类。我进一步怀疑,与推论逻辑所花费的时间相比,您可能还会花费更多的时间在模型上工作。

我也不同意@Bitzel:我不会对此进行CNN(卷积神经网络)。当您要查看矩阵的特定部分时,使用CNN,并且像素之间的关系和连接性很重要-例如在图像上。由于您只有1和0,因此我强烈怀疑CNN可能会大材小用。而且由于所有稀疏性(很多零),卷积中最终会有很多零。

实际上,我建议使用普通的(前馈​​)神经网络,尽管稀疏,但我认为它可以很容易地进行此分类。


1
非常彻底的答案。一个简短的版本是对于具有解析解决方案的问题,ML 通常不是正确的方法。
Amrinder Arora

0

据我了解,是的,您的问题与模式识别有关。由于该方法是使用先前为神经网络提供的标签对输入进行分类,因此我认为卷积神经网络可以解决您的问题。


0

问题

所提出的系统的训练数据如下。

  • 表示实体几何设计的表面邻接的布尔矩阵
  • 矩阵中还表示边缘的内外角度之间的差异
  • 标签(如下所述)

凸和凹不是描述表面梯度不连续性的正确术语。例如由立铣刀制成的内部边缘实际上不是凹面。从理想化实体模型的角度来看,表面梯度不连续性的半径为零。出于相同的原因,外边缘不是表面的凸部。

所提议的训练系统的预期输出是布尔数组,该布尔数组指示特定的实体几何设计特征的存在。

  • 一个或多个插槽
  • 一个或多个老板
  • 一个或多个孔
  • 一个或多个口袋
  • 一个或多个步骤

此布尔值数组也用作训练的标签。

可能的注意事项

这种方法存在映射不一致性。它们大致分为四类之一。

  • 通过将CAD模型中的拓扑映射到矩阵创建的歧义-提议的矩阵编码中未捕获到的主要实体几何
  • 不存在矩阵的CAD模型-边缘从内角更改为外角或从曲率出现的情况
  • 矩阵特征识别中的歧义-可以识别矩阵中模式的特征之间存在重叠
  • 描述不属于这五个特征的矩阵-这可能会成为开发中下游的数据丢失问题

这些只是拓扑问题的一些示例,这些拓扑问题在某些机械设计领域中可能很常见,并且混淆了数据映射。

  • 孔与具有内部半径的盒子框架具有相同的矩阵。
  • 外部半径可能导致矩阵过于简化。
  • 与边缘相交的孔可能与矩阵形式的其他拓扑没有区别。
  • 两个或多个相交的通孔可能会出现邻接歧义。
  • 支撑带有中心孔的圆形凸台的法兰和肋条可能无法区分。
  • 球和圆环具有相同的矩阵。
  • 具有六角形十字并旋转180度的圆盘和带具有相同的矩阵。

对于问题中定义的项目,这些可能的警告可能会或可能不会引起关注。

设置面部大小可在效率与可靠性之间取得平衡,但会限制可用性。可能存在利用RNN变体之一的方法,这可以允许覆盖任意模型大小,而不会影响简单几何的效率。这样的方法可能涉及将矩阵展开为每个示例的序列,并对每个矩阵应用精心设计的归一化策略。如果对训练效率没有严格的限制并且存在面孔数量的实际最大值,则填充可能是有效的。

将计数和确定性视为输出

[0.01.0]

还应至少考虑使用非负整数输出作为通过聚合多个二进制输出单元而创建的无符号二进制表示形式(而不是每个功能部件使用单个布尔值)的可能性。在下游,计算要素的能力可能变得很重要。

这导致需要考虑的五个现实置换,可以由受训练的网络为每个实体几何模型的每个特征生成。

  • 表示存在的布尔值
  • 非负整数,表示实例计数
  • 一个或多个实例的布尔和真实确定性
  • 非负整数,表示最可能的实例计数和一个或多个实例的真实确定性
  • 非负真实均值和标准差

模式识别还是什么?

FXÿ

FXÿ

如果在训练所用的样本中充分体现了网络功能上近似的概念类别,并且以与目标应用程序稍后将抽取的方式相同的方式对训练样本进行了抽样,则近似值可能已足够。

在信息理论世界中,模式识别和功能逼近之间的区别变得模糊了,因为应该有更高级别的AI概念抽象。

可行性

网络会学习将矩阵映射到设计特征的[布尔] [指标]数组吗?

如果以上列出的注意事项对项目涉众而言是可接受的,则对示例进行充分标记并提供足够的数量,并且可以很好地设置数据归一化,损失函数,超参数和层安排,在此期间可能会发生收敛。培训和合理的自动化特征识别系统。同样,它的可用性取决于像培训示例一样从概念类中汲取的新实体几何。系统可靠性依赖于培训来代表以后的用例。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.