【问题标题】:Data Science Model and Training - Understanding数据科学模型和培训 - 理解
【发布时间】:2018-01-10 22:36:27
【问题描述】:

来自您编写代码、测试、部署、运行的编程背景。我正试图围绕数据科学中“训练模型”或“训练模型”的概念展开思考,并部署它训练好的模型。

我并不真正关心部署环境、自动化等。我试图了解部署单元。一个训练有素的模型。经过训练的模型在文件系统上是什么样子的,它包含什么?

我了解训练模型并将一组数据拆分为训练集和测试集的概念,但是假设我有一个笔记本(python / jupyter)并加载了一些数据,在训练/测试之间进行拆分数据,并运行一个算法来“训练”我的模型。引擎盖下我的可交付成果是什么?当我正在训练一个模型时,我认为内存中会存储一定数量的数据.. 那么它如何成为训练模型的一部分呢?它显然不能包含所有用于训练的数据;因此,例如,如果我正在训练一个聊天机器人代理(基于检索),那么在我添加/输入用户问题或“意图”的示例之后,作为该训练的一部分实际发生了什么,以及我的可部署性训练模型?这个经过训练的模型是否包含某种训练数据或术语数组的总和,它可以得到多大(可部署大小)?

虽然“什么是经过训练的模型”这个问题看起来相对简单,但我该如何简单地向 devops 技术人员解释它?这是一个“对数据科学感兴趣的 IT 人员,在与数据科学人员的讨论中试图理解训练模型的有形单元”。

谢谢

【问题讨论】:

  • 它包含模型的参数。那可以是任何东西。例如决策树,或神经网络的权重等
  • 我在很多文章和博客中都听说过“它包含参数”,这对于线性回归之类的东西很有意义,但以聊天机器人为例,我正在加载所有这些意图,我在构建某种参数文件吗?所有这些文本是如何变成参数的?什么是可部署的?
  • 另外,如果我正在创建一个聊天机器人,在其中输入一堆预期的问题并提供响应,那么训练模型的目的是什么?您不能从与输入意图密切匹配的数据库条目中选择响应吗?只是想更好地理解它..
  • 您需要缩小范围。如果你想要具体的细节,没有一个答案。 IE。如果您正在使用简单的回归模型,这可能是一个简单的系数序列。
  • @byte-crunch:训练一个模型的想法是你不决定答案是什么,但模型(通常基于统计数据)计算最多的是什么可能的答案应该是。

标签: python machine-learning artificial-intelligence jupyter-notebook data-science


【解决方案1】:

经过训练的模型将包含其参数的值。如果您只调整了几个参数,那么只有它们会包含新的调整值。未更改的参数将存储默认值。

【讨论】:

    【解决方案2】:

    这取决于型号。例如线性回归,训练会给你斜率和截距的系数(通常)。这些是“模型参数”。传统上,在部署时,这些系数会被输入到不同的算法中(字面意思是 y=mx+b),然后当询问“当我有 x 时,y 应该是什么”时,它会以适当的值进行响应。

    另一方面,Kmeans 聚类的“参数”是向量,预测算法计算与给定算法的向量的距离,然后返回最近的集群 - 注意这些集群通常是后处理的,所以预测算法会说“鞋子”而不是“[1,2,3,5]”,这又是这些东西在野外如何变化的一个例子。

    深度学习返回图的边权重列表,各种参数系统(如在最大似然估计中),返回描述特定分布的系数,例如均匀分布是桶数,高斯/正态分布是均值和方差,其他更复杂的有更多,例如偏斜和条件概率。

    【讨论】:

      【解决方案3】:

      经过训练的模型(腌制)或您想使用的任何模型,都至少包含已对其进行过训练的特征。以一个简单的基于距离的模型为例,您根据 (x1,x2,x3,x4) 特征很重要这一事实设计模型,如果任何点与模型接触,则应返回计算的距离,基于你得出见解或结论。 同样对于聊天机器人,您可以根据 ner-crf 进行训练,无论您想要什么功能。一旦文本与模型接触,就会根据模型提取特征并得出见解/结论。希望它有帮助!我试着解释费曼方式。

      【讨论】:

        猜你喜欢
        • 2019-06-27
        • 2021-08-17
        • 1970-01-01
        • 2021-01-19
        • 1970-01-01
        • 2012-06-15
        • 1970-01-01
        • 2012-08-15
        • 2019-07-10
        相关资源
        最近更新 更多