David Mimno 是康奈尔大学 信息科学系的助理教授。他有自然语言处理(NLP)的背景和兴趣,特别是主题建模。值得注意的是,他是基于Java的NLP库 MALLET 的首席维护者。
我最近偶然发现大卫写的一篇博客文章,标题是“机器学习学生的建议”。这是一篇很棒的文章,其中包含了我给程序员和指导学生的类似建议。
这是一篇很棒的文章,也很棒的建议,我在这篇博文中为你总结一下。
入门机器学习书籍
大卫推荐了一些相当高级的书籍作为入门读物。原因是他是一名研究生,并且能够应对这些挑战。我个人不推荐这些教材。
尽管如此,他推荐的教材是:
这些可能是现在市面上最好的机器学习教科书中的一部分。当你查阅麻省理工学院、斯坦福大学、康奈尔大学和其他美国顶尖学校的研究生课程时,你会经常看到它们。
入门数学书籍
大卫评论说,学习任何关于线性代数、概率和统计的知识都会很有用。
他接着推荐了几本关键书籍:
机器学习实践建议
在推荐了一些入门资源后,大卫继续提供了一些在入门该领域时的实践建议。
- 不要期望第一次就能理解。大卫建议从多个不同的来源阅读同一方法的描述。这和我推荐的《算法描述模板》中的建议一样,这是我出于必要而想出来的。
- 实现模型。我同意大卫的观点,你不能完全欣赏一个模型,直到你自己动手实现它并使其运转起来。大卫建议将你的实现与其他实现进行比较,例如开源的实现,并寻找并理解那些提高效率的数学或编程技巧。
- 阅读论文。大卫讲述了一个他在通勤时阅读论文的轶事。考虑选择一个算法或一个问题,然后阅读与该论文相关的原始资料。
- 选择一篇论文,在一周内沉浸其中。大卫建议与一篇论文融为一体,并认真思考一周,直到你能熟练掌握它。例如,他建议填补任何推导方程的空白。我亲身经历过,并建议你仔细选择你的论文。我选择过花了几年时间才能与之“交流”的论文。
大卫最后引用了约翰·冯·诺依曼的一句名言:
年轻人,在数学领域,你并不是去理解事物。你只是习惯了它们。
把这句话记在心里。事物需要一段时间才能变得有意义。继续阅读和尝试,直到你豁然开朗(或者至少拥有一个可行的经验性理解)。
你有什么辛苦获得的机器学习实用建议吗?
谢谢 Jason。
不客气,Kartik。
嗨,Jason,
我目前正在使用这些书籍:
1. 机器学习入门课程
2. 统计学习入门——R语言应用
3. 应用预测建模
4. 贝叶斯推理与机器学习
5. 机器学习——理解数据的算法的艺术与科学
我还通过《R语言实例》来学习R语言。
你认为我的选书适合初学者吗?
另外,《机器学习:概率视角》中的数学内容似乎相当令人生畏。你建议如何克服这个障碍?
谢谢。
Kartik,你的选书很棒。
你可以先专注于应用方面,然后在追求更好结果的过程中,再根据需要过渡到理论。