首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >论文该不该强制开放源代码?那个曾经硬刚LeCun的女学者这样说

论文该不该强制开放源代码?那个曾经硬刚LeCun的女学者这样说

作者头像
量子位
发布于 2019-04-24 06:49:46
发布于 2019-04-24 06:49:46
9510
举报
文章被收录于专栏:量子位量子位
晓查 发自 凹非寺 量子位 出品 | 公众号 QbitAI

当年看到一篇精彩的AI论文,正想尝试究竟有多厉害的时候,却发现它没有公开源代码。此时的你是不是感到很苦恼?

不仅是你这么想,最近AI界女强人Anima Anandkumar也公开喊话,她强烈反对发论文却不给代码的行为,呼吁学术会议强制要求投稿同时必须公开代码。

这个Anima,就是以一已之力让NIPS改名的人,至于她还有更多轶事,我们后面再说,先说正题。

Anima:公布代码好处多多

最近,Anima参加了南非的一个学术会议DALI。大会认为由于论文代码的专有性,不强制研究人员公布代码是合理的。

Anima强烈反对这种观点。她认为,不给代码既对自己不利,也对AI行业健康发展不利:

1、对评审非常不友好。

某些论文作者中只给伪代码,但是用伪代码去复现论文的结果是很困难的。因为对于深度学习来说,每个细微的参数都很重要,一点差别就可能导致结果无法复现。

而开放代码更容易让你的论文通过评审。从2019年开始,ICML增加了论文可重复性作为评审考察的因素。

2、对科研人员不公平。

一些科研人员无法获得大量的计算资源。如果某个大团队发布了一篇论文,而一个研究生需要用到其中的结果应该怎么办?指望他一个人复现上百人工程团队的的研究成果吗?

这显然是不现实的。公开代码能让科研人员紧跟最新研究成果,对保持学术界的竞争力至关重要。

3、论文需要有问责制。

以医药行业为例,没有通过严格临床试验的药品是无法上市的。AI也需要有相同的标准,尤其是在关键的安全领域。

首先,就要从指定严格的论文出版标准开始,公布代码让其他同行测试论文的结果。

只有这样,计算机科学才能被称为合理的科学。

4、强制公布代码也是一种激励和奖惩机制。

当前的评审制度存在着一些问题:公平信誉得不到保证,学术造假也得不到惩罚。

Anima说,如果公布代码能营造一个公平诚实的环境,她赞成采取对此采取严厉的措施。

目前AI行业已经接受了开源的文化,但这些激励措施影响不大,因此需要有一个强制执行标准。

5、增加AI行业的协同效应。

开放代码能降低AI行业的进入门槛,鼓励科研人员对算法进行更深入的研究。如果大家各自为政,那么“AI寒冬”就不远了。

网友怎么看?

Anima说,她对听到反对强制公开代码的声音感到沮丧,其中不乏一些“鼎鼎大名”的AI行业人士,但是她没有指名道姓。

那么对于不公布代码这件事情,网友们是怎么看的?大多数人还是持反对态度。

有人认为不强制公开代码是论文造假的一个重要因素:

计算机论文和其他行业论文一样,如果不能复现就失去了意义:

但吐槽归吐槽,实际问题还是要解决的。

如果论文中没有提供开源代码的地址怎么办?有人分享了自己获取代码的心得:

  1. 在Google中搜索论文名称或者第一作者,如果是知名学者,往往能找到他的个人主页。一般主页中会有代码,或者指向GitHub页的链接。
  2. 如果你英文表达能力不错,可以直接向作者发邮件,表达自己愿意引用论文的意愿,并诚恳地索取代码。
  3. 用论文算法的名称,加上语言或者框架的名称,放入Google进行搜索,比如“BERT+PyTorch”。这种方法往往能搜到一些第三方的实现。

关于Anima

Anima在2016~2018年是亚马逊AWS的深度学习首席科学家,去年跳槽到英伟达,担任机器学习研究部门的主管。同时,她还是加州理工学院的教授。

为了对抗AI学术界对女性的歧视和调侃,她曾在Twitter上大战LeCun。说到最有名的事件,当属Anima让顶级学术会议NIPS改了名字,避免了女性参会者的尴尬。

