Py学习  »  机器学习算法

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

AI科技大本营 • 3 年前 • 371 次点击  

作者 | 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.许可必须是技术中立的
 
开源的积极影响

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

本文从道德,伦理和社会基础三个方面进行阐释,开源应该是机器学习研究的首选软件发布选项,并向读者介绍开源软件的许多优点。在这里,本文将重点放在用于机器学习研究的开源软件的特定优势上,该优势结合了科学进步以及软件生产者和消费者的需求和要求。作者从以下7点说明了开源的优势:
 
1.科学结果的可重复性和算法的合理比较;
2.发现问题;
3.利用已有资源(而不是重新实现);
4.不断获得科学的工具;
5.优势结合;
6.在不同学科和行业中更快地适用某方法;
7.出现协同标准。
 
最后,作者使用一个表格总结了开源会带来的优点,一共有11条,分别如下:

1.提高了科学研究的可复现性
2.有助于公平比较在相同框架中实施的算法
3.可以更快地发现问题
4.可以修复bug和扩展外部来源的错误
5.方法可以被其他人更快地采用
6.可以使用高效的算法
7.能利用现有资源来帮助新研究
8.广泛的使用算法会使其得到广泛的认可
9.可以开发更复杂的机器学习算法
10.可以加速研究进展
11.对新研究者和较小的研究小组非常有帮助
 
 

开源社区当前主要的障碍

尽管根据开源模型发布实现方式具有许多优点,但是当前很少采用此选项。作者认为,有六个主要的原因,总结起来概括如下:

1、发布软件不能够被视为一种科学贡献
2、公开与商业利益存在根源上的冲突
3、发布开源软件的激励措施没有足够高
4、机器学习研究人员不是一个优秀的程序员
5、这种松懈能掩盖新方法的问题,并降低会议和期刊的接收难度
6、存在一种习惯,对质量相似的论文采用相同的处理方法
 
 
建议

作者给出了提交高质量机器学习开源软件实现的描述。提交的内容至少应包括:

1、一封书面信,说明该提交内容适用于机器学习开源软件部分,发布该软件的开源许可证,项目的网址以及要查看的软件版本。
2、最多四页基于JMLR格式的描述。
3、包含源代码和文档的zip或tar压缩的归档文件。
 
结论
 
综上,作者认为,采用共享信息的开源模型来实现机器学习软件对整个领域都非常有帮助。开源模型具有许多优势,例如提高了实验结果的可重复性,更快地检测错误,加速科学进步以及在其他学科和行业中更快地采用了机器学习方法。由于当前发布开源软件的动机不足,本文概述了一个发布用于机器学习的软件平台。

此外,本文讨论了机器学习软件的理想功能,这些功能最终将产生一个高度可用,灵活和可扩展的软件。本文邀请所有开发机器学习算法的机器学习研究人员提交机器学习软件的JMLR track。定义精心设计的界面对于提高交互操作至关重要,这将使社区能构建一套高质量的机器学习软件。
 

推荐阅读

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/72522
 
371 次点击