机器学习入门指南
机器学习的世界是多彩而广阔的,对于初学者来说,拥有一个清晰的学习路径是至关重要的。以下是为零基础纯小白的初学者定制的学习计划,旨在帮助初学者在数周到数月内建立起机器学习的知识体系,打下坚实的基础,为未来深入的学术研究做好准备。
每月学习目标概览
- 第一个月:掌握Python编程基础和数学基础。
- 第二个月:理解并能处理数据,学习机器学习的基本理论。
- 第三个月:通过项目实践加深理解,开始接触深度学习。
每周安排适量的学习任务,保证有足够的时间进行实践和复习。建议初学者在每个阶段结束时,至少完成一个相关的实践项目,以验证所学知识。通过实践加深对理论的理解,同时积累项目经验,为未来的学术研究打下坚实的基础。
第一月:编程基础与数学基础
学习目标:
- 掌握Python编程的基本知识。
- 理解线性代数与概率统计的基础概念。
学习建议:
- 每天安排固定时间学习编程。
- 利用在线资源进行自我测试,巩固数学概念。
第1周:Python编程入门
- 中文资源:菜鸟教程Python基础
- 英文资源:Codecademy Python 课程
第2周:Python高级概念
- 中文资源:廖雪峰的Python进阶
第3周:数学基础-线性代数
- 中文资源:可汗学院线性代数
- 英文资源:Khan Academy’s Linear Algebra
第4周:数学基础-概率与统计
第二月:数据处理与机器学习理论
学习目标:
- 学会使用NumPy和Pandas进行数据处理。
- 掌握数据可视化的基本技巧。
- 了解机器学习的基本概念和算法。
学习建议:
- 在学习数据处理时,尝试用真实数据集练习。
- 观看视频课程并跟随练习,加深对机器学习概念的理解。
第5周:数据处理基础
- NumPy:学习如何进行数值计算。
- 英文资源:NumPy Official Guide
- 中文资源:NumPy中文文档
- Pandas:学习如何处理和分析数据。
- 英文资源:Pandas Official Documentation
- 中文资源:Pandas中文文档
第6周:数据可视化
- Matplotlib:学习如何制作图表和数据可视化。
- 英文资源:Matplotlib Tutorials
- 中文资源:Matplotlib中文文档
- Seaborn:学习如何制作统计图形。
- 英文资源:Seaborn Official Guide
- 中文资源:Seaborn中文指南
第7-8周:机器学习基础
- Coursera机器学习课程:
这是Coursera上的一门机器学习课程,由吴恩达教授讲授,是机器学习入门的首选课程,涵盖了机器学习的基本概念、原理和方法,包括线性回归、逻辑回归、神经网络、支持向量机、聚类、降维、异常检测、推荐系统等。这门课程使用Octave语言进行编程实践,可以帮助学习者理解算法的原理和实现,同时也可以使用Python或其他语言进行编程实践。这门课程适合有一定数学和编程基础的初学者,可以作为机器学习的入门课程。- 英文资源:Machine Learning by Andrew Ng
- 中文资源:吴恩达-机器学习(Machine Learning by Andrew Ng的带中文字幕搬运)
- 补充资源:
吴恩达-机器学习的中文笔记及作业代码
- CS229: Machine Learning:
这是斯坦福大学的一门机器学习课程,由吴恩达教授讲授,与Coursera上的《机器学习》课程相似,但是有更多的数学要求和公式的推导,难度稍高一些。这门课程对机器学习和统计模式识别进行了广泛的介绍,包括监督学习、无监督学习、学习理论、强化学习和自适应控制等。这门课程使用Octave语言进行编程实践,可以帮助学习者深入理解算法的原理和实现,同时也可以使用其他语言进行编程实践。这门课程适合有较好的数学和编程基础的进阶学习者,可以作为机器学习的进阶课程。- 英文资源:CS229: Machine Learning
- 中文资源:CS229: Machine Learning(带机翻的中文字幕)
- 补充资源:CS229中文讲义、CS229速查表、CS229作业代码
第三月:机器学习实践与深入理论
学习目标:
- 学会使用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)这两种先进的机器学习技术。
以上书籍都可在微信读书中找到。
在线编程练习与数据集
- LeetCode - 编程练习
- Kaggle Datasets - 可用于独立项目的数据集
计算平台
有的时候我们需要带GPU的平台跑代码,本地性能可能不是很够,推荐两个:
- Kaggle:可以用来当羊毛薅,你可以传自己的dataset上去,也可以用它提供的dataset。
- Google Colab:等于一个免费的notebook环境,而且还能用GPU。
写在最后
本指南针对的是零基础的纯小白,所列出的工具和资源并不一定适合所有读者,在学习过程中并不一定要严格遵循本指南,若有更好的、更新的、更适合你的课程及书籍,请自行修改学习计划。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 猫野'blog!