开发人员为什么很难学好机器学习

开发人员为什么很难学好机器学习
2018年05月19日 06:21 五金堂

机器学习(ML)被誉为当代最关键的技能。 人工智能(AI)是机器学习的一个应用,正变得越来越普及。 从自动驾驶到自动调整的数据库,人工智能和机器学习随处可见。 行业分析师经常将人工智能驱动的自动化称为职业杀手。 几乎所有的领域和垂直行业都受到人工智能和机器学习的影响。 在人工智能研究方面投入巨资的平台公司正在快速推出新的工具和框架。

所有这些因素都使一个普通的开发人员面临着学习机器学习技能的压力。人们突然开始学习与机器学习相关的工具和技术,自定进度课程和MOOCs的数量在2017年翻了一番。在像印度这样的新兴市场,有许多技术培训机构承诺将程序员转变为数据科学家。

尽管开发人员对机器学习有浓厚的兴趣和以及行业的紧迫感,但是他们仍在努力学习掌握着机器学习所需的基本技能。

下面这些就是开发人员在掌握机器学习之前需要克服的一些挑战:

数学的连接

事实上 我们大多数人都害怕数学。 软件开发没有强制直接应用数学。 可重复使用的数学库和函数的可用性使开发人员免于数学困难。 一个普通的程序员不会每天都处理数学问题。 只有少数有天赋的开发者对数学的敏锐的直觉。

要想掌握机器学习,数学是必须的。线性代数、统计学和概率是机器学习的基础。如果你是一个认真计划加入“机器学习潮流”的开发人员,现在是时候复习你的高中数学了。这一定是一项值得投资的事情。

分析数据的能力

除了数学,数据分析是机器学习的另一项基本技能。像数学一样,不是每个开发人员都有处理数据的诀窍。加载一个大数据集,清理它以填充缺失的数据,对数据集的切片和切块从中查找模式和相关性是数据分析中的关键步骤。

即使你不是一个能立即解析直方图,条形图,折线图和饼图的人,你也需要欣赏可视化的魔力。 大部分数据科学涉及数据准备和分析。 开始花时间使用 Excel来了解数据透视表和各种可用图表的可视化技术。

关于Python和R对Julia的辩论

在开发机器学习模型时,开发人员经常陷入使用Python vs. R和Julia的争论中。然而,Python似乎正在成为机器学习的首选语言。 库和开源工具的可用性使其成为开发机器学习模型的理想选择。 尽管R被传统统计学家所青睐,但大多数开发人员仍推荐使用Python。

像Julia等语言越来越受欢迎,这都是在它拥有最好的数据科学生态系统的前提下。

框架的碎片化

即使你是一位具有出色编程技能的数学天才,其中最重大的挑战之一就是选择正确的机器学习框架。开发人员将不得不从各种框架和库中进行选择来构建机器学习模型。 Python模块有NumPy,Pandas,Seaborn,Scikit-Learn,其次是开源工具包,如Apache MXNet,Caffe2,Keras,Microsoft Cognitive Toolkit,TensorFlow和PyTorch。 开发人员在选择正确的模块和工具箱时常常感到困惑。

如果你是Python开发人员,请先从Scikit-Learn开始构建基本模型,然后再探索Caffe2和Keras等高级工具箱。 大多数这些开源工具都是用于深度学习的,这是一种机器学习的先进技术。 Python和Scikit-Learn的结合为开发人员开始ML旅程提供了足够的抽象。

相同问题的多种解决方法

在学习了如何使用这些工具和模块之后,开发人员就会纠结于如何选择一个特定的算法来解决一个机器学习问题。机器学习有一组预定义的方法,称为算法,它们最适合解决特定的问题。

例如,在Logistic回归和K-最近邻算法之间进行选择可能会让初学者感到困惑。 像大多数计算机科学的分支一样,机器学习提供了多种技术解决相同问题方法。

开发人员应该学习与算法相关的核心概念,并运用他们的经验将其应用于给定的问题。 在许多情况下,多种算法用于评估模型的精确度和准确性,然后再进行求解。

缺乏开发和调试工具

集成开发环境(IDE)的进步使程序员能够专注于业务问题,而不是处理环境的配置。 例如Eclipse,Microsoft Visual Studio和IntelliJ IDEA等工具为开发人员提供开箱即用的开发和调试体验。 程序员可以在for循环中快速设置一个断点,以便可视化每次迭代时变化的变量状态。 这些工具提供开发人员体验加速了软件运行。

不幸的是,现有的开发工具还没有准备好进行机器学习,开发人员需要切换到一个完全不同的工具链来开发机器学习模型。 虽然Jupyter Notebook等工具强大且成熟,但与传统开发人员工具截然不同。

与传统程序相比,调试机器学习模型非常困难。 通过编写代码来创建深度学习网络也非常复杂。

像微软这样的IDE供应商正致力于为机器学习开发人员提供无缝的工具体验。但是,要开发交互式Python应用程序,就需要掌握Jupyter Notebook。

太多的学习资源

近年来,自学课程和大规模开放式在线课程(MOOC)的数量爆炸式增长。有许多课程可供开发人员学习数据科学和了解什么是机器学习。

但是选择学习这些课程会让初学者更加的困惑。 鉴于机器学习领域广大,没有课程是一个系统性的。 这些工具和框架正在迅速发展,这些课程也已经过时了。

社交媒体和博客圈里充斥着与机器学习相关的文章、教程和指南,其中的问题就在于它们中的大部分都是不完整的。

最好选择一门课程来掌握一个概念,而不是学习多门课程。重叠和冲突的内容是具有压倒性的,甚至是误导。

本文首发网站:https://www.ait800.com/jiqixuexi/231.html

财经自媒体联盟更多自媒体作者

新浪首页 语音播报 相关新闻 返回顶部