作为人工智能的重要组成部分,机器学习和计算机视觉方向是最近几年硕士研究生比较热衷的方向。机器学习和计算机视觉需要跟各种算法打交道,所以往往需要使用一些方便的工具来辅助研究,比如MATLAB就是一个比较常见的工具。
与Python相比MATLAB更像是一种工具,虽然我也经常说编程语言就是工具,但是Python除了能做科学计算之外还能做其他的事情,比如做Web开发,所以Python是一门编程语言,MATLAB则更贴近工具,目前MATLAB也支持语言输出。
因为我是程序员出身,所以早期不太屑于使用MATLAB,直到有一次我们一个同事在我面前展示了MATLAB的强大,我之后对MATLAB还是比较感兴趣,也着实用了一段时间。使用MATLAB有一个比较强烈的感觉就是方便,之前需要大量代码的地方只需要简单的配置就可以完成了,所以MATLAB能节省大量的时间。如果你是做研究,不需要把项目落地,那么使用MATLAB绝对是个好选择,你不用把过多的精力放在编码上。
后来我开始做机器学习,因为我的很多研究内容是要落地的(以实际应用为出发点),所以就直接使用Python了,在使用Python之前我使用的是Java(这里面的故事就比较多了)。如果你需要把算法进行实际使用那么使用Python一定是对的,MATLAB擅长的是分析和建模。
Python做机器学习需要使用Numpy、Matplotlib,Scipy这几个常见的库,这几个库使用起来也并不复杂。学习Python也比较简单,很容易上手。
答案必然是Python!
从就业前景看: Matlab是收费的商业软件,学校里可能有能student edition的license,将来就业很少有公司能支持到license
这个问题我觉得可以从科研和就业两方面考量吧。
科研
科研方面,我不知道这个问题是针对你本人的(你就是机器学习和计算机视觉方向的研究生),还是说并不针对你本人(你本人并不是这个方向的研究生,你只是单纯好奇一下)。
如果是针对你本人的,那从个人角度上来说,这个问题其实并不需要你考虑。因为,这是你所在的团队(实验室)决定的。无论是从细分方向的角度,还是从历史积累代码的角度,还是从便于合作的角度,你需要与所在团队保持一致。
如果你只是单纯好奇的话,那么这取决于具体的细分领域。比如,机器学习领域现在很热的深度学习,绝大部分主流框架都提供python接口,做深度学习方向的计算机视觉,那当然是python。相反,有很多领域大家都用matlab。其实这和上面的情况有些类似,就是你所在的具体细分领域,其他研究人员用什么,你就用什么。
就业
这个其实也取决于你具体想去什么类型的企业。很多传统的计算机视觉企业,需要的既不是python,也不是matlab,而是C++。甚至,现在很受投资者追捧的基于深度学习做计算机视觉的一些初创企业,固然需要Python方面的人,但也可能需要C++方面的人(比如CUDA定制操作等性能方面的优化)。
根据你的专业和方向来说,我倾向于推荐Python,Matlab是更加纯粹的学术型语言,或者说更接近数学本质。而python离工业界更近一些,也就是应用更广泛。
Python的优势有哪些
- 学习门槛低,维护成本低,可读性更强,可以说Python上手最快的编程语言了,而且更加接近自然语言,可读性非常高。
- Python在应用领域更加广泛,不光在数据分析、人工智能领域,在Web开发,信息安全领域也早早成为第一黑客语言。而MATLAB语言基本上集中在工程和科学计算方面,而且MATLAB价格非常昂贵,要知道Python可是开源的软件。
- Python拥有更加丰富的扩展库,虽然比起Java、JavaScript这些语言Python还有较大差距,但是很显然比起Matlab还是具有很大的优势的。
官方支持以及扩展方便
总体来说,其实很简单,就是Python学习成本更低,更用户友好,而且开源免费社区更强大、生态更完善。Python还是一个工业级的编程语言,而Matlab则应用领域比较局限。
而且最重要的是在人工智能领域比如卷积神经网络,目前Python基本上已经是默认的研究语言,很多人工智能学习框架,比如Google大名鼎鼎的tensorflow人工智能学习框架都是将Python作为默认开发语言,这一点是Python最大的优势。
即使遇到Python搞不定的事情,要知道Python的C扩展非常方便。
所以从提问者视觉识别学习需求,以及以后长期学习和工作,我更倾向于推荐Python语言,更加优美也更加高效更接近工业环境。
你说的计算机视觉和机器学习估计差不多也就是进深度学习大坑了,目前常见的深度学习框架貌似支持MATLAB的不多,这方面python是主流,但是框架内核都是C/C++,所以你要想长远发展还是python和C/C++,python是必须掌握的,C/C++看能力
计算机硕士,更重要的是对算法本身的理解吧,Python和MATLAB都只是工具。
彻底理解了算法,对于一个计算机专业的硕士,运用这两个工具上不存在难度的。
再说一下这两个工具吧,python是一门通用计算机编程语言,使用python作为人工智能开发工具的理由,是因为有大量的现成的库以及各种开源代码供直接使用。
python作为一门通用编程语言,虽然简单易学,也还是需要一定的学习曲线的。
matlab呢,不是一门通用编程语言,而是一种数学工具,在数学工具的基础上,开发了针对各个领域的工具箱,包括人工智能方面的。
我是计算机硕士,刚毕业,硕士阶段用的就是matlab,没用过其它工具,matlab只是做科研写论文用的,公司里没有用matlab的,都是C和C++,虽然我也会,但面试时一问,我是用的matlab,就把我pass了,导致找工作屡屡碰壁。从入学导师就让我用的matlab,我感觉被导师坑了,导师只关心我的论文,我能不能毕业。千万别用matlab,现在深度学习和计算机视觉都是用的python,要做项目还必须会C和C++,你可以看一下网上的招聘,都是要求这三种语言。
纯属个人观点。如果单从使用频率来看,python更合适;如果是从读研和找工作的角度来看,两者并无区别,只是语言工具,可以多偏重问题的解决和个人品牌的塑造。
从你所问的问题来看,你应该刚刚开始学习,建议,二者都学,这个其实不难的,1个月时间,两个应该都可以学会了,当然,在实践中才能精通。
以后 往公司去做应用方面的开发,python比较多一些,当然了,取决于公司,有的公司可能需要你用c++来实现,有的公司也可能要求用java来实现,这些都不是大问题,,这些仅仅是表现手段的差异,主要是软件包的是否丰富上面的差异。matlab作为科研工具还是不可少的,
很简单,都学,人家咋克伯格20岁什么语言多会,你都快三十了还在纠结学python还是matlab你很幽默