返回介绍

数学基础

统计学习

深度学习

工具

Scala

1.1 侵蚀的边界

发布于 2023-07-17 23:38:23 字数 2776 浏览 0 评论 0 收藏 0

  1. 传统的软件工程实践表明:使用封装和模块化设计的强大抽象边界有助于创建可维护maintainable 的代码。在这些代码中,很容易进行孤立isolated 的变更changes 和改进improvements。严格的抽象边界有助于表达来自给定组件component 关于信息输入和输出的不变性 invariants 、以及逻辑一致性logical consistency

    不幸的是,很难通过规定特定的预期行为来为机器学习系统强制执行严格的抽象边界。事实上,机器学习系统的行为依赖于外部数据。在这里,我们研究了导致边界侵蚀erosion of boundaries 的几种方式,它们可能会显著增加机器学习系统中技术债。

  2. 纠缠Entanglement:机器学习系统将信号混合在一起,将它们相互纠缠,并使得孤立的改进变得不可能。

    例如,考虑一个在模型中使用特征 $ x_1,\cdots,x_n $ 的系统。如果我们改变了 $ x_1 $ 中取值的分布,则剩余 $ n-1 $ 个特征的重要性 、权重 、以及利用 use 都可能发生变化。无论模型是以 batch 方式完全重新训练 、还是允许模型以在线方式进行调整,都是如此。

    添加一个新的特征 $ x_{n+1} $ 会导致类似的变化,就像删除任何特征 $ x_j $ 一样。没有任何输入是真正独立independent 的。我们在此将其称作 CACE 原则:改变任何事情则改变一切Changing Anything Changes EverythingCACE 不仅适用于输入信号,还适用于超参数、学习配置、采样方法、收敛阈值、数据选择、以及基本上所有其它可能的调整。

    有两种缓解策略:

    • 一种可能的缓解策略是隔离isolate模型并集成ensembles服务 。然而很多情况下集成模型效果很好,是因为各个子模型的误差是不相关的。依赖于这种组合combination 会产生强烈的纠缠:如果各个子模型的误差是强相关的,那么改进单个子模型实际上可能会使得系统准确性变差。
    • 第二种可能的策略是聚焦于检测在预测行为上发生的变化。《Ad click prediction: a view from the trenches》 中提出了一种这样的方法,其中使用高维可视化工具让研究人员能够迅速查看跨多个维度和切片slicings 上的效果。在逐个切片的基础上运行的指标也可能非常有用。
  3. 校正级联Correction Cascades:经常存在这类场景:问题 $ A $ 的模型 $ \mathcal M_a $ 已经存在,但是需要求解一个稍微不同的问题 $ A^\prime $ 。在这种情况下,学习以 $ \mathcal M_a $ 作为输入的 $ \mathcal M_a^\prime $ 模型、并学习一个小的校正correction从而作为解决问题的快速方法,这种思路是很有诱惑力的。

    然而,这种校正模型correction models产生了一个新的系统依赖关系,这使得分析未来对该模型的改进变得更加昂贵:校正级联可能会创建一个improvement deadlock,因为提高任何单个子模型的准确性实际上会导致系统级别的损害。

    缓解策略是通过添加特征来区分不同的cases ,强化augment $ \mathcal M_a $ 以直接在同一个模型中学习校正。或者为 $ A^\prime $ 创建独立的模型。

  4. 未声明的消费者Undeclared Consumers:通常,来自机器学习模型 $ \mathcal M_a $ 的预测可以被广泛访问。如果没有访问控制,那么其中一些消费者可能是未声明undeclared 的,它们悄无声息地将模型的输出作为它们系统的输入。在经典的软件工程中,这些问题被称为可见性债务visibility debt

    未声明的消费者在最好的情况下是昂贵expensive 的、在最坏的情况下是危险dangerous 的,因为它们创造了模型 $ \mathcal M_a $ 到工作流其它部分的、隐式的紧密耦合。 $ \mathcal M_a $ 的变化可能会影响这些部分,可能会以意想不到 的、知之甚少的 、以及有害的方式影响。在实践中,这种紧密耦合会从根本上增加对 $ \mathcal M_a $ 进行任何变更changes的成本cost 和难度difficulty ,即使这些变更都是改进improvements 。此外,未声明的消费者可能会创建隐式反馈环,这在后文有更详细的描述。

    除非系统专门设计用于防范此类情况,例如具有访问限制或严格的服务级别协议,否则可能难以检测到未声明的消费者。

    纠缠Entanglement:模型内部各元素之间的耦合。

    校正级联Correction Cascades:多个模型之间的耦合。

    未声明的消费者Undeclared Consumers:预测系统和消费系统之间的耦合。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文