机器学习可重复性危机下,创建复杂数据系统的挑战

文章目录

  • 一、前言
  • 二、主要内容
  • 三、总结

🍉 CSDN 叶庭云https://yetingyun.blog.csdn.net/


一、前言

数据科学系统已成为众多研究领域的关键性工具,其开发者群体呈现出多元化的背景特征。在过去十年中,尽管数据科学与机器学习的强大工具被广泛采纳,但相关领域也日益面临可重复性危机的挑战。

在这里插入图片描述

由剑桥大学的数据科学权威带领的一个跨学科团队,最近在《自然-机器智能》杂志的 “观点” 栏目中发表了一篇文章。该文诊断了当前机器学习领域可重复性危机的根源:一方面是不当激励机制的存在,另一方面是软件工程技能普遍缺失。此外,文章深入探讨了软件工程和构建大规模复杂系统时所遭遇的普遍难题,并提出了八项创建复杂数据系统进行科研所面临的主要挑战。

为应对这些挑战,文章提倡两个核心开发原则。首先是采取迭代式进化而非一次性完备设计的方法来构建复杂数据系统;其次是在开发过程中实施代码正确性验证和效能评估反馈机制。这些原则旨在推动软件工程方法在优化复杂数据系统工程实践中的应用与普及。

论文地址:https://doi.org/10.1038/s42256-023-00665-x


二、主要内容

一句话总结:机器学习领域面临可重复性危机,原因是激励机制不足和软件工程技能匮乏,解决方法是采用逐步发展的方式、优化软件架构、编写有效的测试套件,并改进学术界的激励机制。

文章概览要点:

  • 机器学习领域面临可重复性危机,主要原因是激励机制不足和软件工程技能匮乏。
  • 创建复杂数据系统的挑战包括数据和代码的复杂性、软件工程技能缺乏、团队协作和个人工作之间的平衡、学术界与工业界之间的鸿沟等。
  • 在开发复杂系统时,应采用逐步发展的方式,遵循软件架构和敏捷开发方法,以降低构建复杂性。
  • 反馈回路是开发复杂系统的关键,通过对齐性和周期时长来评估反馈回路的有效性。
  • 软件架构对于降低系统构建复杂性和提高代码可读性非常重要,水平分层结构是数据科学系统的良好架构。
  • 编写测试套件对于保证代码正确性和数据可信度至关重要,基于属性的测试和数据测试是有效的测试方法。
  • 学术界需要改进激励机制,与期望的科研目标相匹配,以促进高质量数据科学系统的创造和发布。

三、总结

我们通过进行实验来提出数据问题。就如同在深入的交谈中,你必须仔细听取答案,并据此调整自己后续的回应和提问。这并不意味着你的问题生成算法需要贪婪,但它必须是持续迭代的。一方面,迭代工作释放了反馈回路的潜力,这在处理复杂或真实数据时尤为重要。另一方面,这要求你在与数据交互时具备灵活性。

反馈回路是特征工程、模型开发等各环节的基础设施。反馈回路让我们能以更快、更远、更自信的步伐前进。逐步发展的数据科学系统能够充分利用反馈回路的力量。正确性和有效性是两个不同的概念,它们需要不同的反馈回路。对于正确性而言,最核心的反馈回路是编写和执行测试套件,并尽可能编写清晰易懂的代码。对于打造有效反馈回路来说,最重要的一点是尽早建立起整个数据流水线,并使其尽可能细致。

我们注意到,(几乎)没有反馈回路能实现完全对齐;但是,对齐却是不可或缺的。然而,我们要指出,在迭代不对齐的反馈回路时可能会出现微妙的问题。过拟合,也被称为古德哈特定律,指出一旦某个度量成为目标,它就不再是一个好的度量标准。过拟合主要是有效反馈回路的问题。此前研究认为,人和流程通过不协调的反馈来优化不当的激励,可能导致他们(有意或无意地)“玩弄系统”。这种过拟合,即在验证集上的过拟合,可能影响整个数据科学系统,而非仅限于模型。尽管研究者在训练模型时通常意识到这个问题,但他们往往未能察觉到整个数据科学系统存在同样问题。

