机器学习的世界是多彩而广阔的,对于初学者来说,拥有一个清晰的学习路径是至关重要的。以下是为零基础纯小白的初学者定制的学习计划,旨在帮助初学者在数周到数月内建立起机器学习的知识体系,打下坚实的基础,为未来深入的学术研究做好准备。

每月学习目标概览

  • 第一个月:掌握Python编程基础和数学基础。
  • 第二个月:理解并能处理数据,学习机器学习的基本理论。
  • 第三个月:通过项目实践加深理解,开始接触深度学习。

每周安排适量的学习任务,保证有足够的时间进行实践和复习。建议初学者在每个阶段结束时,至少完成一个相关的实践项目,以验证所学知识。通过实践加深对理论的理解,同时积累项目经验,为未来的学术研究打下坚实的基础。

第一月:编程基础与数学基础

学习目标

  • 掌握Python编程的基本知识。
  • 理解线性代数与概率统计的基础概念。

学习建议

  • 每天安排固定时间学习编程。
  • 利用在线资源进行自我测试,巩固数学概念。

第1周:Python编程入门

第2周:Python高级概念

第3周:数学基础-线性代数

第4周:数学基础-概率与统计

第二月:数据处理与机器学习理论

学习目标

  • 学会使用NumPy和Pandas进行数据处理。
  • 掌握数据可视化的基本技巧。
  • 了解机器学习的基本概念和算法。

学习建议

  • 在学习数据处理时,尝试用真实数据集练习。
  • 观看视频课程并跟随练习,加深对机器学习概念的理解。

第5周:数据处理基础

第6周:数据可视化

第7-8周:机器学习基础

  • Coursera机器学习课程
    这是Coursera上的一门机器学习课程,由吴恩达教授讲授,是机器学习入门的首选课程,涵盖了机器学习的基本概念、原理和方法,包括线性回归、逻辑回归、神经网络、支持向量机、聚类、降维、异常检测、推荐系统等。这门课程使用Octave语言进行编程实践,可以帮助学习者理解算法的原理和实现,同时也可以使用Python或其他语言进行编程实践。这门课程适合有一定数学和编程基础的初学者,可以作为机器学习的入门课程。
  • CS229: Machine Learning
    这是斯坦福大学的一门机器学习课程,由吴恩达教授讲授,与Coursera上的《机器学习》课程相似,但是有更多的数学要求和公式的推导,难度稍高一些。这门课程对机器学习和统计模式识别进行了广泛的介绍,包括监督学习、无监督学习、学习理论、强化学习和自适应控制等。这门课程使用Octave语言进行编程实践,可以帮助学习者深入理解算法的原理和实现,同时也可以使用其他语言进行编程实践。这门课程适合有较好的数学和编程基础的进阶学习者,可以作为机器学习的进阶课程。

第三月:机器学习实践与深入理论

学习目标

  • 学会使用Scikit-learn完成机器学习项目。
  • 理解深度学习的基础,并开始使用TensorFlow。

学习建议

  • 参与至少一个Kaggle项目,将所学应用于实际问题。
  • 通过阅读相关书籍,深化理论知识,并结合在线教程进行实践。

第9-10周:Scikit-learn与机器学习项目

第11-12周:深度学习与TensorFlow

推荐书籍

  • 西瓜书《机器学习-周志华》西瓜书因为篇幅的限制,涵盖了很多的内容但无法详细的展开讲,对于初学者自学来说实际阅读难度很大。这本书更适合大三以上的理工科本科生和研究生,以及有相似背景且对机器学习感兴趣的读者,入门时学习这本书籍难度稍微偏高了一些。
  • 南瓜书《机器学习公式详解》南瓜书的所有内容都是以西瓜书的内容为前置知识进行表述的,所以南瓜书的最佳使用方法是以西瓜书为主线,遇到自己推导不出来或者看不懂的公式时再来查阅南瓜书。
  • 花书《Deep Learning 深度学习》这本书由深度学习领域的三位权威IanGoodfellow、YoshuaBengio和AaronCourville编写,详细介绍了深度学习的理论基础,适合对深度学习有一定数学和编程基础的读者深入学习。
  • 蜥蜴书《机器学习实战:基于Scikit-Learn和TensorFlow》这本书提供了使用Scikit-Learn和TensorFlow实现机器学习算法的实际指导,适合有编程基础但机器学习知识基础较少的读者。
  • 《Python 机器学习》这本书作为一个全面的教程,详细介绍了使用Python进行机器学习和深度学习的基本技术和原理。它可以作为一个分步的学习资源,也可以作为构建机器学习系统的参考手册。第三版的更新包括了TensorFlow 2和scikit-learn的新特性,以及强化学习和生成对抗网络(GANs)这两种先进的机器学习技术。

以上书籍都可在微信读书中找到。

在线编程练习与数据集

计算平台

有的时候我们需要带GPU的平台跑代码,本地性能可能不是很够,推荐两个:

  • Kaggle:可以用来当羊毛薅,你可以传自己的dataset上去,也可以用它提供的dataset。
  • Google Colab:等于一个免费的notebook环境,而且还能用GPU。

写在最后

本指南针对的是零基础的纯小白,所列出的工具和资源并不一定适合所有读者,在学习过程中并不一定要严格遵循本指南,若有更好的、更新的、更适合你的课程及书籍,请自行修改学习计划。