机器学习路线和清单

写给师妹的机器学习路线和清单。


写在前面

目前这是互联网领域最火的科目之一,一方面是高薪,另一方面是层出不穷的辅导班,未来很难说,不过这绝对是一个容易入门但很难做好做出成绩的方向。

想要找到一份不错的工作,需要更好的对算法底层的理解,需要刷一些相关的题目,需要有竞赛经验或者顶会论文才可以。

但是只要努力,总会得到自己想要的吧。

入门

周志华的西瓜书《机器学习》

这本书是很多人推荐给新手的入门书,与此类似的还有吴恩达的机器学习课程,我觉得都很一般,特别是这本书,基本上对新手入门不太友好,但是对于有一定基础的确实可以缩短时间,可以省去很多选择的时间,把精力专注在一本书上,下面是一些推荐学习的tips:

  1. 对于机器学习算法的统筹感官,推荐阅读:
    机器学习常用 35 大算法盘点(附思维导图)
  2. 基于此,一些学习机器学习所需的前置条件就可以有所了解了,比如概率论、工程优化、基本的关联规则等等,这些内容我建议用到的直接增量学习。
  3. 开始西瓜书的学习,第一遍难点略过,注意把握统筹感受,这个阶段搞不明白损失函数到底是什么实在是很正常的事情,只需要知道一些专业术语,和这些算法是什么即可。

什么是我最推崇的增量学习?

例如在logistic对数回归的学习中,需要对公式进行推导,这里用到了高等数学的基本概念;或者对于贝叶斯分类器,这里需要概率论与数理统计的基本概念。重点是,不会这些推导会影响你对算法的整体感知吗,不会的,所以可以选择性略过,节约了大量的时间。如果选择要死啃,此时遇到什么再去学习什么,翻到对应章节,切忌拿一本概率论苦读。

实战

实战主要是使用python,sklearn库,进行库函数的调取,这里前置条件又很多,如下:

  • python语言,会写即可,不需要学习web开发、GUI等第三方模块
  • 还是学python3,学会了python2也会了
  • python的第三方库,包括numpy pandas 还有画图使用的mayplotlib和seaborn等
  • IDE建议使用pycharm,对新手友好,实在是很反感各种新手教学上来就要摸linux配环境的行为,除了加大难度有屁用?
  • 除了pycharm之外,熟悉ipython的交互形式,最好能够接触到jupyter notebook

学习方式:

  1. 对于聪明人,直接看库函数API文档即可,我没有花时间学过python,直接上手写的,用到什么功能什么函数直接百度或者查python的文档即可
  2. 对于不聪明的人,可以读一些书,去图书馆搜以下关键词,随便挑一本封面看着比较新的入门就可以了。
    • 机器学习实战
    • 数据分析
    • python+数据
  3. 推荐使用脑图学习,这也是我最新喜欢的方式,这里使用百度脑图,web打开即用,十分方便:

进阶

在这个阶段,通过代码上手,我们已经知道了一个基本的机器学习程序流程了:

  • 数据预处理
  • 特征分析
  • 更复杂的数据处理
  • 丢到机器学习库里
  • 调整一些参数
  • fit一个模型,predict一个结果

就是这么简单。

在这个阶段最重要的是搞清楚一些之前很模糊的概念,比如loss,推荐阅读:

机器学习中的损失函数 (着重比较:hinge loss vs softmax loss)

比如几个重点模型的推导,简单的知识对应关系如下:

  • 线性回归逻辑回归 —— 高等数学
  • 贝叶斯分类 —— 概率论
  • 神经网络 —— 最优化

以神经网络为例,最需要搞明白的是梯度下降和反向传播这几个概念,我想如果走到这一步,神经网络的路线也是了然于胸了,从感知器到CNN到RNN到LSTM即可。

这里也可以参考我的另一篇文章:

面试准备阅读列表

应试

学习的目的,不是搞科研,发paper,只是为了找工作而已,找工作就要应试,这里建议看七月在线的题目:

七月在线题库

比赛

此外,如果希望做一些比赛,应当从kaggle入手,从最简单的titanic开始即可,有很多人写的kernel(即一些入门教程和示例程序),这里需要有一定的英语水平,其实哪里都需要英语好,英语好了有些问题直接stackoverflow,直接google就好了,很简单。

kaggle地址

Author: Ykk
Link: https://ykksmile.top/posts/17158/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.