1. 程式人生 > 其它 >動手學深度學習 | 預測房價競賽總結 | 16

動手學深度學習 | 預測房價競賽總結 | 16

目錄

競賽總結

我們講知識,也不可能所有東西都cover到,讓大家競賽不是讓大家去學某個特定的知識,而是說大家遇到一個問題,怎麼去找一個解決方案。這一次的解決方案和下一次的會不一樣,但是問題是你怎麼去找這個東西,去問人也行,去搜索也行。

私榜和公開榜是不一樣的,大家能看到的都是公榜的(私榜就是為了防止大家刷資料集!)

我們沒有講整合學習,但是整合學習確實是深度學習中一個很成熟的方案,就是不要只訓練一個模型,訓練多幾個模型,然後一起進行預測。

h2o也是用的整合學習,隨機森林就是一個整合學習的模型,所以整合學習確實是刷榜經常用的一個方法。當然整合學習的壞處就是它有很多模型,你在預測的時候代價會比較大,但是如果只看訓練精度的話,確實整合學習的模型是比較好的。

AutoML會利用多個機器學習包來進行學習。

貌似競賽中,使用MLP最好的是0.22,但是MLP仔細調的話是可以調的很好的, 在特徵的預處理,還有超引數的調節

我們可以講一下這個資料的難點:

  • 一個房價的大數值,10w~100W,因為數值比較大,所以梯度會比較大,如果學習率沒有設定好的話,梯度就會爆了。如果都是比較大的一個正數的話,可以對其取一個log,讓數值壓到一個比較好的區間,然後再做均值為0,標準差為1都是可以的。

  • 第二個比較難是資料有很多文字的特徵,這裡使用one-hot是非常不明智的,feature_size有10w,使用one-hot會爆記憶體。比如第二名是使用了transformer,還可以使用word2vec,或者使用稀疏矩陣取處理離散值,當然關於NLP處理的後面會講。

  • 還有就是公榜和私榜的問題,建議就是不要一直對著公榜的成績調參,因為一直只能是前9個月的資料,其實是說不準後3個月會如何,這也是實際生產中常會遇到的問題。如果說是過分去調整了,那麼就很有可能會overfitting。

總結:

  • AutoGloun(AutoML)在合理的計算開銷下得到還不錯的模型

  • 雖然AutoML可以做自動特徵抽取,但適當加入一些人工資料預處理,還是一個不錯的方法

資料中有比較大的數值,而且樣本之間的數值變化比較大,比如房子的賣價,納稅的價格等,我們對這些數值取log,其餘和之前是完全一樣的。

資料中包含房子的介紹,是大段的文字,可以使用multimodal這個選項用transformer抽取特徵,並做多模型融合,注意,這個需要gpu才能跑得動。

然後我們做了多層模型ensemble來得到更好精度。

  • 對於比較大的資料集,計算開銷仍然是瓶頸,我們需要使用GPU,甚至是多臺機器來做分散式訓練。

QA

  1. 為了避免overfit,是調參好,還是不調參好,或者是隻調什麼方面?有沒有什麼經驗分享?

其實如果是實際應用的話,引數調整並不是說最重要的。但是如果是競賽的話就是另外一回事了。

關於競賽的話,整合學習是一個不錯的方法。

但是競賽其實很多時候都是一個運氣,公榜和私榜差了那麼多,可能拿第一和拿第二的同學真的理解了什麼,很多時候可能就是運氣。

  1. 為了什麼說80%的時間是找資料、清理資料這些?資料搭建pipeline不就好了嗎?為什麼改進模型等等不佔主要時間?

其實對於實際的業務需求,找到資料是最重要的,比如要你預測比特幣價格,哪裡來的資料?資料是否有效?這都是需要考慮的。

但是對於科研的話,大部分都是已經給提供了資料集的,所以找資料的部分就不用過多進行投入,而是應該把精力花費在模型的改進上。

  1. autogulon和pytorch結合做NAS能不能講demo?

NAS就是去搜索一整個網路的架構,但是我們並不打算去講這個東西,因為對大家用處不大,除非你就是做這個research的。NAS是一個用有錢人玩的遊戲,一個NAS實驗,如果是用雲的話,分分鐘幾十萬美金就沒了。所以如果你只是做這個research的話,我們可以討論,但是你要用的話,我覺得NAS還不夠成熟。

  1. MLP有值得精細調參的價值嗎?不是說2層的feedforward已經有擬合任何非線性函式的能力了嗎?

理論上你用一根鐵絲可以biao出任意一種鑰匙,但實際上很難操作。

理論上我也有成為世界首富的可能,但實際做不到。

MLP還是有精細調參的價值的,MLP是一個很強的模型,CNN可以認為是一個特殊的MLP,卷積就是一個有結構化的MLP,最近在火的transformer,bert其實裡面有很多MLP的東西在裡面,而且其實大家懷疑裡面真正其中起作用的也是MLP的東西。

  1. 用MLP做股票預測時,預測值發生滯後,預測值曲線就像是真實值曲線往後平移了的效果,有什麼好的解決方法?

不要做股票預測,是做不贏的,華爾街實力一點也不弱,也是做不贏。沐神說他所見過的所有做股票預測的,最終也都失敗了。(股票根本根本就不是一個理性的東西)