今天我們來聊一聊歉胶,機(jī)器學(xué)習(xí)與深度學(xué)習(xí)的模型設(shè)計汛兜。
運(yùn)用機(jī)器學(xué)習(xí)算法進(jìn)行研究,其實(shí)就是尋找目標(biāo)函數(shù)的過程通今。通過構(gòu)建機(jī)器學(xué)習(xí)模型(形成函數(shù)集)粥谬,用訓(xùn)練數(shù)據(jù)做驅(qū)動,尋找與訓(xùn)練數(shù)據(jù)匹配辫塌,并且在測試數(shù)據(jù)中表現(xiàn)優(yōu)異的函數(shù)漏策。所以構(gòu)建機(jī)器學(xué)習(xí)模型就顯得十分的重要了。以線性回歸為例子臼氨,大家可以看一下下面的圖掺喻。
在尋找目標(biāo)函數(shù)時,假如函數(shù)集范圍太小储矩,正如圖左所示只是一次式項感耙,那么很有可能目標(biāo)函數(shù)不在函數(shù)集里面,也就說bias(偏差)比較大持隧,遠(yuǎn)離了目標(biāo)函數(shù)(也就是圖中的靶心)抑月,這是我們經(jīng)常說的欠擬合。而如果我們盡量把函數(shù)集設(shè)大一點(diǎn)(函數(shù)集盡可能的大就有希望能夠包含目標(biāo)函數(shù))舆蝴,這樣bias會變小谦絮,但是也帶來了壞處题诵,模型對噪音數(shù)據(jù)會特別敏感,一不小心就會出現(xiàn)過擬合的情況层皱。因為我們本身并不知道目標(biāo)函數(shù)到底長什么樣性锭,所以我們就要不斷測試修改模型,希望能達(dá)到好的效果叫胖。下面是一點(diǎn)tips,大家可以參考一下草冈。
欠擬合:1 增加特征 2 調(diào)整為更加復(fù)雜的模型
過擬合:1 增加數(shù)據(jù)量 2 正則化
上面說的是傳統(tǒng)機(jī)器學(xué)習(xí)中模型的設(shè)計,那么在深度學(xué)習(xí)中瓮增,我們又該如何設(shè)計怎棱?首先大家要理解一點(diǎn),為什么要“deep”绷跑?下面大家繼續(xù)看圖拳恋。
大家仔細(xì)看圖就會發(fā)現(xiàn),1.隨著隱藏層的增加砸捏,錯誤率在減低谬运。2. 7X2K 對應(yīng)的錯誤率是17.1% ,而與之參數(shù)量相當(dāng)?shù)?X16K 對應(yīng)的錯誤率卻是22.1% 垦藏。 理論上說梆暖,只要一層隱藏層里面神經(jīng)元夠多,那么這個模型足以接近任何函數(shù)掂骏。也就是說轰驳,我們沒必要把神經(jīng)網(wǎng)絡(luò)弄deep,但是大家看圖就會發(fā)現(xiàn)弟灼,deep 要比 一層效果好级解。其實(shí)這就包含了拆分與共享的思想,看圖袜爪。
原來我也覺得深度學(xué)習(xí)應(yīng)該會需要大量的數(shù)據(jù)蠕趁,事實(shí)上并不是,我使用mnist數(shù)做過實(shí)驗辛馆,在數(shù)據(jù)量較少時俺陋,多層神經(jīng)網(wǎng)絡(luò)的效果要比單層神經(jīng)網(wǎng)絡(luò)要好,意不意外昙篙?驚不驚喜腊状?所以當(dāng)你數(shù)據(jù)較少又想用深度學(xué)習(xí)來處理數(shù)據(jù)時,不妨多搭幾層苔可。
最后還要談一下 no free lunch理論缴挖,no free lunch理論指的是沒有最好的算法,只有最適合的算法焚辅。深度學(xué)習(xí)的模型有許多種映屋,大家在選擇是一定要根據(jù)自己問題來選擇模型苟鸯,比如說CNN對處理圖像信息就非常的有用,而RNN對處理序列非常在行棚点。所以大家還是要對每種算法都要了解清楚早处,選擇合適自己的算法。
好的 瘫析,今天就聊到這里砌梆,這篇差不多寫了一個小時。想跟我交流的同學(xué)贬循,歡迎大家在文章下面留言咸包,如何你覺得我的文章還可以請點(diǎn)贊并關(guān)注我,謝謝杖虾。