本人美国top50统计学就读,有一定编程背景,大四这一年准备往人工智能方向发展,对于机器学习,尤其是计算机视觉Computer Vision部分比较感兴趣。在经过自学加参与一些课程的学习之后,最终取得了哥伦比亚大学的硕士学位。希望下面的分享能够对大家有所帮助。
根据我这几年的学习经验来说, 机器学习相对于人工智能领域下的其他分支来说,是更加漫长的一个过程。它需要大量的时间和耐心去处理各种各样复杂棘手的项目。机器学习主要是关于解决 “信息困惑”,并跳出思维禁锢,以从前从未想过的方式看待这些问题。同时,机器学习在很大程度上是关于了解人类如何学习,特别是了解最有效的学习过程,并将其 "编入 "机器学习脚本/代码/算法中。
背景知识
不管是什么领域的学习,开始前的了解都是必不可少的。尤其是对于人工智能这样对技术有一定要求的专业,拥有相关的背景知识是开始学习的重要前提。
对于大部分人来说,虽然这个领域不需要你成为一个专业的数学家或资深的程序员来学习,不过对于这些领域的核心技能还是需要掌握的。好消息是,一旦你拥有了这些基础,剩下的学习就会相当容易。事实上,几乎所有的ML都是关于将统计学和计算机科学的概念应用于数据。关于学前的背景知识,大致可以分为三类:
线性代数和微积分→原始算法研究需要有线性代数和多变量微积分,尤其是导数,链式和乘积规则的基础。线性代数主要研究的是向量、向量空间,在数学、物理和技术学科中都是一门重要的课程。线性代数是绝大多数工科的基础,如果这部分的基础没有打好,那么在学习机器学习领域很多更为深入的专业课时,也会举步维艰。在这里,我所说的基础是指对于概率和线性代数等概念浅层的理解。不一定需要掌握这些科目,但如果接触到一些算法,比如子空间、基础、i.i.d、独立、相关这些术语,要能明白它们的意思。而针对于这部分,很多大学内的高数课程都有涉及到。这一部分的教材就不给大家详细推荐了。
统计学→学好机器语言的第二大基础就是要了解统计学,特别是贝叶斯概率,这对于许多机器学习算法来说都是必不可少的。统计数据是发挥统计的信息、咨询、监督功能的主要手段。比方说,你想预测股票市场。你让计算机在数十万个数据趋势中进行搜索,看看在市场崩溃之前有什么变化,并挑选出最佳的因素组合。如果你这样做,你肯定能找到看起来能很好预测市场崩溃的因素。然而,数字是一直在上升和下降的,如果在数十万个数字中搜索,你会发现在过去所有的崩溃之前就下降的数字,只是随机的巧合。
所以除了理论知识,在学习统计学时,还要留意你所学的理论如何为特定类型的情况提供一个机会模型,而这些模型主要可以分为:
· 一个非数字变量的
· 两个非数字变量的
· 一个数字变量和一个非数字变量的
· 两个数字变量的
下面给大家附上我本科在美国学习统计时做的一些笔记:
而关于这些图表的学习,除了熟能生巧,没有别的办法。相较