如何将自动编码器模型实现为PMML?

问题描述 投票:0回答:1

假设我们有以下模型: enter image description here

我的问题是(1)我们如何构建这样的模型并将其导出为 PMML 文件? (2) PMML 能够编码这样的模型结构吗? (3) PMML 中生成该模型中的 N 个输出节点所需的组件是什么? 我知道对每个输出节点使用 不会给出预期的结果。

提前致谢。

neural-network autoencoder pmml
1个回答
0
投票

回答您的问题:

(1) 我们如何构建这样的模型并将其导出为 PMML 文件?

您已经描绘了一个 (6, 3, 6) NN。它在架构上与 Scikit-Learn 的

MLPRegressor
类实现的内容相同。

您可以使用

MLPRegressor
模拟自动编码器;在当前情况下,您将定义一个具有单个隐藏层(包含三个神经元)的神经网络,并使用
X == y
:

对其进行训练
autoencoder = MLPRegressor(hidden_layer_sizes = (3, ))
autoencoder.fit(X, X)

(2) PMML 能够编码这样的模型结构吗?

PMML 能够使用

MLPRegressor
 模型元素表示成熟的 
NeuralNetwork
对象。因此,它还能够表示其“截断”变体,例如自动编码器。

这个想法是在转换过程中简单地忽略最后(即最右边)层。实际上,图中的 (6, 3, 6) NN 被截断为 (6, 3) NN。

SkLearn2PMML 包为此提供了

sklearn2pmml.neural_network.MLPTransformer
变压器。

(3) PMML 中生成此模型中的 N 个输出节点所需的组件是什么?

无需生成任何额外的东西。

截断的 (6, 3) 神经网络提供三个输出

y(0)
y(1)
y(2)
,然后您可以将其传递给其他变压器或模型。

© www.soinside.com 2019 - 2024. All rights reserved.