|算法实现太难了?机器学习也需要开源软件


|算法实现太难了?机器学习也需要开源软件
本文插图
|算法实现太难了?机器学习也需要开源软件
本文插图

作者 | Soren Sonnenburg等
译者 | 刘畅
出品 | AI科技大本营(ID:rgznai100)
导读:开源工具已经趋于成熟 , 这使其能构建大规模的自然场景下的系统 。 与此同时 , 机器学习领域为各种应用开发了大量强大的学习算法 。 但是 , 由于没有公开共享现有的实现方式 , 去真正的利用这些方法 , 从而导致软件的可用性和互操性较弱 。
本文作者认为 , 可以通过提高研究人员在源代码模型下发布软件的动机来明显改善这种情况 。 此外 , 本文概述了作者在尝试发布机器学习算法的实现时所面临的问题 。 作者认为 , 经过同行评审的软件资源以及简短的文档对机器学习和整个科学界非常有价值 。
|算法实现太难了?机器学习也需要开源软件
本文插图

概述
机器学习领域发展迅速 , 为不同的应用提供了各种各样的学习算法 。 这些算法的最终价值在很大程度上取决于它们在解决实际问题中的成功 。 因此 , 将算法进行复制并应用于新任务对于该领域的进步至关重要 。
但是 , 目前很少有机器学习研究人员发布与其论文相关的软件和/或源代码 。 这与生物信息学界的做法形成了鲜明对比 , 后者的开源软件已经成为进一步研究的基础 。 缺少公开可用的算法实现是我们这一学科进步的主要障碍 。
我们相信 , 机器学习软件的开源共享可以在消除障碍方面发挥非常重要的作用 。
开源模型具有许多优势 , 这些优势将带来更好的实验结果重现性:更快地检测错误 , 创新性应用以及在其他学科和行业中更快地采用机器学习方法 。 但是 , 目前缺乏完善和发布软件的动机 。 已发布的软件本身在我们领域中没有标准的 , 可接受的引用方式 。
目前引用它的唯一方法是引用与代码相关联的论文 , 或者通过引用以某种技术报告的形式发布的用户手册 。 为了解决这一难题 , 本文提出了一种正式发布机器学习软件的方法 , 类似于ACM Transactions on Mathematical Software提供的用于数值分析的方法 。
注:本文作者随后简要解释了开源软件背后的思想 , 然后介绍了广泛采用开源的模型将产生的一些积极影响 。 接下来 , 本文讨论了当前主要的阻碍 , 并提出可能的改变以改善这种情况 。 最后 , 作者为JMLR(JMLR-MLOSS)中的机器学习开源软件提出了一个新的、单独的track 。
|算法实现太难了?机器学习也需要开源软件
本文插图

开源背后的思想
开源软件的基本思想非常简单;程序员或用户可以阅读 , 修改和重新分发软件的源代码 。 尽管有各种开源软件许可 , 但它们都有一个共同的出发点 , 那就是允许自由交换和使用信息 。 开源模型更注重贡献者的协作 。 每个贡献者都可以利用网络中其他人所做的工作 , 从而最大程度地减少“重新造轮子”所花费的时间 。
开源的软件主要有下面的10个属性:
1.免费重新使用
2.源代码
3.衍生作品
4.作者源代码的完整性
5.不歧视个人或群体
6.不歧视工作领域
7.许可证的分配
8.许可不得用于特定产品
9.许可不得限制其他软件
10.许可必须是技术中立的
|算法实现太难了?机器学习也需要开源软件
本文插图

开源的积极影响
这一部分主要是简要概述开源软件及其与科学活动(特别是机器学习)的关系 。 读者可能会认为我们对开源的好处过于乐观 , 而没有讨论负面影响 。 事实是 , 要获得专有系统与开源软件之间抄袭的确凿证据是极其困难的 。


推荐阅读