前言
伴随着AlphaGo打败人类的围棋冠军柯洁的热点话题,人工智能在2017年掀起的浪潮如洪水猛兽般袭来,并成为一个不容忽视的存在。在广大的在校学生中,有着这样一批同学,他们学着和机器学习人工智能领域相关度较小的专业,然而面临这样一个硕大的风口时,不甘心以一个旁观的吃瓜群众身份存在。
本人作为流体力学专业的在校博士生,在科研以外的零碎时间学习入门机器学习领域已有一年半的时间。最近周围也有很多同学向我问起转行机器学习数据挖掘领域的可行性。我在此以半个门外汉的身份,雾里探花地介绍一些对于转行人工智能领域的见解及建议,希望能够对未来有志于未来从事数据科学及人工智能领域工作的小伙伴有所启发。
学习过程
转行本身是痛苦的过程,需要付出大量额外的精力摸索一条陌生的道路,如果在短期内无法收获足够的成就感,足以打击到学习的意志力并怀疑转行道路的可靠性。从小我们入门某个学科都会首先从理论开始学习,然而寄希望于能够系统学习完机器学习理论再参与到实践会是一条非常痛苦的过程,啃完机器学习经典著作PRML可能就需要花费一年甚至更长的时间,学习的热情也会在纷繁复杂的公式推导中消磨殆尽。庆幸的是,前人已经铺垫出了一条直达实践应用的捷径。大量的机器学习及深度学习框架囊括了所用常用的算法并通常提供友好的调用格式,初学者可以在无需了解算法细节的基础上,用不到100行的代码轻松解决经典的机器学习问题,诸如手写字母识别,垃圾邮件的分类等。在搭建完成解决问题的整体框架后,再通过阅读书籍及参考文献进一步了解算法的实现细节,并进一步改进代码优化算法表现。这样实践结合理论快速迭代反馈的方法,通常能够激发出学习的积极性并在较短的时间内提升业务水平。
在取得阶段性学习成果后,可能经典的机器学习数据集已经无法满足自己的认知需求,此时参加大数据竞赛无疑是检验学习成效,并在短期内对于某个特定业务场景有所深入了解快捷渠道。天池大赛的参赛时间一般为两个月左右,时间上的限制大幅压缩了算法尝试及改进的空间,需要尽可能在有限的时间内最大程度上优化解决方案。当然实际问题的解决难度会远大于经典数据集,参赛选手在面临多种调整方案时,需要对于各个改进方向所能获得的潜在收益有合理的预估,并在时间精力有限的情况下尝试抓住问题的主要矛盾,抛开细枝末节。天池及Kaggle平台的论坛及讨论群会有其他参赛选手精辟见解甚至完整的解决方案,了解别人的思路很大程度上也能扩宽视野。
转行难度
人工智能领域开源社区发展完善,集成化程度高。就深度学习领域来说,Google在2015年末开源了Tensorflow,并在短短一年内快速成为GitHub上最受欢迎的开源框架。微软开源了CNTK,亚马逊近期宣布使用的MXNet, Facebook负责维护的Torch和Caffe。每一个深度学习框架都有丰富的用户使用文档及示例代码,及论坛社区负责答疑。学习并使用的机器学习算法正在变得异常简单友好,对于初学者来说只需要在范例代码的基础上做简单的修改,无需知道代码底层实现方式,学习门槛远比若干年前低很多并且学习效率有了大幅提升。开源框架的使用,使得机器学习的过程正在变得像搭建乐高积木一样简单高效,每个功能的积木都以完整提供,使用者所搭建的学习模型无非是就是几组乐高积木排列组合。
转行存在的潜在担忧是,与科班学生在知识储备方面差距是否会在入职后被放大,两者之间的差距在多长时间内得到填补。人工智能发展势头迅猛,潮流更迭非常快,无论是数据量还是新性网络结构方法都如以雨后春笋般快速涌现。近两年比较热门模型比如深度增强学习DQN,生成式对抗网络GANs等。人工智能的潮流的更迭速度非常迅速,即使是现有非常流行的方法,也难免在不久的未来失宠甚至被更新的潮流替代。当然,旧方法的逐渐淘汰并伴随技术更迭对于初学者来说无疑是莫大的福音,这意味在人工智能领域,初学者与老司机在面临新技术变革时都处于同一起跑线上,都同样需要与时俱进更新自己的知识储备来适应时代变化。两者在时间维度上的差距远比想象的要小很多,入行1年的新手与从业5年的老司机之间的有效知识储备差异,可能只有2年甚至更短。当然快速的行业技术更迭速度对于从业者而言即使机遇也是挑战,需要从业者有着良好的接收新事物的能力及较高的学习热情。我会选择定期看Youtube的学习视频以及技术类公众号推送的文章,拓宽思路并紧跟技术前沿发展趋势,避免安于现状并逐渐成为井底之蛙。
资料推荐
机器学习类的优秀的学习素材非常多,初学者强力推荐吴恩达在Coursera上的机器学习课程,零基础入门深入浅出,课程作业做完手里就有一套基本的机器学习算法集了,完成课程顿时信心满满。对于机器学习新手来说,了解如下几个python库的基本功能,并亲自上手练习熟悉代码的书写,对于参加机器学习的实践,及参加大数据比赛会有事半功倍的效果:
pandas:参加数据科学竞赛必备利器,实现快速完成特征抽取与样本清洗
scikit-learn:包含机器学习中,分类,回归,聚类,数据降维,模型选择和数据预处理中各种常用的算法。操作简单,是高效的数据挖掘和数据分析工具。
xgboost:GBDT的高效实现,天池和kaggle竞赛获奖选手使用频率最高的算法,没有之一。
theano:允许使用者有效地定义、优化和评估涉及多维数组的数学表达式。特点为高效符号化操作,详细的深度学习实例代码。
tensorflow:深度学习必备,GitHub上最火的深度学习框架。
以及我个人比较喜欢的机器学习类入门与进阶书籍:
《利用Python进行数据分析》:Python数据操作的入门书籍,介绍数据的清理、转换、合并、聚合方式的实现,适合当做工具书使用。
《Python机器学习及实践》:以Kaggle赛题为背景,不涉及大量数学模型与复杂编程知识,了解主流的机器学习方法的Python实现,快速上手参加机器学习竞赛。
《机器学习实战》:理论结合实际,完成算法的底层实现。
《集体智慧编程》:使用真切的互联网领域代表性案例,用非常直观的方式展示人工智能和机器学习经典的算法的解决方案。
《Pattern Recognition and Machine Learning》:机器学习界的圣经,包涵大量理论知识和数学推导,步骤详细,有助于了解Machine Learning方法背后的本质和思想,值得细读品味。
总结
如果说马云的阿里巴巴和淘宝网,是一个让中小企业成功的平台,那么阿里云天池大数据就是帮助广大人工智能爱好者学习和成功的平台。对于未来有志于未来从事人工智能领域工作的小伙伴,比赛不仅仅是收获知识的渠道,好的比赛成绩也是offer的敲门砖。希望天池能够在未来能够持续推出更多有意思的赛题,吸引更多的同学成为大数据爱好者,将人工智能用到各行各业促进社会的进步。