我可以导出经过训练的机器学习模型,以便其他案例使用它吗?

人工智能 机器学习 训练
2021-11-08 08:02:19

据我所知,AI/ML 使用大量数据来训练算法来解决问题。但由于它是一种算法,我想知道是否可以导出它。如果我用 R 训练了一个 AI,我是否可以导出一个数学算法,该算法可以由其他用户导入以在他们的应用程序中使用,无论它是用 R 还是其他语言编写的?

所以这就像我发现了一种秘密消息解码方法。我不需要分享整个程序供其他人解码。我只需要告诉他们解码的步骤(算法),他们就可以在他们想要的任何应用程序中实现它。

2个回答

如果您正在谈论的“算法”是神经网络,那么您可以将学习到的参数/权重分配给任何想要使用它的人。这就是神经网络通常“导出”的方式:没有用于创建它们的所有训练数据。实际上,这是通过多种模型(参数化模型)完成的。

为了“解码”模型,用户只需要知道它的结构。在神经网络的情况下,他们需要知道每一层的大小、使用了哪些激活函数等。

然而,这对于每种类型的 ML 模型都是不可能的。具体来说,非参数模型和“惰性”模型在推理时使用训练数据。如果没有他们的训练数据,它们就不会有用。例如,通过查找输入的k 个最近邻来对输入进行分类需要训练数据。

是的,一旦你训练了一个模型,你就会在你的工作区中获得该模型的详细信息。

例如

B_Naive = naiveBayes(train_set[,-c(1)],train_set[,1]);

会给你一个可以“导出”的对象 B_naive。这些是模型的参数,您仍然需要朴素贝叶斯库(或任何库)。