机器学习和数据科学项目中,通常把数据集分为训练集、验证集和测试集,其中训练集用于训练模型,验证集用于在模型训练过程中调整参数和选取最佳模型,而测试集则在所有模型开发完成后,用于评估模型表现。针对模型过拟合的策略,也同样适用于数据科学系统,例如,在开发过程中不使用保留的测试集,而是在开发最后才用测试集评估模型。最后,我们再次强调可重复性是一个社会技术问题,对学生和早期职业研究人员进行这些特定问题的培训至关重要。


📚️ 参考链接:

  • Dittmer, S., Roberts, M., Gilbey, J. et al. Navigating the development challenges in creating complex data systems. Nat Mach Intell 5, 681–686 (2023). https://doi.org/10.1038/s42256-023-00665-x
  • 机器学习可重复性危机下,创建复杂数据系统的挑战
  • 机器学习用于科研 —— 拉响 “可重复性危机” 的警报
  • 薛定谔的准确率:PyTorch 随机数引发的可复现性陷阱
  • 干货 | 论机器学习的可重复性危机
  • 沈向洋:致 AI 时代的我们 —— 请不要忽视写作的魅力

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/220933.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[论文笔记] 大模型主流Benchmark测试集介绍

自然语言处理(NLP)的进步往往通过在各种benchmark测试集上的表现来衡量。随着多语言和跨语言NLP研究的兴起,越来越多的多语言测试集被提出以评估模型在不同语言和文化背景下的泛化能力。在这篇文章中,我们将介绍几个主流的多语言NLP benchmark测试集,包括ARC Challenge、H…

Android hwcomposer服务启动流程

Android hwcomposer服务启动流程 客户端 binder远程调用 服务端 surfaceflinger --binder--> hwcomposer .hal文件编译时生成支持binder进程间远程调用通信的cpp文件 在out/soong/.intermediates/hardware/interfaces/graphics/composer/2.1/ 目录下找…

测试用例设计方法:功能图

1 引言 前面几篇文章为我们讲述了因果图、判定表、正交试验等几种方法,主要是针对于不同条件输入输出的组合进行测试,但在实际需求中,我们也常会遇到需要对被测对象的状态流转进行验证的情况,此时前面几种方法将不再适用&#xf…

005 本地安全策略

