其實(shí)這個(gè)題目其實(shí)早就想探討一下了,因?yàn)楣ぷ饔袝r(shí)候會(huì)在這件事情上花費(fèi)很多時(shí)間。這兩天坐著思考了一下,這個(gè)問題其實(shí)應(yīng)該分幾個(gè)維度來討論。
當(dāng)然,這里只討論工業(yè)界。
區(qū)分目的
首先需要明白,你是要做什么,是要快速落地,還是提升模型效果,還是講故事,還是做算法可行性研究,都有不同的套路,以及工作中各種形形色色的約束。
講故事--PPT型
工作中,總要給客戶或者領(lǐng)導(dǎo)講各種的故事,做個(gè)看起來fantastic的ppt,以前還沒工作多久的時(shí)候,對(duì)這種事情嗤之以鼻,現(xiàn)在啊,賺錢嘛,不丟人。
因?yàn)楝F(xiàn)在不像以前,故事不是帶有AI,聽眾就使勁鼓掌,讓人信服。時(shí)代變了,還是得拿點(diǎn)東西出來給別人看的。如何講一個(gè)好的技術(shù)性故事,根據(jù)我的經(jīng)驗(yàn),一定要在吹牛逼和實(shí)用性和普及性中間平衡。
舉個(gè)例子,NLP相關(guān)的任務(wù),你給別人講故事,不要一開始就把rf,word2vec就掏出來,你得講Transformer,elmo和BERT,但是你又不能講GPT-2和ERNIE2這種最新模型。
不是因?yàn)镚PT-2和ERNIE2不好用,甚至ERNIE2對(duì)于中文的效果是非常好的,而是說這兩個(gè)模型對(duì)于專門做NLP的人熟悉且好用,而Bert這個(gè)名字流傳度更廣,業(yè)界出的成果更多,開發(fā)起來更便捷(github上的各類demo源碼更多,便于落地),但是相對(duì)于word2vec這種老古董更先進(jìn)。
綜合這樣,東西可以落地,效果也查不到哪里去,又是業(yè)界較新生產(chǎn)力,這個(gè)故事還是可以給你別人的。當(dāng)然,只能是給別人看看,真正落地又是另一件事。
預(yù)研--研究型
工作里面,算法可能遇到瓶頸了,可能是性能太差,不滿足生產(chǎn),可能是準(zhǔn)確性上不去,效果不好,就需要搞研究工作了。
研究工作模型是一個(gè)縱向的,不能一味的把模型往深了做,而是不同深度各出一個(gè)結(jié)果。
舉個(gè)例子,現(xiàn)在我的工作是一個(gè)時(shí)間序列預(yù)測(cè)的工作,數(shù)據(jù)充足,特征管夠,不缺人力,算力拉滿(多么理想的工作環(huán)境),一開始是接到任務(wù),首先深度學(xué)習(xí)整起來,簡(jiǎn)單的CNN和LSTM來一套,往深了搞,也訓(xùn)練出來了比較好的效果。嗯,我很滿意。但是這個(gè)工作是與硬件相關(guān)的,硬件上給分配了30M的內(nèi)存,深度學(xué)習(xí)的模型都加載不了。好的,前期工作白費(fèi)。
換模型降維,普通的網(wǎng)絡(luò)搞一下,xgboost和adaboost,其實(shí)都可以做,但是這個(gè)時(shí)候還不夠,我們最后選擇了的模型是用信號(hào)頻率分解+線性擬合。
為什么這么選,網(wǎng)絡(luò)和xgboost的效果還可以,但是效率低,當(dāng)實(shí)時(shí)數(shù)據(jù)量非常大的時(shí)候,還是有點(diǎn)慢的,adaboost(回歸樹)效率可以,但是效果又不好,最后我們選擇了一個(gè)比較簡(jiǎn)單的模型。
所以,搞模型預(yù)研,一定要做成一個(gè)縱向,不能一直往深了做,也要回頭看看,也許有更好的選擇。合適才是最好的模型。
實(shí)干--落地型
模型要落地,重點(diǎn)應(yīng)該關(guān)注在生產(chǎn)中的約束條件。
- 監(jiān)督和非監(jiān)督,考慮人手夠不夠,訓(xùn)練需要投入的成本,優(yōu)先選擇監(jiān)督。
- 深度學(xué)習(xí)和機(jī)器學(xué)習(xí),考慮算力和效率,算力充足,性能要求不高,優(yōu)先選深度學(xué)習(xí)。
- 深度學(xué)習(xí)新模型和舊模型,不要選最新模型,選最流行的模型,因?yàn)樽钚履P褪菍W(xué)術(shù)界做的demo,面對(duì)SOTA做模型。就算效果好也要等網(wǎng)上資料足夠多了(github上的開源demo足夠多)再考慮換模型。
- 選擇機(jī)器學(xué)習(xí)模型,考慮任務(wù)。如果分類,優(yōu)先考慮隨機(jī)森林,xgboost和SVM,SVM性能最好,隨機(jī)森林最平衡,xgboost效果最好。如果回歸,線性擬合,SVM,xgboost都可以用。
一點(diǎn)感悟
訓(xùn)練了這么多模型,其實(shí)最后發(fā)現(xiàn),有些模型,在數(shù)據(jù)較好的情況下,效果差不太多,準(zhǔn)確率就是那幾個(gè)點(diǎn)的事情,不超過5個(gè)點(diǎn),特別是深度學(xué)習(xí)。所以不要覺得換了一個(gè)模型就可以大幅度提升。把數(shù)據(jù)選好才是最大的提升空間。
而實(shí)際情況是,一個(gè)模型或者幾個(gè)模型并不能解決業(yè)務(wù)的問題,需要一套組合拳。最常見做法是,先做預(yù)處理,排除最明顯的,再跑模型(組合模型),最后做后處理,這才是效果最好的。
今天就到這,有什么問題歡迎交流。mail: chinwu@126.com