数智资源网
首页 首页 人工智能 查看内容

Feedly创始人是如何入门机器学习的

木马童年 2019-2-28 11:42 161 0

上大学前,我原以为自己将来会去计算机硬件行业工作,比如Intel之类。不过,到了CMU后,我发现计算机科学课程要有趣得多,看起来这些课程我也学得更好,这恐怕不是一个巧合。我真的很享受几乎每一门参加的CS课程。实 ...

上大学前,我原以为自己将来会去计算机硬件行业工作,比如Intel之类。不过,到了CMU后,我发现计算机科学课程要有趣得多,看起来这些课程我也学得更好,这恐怕不是一个巧合。我真的很享受几乎每一门参加的CS课程。实际上,只有一门例外:机器学习入门!我对这门课程很感兴趣,不幸的是,看起来这门课的教授对教授这门课程的不感兴趣程度和我的感兴趣程度差不多,教得也不好。所以长期以来机器学习不在我的关注范围之内。

不过,几年前,我注意到机器学习真的吸引了很多注意力,这再次激起了我的好奇心。这次我从吴恩达的MOOC开始,吴是一个很棒的教授。和以前的区别是,我原来白天上课,现在网上上课。我一下子就着迷了,开始在网上搜索更多可以参加的课程。下面是我在学习过程中收获的一些经验和窍门。


追赶ML潮流是不是好主意?

毫无疑问,机器学习将经久不衰。这一领域的活跃已经有一段时间了,发展也很快,我可以说,夸大宣传背后确实有实质性的进展。解决有些问题,机器就是比人类更擅长。

但这并不意味着机器学习适合每个人。机器学习方面的工作和其他软件工程领域很不一样。它更带研究性和猜测性。如果你喜欢事先一段一段地计划好工作,在x周之后一切就绪,那也许机器学习不怎么适合你。如果你喜欢处理数据,持续学习新技术,(真心)喜欢数学,那么机器学习也许是一个很棒的转职方向。


多久能赶上进度?

这个问题有太多答案。我首先想到的回答是“永远不能”。机器学习的范围相当广泛,同时正以惊人的速度发展。如果你碰巧和我一样需要睡眠,那么你大概无法跟上这一领域的每项进展。但另一个更乐观的答案也许是4个月(每周10小时)。例如,这些时间足够你完成fast.ai的课程了(很棒的课程)。

这并不是微不足道的投入,因为你大概有许多时间要花在工作和生活上。不过,以我的个人经历为证,这是有可能做到的,如果你愿意投入的话,其实并不难。


好课程有哪些?

这真取决于你打算如何学习。就我个人而言,之所以喜欢机器学习,是因为它优雅地组合了数学和计算机科学的许多领域:概率论、线性代数、微积分、优化,等等。所以我很自然地偏向学术性课程。

斯坦福的CS231n是一个极好的学术性课程。我看了Andrej Karpathy的授课视频,讲得非常好。课程作业的设置也很好,可以远程完成。尽管课程主要内容为图像问题和卷积网络,课程其实是“从头开始”的,同样覆盖了前馈网络和循环网络。

如果你更喜欢偏实践的课程,那fast.ai的课程很不错。Jeremy Howard从非常基础、系统的角度讲授所有内容,课程的设计让任何具有一定技术背景的人可以参与。另外他们的论坛也是一个很不错的社区。

之前提到的吴恩达后来又在Coursera开了新的课程系列。我没有亲自尝试这些课程,但我确信其中一定包含很多好东西。我感觉这门课程也是以偏向实践的方法教授的,不过也涉及一些背后的数学。

我建议你尝试多门课程,然后挑选一门最能吸引你的注意力的课程。不过我鼓励你至少逐渐完成一门实践性课程和一门理论性课程,这是一个很好的互补。为了理解论文(警告:你需要阅读学术论文),学术性课程将帮助你适应长篇的技术内容。实践性课程则将提供一些直觉,帮助你做出ML项目中的各种决策。

如果你需要温习一下数学,或者想学得更深入一点,MIT有几门很棒的课程。任何ML工作都绝对需要对概率学良好的理解,John Tsitsiklis教授的6.041/6.431讲得超棒。John将复杂问题逐步分解,直到答案显而易见的地步,这种授课方法完全是艺术。

MIT的线性代数课程(18.06)也很有意思。这门课的教授同样很出色,风格独特。不过这门课程并不是真的很有必要,因为大多数ML任务只需要理解矩阵乘法。


如果我不懂编程该怎么办?

去学。

大多数ML工作基于Python完成,幸运的是,Python相当容易上手。大多数ML工作也真不需要你是一个世界级的程序员。但我还是建议你在进行任何ML方面的工作前参加一门关于编程的速成线上课程。一下子学习编程和机器学习的概念(更别说还需要重新学习你大概已经忘掉了的一堆数学)是灾祸之因。给自己一个循序渐进的机会。


我有一定基础,现在该怎么做?

好,现在到了开始建模的时候了!一般来说有两条路可走:1) 在工作中找一个项目,或者进行一个个人项目;2) 找一个Kaggle竞赛。这取决于你的具体情况,不过我建议选Kaggle,主要原因如下:

  1. 问题是明确定义的。恰当地结构化真实生活中的ML问题可能需要一定的技巧。Kaggle就不存在这个问题。

  2. 类似地,有时候自己创建的数据集可能包含一些难以诊断的缺陷。而Kaggle竞赛会给你提供数据。

  3. Kaggle提供了一个处理同样问题的社区。如果你陷入困境或者需要一点指引,有地方可去。

另一方面,如果你在工作中能碰到为ML方案量身定做的问题(比如图像分类),那么也许工作项目是给你的同事留下深刻印象并说服老板让你在机器学习上投入更多时间的快捷方式。

所以,如果你正考虑钻研机器学习,请勇往直前!机器学习最棒的一点是人们在时间和知识方面真的很慷慨。一旦开始,你能在网上找到很棒的支持系统,帮助你前行。

原文 Getting Started With Machine Learning

感谢Feedly授权论智编译,未经授权禁止转载。详情见转载须知

创始人 大数据 机器学习 计算机硬件 计算机科学 软件工程
0

最新评论(0)