缺失何在?當下機器學(xué)習(xí)教育的短板
大數(shù)據(jù)文摘出品
來源:thegradient
編譯:Fisher
隨著機器學(xué)習(xí)的日益流行,網(wǎng)上出現(xiàn)了越來越多的在線課程,個個都說自己在教“開創(chuàng)AI職業(yè)生涯”的必備技能。
不過,在注冊一門課之前,你應(yīng)該了解你將要get的技能究竟能否直接幫你把機器學(xué)習(xí)玩得更轉(zhuǎn)。這點不只限于在線課程,也針對很多大學(xué)里開設(shè)的機器學(xué)習(xí)課程——學(xué)生們趨之若鶩的這些課程,真的能幫他們達成他們的實際目標嗎?
機器學(xué)習(xí)教育的現(xiàn)狀
在參與過一所AI方面頂尖大學(xué)的機器學(xué)習(xí)基礎(chǔ)課程的主干之后,我發(fā)現(xiàn)了大部分此類課程所遵循的大綱:它們傾向以線性分類器開始,在引入回歸和分類兩個概念的同時介紹損失函數(shù)和最優(yōu)化,隨后會有一兩周來細講反向傳播,然后就完全進入到神經(jīng)網(wǎng)絡(luò)。
如果該課程主要關(guān)注深度學(xué)習(xí),它會用剩下的大部分時間討論各種神經(jīng)網(wǎng)絡(luò)(循環(huán)神經(jīng)網(wǎng)絡(luò)RNN,長短期記憶網(wǎng)絡(luò)LSTM,卷積神經(jīng)網(wǎng)絡(luò)CNN,等等)和最近發(fā)布的重要架構(gòu)(比如ResNet,BERT)。
反之,如果該課程更關(guān)注一般性的機器學(xué)習(xí),它會介紹其他的機器學(xué)習(xí)方法分支,比如無監(jiān)督學(xué)習(xí)和強化學(xué)習(xí)。
我們可以把這些課程的關(guān)鍵論題提煉出來:先是對有監(jiān)督學(xué)習(xí)作一概覽,再對有監(jiān)督學(xué)習(xí)和神經(jīng)網(wǎng)絡(luò)的數(shù)學(xué)基礎(chǔ)做簡要介紹,繼而或者介紹深度學(xué)習(xí)的各種方法,或者介紹機器學(xué)習(xí)的其他領(lǐng)域。
另外,看一看課程作業(yè)涵蓋的內(nèi)容,也有助于我們弄清楚該課程的主要目標。
作業(yè)通常被組織成如下形式:
- 學(xué)生得到一個結(jié)構(gòu)化良好的數(shù)據(jù)集;
- 介紹一個機器學(xué)習(xí)中的模型或者核心概念,然后學(xué)生把這個模型的基礎(chǔ)推演一遍;
- 學(xué)生實現(xiàn)這個模型;
- 在給定的數(shù)據(jù)集上跑模型,做一些輕量化的超參數(shù)調(diào)試;
- 畫出結(jié)果來看模型表現(xiàn)如何。
在了解課程內(nèi)容和作業(yè)設(shè)計之后,我們基本上知道了這些課程期望學(xué)生學(xué)到什么。它們希望學(xué)生掌握相應(yīng)領(lǐng)域的關(guān)鍵模型,而它們采取的方法就是簡單地涵蓋了所述模型的理論基礎(chǔ),然后要求學(xué)生在作業(yè)里實現(xiàn)其主要的關(guān)鍵功能。
把機器學(xué)習(xí)用起來需要的技能
通過跟機器學(xué)習(xí)工業(yè)界的行內(nèi)人士聊天,我了解到有幾個關(guān)鍵技能是成功必備的。首要的技能就是學(xué)會如何妥善清洗和分析數(shù)據(jù)。
我的一位同學(xué)非常認同這一點,他在最近的一次實習(xí)中花了8周時間來收集和處理數(shù)據(jù),然后才能著手把模型用到數(shù)據(jù)集上。機器學(xué)習(xí)模型極度依賴數(shù)據(jù),因此,掌握這項技能非常重要,它將確保你知道如何利用數(shù)據(jù)集的關(guān)鍵特性。
其次,對工業(yè)界的項目而言,大多數(shù)任務(wù)是找不到大型數(shù)據(jù)集的。因此,許多深度學(xué)習(xí)技術(shù)無法使用——可能會帶來過擬合以及泛化能力差(poor generalization)的問題。相應(yīng)地,人們常常用更簡單的、不需要大量數(shù)據(jù)的模型來作為替代方案,比如隨機森林或者logistic回歸。
這樣一來,能夠用合適的庫(比如sci-kit learn)妥善地使用這些模型就成了很有價值的技能。事實上,一個朋友告訴我,他在微軟公司的機器學(xué)習(xí)崗位上實習(xí)時,整整一個夏天都只是在跟logistic回歸的各種變種打交道。另外,隨著計算機視覺和自然語言處理領(lǐng)域的大型預(yù)訓(xùn)練模型的出現(xiàn),深度學(xué)習(xí)有時候只是一個精細調(diào)參的過程。這進一步增加了熟悉簡單、基本的模型的重要性。
但是,對學(xué)術(shù)界的研究來說,大型數(shù)據(jù)集通常容易得到,時間限制也不是大問題,因此我們可以訓(xùn)練更大的深度學(xué)習(xí)模型。例如,Open-AI的GPT3模型足足有1750億個參數(shù)。要造出這么大的架構(gòu),關(guān)鍵是要知道如何從工程上設(shè)計和搭建這樣的一個大型深度學(xué)習(xí)系統(tǒng)。這就需要精通PyTorch和Tensorflow兩者中的一個,這項技能讓研究者能夠快速有效地實現(xiàn)一個理論模型。
把需要的架構(gòu)造出來很重要,但是大部分模型還需要進行超參數(shù)調(diào)節(jié)才能有良好表現(xiàn)。在搭建實用的機器學(xué)習(xí)系統(tǒng)時,非常關(guān)鍵的一項技能就是對調(diào)節(jié)過程的設(shè)計有直覺把握,而非盲目地去調(diào)節(jié)。就拿我一個最近在英偉達實習(xí)的朋友來說,他有一段時間死活調(diào)不好某模型的參數(shù),直到最后發(fā)現(xiàn)是他選擇的初始化區(qū)間有問題,導(dǎo)致模型中的多數(shù)ReLU激活函數(shù)處于抑制狀態(tài)而使得學(xué)習(xí)遲滯。
缺失何在
既考察了機器學(xué)習(xí)教育的現(xiàn)狀,又討論了真正的機器學(xué)習(xí)實踐所需要的技能,現(xiàn)在我們可以評論一下教育的缺失何在了。對比課程涵蓋的內(nèi)容和實踐的要求,有一點很清楚,學(xué)生們所受的關(guān)于如何管理數(shù)據(jù)的教導(dǎo)是有欠缺的。
一方面課程提供的數(shù)據(jù)集很干凈,已經(jīng)做了很好的預(yù)處理,另一方面,除了畫出幾個數(shù)據(jù)點,課程也沒有鼓勵太多的對數(shù)據(jù)的挖掘。這種對數(shù)據(jù)集進行清洗和挖掘的一手實踐的缺乏,對學(xué)生真正上陣時的實踐能力非常不利。
另外一點,盡管課堂上提供了對關(guān)鍵理論框架的數(shù)學(xué)背景的直覺式的講解,但是為什么特定任務(wù)下給定的模型就比其他模型要有更好的表現(xiàn),這背后的理論給學(xué)生們講得不夠。結(jié)果就是,盡管學(xué)生也熟悉不少模型,他們還是不知道哪些模型最適合給定的數(shù)據(jù)集和任務(wù)。不完全懂得關(guān)鍵模型和技術(shù)的數(shù)學(xué)基礎(chǔ)的全部細節(jié),學(xué)生沒法在特定情境下快速選對模型。
哪些已經(jīng)做得不錯了,哪些還能做得更好
通過對課堂知識到實踐技能之間的缺失的分析,我們可以看到大多數(shù)課程在傳授基礎(chǔ)知識上做得不錯。課程里講授的概念可以讓你理解一個機器學(xué)習(xí)算法是如何工作的,它如何才能收斂。課程還讓學(xué)生能夠熟悉適用于不同任務(wù)的各種最佳算法,并接觸到廣泛的學(xué)習(xí)材料,可助有志者進一步深入。
但是,提升空間還是很大的。很多課把開始的幾周時間花在同一個地方:線性分類器和反向傳播。這些無疑是關(guān)鍵的主題,但是把將近三分之一的課時花在講授預(yù)備知識上并非最佳選擇——把本科生和研究生的內(nèi)容做個區(qū)分會很有用。
研究生課程可以要求學(xué)生們已經(jīng)掌握了預(yù)備知識,或者指示學(xué)生先去修本科生的同類課程。這樣就給課堂留出了充足的時間,可以教授學(xué)生們?nèi)绾翁幚碚n堂關(guān)注的特定領(lǐng)域的數(shù)據(jù),或者進一步細化了解該領(lǐng)域內(nèi)的關(guān)鍵理論框架。
我相信這樣做可以讓機器學(xué)習(xí)的課堂把課堂知識和實踐技能更好地聯(lián)系起來。很明顯,作為系列課程的一部分,一門課的孤立改變是做不到這點的,只有整個社群的協(xié)調(diào)改進才能保證學(xué)生們獲得最新最有用的知識。
學(xué)校為何應(yīng)當重視?
雖然彌合本文提到的缺失對提升學(xué)生的實踐能力絕對有用,很多課程還是會表示培養(yǎng)工業(yè)界需要的能力不是它們的事。但是,這些技能遠不只是工業(yè)界需要的,而是具有可遷移性。
事實上,它們在幾乎任何情境下都有用。例如,在學(xué)術(shù)研究中開發(fā)新模型的時候,也需要知道如何妥善地處理數(shù)據(jù),以及哪些技術(shù)能帶來更有利的結(jié)果。另外,這些技能是如此基本,掌握它們會讓學(xué)生成為更好的機器學(xué)習(xí)實踐者——對于一門課程來說,任何有益學(xué)生知識結(jié)構(gòu)的東西都應(yīng)當重視和教授。
基于目前的課程現(xiàn)狀,我們可以說,AI課程能夠帶你入門,不管你是想從事前沿研究還是找一份業(yè)界工作,但是它們不會教授你需要的一切。要彌合缺失的部分,你需要自己付出大量的課外努力。
相關(guān)報道:https://thegradient.pub/the-gap-where-machine-learning-education-falls-short/
【本文是51CTO專欄機構(gòu)大數(shù)據(jù)文摘的原創(chuàng)譯文,微信公眾號“大數(shù)據(jù)文摘( id: BigDataDigest)”】