随着开源思想的逐渐兴起,很多机器学习领域的算法都已经实现为开源的库、包或代码。如何在这些已有资源的基础上进行高效开发,是最近几年热议的话题。那么,是不是公司或个人就不需要再对这些算法进行手动实现了呢?近日,Quora网站发起了对于 以下问题的讨论 :为什么有这么多API还要手动编写机器学习算法呢?
首先,Quora的工程副总裁 Xavier Amatriain 从公司的角度回答了该问题。Xavier表示,作为一个公司,选择自己开发机器学习算法的原因可以归结为以下几点:
接下来, Charles Gee 则站在个人的角度上,分析了手动实现机器学习算法的好处。
Simon Maby 表示,一般需要自己实现算法的情况包括:
特殊的性能需求、Q-learning和定制化的代价与功能、特殊的应用领域等。此外, Chomba Bupe 将原因归结为创新、不同的项目目标、代码安全、兼容性以及深度理解五个方面。 Shehroz Khan 则主要从理解和掌控代码的角度出发,认为手动实现算法有助于进一步删减或扩展部分功能以及开发新的相关算法。最后,多年从事 有限元分析(Finite Element Analysis,FEA) 的 Debiprasad Ghosh 预测,机器学习社区未来会出现与FEA社区类似的分化:绝大部分成员要么为用户,要么为专家。用户主要了解商用软件和产品;而专家主要关心不同的开源代码和FEA的内部细节,用于进一步的研发。因此,机器学习领域也需要一批掌握算法细节的专家,来指导算法未来的发展。
感谢杜小芳对本文的审校。
给InfoQ中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ,@丁晓昀),微信(微信号: InfoQChina )关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入InfoQ读者交流群 (已满),InfoQ读者交流群(#2) )。