从小白到机器学习算法工程师,我做了哪些准备?

看到此文,是否觉得体内洪荒之力爆发,饥渴难耐想吐槽、情不自禁想捐赠
本文为原创文章,尊重辛勤劳动,可以免费摘要、推荐或聚合,亦可完整转载,但完整转载需要标明原出处,违者必究。

支付宝微  信

一、方向选择

都说选择比努力重要,这个鸡汤我觉得可以干了。起初接触人工智能领域是在硕士选择导师的时候,当时民叔推荐来到人工智能与机器人研究所,跟随现在的硕导做图像处理方面的研究,用到一些机器学习的算法做分类工作。在学校学习平台比较重要,它决定了你会见识什么人、什么样的黑科技、什么样的应用等,没有这些东西勾起你的好奇心,也就没有对未来的规划或者说期待。硕士期间,养成了看论文的习惯,专注领域顶级期刊论文,当然了首先是先把自己研究的课题相关知识看的透彻,这个在第二小节中会介绍:为什么硕士课题很重要。一些我认识是牛人的人说,看论文是在跟领域大牛在交流,这个确实刚开始体会不到,起初很排斥看论文,更加上我的英语那是一个...后来看多了,发现知识之间都是相通的,可能解决一个问题用的是同一个方法,这样看一篇论文的时间会大大缩短,有效率了,心里便更愿意去看论文。康奈尔大学图书馆网站每天更新世界上各个大牛写的论文,当然也有一些即将成为大牛的人的论文,有一些在小修或者已经录用但是还没有登刊的论文,这些都是牛人们对该领域某个问题最新的解决办法,可能这个方法会给你解决你当前问题的灵感,所以要多看,多学习。时间久了,算是对人工智能情有独钟了吧,于是将硕士方向从图像处理中的目标检测悄悄的改为机器学习算法研究,当然我首先做好我当前课题,用空闲的时间学习的机器学习算法。

二、实践基础

这里首先感谢导师吧,因为要毕业,因此课题必须做出东西,至少写个论文或者能出现最终结果。所有的努力都会有一个好的结果,真是不努力永远看不到希望,努力了可能会有希望,这句鸡汤也是可以干了的。在研究课题的时候,主要做了一下工作,而这些工作算是硕士期间的独立研究培养发现问题、解决问题的能力。

1.文献调研。这个很重要,做一个课题或者说研究,你得知道前人都做了哪些工作,你研究的方向存在哪些问题,人家是怎么解决的,而你从中发现了什么,想去怎么解决这个问题。这里最重要的就是思考思考在思考,还要独立思考,因为别人说的都是别人的理解,你自己的理解是什么?好好想想。当前方向论文看完了,还要看一些别的方向(当然了必然是相关方向,可能检测的方法不同,目标不同)的论文材料,因为交叉学科更容易出成果,解决问题的方案可以迁移一下。

2.动手操作。听过一个段子,大概意思是:你说什么都是苍白无力的,show me code。确实如此,有了想法的得去实现,巴拉巴拉说没用。实现——就是写代码,我表示MATLAB我都写不明白,但是没办法,验证想法还真得写,每一句代码都在百度中度过,刚开始很艰难,写多了也就好了...还好最终结果是好的,完成了课题。

3.知识点通透。操作过程中用的知识点要弄明白,我经常问我自己这个东西为什么要用这个方法去解决这样的问题,依据是什么,这就要求对知识点理解的很透彻,比如我在论文中用到了机器学习算法中的Adaboost算法,刚开始用它,是因为它效果好,检测精度高,但是论文里面必然不能这样写...论文中只是罗列了一堆公式,谈不上好坏,说不出真正的所以然,在前一个月我学习机器学习的时候,知道了这个算法的前因后果,才知道原来跟我的数据集有关系,算法的好坏没法评断,因为总有适合它的数据集,刚好我的数据集合跟这个算法是最佳匹配,后面的博客中会更新各个算法以及它们的推导,适合什么样的数据等。

4.多百度。这个点有点bug,感觉像是套话,像是推脱,其实内心里最真实的想法,也是最有效的方法,别人不一定遇见你遇见的问题,别人不一定有时间帮你去解决,所以百度靠谱。

三、机器学习算法基础

有了前面的准备工作,在学习机器学习时候,该关注哪些方面,哪些知识点?因为要学的太多,怎么开始?万事开头难,当你开始上手的时候,就是从0到1的过程——难,那么从1到2就是那句 so easy了,其实说真的,并没有感觉很简单...因为要求数学基础,得会推导,知道各个公式是为什么,怎么来的等等,接下来是重点,仔细详读:

传统机器学习算法:感知机、SVM、LR、Softmax、Kmeans、DBSCAN、决策树(ID3、C4.5、CART)、GBDT、RF、xgboost、Adaboost、EM、BP神经网络、NB、LDA(fisher discrimination)、PCA、核函数、最大熵、logistic regression等等,目前想到这么多,下次博客会讲述我对它们的理解以及我的学习材料资源。

深度学习(DL是ML的一部分,不要认为DL中包含ML,推荐看看bengio老师的DL):CNN、RNN、LSTM、常用激活函数、adam等优化算法、梯度消失原因、梯度爆炸等。

自然语言理解(NPL):TF-IDF、textrank、word2vec等。

常用概念:最大似然估计(这是一个有故事的概念...)、最小二乘、模型融合方法、L1、L2正则、判别模型与生成模型、熵、KL散度、数据归一化、最优化方法(梯度下降、牛顿、共轭梯度等)、无偏估计、算法评估方法(FROC、ROC、PR、F1、AUC等)、交叉验证、bias-variance-trackoff、概率、高数、线代等等。

推荐书籍:李航老师的《统计学习方法》、周志华老师的《机器学习》以及百度...

最后,感谢民叔推荐了这个领域、感谢搭档老于催我定位机器学习、感谢帮助过我的人们。如有不妥之处,欢迎留言,我们可以交流。


这是一篇原创文章,如果您觉得有价值,可以通过捐赠来支持我的创作~
捐赠者会展示在博客的某个页面,钱将会用在有价值的地方,思考中...


分类: 技术, 机器学习, 程序人生, 职业 | 标签: , , , , | 5个评论 | Permalink

5个评论

    • 这篇文文章是我的同学写的(没有标注原创标签的文章,都是不站长本人写的)
      关于MBA选择人工智能方向的问题:
      首先,这个问题本身就有问题,什么叫MBA选择人工智能,我暂且假设你说的是学习MBA专业的人,从事了人工智能方向的工作。
      MBA是一门管理类的学科,作用自然不用多说,人工智能/互联网技术是我本身很热爱的方向,所以在我身上就发生了。
      然而,这种从事技术岗位的人就读MBA专业的人很多,也许你少见多怪了。

      • 哈哈 你解答我疑惑了~ 不过却误会我的本意了 :) 我是在想读MBA选方向的时候,不会有人工智能方面的选项吧。说回来,我身边MBA有很多同事都去念了,也都在搞技术。

发表评论

电子邮件地址不会被公开。