我的学习路径与方法之机器学习篇2——详细历程

      继上一篇的大原则、方法论,接下来我结合自己的经历讲一下自己开始机器学习过程中的学习与实践内容。我大学读的是信息与计算科学专业,学习的专业内容包括数学与计算机两部分,现拣其中我认为对机器学习有助益的部分介绍,数学部分有:数学分析、高等代数、常微分方程、概率论与数理统计、离散数学、运筹学、数值计算方法、应用多元分析;计算机部分有:算法与数据结构、信息理论、数学建模。还有英语,这一块在机器学习中比较重要,因为机器学习中许多前沿的技术领域都来自英语系国家,学好英语有助于提高阅读专业文档、论文效率。英语学习主要培养语感与理解能力。
      以上课程一方面要掌握课本知识,其次就是要对其中内容加以实践,比如运筹学、算法与数据结构都有相应的实验题目,每一个实验题目都要自己上机进行实现。此外,较大型的实践该数数学建模,我参加了4次的数学建模。数学建模就是针对一个现实问题,出题方给出数据(一些情况下也会让参赛者自己去搜索数据),要求参赛者对问题进行建模,给出分析以及解决方案。一次比赛历时3-4天,一般2-3人组成一个团队。比赛开始,先根据题目理清思路,然后查询相关的论文,积累好充分的知识后就开始建模以及文档撰写。文档撰写反映了建模的思路,所以常常是一开始就建立框架,不断进行补充的。建模过程与机器学习中的一样,也是要对数据进行预处理、然后分析、观察数据,建立适当的模型,对模型进行验证、评估,最后才得出问题的解决方案。

      毕业之后做的工作是java web开发,到现在已有7年,工作中积累的主要是项目、架构方面的经验;机器学习方面的学习是兴趣使然。我对算法比较感兴趣,所以业余自学时会对一些数据结构如二叉树、平衡二叉树、红黑树等进行自己的实现,也会上一些算法网站如LeetCode练习算法。这些算法题细节推敲比较多,常会陷入死局,很多时候是靠着idea的调试以及自己手动记录每一步的变量、结构变化图表来走出死局,最终将问题解决的。
      后来因为工作需要接触到python,一开始不习惯它的空格来做流程控制,后来习惯了才发现这是一种很好的做法,可以保证代码的可读性与美观。接着开始对python的语法以及类库做更多的了解,发现其中非常优秀、方便、强大的工具包,比如numpy、pandas,开始爱上这门语言,这期间看的书是《利用Python进行数据分析》,同时也对相关的类库做了充分的实验。接下来又看了《Python数据分析与挖掘实战》和《Python数据可视化编程实战》,前者由一个个使用python做数据分析的案例组成,例子都非常好;后者讲如何将数据以图表形式展示,在数据分析阶段中十分有用。
      开始接触到数据挖掘了,看了大纲介绍发现其根本思想在大学时的课程《应用多元分析》中都已经接触到了,于是开始看一些这方面的书籍,如周志华的《机器学习》(因其例子中多用西瓜,又称作西瓜书)、邱锡鹏的《神经网络与机器学习》。

      后来接触到大数据,在自己电脑上搭建了hadoop以及spark,买了一本《数据算法 Hadoop/Spark大数据处理技巧》,从头到尾看并实验了一遍,对map/reduce以及spark的rdd等都有了较充分的理解与实践经验。前面也做了不少实战,但都是练习实验类的,现在就去看一些当前实际的应用,比如kaggle、阿里的天池大赛。一开始做的是一个关于商品推荐的天池离线赛,数据量很大,直接用pandas分析不动,所以用上了spark,最后用spark的als做的,通过grid search来寻找最优超参数,计算量很大,几乎有一个多星期电脑没有关,一直在跑spark的任务(我用的mac电脑),但是得出的预测结果准确率不是很高。后来,也就是最近参加了阿里的实时比赛CIKM 2019 EComm AI:超大规模推荐之用户兴趣高效检索,这次比赛因为部门大幅度裁员导致工作空闲的缘故才得以参加的,历时两个多星期,期间无数次陷入困局或者没有思路,最后是进入复赛,但是死在了复赛,具体过程见我的另一篇博文商品推荐之CIKM 2019 EComm AI:超大规模推荐之用户兴趣高效检索。

      接着聊聊我的学习方法。对于一些需要掌握的课程,比如数学类、神经网络理论类,看书+抄书+课后习题回答,基本上可以消化掉;如果看不懂看不下去也没关系,可以看看相关的其他知识,做做其他辅助性的工作,留待以后会发现大脑很神奇地突然就领悟之前的那些知识点了。第二,实践很重要,书中的每个例子我都要敲一遍,这个很有必要,实践的好处是光看无法比拟的。第三,学习、接触的内容不怕杂,关键要及时总结、不要偏离自己选择的方向。比如我在学习了python以及一部分的机器学习内容之后,有些不知道该如何做下一步的规划。就对自己的知识点画技术树,同时整理机器学习本身需要的技能,两相对比,找出自己需要加强学习的点,再做相应计划。最后预祝有兴趣于机器学习的各位能够找到适合自己的学习路径。

你可能感兴趣的:(机器学习,程序员心得,机器学习,菜鸟上路)