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

人工智能 神经网络 机器学习 卷积神经网络 模式识别
2021-11-04 00:46:29

我正在尝试开发一个可以识别 CAD 模型中的设计特征(即槽、凸台、孔、口袋、台阶)的神经网络。

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

假设我将最大模型大小设置为 20 个面,并对小于该值的任何内容应用填充,以使网络的输入大小恒定。

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

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

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

2个回答

我是否正确地说这变成了一种“模式识别”问题?

从技术上讲,是的。在实践中:没有。

我认为您可能将“模式识别”一词解释得太字面了。尽管wikipedia将模式识别定义为“机器学习的一个分支,专注于识别数据中的模式和规律性”,但它并不是解决可以“轻松”通过逻辑推理推断出的问题。

比如你这么说

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

这是真的在典型的机器学习情况下,您(通常)不会拥有这些先验知识。至少不会达到“手动解决”容易处理的程度。

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

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

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

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

您的模型始终有可能无法准确了解您想要的内容。此外,您还面临许多挑战,例如过度拟合,您需要自己担心。正如我所说,这是一种统计方法。即使它将所有测试数据分类为 100% 正确,也无法 100% 确保它始终正确分类。我进一步怀疑,您最终可能会花费更多时间在模型上,而不是仅仅推断逻辑所需的时间。

我也不同意@Bitzel:我不会对此进行 CNN(卷积神经网络)。当您想要查看矩阵的特定部分时使用 CNN,并且像素之间的关系和连通性很重要——例如在图像上。由于您只有 1 和 0,因此我强烈怀疑 CNN 会非常矫枉过正。并且由于所有稀疏性(许多零),您最终会在卷积中得到很多零。

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

问题

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

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

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

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

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

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

方法中可能的注意事项

这种方法存在映射不协调。它们大致属于四个类别之一。

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

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

  • 孔与具有内半径的箱形框架具有相同的矩阵。
  • 外部半径可能导致矩阵过度简化。
  • 与边缘相交的孔可能无法与矩阵形式的其他拓扑区分开来。
  • 两个或多个相交的通孔可能会出现邻接模糊。
  • 支撑带有中心孔的圆形凸台的法兰和肋条可能无法区分。
  • 球和环面具有相同的矩阵。
  • 带有 180 度扭曲的六角形十字的圆盘和带具有相同的矩阵。

这些可能的警告可能会或可能不会与问题中定义的项目有关。

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

考虑计数和确定性作为输出

为了处理其中一些歧义,确定性[0.0,1.0]可以是输出单元的激活函数的范围,而不改变训练数据的标签。

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

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

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

模式识别还是什么?

在当前文化中,将人工网络应用于此问题通常不被描述为计算机视觉或音频处理意义上的模式识别。在给定接近性、准确性和可靠性标准的情况下,它被认为是通过在想法映射的粗略方向上收敛来学习复杂的功能映射。函数参数f, 给定输入X,被驱向相关的标签Y培训期间。

f(X)Y

如果由网络在功能上逼近的概念类在用于训练的样本中得到充分表示,并且训练样本样本的绘制方式与目标应用程序稍后将绘制的方式相同,则逼近可能就足够了。

在信息论的世界里,模式识别和功能近似之间的区别是模糊的,因为在更高层次的人工智能概念抽象中应该存在。

可行性

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

如果项目利益相关者可以接受以上列出的注意事项,示例标记良好并提供足够数量,并且数据归一化、损失函数、超参数和层安排设置良好,则很可能会发生收敛训练和合理的自动特征识别系统。同样,它的可用性取决于从概念类中提取的新实体几何,就像训练示例一样。系统可靠性依赖于代表以后用例的培训。