作者ittfie (kevin)
看板NTUcourse
標題[評價] 103-2 李宏毅 機器學習及其深層與結構化
時間Fri Aug 7 15:24:57 2015
※ 本文是否可提供臺大同學轉作其他非營利用途?(須保留原作者 ID)
(是/否/其他條件): 是
哪一學年度修課: 103
ψ 授課教師 (若為多人合授請寫開課教師,以方便收錄)
李宏毅
λ 開課系所與授課對象 (是否為必修或通識課 / 內容是否與某些背景相關)
電機工程研究所
δ 課程大概內容
主要就是講Deep Learning和Structured Learning,不過由於這門課是完全
由作業決定成績,且到後來的內容就越來越和作業沒有關係,我也就不常去
上課了...。老師的網站上寫得很清楚,有興趣可以自己去看,而雖然我沒
修過林軒田的機器學習,不過老師表示他會在內容上盡量和林軒田老師的課
錯開來,所以應該不用怕學不到新東西。
Ω 私心推薦指數(以五分計)
★★★★★
η 上課用書(影印講義或是指定教科書)
無
μ 上課方式(投影片、團體討論、老師教學風格)
投影片上課,不過由於這門課修的人實在太多,老師有開隔壁教室做同步,
老師把投影片和課程錄影錄影公開在課程網頁上,所以我覺得如果只是要聽
老師講機器學習的話,不一定要修課。老師上課常會用很多動漫哏,尤其是
涼宮春日,喜歡的人應該會覺得滿有趣的。另外老師很喜歡大家問問題,有
人舉手就會很激動的停下來給發問的人講,然後幾乎都會說「我覺得這個問
題問得非常好」,才繼續回答。偶爾也會請專家來演講,像是請NVIDIA的人
來講GPU在機器學習的應用,還有請徐宏民教授講 convolutional neural
network,Final Stage(等下說明)時也有請聯發科的人講機器學習有用在手
機的什麼什麼功能。
ρ 考題型式、作業方式
因為作業就佔了全部所以這裡我會講詳細一點,我儘量用比較淺顯的方式說
明每個作業在做什麼。其實作業做的都是語音處理,只是這門課不需要相關
基礎也能做。而作業基本上都是分組進行,一組兩到四人,這次大概有五十
組左右。
作業一:手刻DNN(Deep Neural Network)
目標是把一句不知內容為何語音轉成「phone」,phone可以就想做音標,像
是apple 是由 ae p el 三個音標組成的。每一個聲音片段都會對到一個音標
,所以我們要做的就是把聲音片段的音標找出來,我們拿到每個聲音片段都
是用一個向量表示,所以DNN的輸入就是一個向量,輸出就是它的音標,當然
助教會給有標記的資料讓我們train。會講手刻是因為助教幾乎禁止所有機器
學習的Library,除了計算需要的GPU加速的套件以外。
作業二:Structure Learning
作業二是直接承襲作業一的,雖然現在一句話對應到的 phone sequence
已經決定,但是如果考量每個phone的前後出現機率的話,可以讓結果更好
。這個步驟就是這個作業的目的,而助教是希望我們用 Structured SVM的
Library,搭配Viterbi演算法完成。
作業三:手刻 RNN(Recurrent Neural Network)
RNN和一般NN不同的是它有記憶性,而做的事和作業一類似,只是這次輸入
是有挖空並附選項的福爾摩斯小說的句子,而我們要利用RNN找出正確的選
項。train的資料是助教給的十九世紀小說集(只能用這個train)。助教有
另外同意讓我們用google word2vec,只是RNN基本上還是要自己寫。
Final Project:實際完成一個ASR(Automatic Speech Recognition system)
其實前幾次作業都是在做語音辨識系統的一部分,Final Project就是希望
我們把它全部合起來,流程大概是這樣:
hw1 hw2 WFST hw3
一堆向量----->一串音標----->一串修正過的音標----->一串單字----->一句話
WFST是助教會提供的,把phone轉成單字的程式,當然你要自己寫也是可以
,和之前不一樣的是這次開放使用任何Library(不過當然不行直接把音檔丟
google 的語音辨識),不用交程式碼(前幾次都要),只看你上傳的句子的正
確性與繳交的書面報告。最後上傳分數前十組的可以參加 Final Stage,每
組報告十分鐘,有修課的同學都可以來聽,並可參與投票,不過只有最後得
票最高前三組有獎,並有額外的加分(非常多)。
σ 評分方式(給分甜嗎?是紮實分?)
三次作業各20%,Final Project 40%
作業主要依據報告,上傳分數,和繳交的程式碼(Final Project不用)
我的感覺是給分非常甜,雖然不知道最後等第是怎麼打的,不過單次破百似
乎是很正常的。
ω 其它(是否注重出席率?如果為外系選修,需先有什麼基礎較好嗎?老師個性?
加簽習慣?嚴禁遲到等…)
可能第一次開,加上這主題最近很夯,非常多人想修這個課,應該不太好簽
因為我是一開始就選上所以忘記怎麼簽了...,不過要注意這門課真的很累。
基礎的話我只有上計概知道有NN這個東西而已...,我們這一組也都沒學過
相關的機器學習的知識,第一次作業就比較辛苦,而且有些進階的技巧像是
Maxout, Dropout 之類的老師那時還沒教所以也沒用進去,分數就差了點,
後面幾次就比較沒有這個問題,但還是花很多時間在寫程式和弄懂問題上面
。我是覺得整體來說:程式基礎>機器學習基礎>語音辨識基礎,這門課是希
望你除了會機器學習的方法外,更期待你可以完整的把它實作出來 。另外
這門課不會限制語言,不過大部份人用的不外乎Python,C++或MATLAB,不過
比較麻煩的是這門課很吃計算資源,所以用C/C++可能算較快外,如果組員
有人有好的GPU應該有幫助,好像也是有人花錢買AWS來算就是...
Ψ 總結
其實滿推薦這門課的,不過要有花非常多時間的準備,最好找好組員再來修,
能有這個機會可以一起合作寫這些很重的作業也是滿難得的。收穫的部分我
個人是:程式 > 機器學習 > 用Toolkit 的技巧。程式不用說,一直寫,尤
是檔案輸入輸出變得很熟,機器學習部分我覺得有些可惜,因為作業實在太
重,就沒放太多心思在老師上課的內容上。而我們這組到最後幾乎還是什麼
東西都是自己刻,像是Kaldi 之類的工具不是沒試著去學怎麼用,但後來都
因為太複雜弄不懂而放棄,這部分也滿可惜的。不過有時候也很奇怪,一些
步驟用正規toolkit上傳的分數也不見得較自己亂試的方法高。
論整體的收穫,雖然其實我們這組最後成績非常好,但我還是覺得有點浪費
教授細心準備這門好課的感覺,因為沒學到很多機器學習的東西。結論每一
次的作業都滿複雜的,我想助教很難仔細了解你們到底做了什麼,所以成績
也很難反應你的收穫,且因為自由度很大,絕對有可能可以找一些偷吃步的
方法,因此收穫真的很看個人。
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.172.236.170
※ 文章網址: https://www.ptt.cc/bbs/NTUcourse/M.1438932299.A.017.html
※ 編輯: ittfie (1.172.236.170), 08/07/2015 15:32:55
推 hei566: 能請春日創造一個永無止盡的八月嗎 08/07 20:02
推 felgher: 看到這ID必推強者我同學XDDD 08/07 23:04
推 fantasywater: 感謝分享 08/09 06:30
推 st890609: 感謝您的分享,請問各位大大這門課104-2不開是真的嗎? 08/10 00:50
→ energyaup6: 104-1好像有開 08/10 09:52
推 hahaha222: 感謝分享。另外,目前 104-2 應該沒有開課的計畫 08/10 23:14
推 kriswu8021: 強者我同學 11/08 18:49