最近几年,人工智能浪潮层层推进,对各大科技公司产生巨大影响。百度推出Apollo无人车计划,阿里建立达摩院,腾讯成立的AILab虽布局较晚却也不甘人后。
首先来看看在某招聘网站上,当前公司对一个高薪机器学习人才有怎样的要求。
可以看到,对语言的掌握是其中尤其重要的基础条件。学好语言,就相当于走好了万里长征第一步。那么,在学习机器学习的时候,我们需要会哪些酷炫的编程语言呢?我需要学习哪些编程语言?不论你选择哪种语言,只要对这种语言下的机器学习库和工具足够熟悉,语言本身就没有那么重要了。现在对应各种语言的机器学习库层出不穷。根据你在公司中担任的角色和所要完成的任务不同,某些语言和工具可能会比其他的更好用。
R
R是一种为专统计计算而设计的语言。它在大规模的数据挖掘、可视化和报告方面已经取得了巨大的成功。你能够轻松地获取各种的包(通过CRAN)来使用几乎所有的机器学习算法、统计测试和分析等。R语言本身有着优美(虽然有些人会觉得晦涩)的语法用来表达数据的关系、变换和并行操作。
KDNuggets最近组织了一次投票,结果表明R是年用于解决分析、挖掘及其他数据科学任务的最受欢迎的语言。不过,近年来Python的人气也在急剧上升。
MATLAB
MATLAB在学术界很受欢迎,因为它能处理复杂的数学表达式,对代数和微积分有强大的支持,还支持符号运算。同时,从数字信号处理到计算生物学,又或者是其他的科目,它都有对应的工具箱可用。它经常被用于开发新的机器学习算法的原型,有时也会被用于开发最终完整的工具。它的商用许可的确非常昂贵,但也对得起它在研发方面带来的方便。Octave是一款免费的MATLAB替代品。它的语法与MATLAB几乎相同,但只提供一部分工具箱,IDE也略微逊色。
Python
虽然Python是一种更通用的编程语言和脚本语言,但它在数据科学家和机器学习工程师中的人气也是急剧上升。跟R和MATLAB不同,它并没有内置数据处理和科学计算专用的语法,但它有像NumPy、SciPy和Pandas这样的库用更友好的语法提供了同样的功能。
像scikit-learn、Theano和TensorFlow这样的机器学习库让你能够方便地训练各种机器学习模型,还能用上分布式计算。当然,这些库中最影响性能的部分一般还是用C/C++甚至Fortan编写的,而Python包则是作为它们的接口(这在R中也很常见)。
但Python最大的优势在于它的生态系统使得你能够很方便地搭建起一个复杂的端到端服务,比如用Django或是Flask搭建Web应用,或是用PyQt开发桌面应用,甚至用ROS搭建一个自主机器人。
Java
由于它干净一致的实现、面向对象编程的风格以及通过JVM获得的平 立性,Java是很多软件工程师的首选语言。它以简洁性和灵活性为代价换取了明确性和可靠性,使它在实现重要的企业软件系统时非常受欢迎。对于那些一直使用Java的公司,当他们需要开发机器学习产品时,为了保持同样的可靠性和避免写一堆混乱的接口,他们可能更倾向于继续使用Java。
除了一些可以用来做分析和原型开发的库和工具(比如Weka)以外,要用Java开发大规模分布式的机器学习系统,我们有很多选择,比如Spark+MLlib、Mahout、H2O以及Deeplearning4j。这些库和框架也很方便跟工业级别的数据处理和存储系统比如Hadoop/HDFS整合在一起。
C/C++
在开发像操作系统组件和网络协议这样计算性能和内存使用效率极为重要的底层软件时,C/C++是最理想的选择。由于同样的原因,它们在实现机器学习算法的关键部分时也很受欢迎。但是它们没有内建的关于数据处理操作的抽象,内存管理的任务也很繁重,这使得它们对新手来说不太合适,而且在开发完整的端到端系统时也比较笨重。
在开发嵌入式系统(比如智能汽车、智能传感器等),可能必须使用C/C++。而在其他场景下,用它们进行开发的便利程度可能要视现有的基础设施和具体的应用而定。不过无论如何,我们并不缺少C/C++的机器学习库,比如LibSVM、Shark和mlpack。
企业级解决方案
在这些语言和库以外,还有很多统计建模和商业分析的商用产品,用于在更为受控的数据处理环境下应用机器学习模型。这些产品,包括RapidMiner、IBMSPSS、SAS+JMP和Stata等,它们的目标是为数据分析提供可靠和端到端的解决方案,通常也会将API或是脚本语法暴露给用户。
近年来还涌现出了一批“机器学习即服务”平台,比如AmazonMachineLearning、GooglePrediction、DataRobot、IBMWatson和MicrosoftAzureMachineLearning等。它们使你能够拓展你的机器学习产品的规模,处理巨量的数据以及快速地对不同的模型进行试验。只要你在机器学习领域打好了坚实的基础,使用这些平台就像学习使用一门新工具一样简单。
图片:杜璎达
编辑:杜璎达
指导老师:于杰
赞赏