機器學習基石 (Machine Learning Foundations)

开始时间: 09/08/2015 持续时间: 8 weeks

所在平台: Coursera

课程类别: 计算机科学

大学或机构: National Taiwan University(国立台湾大学)

授课老师: Hsuan-Tien Lin

   

课程主页: https://www.coursera.org/course/ntumlone

课程评论: 10 个评论

评论课程        关注课程

课程详情

Welcome! The instructor has decided to teach the course in Mandarin on Coursera, while the slides of the course will be in English to ease the technical illustrations. We hope that this choice can help introduce Machine Learning to more beginners in the Mandarin-speaking world. The English-written slides will not require advanced English ability to understand, though. If you can understand the following descriptions of this course, you can probably follow the slides. [歡迎大家!這門課將採用英文投影片配合華文的教學講解,我們希望能藉這次華文教學的機會,將機器學習介紹給更多華人世界的入門者。課程中使用的英文投影片不會使用到艱深的英文,如果你能了解以下兩段的課程簡介,你應該也可以了解課程所使用的英文投影片。]

Machine learning is an exciting field with lots of applications in engineering, science, finance, and commerce. It is also a very dynamic field, where many new techniques are being designed every day, and the hot techniques and theories at times can rise and disappear rapidly. Thus, users of machine learning from other fields often face the problem of choosing or using the techniques properly. In this course, we emphasize the necessary fundamentals that give any student of machine learning a solid foundation, and enable him or her to exploit current techniques properly, explore further techniques and theories, or perhaps to contribute their own in the future.

The course roughly corresponds to the first half-semester of the National Taiwan University course "Machine Learning", and the second half-semester is expected to be on Coursera under the name "Machine Learning Techniques" soon in the future. Based on five years of teaching this popular course successfully (including winning the most prestigious teaching award of National Taiwan University) and discussing with many other scholars actively, the instructor chooses to focus on what he believes to be the core topics that every student of the subject should know. The students shall enjoy a story-like flow moving from "When Can Machines Learn" to "Why", "How" and beyond.

课程大纲

Each of the following items correspond to approximately one hour of video lecture. [以下的每個小項目對應到約一小時的線上課程]

When Can Machines Learn? [何時可以使用機器學習]
-- The Learning Problem [機器學習問題]
-- Learning to Answer Yes/No [二元分類]
-- Types of Learning [各式機器學習問題]
-- Feasibility of Learning [機器學習的可行性]

Why Can Machines Learn? [為什麼機器可以學習]
-- Training versus Testing [訓練與測試]
-- Theory of Generalization [舉一反三的一般化理論]
-- The VC Dimension [VC 維度]
-- Noise and Error [
雜訊時錯誤]

