原文: https://machinelearningmastery.com/why-implement-a-machine-learning-algorithm-from-scratch/
当现有 API 中提供了如此多的算法时,为什么要从零开始实现机器学习算法?
这是一个很好的问题。在编写第一行代码之前必须考虑的问题。
在这篇文章中,您将发现这个问题的各种有趣甚至发人深省的答案。
这篇文章中的答案总结自 Quora 问题:“当有许多高级 API 如 tensorflow 可用时,为什么需要手动实现机器学习算法? “。
为什么从零开始实现机器学习算法 照片由 psyberartist ,保留一些权利。
我认为所有的答案都可以分解为两个阵营:
- 自学,其中算法被实现为学习练习。
- 操作要求,其中实现了一种算法以满足生产系统的需求。
Charles Gee 从自学角度给出了很好的答案。他评论道:
...假设我们没有谈论机器学习算法,而是谈论排序算法。当然,许多数据结构都有一个排序函数,几乎不需要编码,但你真的会聘请一个无法做出反对的程序员吗?选择排序?插入排序?归并排序?快速排序?二叉搜索树?
Charles 描述了 4 种不同的用例,从零开始实现机器学习算法是非常可取的:
- 作为机器学习领域的初学者。
- 作为机器学习领域的研究员。
- 作为机器学习领域的老师。
- 作为这些机器学习算法的用户。
Xavier Amatriain 在他的回答中关注这个话题。他评论道:
首先我要说的是,我确实认为任何团队都应该默认重新使用现有的实现。 ...但是,公司可能决定实现自己版本的 ML 算法的原因也很多。
Xavier 列出了实现机器学习算法的 5 个理由,如下所示:
- 表现。对于特定用例,开源实现可能过于笼统且效率不高。
- 正确性。对于特定用例(例如较大规模的数据集),开源实现中可能存在错误或限制。
- 编程语言。实现可能仅限于特定的编程语言。
- 整合。可能需要将算法实现集成到现有生产系统的基础结构中。
- 许可。选择开源许可证可能会受到限制。
在这篇文章中,您发现有两个主要原因可能需要从零开始实现算法。
- 要了解有关算法如何用于自学的更多信息。
- 自定义生产系统的算法实现。
我已经多次发布了从零开始实现机器学习算法的好处。
关于这个主题的进一步阅读包括: