你如何开始机器学习,尤其是深度学习?这个问题最近在机器学习板块的 reddit 上被问到了。
具体来说,发帖人完成了 Coursera 的 机器学习课程,但感觉自己没有足够的背景知识来开始深度学习。
我写了一个 冗长的回复,我认为这个回复对其他遇到类似情况、阻碍自己前进的人来说可能更有普遍意义。
在这篇文章中,我将重申我的回答,并用链接和参考资料来详细说明,这些资源可以帮助你开始。
你是否完成了 Coursera 的机器学习课程?你是否想深入研究某个特定的算法(例如随机森林或深度学习)或竞赛(例如 Kaggle),但又觉得你做不到,因为你缺少一些关键的背景知识?
如果这些问题让你感同身受,那么这篇文章就是为你而写的。

如何开始机器学习
图片来源:Sheila Sund,部分权利保留
立即开始
深度学习非常迷人。它已被证明能在复杂的问题上取得最先进的成果,并且有许多库可以在你的个人电脑上直接应用这些方法处理标准数据集。
通过解决一些问题,甚至尝试重现一些有趣的结果,你可以很快学到很多东西。
我的基本建议是不要等待学习某个技术。如果你想从事深度学习,那就开始动手吧。不要等待一个虚幻的“守门人”给你许可。
同样的论点也适用于开始接触大数据、参加 Kaggle 竞赛或机器学习的任何其他方面。
停止“准备”,而是“开始着手”你最感兴趣的领域。
根本问题在于自我设限的信念,这些信念关于你自己,阻碍了你的进步。我在《什么在阻碍你实现机器学习目标?》一文中对此进行了更详细的阐述。
机器学习自学蓝图
将深度学习理解为另一类适用于特定类型问题(如文本、音频和图像等复杂数据类型,而非表格数据)的算法,这或许明智。
一个更广泛的路径可能是将深度学习作为你更广泛的机器学习自学的一部分来探索。
鉴于你已经完成了 Coursera 的机器学习课程,你已经有了一个扎实的基础可以进行构建。我建议以下内容,这些内容是针对自学和取得成果(而非正式学习和理论)而定制的。
1. 学习并实践应用机器学习的过程。
- 学习处理问题的循序渐进的过程(例如 KDD、Crisp-DM、OSEMN 等)。
- 学习一个开箱即用的工具或工具链,让你能够重复这个过程(例如 WEKA、scikit-learn 或 R)。
- 在小型标准数据集上实践这个过程,这些数据集可以载入内存(例如来自 UCI 机器学习库 的数据集)。
这将增强你在解决问题方面的信心,并能应对新出现的问题。你还将开始了解算法和技能的定位,找出自己的优势和需要改进的地方,从而优先考虑下一步的学习内容。
也许你决定深入一个领域成为专家,也许你决定拓宽视野,作为数据科学家为企业服务。
在《处理机器学习问题的流程》一文中,可以找到更多关于应用机器学习过程的链接和具体步骤。
2. 建立一个已完成项目的作品集。
- 利用上面 #1 中的项目作为已完成工作作品集的基础。
- 确保每个项目/结果都是 100% 可复现的(使用脚本或分步说明等)。
- 为每个项目创建半正式的工作成果,以分享所做的工作、方法和学到的知识(可以在每个仓库上使用 GitHub README 文件,撰写博客文章,创建 PDF 技术报告、PowerPoint 演示文稿等)。
这将无可辩驳地证明你有能力完成项目。这将让你有信心承担更大、更有趣的项目,因为你可以利用你学到的知识,并在你开始找工作时向第三方展示你不断增长的技能和能力。
在《构建机器学习作品集:完成小型项目并展示你的技能》一文中,可以了解更多关于构建机器学习项目作品集的信息。
3. 设计和执行小型自学项目。
- 扩展 #2 中半正式工作成果的方法论,并利用自学来填补你的知识空白。
- 深入研究一个算法(当然是一个学习算法,也可以是数据预处理方法,或者任何你需要提升的领域)。
- 深入研究一个问题(一个具体的问题实例,例如来自 Kaggle 的问题,或者对一类问题的研究)。
- 深入研究一个工具(研究一个工具,并弄清楚如何在你的流程中最好地使用它,深度学习工具可以在这里派上用场)。
这将为你提供一个系统化的流程,你可以用它来填补机器学习中任何与你的个人目标相关的空白。你可以用它来轻松地改进某个算法(如随机森林)的应用,或者更深入地理解某种方法的数学原理(如 SVD)。只深入学习到你需要的程度,并且只在你需要的时候学习(而不是仅仅以防万一)。
在《4 个机器学习自学项目》一文中,我称之为“小型项目方法论”,描述了这种方法,你可以从中了解更多关于设计和执行自学项目的信息。
你永远不会拥有足够的统计学、数学、编程知识或任何其他知识。这些科目本身并不是有限的。
如果你对机器学习真正感兴趣,那么你需要进行的学习将是终身的,你需要有系统和信心来高效地进行这项学习。
暂无评论。