谈谈机器学习与传统编程之间的区别(2)
ML 与编程的另一个明显差异取决于模型能够处理的输入参数的数量。为了能够准确预测,你必须添加数千个参数并以高精度执行,因为每个参数都会影响最终结果。人类很难以合理的方式使用所有这些细节去构建一种算法。 但是对于 ML 没有这样的限制。只要你有足够的处理能力和内存,就可以根据需要使用尽可能多的输入参数。毫无疑问,这一事实使得 ML 现在变得如此强大和广泛。 总结一下:ML专家,数据科学家,程序员和软件工程师......究竟谁是谁?根据 Wiki 上的定义,Data Science 是一个多学科领域,它使用科学方法、流程、算法和系统从结构化和非结构化数据中提取知识和见解。 看上去并不是那么酷。 但接下来还有一些有趣的东西: 使用最强大的硬件,最强大的编程系统,以及解决问题的最有效算法。 后面还有更有趣的部分: 2012年,“哈佛商业评论”称其为“21世纪最性感的工作”。 因此数据科学是另一个筐,就像计算机科学一样,数据科学旨在处理数据并从中提取有用的信息。 那么编程呢?现在的数据科学家为了研究的目的而而需要掌握这种技能。他们不仅是程序员,也应该具有应用统计或研究背景。有些人还从事软件工程,特别是在他们的产品中提供数据科学或机器学习技术的公司。最有趣的是,数据科学可以不必编程,但是会被限定在 Matlab、SPSS、SAS等工具上。 机器学习工程师的职位是怎样的? 机器学习工程师的位置更具有“技术性”。换句话说,机器学习工程师与传统的软件工程有着比数据科学更多的相同点。 ML 工程师的标准任务通常和数据科学家类似,但是你还需要处理数据,尝试用不同的机器学习算法来解决问题、创建原型和现成的解决方案。 我要强调一下关键的区别:
现在让我们回到编程并仔细研究分配给程序员的任务。 程序员实际上就像数据分析师或业务系统开发人员。他们不必自己构建系统,只需针对现有系统编写松散结构的代码。是的,我们可以将数据科学称为新的编程浪潮,但编码只是其中的一小部分。所以不要误会。 但如果深入挖掘,我们会发现还有其他术语,如 Software Engineer 和 Software Developer,两者并不相同。例如软件工程师必须设计工程。它们涉及生产应用程序、分布式系统、并发、构建系统、微服务等。而软件开发人员需要了解软件开发的所有周期,而不仅仅是实现(有时甚至不需要任何编程或编码)。 那么,你现在感受到编程和机器学习的不同了吗?我希望本文可以帮你避免对这些术语产生混淆。毫无疑问,这些人都有一些共同点,那就是技术,但之间的差异要大得多。因此机器学习工程师、软件工程师和软件开发人员完全不可互换。
(编辑:ASP站长网) |