我对机器学习模型的部署阶段很好奇。那么,在你运行你的脚本python来训练你的数百万数据并且它工作之后,有哪些方法可以将你的模型部署到现实世界中呢?我知道诸如picklewhich 用于序列化模型之类的库存在,但是模型到底是什么?
它是某种蓝图,然后用于制作预测的答案吗?如果是这样,这意味着在现实世界中使用腌制对象比再次重新训练模型更快地进行预测?
我对机器学习模型的部署阶段很好奇。那么,在你运行你的脚本python来训练你的数百万数据并且它工作之后,有哪些方法可以将你的模型部署到现实世界中呢?我知道诸如picklewhich 用于序列化模型之类的库存在,但是模型到底是什么?
它是某种蓝图,然后用于制作预测的答案吗?如果是这样,这意味着在现实世界中使用腌制对象比再次重新训练模型更快地进行预测?
机器学习模型是一种算法,它从给定数据中学习特征以生成可能是连续的或分类的标签(分别是回归和分类)。换句话说,它试图将给定的数据与其标签相关联,就像人脑一样。
数学函数用于将特征(作为特征提取的结果产生)映射到它们的标签。
在大量数据上训练的模型可以更好地概括自己。泛化是模型对各种数据进行泛化预测的能力。它不偏向最初训练它的数据。
模型的生产涉及以下基本步骤:
部署模型:
这可以通过多种方式完成。您可以提供模型或在 IoT 设备上运行它。你基本上想冻结所有可训练的参数,使它们成为常数。该模型的学习能力被移除,因此它只能进行预测。有一些模型展示了在线学习。
TensorFlow、Keras、PyTorch 等不同的框架都有自己的模型保存方法。就像在 Keras 中一样,我们可以将 NN 模型保存为 hd5f 序列化文件。使用 TensorFlow Lite,我们可以在物联网设备上运行模型。
Firebase MLKit在使用 TensorFlow 创建的云中托管模型。
最好的部署平台取决于它的可用性、可扩展性和对开发人员的友好性。
机器学习有两个阶段
现在来回答您的问题,即模型是什么意思。无论是在神经网络(即深度学习)还是任何传统的机器学习方法中,您都要做的是在输入和输出之间映射一个近似函数。您尝试使用训练来获取函数的参数,然后在推理期间使用这些参数来预测新的未见输入的输出。因此,模型只不过是参数。训练的目的是找到这些参数。
例如在神经网络中,我们的参数是权重和偏差。因此,所有神经网络层的权重和偏差共同构成了一个模型。训练的最终输出不过是所有神经网络层的权重和偏差。我们存储它们,在必要的地方部署它们并使用它们进行推理。