如何学习
我应该用自顶向下的方法还是自底向上的方法学习机器学习相关知识?
自顶向下
自顶向下学习方法从整体或高层次的概念、理论或问题开始,然后逐步细化、深入和扩展。它强调整体观念和宏观理解,并通过逐渐分解、归纳和推演形成更具体的细节。
自底向上
相比之下,自底向上学习方法从具体的细节、实例或基本要素开始,然后逐步组合、归纳和抽象形成更高层次的概念、理论或问题。它强调逐步建立对细节的理解和掌握,并通过将细节逐步整合和推广来形成整体认知。
先决知识:自底向上
您需要快速熟悉或者重温机器学习中使用先决知识,例如:
- 数学
- 线性代数
- 概率与统计
- 数值优化
- 微积分
- Python 编程基础
在开始学习机器学习所需的数学基础知识时,您需要使用自底向上的方法。数学知识和 Python 基础是一套系统性的知识,因此自底向上更合适。
学到什么程度合适?每个算法的原理和数学建模是不一样的,不是说数学知识掌握 100 分才能进行机器学习。建议同步进行。
机器学习知识:自顶向下
假设您需要开始学习机器学习,从高级概念开始,然后逐步深入。
如果您自学,那么在学习机器学习时使用自顶向下的方法更有意义,否则你可能会在不重要的概念上浪费很多时间。
例如,您可能想运行一个基于 CNN 的图像识别,这样您就可以建立一定程度的好奇心,例如 CNN 是如何工作的?如果你有一个已完成的 demo,你就会更有动力去寻找答案。正如在编程中,我们从 hello world
开始学习而不是从汇编开始学习一样。
因此,我建议在学习先决条件 (数学、Python) 时使用自底向上的方法。然后在学习机器学习本身时,使用自顶向下的方法。这两个步骤可以同步进行。
在哪里学习
进入 21 世纪,你所考虑的不应该是“我没有学习资料”:学习资料网上随处可见,而且未来会越来越多。
这是我建议的学习方法:
- 对于初学者:遵循“自顶向下”的方法,首先学习 python,然后按照在线教程或者进行编码。在小型数据集上构建您的第一个机器学习模型。
- 对于中级开发人员:遵循“自底向上”的方法,阅读官方文档、机器学习书籍,并尝试解决 kaggle 数据集上的一些问题。选择您感兴趣的一个或一些类别,并了解该算法为何有效,了解其数学原理。
- 对于高级开发人员:我认为高级开发人员不太需要阅读本文;如果实在有什么建议,建议多读论文和代码,多问“为什么”和“怎么做”。