一、本地安全策略 1、概念 主要是对登录计算机的账户进行一些安全设置主要影响是本地计算机安全设置 2、打开方式 开始菜单->管理工具->本地安全策略使用命令secpol.msc从本地组策略进去,使用命令gpedit.msc 二、账户策略 1、密码策略(默认情…

Java安全工具Jar包加密

jar包加密有很多种方式,我这边记录一下使用mavenClassFinal的方式,classFinal可以通过jar包/maven的方式来使用,因为maven使用较为简单,我仅记录使用maven的方式 在需要打包的启动程序的pom文件中添加如下plugin 1.plugin需要加在spring-boot…

Windows本地的RabbitMQ服务怎么在Docker for Windows的容器中使用

1. 进入管理界面 windows安装过程请访问:Windows安装RabbitMQ、添加PHP的AMQP扩展 浏览器访问:http://127.0.0.1:15672/ 2. 创建虚拟主机 上面访问的是 RabbitMQ 的管理界面,可以在这个界面上进行一些操作,比如创建虚拟主机、…

P1000 超级玛丽游戏

题目背景 本题是洛谷的试机题目,可以帮助了解洛谷的使用。 建议完成本题目后继续尝试 P1001、P1008。 另外强烈推荐新用户必读贴 题目描述 超级玛丽是一个非常经典的游戏。请你用字符画的形式输出超级玛丽中的一个场景。 ******** ************ …

找到字符串中所有字母异位词-中等

leetcode ****1111 给定两个字符串 s 和 p,找到 s 中所有 p 的 异位词 的子串,返回这些子串的起始索引。不考虑答案输出的顺序。 异位词 指由相同字母重排列形成的字符串(包括相同的字符串)。 示例 1:输入: s "cbaebaba…

CSS彩色发光液体玻璃

效果展示 CSS 知识点 animation 综合运用animation-delay 综合运用filter 的 hue-rotate 属性运用 页面整体布局 <section><div class"glass" style"--i: 1"><div class"inner"><div class"liquid"></d…

LeetCode---374周赛

题目列表 2951. 找出峰值 2952. 需要添加的硬币的最小数量 2953. 统计完全子字符串 2954. 统计感冒序列的数目 一、找到峰值 这个简单的模拟&#xff0c;代码如下 class Solution { public:vector<int> findPeaks(vector<int>& mountain) {int nmountain…

Springboot整合阿里云短信服务

目录 1.注册登录用户 2.点击AccessKey管理&#xff0c;开通使用子用户AccessKey 2.1点击进入AccessKey管理 2.2点击用户创建用户 2.3选择控制台创建 2.4权限修改 3.短信服务 4.创建Springboot项目使用SDK 4.1创建一个springboot项目 4.2导入阿里云短信Maven依赖 4.3…

N体问题-MATLAB 中的数值模拟

一、说明 万有引力是宇宙普适真理&#xff0c;当计算两个物体的引力、质量、距离的关系是经典万有引力物理定律&#xff0c;然而面向复杂问题&#xff0c;比如出现三个以上物体的相互作用&#xff0c;随时间的运动力学&#xff0c;这种数学模型将是更高级的思维方法。本文将阐述…

gin使用自签名SSL证书与自签名证书不受信任方法解决

文章目录 1. X.509 V3证书介绍2、使用openssl生成自签名证书和解决不受信任问题2.1、生成根证书2.2、为域名生成证书申请文件2.3、为域名创建证书的扩展描述文件2.4、为域名创建证书 3、Go应用中使用自签名证书3.1、gin框架调用实现3.2、运行效果 4、使用java的bouncycastle生成…

比较好的python书籍,python有什么书推荐

大家好&#xff0c;小编来为大家解答以下问题&#xff0c;比较好的python书籍&#xff0c;python有什么书推荐&#xff0c;现在让我们一起来看看吧&#xff01; 我是在半年前接触到Python的&#xff0c;我之前没有一点编程基础&#xff0c;但在我自学的这半年里&#xff0c;我发…

Saas 中 用默认的值,不初始化给商户值,sql 查询 group by中,指定字段 倒序

在saas 项目中&#xff0c;有些商户没有设定某些值&#xff0c;则用系统默认的值&#xff0c;不需要初始化给商户 SELECT * FROM app_public_config WHERE (name, merchant_id) IN (SELECT name, MAX(merchant_id)FROM app_public_configGROUP BY name ) and merchant_id IN …

vue3 后台返回的接口数据,下载图片到本地

vue3 后台返回的接口数据&#xff0c;下载图片到本地 <el-table><el-table-column align"left" label"操作" min-width"240"><template #default"scope"><el-button icon"edit" type"primary&quo…

我的NPI项目之Android 安全系列 -- Android Strongbox 初识

从Android9(Pie)开始,Google强烈建议支持Strongbox. 具体描述如下: 一直到目前的Android14. 对应的内容也一并贴出来: 说人话就是Android开始通过独立于主SoC的单元进行密钥存储了。 通常&#xff0c;这样的单元就是我们通常称作的Secure Element&#xff08;SE&#xff09;&am…

高效备份与大数据分析:揭秘亚马逊云科技海外服务器强大能力

首先&#xff0c;让我们先来了解一下云计算的基本概念。云计算是一种基于互联网的计算模式&#xff0c;通过将计算资源、存储空间和应用程序提供给用户&#xff0c;实现按需使用和付费的方式。依托于众多出彩的海外服务器产品我们可以获得这一体验。云计算能够极大地简化用户的…

OpenCV-Python:DevCloud CodeLab介绍及学习

1.Opencv-Python演示环境 windows10 X64 企业版系统python 3.6.5 X64OpenCV-Python 3.4.2.16本地PyCharm IDE线上注册intel账号&#xff0c;使用DevCloud CodeLab 平台 2.DevCloud CodeLab是什么&#xff1f; DevCloud是一个基于云端的开发平台&#xff0c;提供了强大的计算…

debezium常见问题官网翻译版

原文链接 https://debezium.io/documentation/faq/ 欢迎关注留言&#xff0c;我是收集整理小能手&#xff0c;笔芯笔芯. 什么是Debezium&#xff1f; Debezium 是一组分布式服务&#xff0c;可捕获数据库中的行级更改&#xff0c;以便您的应用程序可以查看并响应这些更 改。D…