0
本文作者: 汪思穎 | 2019-05-27 11:35 |
雷鋒網(wǎng) AI 科技評論消息,今年年初,MXNet 作者李沐與 Alex Smola 在加州大學(xué)伯克利分校開設(shè)了一門深度學(xué)習(xí)課程。課程結(jié)束之際,李沐在知乎撰寫長文,描述了開設(shè)這門課程的動機(jī),以及上完課程之后,在教育上的一些心得與體會,李沐表示,「我們嘗試的一些方法、走過的彎路、積累下來的材料也許對諸位感興趣的老師和同學(xué)有所幫助。所以特意在這里分享出來?!?/p>
雷鋒網(wǎng) AI 科技評論獲其授權(quán)轉(zhuǎn)載這篇文章。以下為正文,有刪減。
原文地址:https://zhuanlan.zhihu.com/p/66062438
2019 年春季我跟 Alex Smola 一起在加州大學(xué)伯克利分校(下面簡稱 Berkeley)教了一門針對本科生的實(shí)驗(yàn)性質(zhì)的深度學(xué)習(xí)課程,旨在探索如何有效地教授深度學(xué)習(xí)。連同兩位助教(Rachel 和 Ryan)和一百來位學(xué)生一起度過了高強(qiáng)度的、痛并快樂的四個月。上周剛結(jié)束了課程項(xiàng)目的報告。二十個報告里有好幾我特別喜歡,其中一兩個將投到即將截稿的 NeurIPS。更欣慰的是幾個我一度覺得會失敗的項(xiàng)目也找到自己的出路。
教學(xué)是一種形式上的創(chuàng)作。創(chuàng)作有著藝術(shù)性和個人性。我們的經(jīng)驗(yàn)不足支撐寫出一篇「如何高效的教深度學(xué)習(xí)」,但我們嘗試的一些方法、走過的彎路、積累下來的材料也許對諸位感興趣的老師和同學(xué)有所幫助。所以特意在這里分享出來。
動機(jī)
在過去三年中,我所在的亞馬遜云服務(wù)(AWS)人工智能部門(AI)急速的擴(kuò)張了好幾十倍,側(cè)面反映了行業(yè)的火爆。但我觀察這個市場的擴(kuò)張并沒有想象中的那樣發(fā)展迅猛。原因之一是 AI 的頭號玩家深度學(xué)習(xí)的入門門檻依然很高。雖然它比機(jī)器學(xué)習(xí)更實(shí)用,但比起其他學(xué)科來說仍然很復(fù)雜。例如如果 100 個人學(xué)數(shù)據(jù)庫(AWS 的重要收入來源),可能 50 個人能用學(xué)到的知識來解決實(shí)際問題。但同樣這些人來學(xué)深度學(xué)習(xí),謹(jǐn)慎樂觀估計 10 個學(xué)完后可以上手就很好了。如果 AI 一波熱潮褪去,開發(fā)者學(xué)習(xí)熱情降低,市場擴(kuò)張隨之變慢,那冬天就不遠(yuǎn)了。
我跟多位部門同事合作對亞馬遜內(nèi)部員工和 AWS 客戶進(jìn)行過培訓(xùn)(工作的副業(yè)之一),17 年的時候跟 Aston 一起在國內(nèi)做過十九期直播。去年年底的時候萌發(fā)錄一個更加正式的質(zhì)量更高的 MOOC 的想法。但擔(dān)心線上課程不能實(shí)時得到反饋,所以難易度難以包括,所以想先面對面的教一遍積累些經(jīng)驗(yàn)。
首選是去 Stanford,因?yàn)殡x家近(踩單車 15 分鐘)。但 Stanford 已經(jīng)有幾門深度學(xué)習(xí)課程同時在開。幸運(yùn)的是 Berkeley 仍有空位,而且他們非常樂意我們?nèi)ソ?。?lián)系上 Berkeley 到 AWS 上層批準(zhǔn)一周內(nèi)就搞定,即使是我們明確說明了將會在半年之內(nèi)每周兩天不在辦公室。這一點(diǎn)上我非常喜歡亞馬遜,它推崇做一些有長遠(yuǎn)影響的項(xiàng)目,并鼓勵快速嘗試。
入職當(dāng)天有兩個有意思的小插曲。一是被告知 Berkeley 是公立學(xué)校,職員算政府人員,需要宣誓戰(zhàn)爭發(fā)生時要為美國而戰(zhàn)。我說這我沒做好心理準(zhǔn)備,要不不要發(fā)我工資,當(dāng)我是個志愿者好了。這樣我也安心去實(shí)驗(yàn)教學(xué)。
二是我去的伯克利統(tǒng)計系是世界上最好的統(tǒng)計系之一了吧(這里老師覺得就是世界第一,很像我讀過的 CMU 計算機(jī)系和我老婆讀過的 MIT 計算機(jī)和電子工程系,他們老師都覺得自己是世界第一?)。樓上辦公室坐著各大山頭,Michael Jordan,Peter Bartlett,Bin Yu,一堆如雷貫耳的名字。但統(tǒng)計系這棟樓是我去過的學(xué)校里面最破的,沒有之一。以至于約助教見面時他們委婉的建議去隔壁樓的公共空間,那里更敞亮更現(xiàn)代。
分配到的辦公室??催@地板、這凳子、這黑板,這墻、這窗。拍于中午十二點(diǎn)。
教學(xué)大綱
深度學(xué)習(xí)的興起不過短短 7、8 年,今天的學(xué)術(shù)界仍然熱火朝天,新模型新應(yīng)用依舊層出不窮。如何在大量的、沒有經(jīng)過長時間檢驗(yàn)的文獻(xiàn)中選取教學(xué)內(nèi)容頗費(fèi)腦力。例如去年年末出現(xiàn)的 BERT 和 GPT 等模型使得我們意識到基于 self-attention 的 transformer 類模型可能未來跟卷積神經(jīng)網(wǎng)絡(luò)和循環(huán)神經(jīng)網(wǎng)絡(luò)一樣重要,于是教到一半的時候特意挪出了一節(jié)半課來介紹。學(xué)生后來反饋這對他們的課程項(xiàng)目很有幫助。
深度學(xué)習(xí)知識點(diǎn)可以簡單且粗暴的分成兩類:實(shí)用的和好玩的。實(shí)用類包括各類卷積和循環(huán)神經(jīng)網(wǎng)絡(luò),以及它們在計算機(jī)視覺和自然語言處理中常見問題的應(yīng)用。這類模型可以用來解決人類幾秒內(nèi)能判斷的事情,從而替代人來做重復(fù)性的工作,有著廣泛的應(yīng)用場景。好玩的包括用生成對抗網(wǎng)絡(luò)來生成圖片,和用增強(qiáng)學(xué)習(xí)來打各種游戲。這類模型具有一定的創(chuàng)造力,可以做高大上的演示,大家喜聞樂見,但技術(shù)落地目前有些不明朗。
我們希望學(xué)生在學(xué)完這門課后能夠掌握和使用常見的模型。不管他們以后是去工業(yè)界找相關(guān)職位還是繼續(xù)讀研深造,都能打下堅實(shí)基礎(chǔ)。所以教學(xué)大綱是偏向?qū)嵱煤突A(chǔ)類技術(shù)。
但我們不能開一門純實(shí)用課程。僅僅教授神經(jīng)網(wǎng)絡(luò)的各種構(gòu)造大法可能在聰明的 Berkeley 學(xué)生眼里跟回字有四樣寫法一樣可笑。課里不僅要講 HOW,也要解釋 WHY。但深度學(xué)習(xí)里理論工作并不多,而且大有今天提出來一種解釋過不了幾天就被打臉的可能。所以課上只能把各方觀點(diǎn)都擺一擺,加上點(diǎn)自己的看法,然后提醒大家要有辨別精神,因?yàn)榻裉煺f的猜測可能都是錯的。此外,我們還補(bǔ)充了些相關(guān)的數(shù)學(xué)、統(tǒng)計學(xué)習(xí)和優(yōu)化的經(jīng)典知識和理論來增加深度。
在知識點(diǎn)外的另一個重要點(diǎn)是動手能力。一個我很喜歡的比喻是知識積累是內(nèi)存,手速就是 CPU。內(nèi)存決定能跑多大的程序(工作的深度),CPU 決定多快能跑完這個程序。對于初學(xué)者來說 CPU 比內(nèi)存重要,因?yàn)閮?nèi)存可以從別人那里借。例如在課程項(xiàng)目中,Alex、助教和我充當(dāng)了內(nèi)存的職責(zé)。但 CPU 是借不到的,不能動手不僅做不出課程項(xiàng)目,完成作業(yè)都可能懸。
在課程中我們基本對每個講到的算法都過了一遍代碼實(shí)現(xiàn),有些基礎(chǔ)的甚至是兩種不同的實(shí)現(xiàn),一種是從零開始方便理解的,一種是實(shí)際中使用的。我感覺整門課至少一半時間在講代碼。帶來的問題是覆蓋的知識點(diǎn)少了。但好處是每個講過的點(diǎn)都把細(xì)節(jié)說透了。一般先是公式和圖片,講模型設(shè)計思路和與其他類似模型的聯(lián)系和區(qū)別。然后是代碼,講細(xì)節(jié)的實(shí)現(xiàn),說明每個模塊的數(shù)據(jù)輸入和輸出,和現(xiàn)場演示實(shí)驗(yàn)效果。這也是我個人信奉的一種學(xué)習(xí)方式,先一頭扎進(jìn)去弄懂所有細(xì)節(jié),然后再抬頭思考它背后的思想。
每個課時的安排在下圖(或者點(diǎn)擊 http://courses.d2l.ai/berkeley-stat-157/syllabus.html)。Alex 覺得我們覆蓋了深度學(xué)習(xí) 20% 的內(nèi)容,我讀論文少,所以比較樂觀的覺得覆蓋了 60% 的話題,和每個話題里面重要的 50% 知識點(diǎn),所以也有個 30% 的內(nèi)容。對于一門入門課來說,已經(jīng)是相當(dāng)豐富了。
教材
早在兩年前我們就著手寫一本深度學(xué)習(xí)的教材。當(dāng)時的情況是 Ian Goodfellow 的書是當(dāng)時最好的入門書,新而且全面。但它只做了一般的模型描述而沒有描述如何實(shí)際使用它們以及效果怎么樣。而且?guī)啄隂]更新似乎有點(diǎn)趕不上時代了。同時網(wǎng)上有大量的關(guān)于模型實(shí)現(xiàn)類的文章,但過于零散而且每個人寫作風(fēng)格迥異。我們想要一本既能講原理、又有實(shí)現(xiàn)和實(shí)際使用、不斷更新、而且容易讀的書。
在過去兩年的摸索中,這本教材在傳統(tǒng)意義的書上往前走了幾步:
書的每一章用文字、數(shù)學(xué)、圖示和代碼來多方面介紹一個知識點(diǎn)。它是一個 Jupyter 記事本,可以獨(dú)立運(yùn)行。包含 20 個左右的文字和代碼塊,可以 15 分鐘左右讀完。
源文件是 Markdown,不保存執(zhí)行輸出,并開源在 Github 上。這樣方便更多人貢獻(xiàn)和改動審閱,同時可以很容易的不斷加新章節(jié)。
任何改動都會觸發(fā)持續(xù)集成服務(wù)重新執(zhí)行記事本來獲得執(zhí)行輸出,這樣保證代碼的正確性。一個記事本的執(zhí)行時間控制在不超過十分鐘。這對展示復(fù)雜模型的訓(xùn)練頗為挑戰(zhàn)。
執(zhí)行無誤后直接用三種格式發(fā)布在網(wǎng)上:含有執(zhí)行輸出的 Jupyter 記事本,可以直接瀏覽的 HTML,和適合打印的 PDF。
可以像 LaTeX 那樣方便的索引圖、表、公式和文獻(xiàn)。
每一章都有可以討論的鏈接。
目前書的英文版發(fā)布在 http://d2l.ai/,中文版在 http://zh.d2l.ai/。
這本書代碼的實(shí)現(xiàn)很多是基于 MXNet(一開始的目標(biāo)是為 MXNet 寫個好點(diǎn)文檔),我們也考慮過要不要提供一個 PyTorch 或者 Keras 的版本。后來發(fā)現(xiàn)這個擔(dān)心比較多余。框架就是一個工具,工具之間的那些不同帶來的困難比起理解模型和調(diào)出結(jié)果來小很多。課上發(fā)現(xiàn)就算是沒有接觸過這些工具的學(xué)生,用 MXNet 做作業(yè),然后在基于不管用啥框架實(shí)現(xiàn)的現(xiàn)有算法再開發(fā)做項(xiàng)目并沒有多大困難?;蛘哒f困難都不來自工具本身,特別是算法實(shí)現(xiàn)都在課上講過一遍的情況下。
幻燈片
教材是給學(xué)生課前課后閱讀使用。上課中需要將教材變成幻燈片。雖然想過是不是可以讓教材直接自動生成幻燈片,但沒有找到特別好的辦法。原因是書和幻燈片的表現(xiàn)形式很不一樣。書中文字是書面的、詳細(xì)的、和嚴(yán)謹(jǐn)?shù)摹;脽羝瑒t是口語的、簡單的、和生動的。
舉個例子,下圖是書中介紹物體檢測和邊界框的一節(jié)。
在幻燈片版本中,我首先用兩頁介紹物體識別,第一頁是突出跟前面一直講的圖片分類的區(qū)別,然后是一個實(shí)際中的應(yīng)用(順便介紹下自動駕駛這個應(yīng)用)。接著是過渡頁表示一個單元的開始,和簡略的介紹邊界框。跟書相比,幻燈片在表現(xiàn)上更加簡單,而且更強(qiáng)調(diào)生動性。
按照這個思路,書中每一節(jié)的文字被重新做成一個幻燈片單元。一般 5 頁左右,講課中每頁平均花時 2 分鐘。然后刪掉文字保存代碼,再使用 Jupyter 來做幻燈片演示。
通常一個代碼單元是 10 頁,一頁平均需要講一分鐘。
這樣書的每一節(jié)被做成了兩個幻燈片單元,一共講 20 分鐘。Berkeley 一節(jié)課 80 分鐘,一節(jié)課可以講 4 節(jié)。一共上了 26 節(jié)課,講了大約 100 節(jié),基本覆蓋了整本書的內(nèi)容。
課程錄像
機(jī)器學(xué)習(xí)類課程都喜歡錄像(可能是 Andrew Ng 開了一個好頭)。錄像有兩個場景,一個主體是幻燈片,講師在角落。另一個主體是黑板。
過去幾年里我們嘗試了各種 DIY 手段來通過便宜的器材來錄制準(zhǔn)專業(yè)的視頻。下圖是這次使用的器材。
錄像用的是一個 4K 微單④,放在講臺前 4 米的三腳架上①,用 HDMI 線③和轉(zhuǎn)錄頭②跟筆記本相連。4K 主要是為場景二準(zhǔn)備,但因?yàn)槲覀兌ǖ降慕淌业暮诎宀皇呛芎茫赃@個場景用得不多,而且經(jīng)常課堂中忘了切換。后來發(fā)現(xiàn)其實(shí)用手機(jī)就足夠了,例如 iPhone 加上 EpocCam 這個應(yīng)用,然后用個小三腳架放在筆記本的后面。這樣極大減輕每次要攜帶的設(shè)備,而且降低了器材成本。但注意不要用筆記本自帶的前置攝像頭,那個效果不行。
聲音質(zhì)量很關(guān)鍵。千萬不要用筆記本自帶的麥克風(fēng),人稍微離遠(yuǎn)點(diǎn)就聽不清。我們將一個無線麥克風(fēng)掛在身上⑦,它跟 hub⑧相連,然后再接到筆記本上。后來發(fā)現(xiàn)如果走動不頻繁的話,用固定麥克風(fēng)效果也很好⑤,而且容易連接(我們買的這個主要是為 MOOC 用,比較重,如果要攜帶的話可以買小點(diǎn)的)。
錄制軟件用的是 OBS,游戲主播常用。強(qiáng)大,但不是很穩(wěn)定,而且耗資源,特別是在連了很多設(shè)備的情況下。于是專門用了個新的高配 MacBook Pro⑨,保證除了上課外不會動它,而且有足夠的計算資源現(xiàn)場運(yùn)行程序。OBS 出錯概率不小,建議每次開始時和中間都要查一下錄制是不是正常。否則重新錄視頻很痛苦,因?yàn)闆]有學(xué)生在現(xiàn)場,氣氛很不一樣。
物理鍵盤⑥很方便,一個鍵配置成開始和停止錄制,另外兩個是切換場景。它的主要好處是 LED 背景顯示當(dāng)前狀態(tài),可以時不時看下錄制是不是正常。因?yàn)槊總€單元錄一個視頻,一節(jié)課通常錄 7、8 個,前幾節(jié)課常忘了點(diǎn)開始。這個鍵盤可以時不時看下錄制是不是正常。不過我覺得一個更好的辦法是用一個 iPad 做一個擴(kuò)展顯示器,將 OBS 放在上面,這樣可以真正看到錄制狀態(tài)。
通常我們會把課程視頻在一兩天內(nèi)上傳到 YouTube。但這樣直接導(dǎo)致來上課的學(xué)生銳減。堅持來上課的學(xué)生可能學(xué)習(xí)動機(jī)更大,每次互動的時候都感覺大家掌握不錯,進(jìn)而導(dǎo)致一路向前講,基本把整本書講完了。這比原計劃多講了 20%。我覺得可能視頻在一周后上傳比較好,這樣學(xué)生需要來上課才能完成一周后要交的作業(yè),從而容易在課堂上把握節(jié)奏。
上機(jī)環(huán)境
深度學(xué)習(xí)里大部分模型訓(xùn)練都需要 GPU 來加速,但學(xué)生通常都沒有自己的 GPU(當(dāng)然他們不這么覺得,很多學(xué)生課后指著自己系統(tǒng)中顯示的 Intel 集成顯卡來跟我說,你看我是有 GPU 的)。一個方便的辦法是使用 Google 的 Colab(當(dāng)時提供 K80,現(xiàn)在是 T4 了),但只能同時訓(xùn)練一個任務(wù),做作業(yè)還行,但課程項(xiàng)目不夠。我們提供的另一個途徑是使用 AWS 上的 GPU 實(shí)例,而且我們提供經(jīng)費(fèi)。
教學(xué)生在云上用 GPU 實(shí)例比想象中要困難些。雖然課上手把手教過,但好長一段時間的答疑里都是問如何使用云。而且很多學(xué)生經(jīng)常開了實(shí)例忘關(guān),或者用了特別貴的 GPU 實(shí)例,導(dǎo)致月底會有很高的賬單(前些天一位同事苦著臉跟我抱怨說,資助的一個項(xiàng)目的一個學(xué)生為了趕一篇論文在 AWS 上燒了 30 萬美元,老師自然掏不起腰包,只好我們補(bǔ)。差點(diǎn)掏空了我們?nèi)甑馁Y助資金)。
這門課里我們大概發(fā)放了 3 萬美金的 AWS 兌換碼。主要麻煩的地方是都是學(xué)生問我要,然后我手動回,發(fā)了好幾百封郵件。還要答疑諸如為什么兌換不了。這一塊還在思考如何改進(jìn)。
作業(yè)和考試
我們一共布置了 10 次作業(yè),一周一個。絕大部分是代碼實(shí)現(xiàn)題。一個作業(yè)預(yù)計耗時是半天。對于工作量較大的,我們讓每個課程項(xiàng)目團(tuán)隊一起合作完成。這樣他們可以提前熟悉各個隊員。對于個人作業(yè)我們鼓勵討論,但需要每個人獨(dú)立將答案寫下來。
頗受歡迎的幾個作業(yè)是參加 Kaggle 競賽。我們提供一個基礎(chǔ)模型和幾個改進(jìn)思路,然后學(xué)生去調(diào)參數(shù),并上傳預(yù)測結(jié)果報告得分。之后我們會排名出前三個隊,每個隊獎勵$500 的 AWS 兌換碼。
這十個作業(yè)里面有兩個設(shè)計得不是特別好。都是模型訓(xùn)練題,但我們沒有事先實(shí)現(xiàn)并跑一遍,沒想到一個過于容易,一個太難。下次還是不能偷這個懶。
考試只有期中考試,這是為了期末大家有更多時間做項(xiàng)目。考試開卷,但不能帶電腦。其中一道題是一段 LeNet 的訓(xùn)練代碼,特意改錯了 6 個地方,讓大家來指出問題。整體大家做得還不錯,這樣說明前半課程知識點(diǎn)掌握還不錯。如果允許的話,我還是建議要有期末考試,這樣促使學(xué)生去復(fù)習(xí)課程的后半段內(nèi)容。
課程項(xiàng)目
課程項(xiàng)目占比課程分?jǐn)?shù)的一半,是我們很看中的部分。因?yàn)閼?yīng)用學(xué)到的知識去創(chuàng)造性的解決一個有意思的問題是我們能提供的最好學(xué)習(xí)體驗(yàn)。但對于老師和學(xué)生都相當(dāng)不容易。
在我們過去的經(jīng)驗(yàn)中選擇單干的學(xué)生經(jīng)常最后做得不是很好,這次我們強(qiáng)制要求一個項(xiàng)目至少有四個成員。第一堂課中 Alex 讓每個人跟坐在邊上的人花三分鐘認(rèn)識下,然后跟坐在后面的人花三分鐘認(rèn)識下,這樣方便學(xué)生在課上沒有熟人的情況下組隊。如果最后實(shí)在落單了,我們就隨機(jī)在人數(shù)少的隊里加人。最后一共行成了二十個項(xiàng)目。
考慮到本科生可能缺乏項(xiàng)目經(jīng)驗(yàn),所以我們設(shè)置了多個中間環(huán)節(jié)。包括三周內(nèi)定好題目獲得 10% 分?jǐn)?shù),課程 1/3 的時候需要做中期演講和寫中期報告(20% 分?jǐn)?shù)),必須跟助教見一次面討論項(xiàng)目(10% 分?jǐn)?shù))。
我們觀察到學(xué)生遇到的主要困難是低估項(xiàng)目的難度。首先深度學(xué)習(xí)極大的拓展了機(jī)器學(xué)習(xí)的應(yīng)用場景,圖片、視頻、音頻、游戲、金融、醫(yī)療、社交網(wǎng)絡(luò),基本都可以用神經(jīng)網(wǎng)絡(luò)來處理。但很多有意思的數(shù)據(jù)可能會帶來大量計算量(例如視頻)和工作量(例如對醫(yī)療數(shù)據(jù)的預(yù)處理),遠(yuǎn)不是新手能駕馭。
其次,大家喜歡好玩的模型,諸如生成對抗模型和增強(qiáng)學(xué)習(xí)。但這兩類模型都比較難訓(xùn)練,例如生成對抗模型中需要在生成器和辨別器之間取得納什平衡,訓(xùn)練經(jīng)常不穩(wěn)定。但教學(xué)大綱專注實(shí)用類模型,導(dǎo)致沒講這兩大類模型。于是學(xué)生發(fā)現(xiàn)他們選的模型比作業(yè)和課上看到的要難很多。
最后是學(xué)生都很自信,演講水平很高。中期演講質(zhì)量很高。不僅好幾個項(xiàng)目的創(chuàng)意我特別喜歡,而且講得也特別好。例如每個項(xiàng)目是給三分鐘報告時間,很多組都是三個人輪流講,每人一分鐘,時間把握特別好。對比 5 年前我在 CMU 做機(jī)器學(xué)習(xí)課助教,我覺得這一屆特別優(yōu)秀。這本是優(yōu)點(diǎn),但讓我和 Alex 都過于樂觀。
轉(zhuǎn)折點(diǎn)出現(xiàn)在期中考試后。我們開始督促學(xué)生將重心放到課程項(xiàng)目上,答疑時間(每周兩小時)里也主要是詢問他們進(jìn)度怎么樣。一開始會跟他們說一些想法,例如這里有篇剛出來的論文,你們可以讀讀。基本是抱著做出來可以發(fā)個論文或者創(chuàng)個業(yè)的心態(tài)。畫完餅后雙方都很愉快。但任何事情不能拔苗助長。很快發(fā)現(xiàn)大多項(xiàng)目進(jìn)度緩慢,經(jīng)常一兩周后查看進(jìn)展時發(fā)現(xiàn)都困在找數(shù)據(jù)或者讀論文。
眼看課程不到一個月就要結(jié)束了,不論是我們還是學(xué)生都開始有些著急了。于是將每周的答疑時間增加到了 6 個小時(每節(jié)課前的 3 小時),而且承擔(dān)了(無良)項(xiàng)目經(jīng)理職責(zé)。進(jìn)度不理想的團(tuán)隊在每次聊完后都會很慎重其事的說,回去備好咖啡紅牛熬夜吧,過兩天我們再來看進(jìn)展。
最后一周最讓人抓狂。一個小組在一個小時后就要做報告的時候,過來問從網(wǎng)上下的一個模型在他們抓的數(shù)據(jù)上做預(yù)測能不能過關(guān)。我說,不行,你得「訓(xùn)練」下這個模型。還有學(xué)生什么活都沒干然后稱自己這樣那樣了,找來學(xué)校的特殊學(xué)生關(guān)心部門說能不能這樣那樣。
很欣慰的是好幾個我們特別擔(dān)心的項(xiàng)目最終找到了自己的出路。還有一兩個項(xiàng)目一開始很關(guān)注但中間有點(diǎn)失望,因?yàn)楦杏X他們一直在走彎路而且也不是很理會我們的建議,但最后拿出了驚喜的結(jié)果。最終結(jié)果比預(yù)想的要好。
同時,這里面還是有很多可以改進(jìn)的地方:
需要根據(jù)學(xué)生課程項(xiàng)目的選題來調(diào)整教學(xué)大綱。例如,雖然我們針對性的將 BERT 從最后往前挪了兩周(有好幾個組獲益),但應(yīng)該在內(nèi)容上加入生成對抗模型。
需要及早幫學(xué)生正確估計項(xiàng)目的復(fù)雜度,和正確的估計自己的能力。
跟助教更好的溝通,使得他們將時間多分配來幫助解決一些項(xiàng)目中的一些實(shí)際問題,曾在 CMU 看到過一門本科生的編程課里,每周學(xué)生坐在一起編程(也許是寫作業(yè)),然后 5、6 個助教現(xiàn)場答疑,感覺效果會很好。
一開始要強(qiáng)調(diào)最后最終項(xiàng)目報告需要列出每個成員的項(xiàng)目貢獻(xiàn),然后我們再按比例給分。這樣也許能減少一些學(xué)生抱著渾水摸魚的僥幸心理。
時間成本
一開始我以為在教材已經(jīng)寫好了的情況下,開門課應(yīng)該很輕松。但即使是在只要上一半課的的情況下,我每周仍然要花費(fèi)一半的工作時間在上面。時間的大頭包括:
一節(jié)課的幻燈片需要花費(fèi)十多個小時,通常是整個周末和兩個工作日晚上(因?yàn)閹抟ǜ鄷r間)。不過我觀察到 Alex 只用花 2、3 個小時。
因?yàn)槲矣⒄Z口語很一般,而且不善于演講,一節(jié)課前我需要花 2、3 小時演練。即使是中文講課,提前花 30 分鐘想一想怎么講也是很有必要。同時我也觀察到 Alex 只需要上課前花十分鐘過一遍幻燈片就行。
答疑時間和跟助教溝通,前面每周 3 小時,之后增加到每周 7 小時。
回郵件,上傳視頻,更新網(wǎng)頁之類每周一小時。
這門課給我?guī)砹撕艽蟮呢?fù)擔(dān)。這里也特別感謝我的家庭、公司的老板們和小伙伴們支持這一個「不務(wù)正業(yè)」的實(shí)驗(yàn)項(xiàng)目。
總結(jié)
上好一門課很難,需要付出大量時間和精力。一門經(jīng)典的課程通常是好幾個老師經(jīng)過數(shù)年的積累的結(jié)果。這對深度學(xué)習(xí)這一新的學(xué)科尤為挑戰(zhàn)。希望我們的經(jīng)驗(yàn)和走過的彎路的能啟發(fā)之后的廣大師生。
此外,所有上課相關(guān)的材料都使用 CC BY-NC-SA 4.0 協(xié)議(非商業(yè)目的下自由使用)公布在網(wǎng)上:
課程主頁:http://courses.d2l.ai/berkeley-stat-157/
所有課件和習(xí)題:https://github.com/d2l-ai/berkeley-stat-157
教材的英文版:http://d2l.ai/ 和中文版:http://zh.d2l.ai/
最后,可能也是最重要的:
如果你打算使用這些材料來教類似的課程,可以向免費(fèi)獲取 AWS 計算資源。這里特別感謝 AWS 中國團(tuán)隊費(fèi)老師、Shawn、Leo,Vivian、鍇哥、張薇和邢進(jìn)的支持。具體信息請參考:申請用于本書學(xué)習(xí)或教學(xué)的免費(fèi)計算資源(http://zh.d2l.ai/aws4learn.html)
教材中文紙質(zhì)版6月即將銷售。有全彩豪華版和黑白經(jīng)濟(jì)版兩個版本。因?yàn)槲覀儾荒酶遒M(fèi),所以跟出版社協(xié)商到了很低的售價。感謝Aston和我們的編輯海玲付出的巨大努力。京東、當(dāng)當(dāng)和天貓上都有預(yù)售。
雷峰網(wǎng)版權(quán)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。