Anima希望学术界更关注女性的学术成就,而不是长相。当有人在她的讲座视频下夸她漂亮时,她的做法是——删评。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-01-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 量子位 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
1 条评论
热度
最新
可以,大佬,互粉一下
可以,大佬,互粉一下
回复回复点赞举报
推荐阅读
Web3js 快速入门
注意:使用上面的命令安装web3.js的话,将会安装web3.js的所有的子包。如果你只需要特定的包,那可以安装指定的包(例如,使用npm i web3-eth-contract来安装与交易相关的包)。
孟斯特
2024/04/24
4380
Web3js 快速入门
Solidity:Gas
在 Solidity 和以太坊中,gas 是一个非常重要的概念。它是衡量在以太坊区块链上执行交易或运行智能合约所需的计算工作量的单位。基本上,每一次在以太坊网络中执行某种操作,如交易或合约调用,都需要消耗一定数量的 gas。
孟斯特
2024/05/28
1840
Solidity:Gas
Solidity:constructor函数
在Solidity中,constructor是一个特殊的函数,它在合约被部署到区块链时自动执行。这个函数在合约的生命周期中只会被调用一次,就是在合约创建时。
孟斯特
2024/05/28
2190
Solidity:constructor函数
Solidity:chainlink
Chainlink是一个去中心化的Oracle网络,它允许智能合约在链上与链下的数据进行安全和可靠的交互。Chainlink的目标是成为区块链和现实世界之间的桥梁,使得智能合约能够访问现实世界的数据,支付系统,API等,从而扩大其应用范围。
孟斯特
2024/06/11
1250
Solidity:chainlink
btcd简介
该项目目前正在积极开发中,处于Beta状态。它非常稳定,自2013年10月以来一直在生产环境中使用。
孟斯特
2024/06/19
2252
btcd简介
Solidity:合约调用方式
在Solidity中,合约之间的交互是通过调用进行的。以下是一些主要的合约调用方式:
孟斯特
2024/05/29
3550
Solidity:合约调用方式
Solidity:变量与常量
在Solidity中,存在三种主要类型的变量:局部(Local)变量、状态(State)变量和全局(Global)变量。它们的作用范围和行为各不相同。需要注意的一点是,状态变量和全局变量的使用可能会耗费更多的gas,因为它们涉及到在区块链上存储和读取数据。因此,应该尽量减少这两种类型变量的使用,特别是在需要大量计算的函数中。
孟斯特
2024/05/28
2270
Solidity:变量与常量
web3.js简介
Web3.js为TypeScript和JavaScript开发者提供了一个健壮而灵活的库。它允许你使用HTTP、IPC或WebSocket与本地或远程以太坊节点(或任何evm兼容的区块链)进行交互。它是以太坊生态系统中连接和制作应用程序的重要工具。
孟斯特
2024/04/24
6730
web3.js简介
solidity 数据类型简介
Solidity(中文名称:Solidity 语言)是一种面向智能合约(Smart Contracts)的高级编程语言,最初由以太坊(Ethereum)的团队开发并用于以太坊平台上的智能合约编写。Solidity 的设计目标是简化以太坊智能合约的开发,使开发者能够创建安全、可靠的去中心化应用程序(DApps)。
孟斯特
2023/10/19
2370
solidity 数据类型简介
Web3.js常用API(一)
创建账号可以使用creat函数,该函数生成并返回一个包含私钥和公钥的Web3Account对象。为了创建私钥,它使用了一个经过审计的包ethereum-cryptography/secp256k1,该包提供了具有特定特征的加密安全随机数。更多信息:https://www.npmjs.com/package/ethereum-cryptography#secp256k1-curve
孟斯特
2024/05/09
3030
Web3.js常用API(一)
钱包与账户概览
Web3.js Wallet是我们在想要直接使用私钥进行任何区块链操作(交易)时的主要入口点,在其它库中也被称为Signer。
孟斯特
2024/04/26
2520
钱包与账户概览
Solidity:合约继承
在Solidity中,继承是一种使一个合约可以获取另一个合约的属性和方法的方式。这是一种代码复用的方法,可以使你的代码更加模块化,更易于理解和维护。
孟斯特
2024/05/28
1990
Solidity:合约继承
Web3连接以太网
Infura 是一种托管服务,提供对各种区块链网络的安全可靠访问,消除了管理区块链基础设施的复杂性,使开发者能够专注于构建创新的 Web3 应用程序。
孟斯特
2024/05/09
1680
Web3连接以太网
Web3.js常用API:发送交易
[1] 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0): https://creativecommons.org/licenses/by-nc-sa/4.0/deed.zh [2] mengbin: mengbin1992@outlook.com [3] mengbin: https://mengbin.top [4] mengbin92: https://mengbin92.github.io/ [5] 恋水无意: https://www.cnblogs.com/lianshuiwuyi/ [6] 孟斯特: https://cloud.tencent.com/developer/user/6649301
孟斯特
2024/05/09
4810
Web3.js常用API:发送交易
PoW简介
工作量证明(Proof of Work,简称 PoW)是一种用于分布式网络中达成共识的算法。它最早由 Cynthia Dwork 和 Moni Naor 于1993年提出,并由 Satoshi Nakamoto 在比特币白皮书中应用到区块链技术中。在区块链网络里,PoW 用于确保区块链网络的安全性和数据一致性。
孟斯特
2024/06/27
3920
PoW简介
Solidity:事件
在 Solidity 中,事件(Event)是合约与区块链外部的接口。事件可以用来记录合约的状态变化,或者触发合约外部的响应。事件在合约中被触发,然后被区块链记录在交易日志中。
孟斯特
2024/05/28
1960
Solidity:事件
Solidity:控制语句
Solidity 中的条件判断和其他编程语言中的大致相同。它使用 if,else 和 else if 语句来执行基于特定条件的代码块。这些语句在智能合约中经常使用,以便在满足某些条件时执行特定的操作。
孟斯特
2024/05/28
1310
Solidity:控制语句
结合 Hardhat 使用 Web3
随着Hardhat插件hardhat-web3-v4[2]最近的兼容性更新,Web3.Js现在可以作为插件在Hardhat中使用。
孟斯特
2024/04/25
1920
结合 Hardhat 使用 Web3
web3.js ENS 包
在这个教程中,我们将探索如何使用web3.js ENS(以太坊名称服务)包。以太坊名称服务(ENS)是建立在以太坊区块链上的去中心化域名系统。它作为一个分布式的、安全的、人类可读的命名系统,旨在将以太坊地址、智能合约和各种其他服务映射到容易理解的名称。
孟斯特
2024/05/17
1620
web3.js ENS 包
web3.js:使用eth包
web3-eth包提供了一套强大的功能,可以与以太坊区块链和智能合约进行交互。在本教程中,我们将指导您如何使用web3.js版本4的web3-eth包的基础知识。我们将在整个示例中使用TypeScript。
孟斯特
2024/05/13
3150
web3.js:使用eth包
相关推荐
Web3js 快速入门
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档