[評價] 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