How Can Machines Learn? [機器可以怎麼樣學習]
-- Linear Regression [線性迴歸]
-- Linear `Soft' Classification [軟性的線性分類]
-- Linear Classification beyond Yes/No [二元分類以外的分類問題]
-- Nonlinear Transformation [非線性轉換]

How Can Machines Learn Better? [機器
可以怎麼樣學得更好]
-- Hazard of Overfitting [過度訓練的危險]
-- Preventing Overfitting I: Regularization [避免過度訓練一:控制調適]
-- Preventing Overfitting II: Validation
[避免過度訓練二:自我檢測]
-- Three Learning Principles
[三個機器學習的重要原則]

课程评论(10条)

0

KazenoyumeChen 2015-02-07 15:58 0 票支持; 0 票反对

这门课是我目前上过Machine Learning方面最好最系统的课程。

首先,跟Andrew Ng在Coursera上的Machine Learning相比,它讲得更加的深入,比如在刚开始的时候就讲了一些统计学习方面的知识,像VC Bound和noise。而在后来讲linear model的时候,林老师一再解释这些模型的物理含义,同时又对比了这些模型的相似和不相似之处。

这门课程的大概知识体系是这样的:
1. 什么时候才能用机器学习。
2. 机器学习为什么能学到东西,这里重点推导了泛化误差的上界。
3. 机器学习的简单算法,像linear regression、perceptron、logistic regression。
4. 机器学习的tricks,这节比较重点地介绍了regularization。

跟之前我所上过的ML相比,这课程cover的内容更少,但是讲解得更加深入。这课程每两周都会有一次作业,作业较难而且量相当的大,不过做完之后会实现这些常用的机器学习算法,有一种廓然开朗的感觉。

最后再说一下,林老师的幽默例子才是这门课程的学习重点。 :)

0

北魏帝企鹅 2015-01-15 11:51 0 票支持; 0 票反对

终于把这门课听完了。本人是在技法课开始后才发现这门基石课的。所以放下一切事情,火速用2个礼拜把所有的视频都过了一遍。之前读过一本书introduction to statistical learning,对于很多概念只有直觉上的理解,比如模型复杂度。上了这门课才算对这些艰深的概念有了初步了解。囫囵吞枣一遍后赶紧开始技法的学习。目前刚讲完SVM。AD的machine learning最大的缺点是后半部分讲的太浅。因为理解的浅,所以即便代码都编对了,对于问题也没有任何深入的理解。
相比之下,林老师就讲的非常深入,讲义也很棒,非常适合复习。如果想系统的学习machine learning,没有比这门课更棒的入门材料了。5星推荐。
刚把第一次作业做完,并不容易。但如果太容易不就没趣了么。哈哈。
相信技法学完后,再深入学习machine learning的其他艰深材料,都不会发怵了。

5

超級現實的超現實理想主義者 2015-01-01 11:11 5 票支持; 0 票反对

距离这门课结束发放证书已经有一段时间了,想借此机会分享一下自己对于学习的感悟。

正如大家所说的,机器学习基石课程的质量非常高,但是也很有挑战性。一年前第一轮开的时候因为水平有限,很早就放弃了,等到第二轮开课才搞定。我想在这里分享一些个人经验和感悟,希望有朋友能从中受益。

首先我想谈谈所谓“抽象”(Abstraction)的思想:
从我个人过去的学习经历来说,每当刚刚接触新的知识,因为不清楚什么东西是重要的,什么是不重要的,所以常常会出现钻牛角尖、死抠细节的现象。这门课的一个优点---同时对于初学者来说也是一个隐含的缺点---就是课程的内容非常详细。林老师常常会对一个问题作出很完整的解释,等整门课程学完以后回过头来再看,其实其中很多细节性的概念仅仅是因为追求课程内容的完整而展示,即便对此没有真正理解和掌握也不影响学习和通过这门课程。但有些地方如果细细回味会发现,林老师对于一些细节做了模糊处理,背后的潜在意味可能是:“这个东西很难,或者不是特别重要,你们不能完全掌握也不影响课程的学习,但是因为追求课程内容的完整,我还是会把这些内容放上来让你们知道大概怎么回事,如果感兴趣的朋友可以课外去钻研”。但是对于初学者来说,这些处理可能会产生负面的效果:“这个地方林老师说得这么轻描淡写,是不是这个是课程的Pre-requisite?完了,完全不知道这是什么,看来我还不能胜任这门课程...“ 进而会对课程产生恐惧心理,甚至退课。

大概在8月份的时候,我开始渐渐领悟到“抽象”的思想,这个概念还是在MIT那门“电路原理”里接触的。简单地说,例如:对于电气的工程师来说,他即便完全不明白底层的物理原理和性质,也不影响他设计电路系统;对于操作系统开发工程师来说,即便他不了解计算机是如何被制造的,也不影响他的工作;对于机器学习领域的工程师,他也不一定需要知道操作系统或者计算机语言是如何运行的。人类之所以能够制造出复杂的系统,正是在这一步步的抽象的过程中完成的。这也是为什么会有“工程师”和“科学家”这样的区分。没有一个人能够掌握每一层的细节,你所能做的就是相信你所依靠的其他层面的支撑部分已经被其他人实现和证明了,你只需要完成你所在这一层的工作。

学习这门课也需要有“抽象”的思维。例如课程一开始讲的Hoeffding's Inequality相信给了不少人当头一棒:“这是什么?以前学概率论的时候没听说过啊!”当时第一轮我就是因为这个而退课。后来过了几个月学MIT在edX的“概率论”课程的时候,Hoeffding's Inequality仅仅是在Supplementary Materials中出现,因为即便不理解这个Inequality是如何证明的也不影响课程进度,所以我就没看这个资料。再回过头来谈机器学习基石,知道这个概念是什么,能干什么,至于不知道概念从何而来,为什么会这样等等,其实也不影响课程的学习。换句话说,培养自己“抽象”的思维方式,就是要学会有些地方需要“拿来主义”。

很多年前听到过一句话,大概是丁肇中说的,大意就是:要学会“不求甚解”。现在总算明白这句话背后的含义。

不过“抽象”思维也有Downside, 一旦习惯了“不求甚解”,有些地方会出现思维定势,这也解释了为什么有时会发生外行颠覆内行的现象。不过这个是后话了。


我要谈的另一个话题是关于自信心:
MOOC的证书机制对我帮助最大的就是帮助我一步步建立自信心。我觉得第一次接触一个未知东西所带来的恐惧是最难的心理障碍,而等到自己突破心障,充分接触了以后回过头来再看其实也就那么回事。

因为专业不同,这些内容都是依靠自学,没有受到正规的学校教育,而MOOC的题目能够给予反馈,并且最后会发放成绩和证书,会从侧面告诉你,这门课哪些是重要的,哪些不能掌握也没有太大关系,这一点对我来说就非常重要。相比自学其他材料(例如MIT OCW),如果没有一个反馈机制,可能你会感觉像个无头苍蝇,等遇到一个障碍后很轻易就可能会放弃了。

最后一点就是“Learning By Doing”,亲手解决一个问题和没有解决这个问题,心理状态是完全不一样的。同一个人,如果只看课程视频而不做配套的练习或者解决相关的问题,和解决了相关练习或问题后的差别是巨大的;同理,知道实务中一个问题是如何解决和真正动手解决这个问题差别也是巨大的,而这些差别主要是心理上的。

0

王亮_eecs 2014-02-18 11:52 0 票支持; 0 票反对

给我印象最深的就是林老师的热情,讨论版里的每个问题,几乎都可以看到林老师的亲自回复。在我选过的十来门coursera课程里,林老师是跟学生互动最积极、最坦诚的任课老师。

课程的内容脉络清晰,开始前两周比较简单,后面部分的难度就显著提高了,理论性很强,和Andrew Ng很偏应用的ML课程形成了很强烈的对比。

课程作业的评分方式比较特别,答错了要倒扣分,而且每次提交之后,只能看到分数,不知道哪些题目错了。或许这种方式可以防止乱猜、作弊,但我个人不是很认同这种方式,它不利于及时反馈,而且由于在线课程并不和真实的学位挂钩,个人的作弊动机也会弱很多。希望能够修改一下评测方式。

林老师的讲义做得很好,讲课也非常清楚,总体上算是一门很值得学习的课程。

0

唐家声i 2014-02-17 10:09 0 票支持; 0 票反对

相比于其他的coursera上的课程,这门课难度还是很有的,开课时间还正好赶在学期末,压力不小,绝对不是消遣消遣就能完成作业的课。不过第一门课拿到了证书,算是开了个好头吧。期待林老师后面的课程~

0

大猫爪和小猫爪 2014-02-05 06:27 0 票支持; 0 票反对

总体来说偏理论一些。本来是抱着学学实际应用就行的心态去听的,后来还是感觉到不能只知其然不知其所以然。耐着性子听完后,真的有融会贯通的感觉,比如...之前我连regularization大概是个什么意思,里面的lambda和C又是个什么关系都弄不清楚...现在也算清楚了,虽然不一定用到。讲课的林老师备课非常好,也很负责的亲自回答同学的问题,推荐大家听一听。没拿到证书,不过so what呀,学到东西才是真的。

自己写的一点粗略的总结:
http://blog.sina.com.cn/s/blog_641289eb0101dynu.html
http://blog.sina.com.cn/s/blog_641289eb0101e2ld.html

0

格竹斋主 2013-12-30 06:21 0 票支持; 0 票反对

刚做完第二次作业,评一下。这门课对我来说,真的蛮难的。

里面有很多基础的数学上的推理和抽象的部分,理解起来经常会出现偏差,对我这种本科概率统计都是蒙过的人来说,挺痛苦的。

作业理解起来经常也不容易,因为只听完课是很难做成功作业的,作业里的题是课里不会讲的(至少不会直接讲)。所以需要一些时间去研究,这还不提可能的英文的理解上的问题。

作业的评分机制很有趣(对了得分,错了扣分),也蛮难的,因为有提交次数限制,外加不告诉你到底你哪题错了,第二次作业最后一次提交勉强176分过168的及格线(不过其实按照现在的设置要通过课程其实也并不难,以我来说因为第一次作业比较简单,分数也比较高,所以其实后两次作业分数都在110分就能达到及格线了(最高分*1.5,最低分*0.5,平均另外两次得到最后得分))。

1

尘绳聋 2013-12-04 19:14 1 票支持; 0 票反对

看老师给出的课程大纲,基本还是照着Caltech/Edx LFD的节奏走。之前跟过LFD,这次就当复习了。当然也有一些新的东西,譬如PLA的收敛证明和收敛需要的次数上界,Lecture3对learning types的介绍也很详细,原来reinforcement learning还可以用在ad system上面,看来要把Ng CS229后面的那一大块有关reinforcement learning的内容啃一下了。另外,老师讲得非常好,从video和slide也能看出很用心。

0

本本2012 2013-12-01 19:15 0 票支持; 0 票反对

课程很好,希望继续深入下去

0

飞林沙 2013-11-29 13:49 0 票支持; 0 票反对

刚听完前两讲,讲的真的非常棒!从最基本的PLA讲起,虽然很简单,但是跟着自己动手写写代码,做做数学公式,就当休息了,很棒。

课程简介

Machine learning is the study that allows computers to adaptively improve their performance with experience accumulated from the data observed. The course teaches the most fundamental algorithmic, theoretical and practical tools that any user of machine learning needs to know. [機器學習旨在讓電腦能由資料中累積的經驗來自我進步。本課程將介紹各領域中的機器學習使用者都應該知道的基礎演算法、理論及實務工具。]

课程标签

机器学习 机器学习基础 机器学习基石 林轩田 LFD Hsuan-Tien Lin 台湾大学 VC维度 PLA

278人关注该课程

主题相关的课程