[评价] 100-1 林轩田 机器学习

楼主: hallogameboy (时の音の精灵)   2012-08-19 03:51:05
★ 本文是否可提供其他同学转作其他非营利用途?(须保留原作者 ID)
(是/否/其他条件):是
★ 若满分五分,则私心推荐几分? 五分
★ 课程大纲
100-1 课程网:http://ceiba.ntu.edu.tw/1001ML
˙ Introduction
˙ Generalization
˙ Linear Model
˙ Overfitting
˙ Regularization
˙ Validation
˙ Principles
˙ Support Vector Machine
˙ Aggregation
(以上转载于老师的Course Plan)
不过老师好像每年都会试着尝试不同的挑战,所以每年的大纲
可能会略有不同,像是99-1跟100-1的syllabus就不太一样XD
课本是由C老师与Abu-Mostafa以及Malik Magdon-Ismail三位教授
共同所著的Learning From Data(http://amlbook.com/,推荐这本书!)
★ 上课方式(投影片或是板书、老师教学风格、是否英语授课)
首先是语言的部分,C老师的ML是全英文上课的!
但是我觉得老师的英文很清楚,而且很好听XD
所以我觉得并不用担心听不懂英文的问题这样~
此外,包含作业内容、与课堂相关的信件内容也都是英文限定,
如果用中文写的话会是不算分或不处理的!
在上课问问题以及TA Hour的时候是允许用中文的,
但我觉得趁机说英文也是不错的机会就是了www
接下来是上课方式的部分,老师大部分上课的方式是以一边板书
一边讲课的形式进行,上课教室的板面是102,104那种可以滑动的白板
老师上课一开始会在白板的右侧写下上礼拜教过的内容以及这礼拜预计
要教的内容,然后简单复习以及介绍之后就开始讲课。
讲课的时候会从白板的一侧开始写过去,写满再用滑动的白板调整
,全部都写满之后会从比较早的开始擦。所以不太会有比较来不及抄的
问题。
少部分如开学Intro的时候以及老师觉得有必要的时候(如100-1
在教AdaBoost的时候便是用投影片上课)还有期末Project颁奖的时候
会用投影片XD
另一方面,因为课程中有很多内容是环环相扣的,再加上英语授课
所以上课的时候要很集中,不然有时候一恍神就听不懂了XD
因此也建议上课的前一天尽量不要熬夜会比较好XD
★ 评分标准
6+(1) Homeworks (70%)
Final Project(Competition) (30%)
这堂课的评分就只有根据作业以及最后的Project进行
上面的比例是100-1时,最后公式的结果
此外,作业部分以及Project部分的分数都会有自己的一套计算方式
最后在依照原始分数跟全班的分布来调整等第。
我的原始成绩是93点多,最后的等第是A这样XD
★ 作业内容及方式
每两周会出一次作业,100-1学期共出了七次作业,第七次
作业可以选择是否要缴交。每次作业满分是两百分,Bonus十分。
每次作业分成两大部分,第一部分是三到四大题从课本习题出
的题目,以及第二部分两到三大题需要写程式的的题目;
每一大题的题目数大概会有二到八小题的题目,所以总题数其实满
多的。
缴交的形式手写或用电脑打都可以,不过有些程式作业或需要
作图的作业会需要电脑输出噢
第一部份(我都叫它“手写”,但是可以用打的XD)的大多是
一些证明跟计算,有些题目比较简单,但是有些题目就真的需要想
满久的。另外这部分有时候也可能要用写一些程式计算、统计或进
行一些实验,只是不用缴交程式码。
这部分的评分方式很严谨,助教也非常用心,所以证明的推论
要想的很清楚,过程也不太能够含糊带过(像是trivial之类的),
否则会被扣掉相当多的分数。
第二部分的题目通常是会有一些小题是手写或提出一些算法
然后一些小题会需要实作一些模型或是进行一些实验,并且对一些
资料(给training data的features以及label,以及testing data
的features)进行train跟predict,并且上传predict的结果或是
输出实验所产生得来的图表以及数据,也要缴交自己的程式码。
这部分的作业前几次还可以用C或C++之类的语言写,不过到之后
会需要用到很多数学的函数、方法或一些输出图表之类的工具,
像是矩阵运算等基本语言不太好写的东西,所以我觉得最好可以学会
Octave(免费)或是Matlab(非免费)之类的软件。
(个人推荐Matlab!我原本用Octave结果速度满慢的""特别是画很多
点的图的时候,速度的差距会让人有点想哭,如果不介意用terminal
的话,学校工作站上有装有授权的Matlab,只是有人数的限制XD)
不过如果使用软件的话,是严禁呼叫现成已经有的套件来实作
作业的内容(就是“咻踫!”一下就可以得到作业答案的东西),
作业的policy是说可以跟助教询问是否能使用某些套件,但是比较
保险的做法是指用像是矩阵运算、微积分、数学函式等基本的运算XD
这部分的手写与第一部分的评分大抵上相同,但是程式题会以
实作predict出来的正确性或实验的结果作为评分。如果算法
以及实作没有大问题的话,我觉得应该不会太困难。
另外每次的作业会有10分的Bonus,强烈建议可以想一下,
Bonus的题目都还满有趣的,而且有些只要多想一下,或是转个弯
就可以想到解法,也会很有成就感XD
另外就算没有全部都正确,但有时候也会有部分的分数,所以
其实也满不错的XD
作业的成绩计算方式,是以 (1.5*Best+0.5*Worst+Others)/(作业数)
的方式计算。
迟交的话是每过12小时扣10%,就算过十分钟也算进入下一个时段。
但是是可以部份迟交的,如果写不完或是突然发现有部分有错来不及改
也可以先缴交已经写好的部分。
如果因为半天的延迟,导致deadline变成在凌晨,则需要扫描或拍照
作业寄给TA的信箱,并在作业上注明发信的时间。
★ 考试风格及题型
这堂课没有考试:) 但是有刺激好玩的Project!
我想这段就来介绍这个Project吧!
这门课的Project是一个ML的Competition,以1-2人为一队进行大概
一个月的比赛,满分是600分,540来自Report,60来自名次,相当于三次
的作业。
比赛的内容是对于一组training data以及testing data实作一些
模型进行predict,并比较结果进行比赛,并且要缴交详细描述方法
六页以内的Report,也限制必须要有三个以上的方法。
以100-1学期的比赛来说,资料的features共有120个,labels则有101
个,并且有些labels是被画上问号的。所以比赛就变成猜出问号的labels
以及用模型predict两部分,也都必须要把方法们写在Report中。
比赛的过程中会有即时的计分板,可以看到每一队目前的结果以及
使用的方法,非常的刺激!
评比的方式会以一些metric来做,以100-1学期来说,就分成F1-Score
以及Hamming Loss两个track来排名。跟KDDCUP的比赛类似,记分板会把
testing data分成public跟private两个set,在比赛结束前,我们只能
看到在public set上算出来排名的结果,但是真正的名次则是在private
set上所算出来的。
不过值得注意的是,比赛的结果只占了全部的十分之一,
所以Report在评分中才是最重要的,用的方法的多元性、难度、严谨度
可能都要顾一下XD
期末比赛结束后,还会有比赛的分析以及颁奖!
除了名次前面的队伍有奖之外,像是public set的排名奖、
public跟private最接近的奖等,另外还有一些很有趣的奖,
像是第一个和最后一个上传、最接近新年的、传最多次的...等
最后我们这学期颁了29个奖给同学还有七个奖给辛苦的助教XD
★ 其它(会不会点名、需要什么基础、老师的个性)
第一个部分是基础的部分,我觉得要修课的话最好要有一些
数学的基础,像是微积分、机率、线代、组合等,建议可以参考
C老师在开学前公布的Homework 0,上面都是会用到的数学,
上课的时候老师有时候还会拿出来说Homework 0有出现XD
但是我觉得也不用到非常非常熟,大概是知道有这么一个东西
可以解决怎样的问题或是做什么事情,当需要的时候可以很快地复习
然后把想解决的问题解决就好。
(当然但是如果什么都不知道就不太妙了XD)
当然如果很熟的话,在写作业的时候会比较方便,
不过当要用到的时候再去查,我觉得其实也不会造成太大的困扰,
之前写作业的时候我还有回去重看线代课本XD
所以其实不用太担心如果数学没有很熟会不会爆炸之类的
点名的话,老师上课的时候有时候会点名问同学问题,
不过如果不想回答的话,可以选择PASS,至于对分数我想应该是
没有影响XD 但是没到的话老师也有可能会对你有印象XD
如果对课程有问题的话,ML的TAs会有一个统一的信箱,可以
寄信问(英文限定XD),也可以TA Hour的时候去问问题,助教都
还满NICE的XD
也可以趁下课的时候问老师,老师下课的都会很NICE的给同学
问问题,所以每次下课都会看到很多人围在讲桌前面XD
★ 个人修课心得及总结
其实大部分心得都已经在上面了,这边就放一下其他部分心得XD
原本想在课程大纲那边加上一些解释,可是不知道为啥总是觉得
自己写的怪怪的,所以就先砍掉了。如果有兴趣的人也可以查查看
或是问我XD
ML是一门非常扎实的课程,从一些理论的证明到一些模型
的实作都会接触到,真的学到很多知识,花了很多时间,但是
非常地充实,,有些东西做专题研究的时候还有用到XD
但我觉得虽然这门课的loading真的是比其他课程来的重很多,
作业也真的会花很多时间,但是也没有包括老师一开始的投影片以及
一些人说的那么夸张就是了><"
时间主要会花费在复习跟写作业上面,而写作业则会占大宗的
时间XD 但是写作业的时间会有很多时间在想,所以可以利用
一些空闲的时候就可以想解法或写一写草稿,再利用比较长的时间
检查跟写下来,真正在写作业的时间大概就几个晚上(应该还是比
一般课程多XD),但是相对来说会比较轻松一些。不过这是我用的
方法,所以放到这个部分。
作业的难度部分,我觉得其实大部分一直想或多跟同学讨论,
大部分都可以有个答案。以100-1的作业来说,除了HW4的VC Dimension
Union and Intersection中几个小题想破头只能生出个连自己都
想吐槽的假解(当然没拿到分www)之外,大部分的作业都是有写
出来(不过当然没有拿到全部的分数XD),写完作业的时候也都满有
成就感的!
总结的话,我觉得这门课最主要的收获,是在于对于一些
ML基本的理论跟模型有了比较深的认识,包括证明、实作、应用等。
相较于其他选修课程可能会涵盖到一些ML的应用,像是package的使用
或是单纯套用一些模型或算法等,会更了解为什么ML可以帮助我们
解决、预测问题,因此比较适合想要知道ML运作的原理的同学。
不过我也认为,如果能了解背后的原理的话,会更能够改进以及应用
这些知识,来帮助研究或是作品变得更好!
不过我也觉得一个学期的时间其实很短,能学到的东西其实很有限
,ML的领域中其实还有很多东西可以去学,也还有很多问题是不知道的。
不过修了课之后,很多Paper上面的理论、公式、推导等东西,
也慢慢看得懂了,也算是很大的一个收获吧XD
总之,推荐这门课!
作者: andy74139 (月^4)   2012-08-19 12:17:00
推详细!!!!
作者: jenny2921 ( )   2012-08-19 23:32:00
这篇真是超级无敌详细的!! 完全值得1400+1126P :)
作者: iownthegame (雞丁)   2012-08-19 23:40:00
超详细
作者: CharlieL (心平氣和)   2012-08-20 06:12:00
1126P 已发出
楼主: hallogameboy (时の音の精灵)   2012-08-20 08:37:00
谢谢老师~
作者: math120908 (小小郭)   2012-08-22 13:02:00
XDDDDD

Links booklink

Contact Us: admin [ a t ] ucptt.com