动手实战人工智能系列教程,希望从监督学习开始,带你入门机器学习和深度学习。我尝试剖析和推导每一个基础算法的原理,将数学过程写出来,同时基于 Python 代码对公式进行实现,做到公式和代码的一一对应。与此同时,我也会利用主流的开源框架重复同样的过程,帮助读者看出手动实现和主流框架实现之间的区别。
动手实战人工智能 AI By Doing
![]()
自序
我从 2015 年开始了解机器学习,最早从李航教授编写的《统计学习方法》入门,陆陆续续看了很多学习资料。在学习的过程中,我逐渐发现了一些痛点。
例如,很多由大学老师编写的书籍,偏理论研究,对于数学基础要求很高,对于初学者来说很难理解,同时缺少必要的代码实现。而部分由工程师编写的书,偏实践应用,往往只是介绍了一些工具和库的使用,而没有深入的讲解原理。另外,还有很多书籍都是在介绍算法的基础上,给出了一些代码例子,但是往往过程不完整,无法相互对应,理论和代码很割裂,同时读者很难复现。
入门机器学习的过程中,如果你只会调包,而不深入原理,可能连参数的作用都看不懂,更别说调参了。如果你只会理论,而不会实践,可能连最简单的模型都写不出来,学完似乎毫无实际用处。因此,我希望能够帮助你,既能够理解原理,又能够实践应用,学懂、吃透机器学习。
从 2018 年开始,我陆续使用 Jupyter Notebook 来编写这些内容。Jupyter Notebook 能够将文字和代码结合在一起,方便阅读和理解。同时,它也能够将代码和运行结果一起展示,方便读者实践和复现。
动手实战人工智能系列实验教程,希望从监督学习开始,带你入门机器学习和深度学习。我尝试剖析和推导每一个基础算法的原理,将数学过程写出来,同时基于 Python 代码对公式进行实现,做到公式和代码的一一对应。与此同时,我也会利用主流的开源框架重复同样的过程,帮助读者看出手动实现和主流框架实现之间的区别。
本内容默认你已经具备基础 Python 编程能力,同时学习过高等数学、线性代数、概率论等大学本科范围的数学知识。忘记了不用担心,会逐步帮助你记起来。当然,我也提供了《附录一:机器学习数学基础》和《附录二:机器学习常用工具》的内容供你参考。之所以放在附录中,原因是不建议你先复习或者学习这些内容,这会花费较多的时间,让你的耐心消磨殆尽。我建议你在学习的过程中,碰到不懂的地方,再去查阅这些内容。
学习本课程最好的方式是打开电脑动手实践,你也可以通过 Jupyter Notebook 把自己练习的代码和理解记录下来,形成自己的学习笔记。如果你只是浏览阅读,恐收效甚微。
目前,全文合计 97 章(422,605 字),仍在持续更新。希望在 AIGC 风靡的时代,由真人用心制作的内容能够帮助你更好地入门机器学习。
会员
如果你觉得本教程对你有帮助,可以考虑 支持 Pro 会员计划。当然,这不是强制的,所有内容都是免费的,你可以自由阅读和学习。
许可
该作品由 huhuhang 创作,采用 署名-非商业性使用-禁止演绎 4.0 国际 许可协议进行许可。
同时,补充规则如下:
- 🚫 请勿克隆全站内容,建立类似站点;
- 🚫 请勿整理全站内容,分发成电子书;
- 🚫 请不要主动帮我「开源」全站内容;
- 🚫 请不要将内容用于商业用途,商业授权请联系
huhuhang@gmail.com;
讨论
如果你有任何学习上的疑问,可以在页面最下方评论区留言,和我一起讨论。我会抽空回复你的问题,也欢迎你回答其他人的问题。
任何内容都不可能完美无缺,如果你发现内容错误,笔误,代码错误,可以在评论区指出,我会尽快抽空确认和修正。
致谢
排序不分先后:
- 感谢 Cloudflare 提供的免费托管和 CDN 加速服务。
- 感谢 whyiug 对“自动微分 Autograd”小节的描述和示例代码进行修正。
- 感谢 阮一峰-科技爱好者周刊(第 295 期) 推荐。
- 感谢 03-18~03-24.老胡的周刊(第135期) 推荐。
贡献
如果你愿意参与内容的迭代更新和错误修正。请先在 GitHub 上提出新的 issue,并注明可以协助修订。我会确认后邀请你加入内容协作仓库。
目录
监督学习:回归- 1\. 机器学习综述及示例
- 2\. 线性回归实现与应用
- 3\. 北京市住房价格预测
- 4\. 多项式回归实现与应用
- 5\. 比特币价格预测及绘图
- 6\. 岭回归和 LASSO 回归实现
- 7\. 使用矩阵计算岭回归系数
- 8\. 回归模型评价与检验
- 9\. 回归方法综合应用练习
- 10\. 逻辑回归实现与应用
- 11\. 梯度下降法实现与应用
- 12\. K 近邻算法实现与应用
- 13\. K 近邻回归算法实现与应用
- 14\. 朴素贝叶斯实现及应用
- 15\. 高斯分布函数实现及绘图
- 16\. 分类模型评价方法
- 17\. 支持向量机实现与应用
- 18\. 支持向量机实现人像分类
- 19\. 决策树实现与应用
- 20\. 决策树模型参数优化及选择
- 21\. 装袋和提升集成学习方法
- 22\. 异质集成投票方法应用
- 23\. 使用交叉验证快速选择模型
- 24\. 划分聚类方法实现与应用
- 25\. 使用 K-Means 完成图像压缩
- 26\. 层次聚类方法实现与应用
- 27\. 主成分分析原理及应用
- 28\. 层次聚类应用及聚类树绘制
- 29\. 密度聚类方法实现与应用
- 30\. 密度聚类标记异常共享单车
- 31\. 谱聚类及其他聚类方法应用
- 32\. 常用聚类算法对比评估
- 33\. Apriori 关联规则学习方法
- 34\. 购物数据关联规则分析
- 35\. 时间序列数据分析处理
- 36\. 股票时间序列数据处理
- 37\. 时间序列数据建模分析
- 38\. 农业生产指数建模分析
- 39\. 自动化机器学习综述
- 40\. 自动化机器学习实践应用
- 41\. AutoML 完成手写字符分类
- 42\. 机器学习模型推理与部署
- 43\. 蘑菇分类模型部署和推理
- 44\. 机器学习模型动态增量训练
- 45\. 在线学习及云端模型部署
- 49\. TensorFlow 基础概念语法
- 50\. TensorFlow 加州房价预测
- 51\. TensorFlow 构建神经网络
- 52\. TensorFlow 汽车评估分类
- 53\. TensorFlow 高阶 API 使用
- 54\. TensorFlow 时尚物品分类
- 55\. PyTorch 基础概念语法
- 56\. PyTorch 构建神经网络
- 57\. PyTorch 实现线性回归
- 58\. 卷积神经网络原理
- 59\. 卷积神经网络构建
- 60\. 构建 LeNet-5 Estimator
- 61\. 图像分类原理与实践
- 62\. 迁移学习完成动物分类
- 63\. 生成对抗网络原理及构建
- 64\. DCGAN 动漫人物图像生成
- 65\. 自动编码器原理及构建
- 66\. 卷积自动编码器图像去噪
- 67\. 目标检测原理与实践
- 68\. YOLO 图像目标检测应用
- 69\. 循环神经网络原理
- 70\. 循环神经网络构建
- 71\. LSTM 预测股票价格
- 72\. 文本分类原理与实践
- 73\. 深度学习完成假新闻分类
- 74\. 自然语言处理框架拓展
- 75\. Google BERT 预训练技术
- 76\. 神经机器翻译和对话系统