魯迅曾經說過:「當我沉默的時候,我覺得充實;我將開口,同時感到空虛",當我們逐漸長大,談論起世事,大多多了一分謹慎,我們需要清楚的定義自己所說的是什麼,不然那些誇誇其談又有什麼意思了。比如今天我想說偏激,可偏激是什麼了。我們也許能給偏激下定義,也許能舉出許多偏激的例子,可這些都無法準確的說明什麼是偏激。於是智者便如蘇格拉底般承認自己的無知,只留下一知半解的人指責著別人的偏激。於是就有了」與其做一頭快樂的豬,不如做一個痛苦的思想者。「的名言。做一個思考著之所以痛苦,就在於其思考沒有一個明晰的基礎。
但科技的進步也會為思考著帶來啟迪。當我們可以創造一個模型,來模擬人腦的時候,我們也許就能更建設性的談論偏激。在我們構造的模型下,我們可以客觀的分析,可以做實驗。比如我最近看的神經網絡的課程,就可以作為一個人腦的一個模型。人的大腦是在不斷的學習,學習後進行分類或者預測,而神經網絡也是從training set中學習,從而進行對test set的行為預測。而神經網絡(或者一般所有的機器學習中)都會有overfitting(過擬合)的問題,而在我看來,與overfitingt對應的,在人類社會中出現的問題就是偏激。
機器學習要解決的一類問題是分類問題,即將貓的照片和狗的照片分開。其中訓練集是給計算機一萬張貓的照片,一萬張狗的照片,然後讓計算機算法去處理這個訓練集,之後拿十張貓的照片,十張狗的照片,這就是測試集。所謂overfitting,即所訓練的網絡在訓練集上表現良好(有良好的解釋能力),但遇到新的數據,則差之千裡(缺乏擴展的能力)。
為了得到一致假設而使假設變得過度複雜稱為過擬合。想像某種學習算法產生了一個過擬合的分類器,這個分類器能夠百分之百的正確分類樣本數據。但這個分類器能夠對測試樣本做出完全正確的分類的原因不是因為這個分類器理解了數據的本質,而是因為它的構造過於複雜,以至於任何與樣本數據不那麼類似的測試數據集上,該分類器表現的沒那麼良好。
本圖中的曲線有過擬合的可能,其對訓練集的依賴過強,而對新的數據的表現可能會較差。
人一生性格的發展可以被看作也是一個不斷訓練的過程。最開始建立了一個model,隨著人年齡的增長,新的閱歷被用來進一步磨練人的個性。當總是處在一個相對固定的環境時,慢慢的overfitting問題就會出現,總在熟悉的環境中獲得較高的performance,即在這個環境下,自己的性格已經可以遊刃有餘的處理任何人際關係和事情。然而當遇到新的環境時,自己之前儀仗的的這套模型就會失效了。
把視角從個人拉到人類社會,一個典型的例子就是中國的文官制度,把這套制度看成是一個神經網絡,該系統的任務是保障社會的和諧運作,這套制度在幾千年裡運行的總體上都不差,但這段時間,國內的情況變化不大,相當與在一個相當穩定的訓練集上錯誤很小,網絡不斷試圖減小錯誤,就好比歷朝歷代對文管制的小修小補。但到了鴉片戰爭,從訓練集一下轉到了一個全新的test set,這個overfitting的系統就出了大錯誤了。
Overfitting 的根源在於把 sampling(取樣)中的regularity(規律)當成了實際數據中的regularity,而偏激的人則往往是由一件事(取樣)而得出一個過分generalized(概括)的結論。同樣,在神經網絡中,之所以會出現overfitting的網絡,也都是hidden unit過多,hidden layer越多的網絡,功能也會越強。
同樣的類比,偏激的人大多聰明,一個人若不聰明,也不會葉落知秋的。Overfitting的另一個來源是hidden layer間的複雜的合作,導致一部分hidden unit去補償另外一部分hidden unit的錯誤,而這種補償帶來的是這個訓練好的神經網絡只適用於這一部分數據,而同樣的道理,人心的的偏激也可能是源於你想的太多,想法之間相互關聯,讓本應獨立運作的模塊有了虛擬的相關性。
而克服overfitting,是任何機器學習算法的核心問題,有很多方法,這裡不能一一例舉,只是就想到的約略說一些。
第一種是提供更多的訓練數據,對應到人上面,則是見多識廣可以使人考慮問題周全。這是最簡單的方法,對於分類問題,我們即要給訓練集即提供標籤為正確的數據,也提供標籤為錯誤的數據,就像孩子在成長的時候既要有成功也要有失敗,既要見識到人性的惡與殘忍,也要了解到人性的善於慈悲,只有這樣,方能健康成長。
第二種克服overfit的方法是限制網絡的能力,具體來講,有early stopping, weight decay, noise等。
Early stopping就是在網絡的權值weight,對應到人這裡,就是信念的強度,達到一定閥值時就阻止網絡繼續學習。我看到這裡,便想起了中庸之道,不偏不倚,不要對某一觀點過於執著,不就是不要講某個hidden unit的weight設的過高嗎?(可以把hidden unit代表的feature當做一個人的一個想法,weight對應人的執著程度)early stopping將網絡的初始weight都設的很小,就像小孩子一開始對什麼都沒有什麼觀點。一個從小經受中庸之道薰陶的人應該是處變不驚的,也能夠在新的環境中更快適應,就像一個帶有early stop機制的網絡具有更好的generalization。
Weight decay(or weight constrain)的intuition是對於過大的weight,給予懲罰,對應到人類社會,則是批評某些人偏激,或者自覺自己的點子荒謬無稽。weight decay在神經網絡中是一種可行的方法。這給我們的啟發是當我們被批評為偏激的時候,不應覺得這是無稽之談,是扼殺創造力。也許這些批評讓你現在覺得不舒服,就像weight decay會降低網絡在training set上的效果,但使用了weight decay,會使提高網絡的generalization,這好比忠言逆耳利於行。
限制網絡能力的另一方法是在訓練集的數據中加入獨立的高斯噪音,這種方法同樣會增加網絡面對無噪音訓練集時出錯的頻率,但提高了generalization,這條在人類社會中也有對應的道理,一個從來沒有聽過謊言的孩子無法分辨真假,一個社會要是許久都沒有謠言,那麼一條謠言則會造成災難性的影響。當家長過度的保護孩子,使他們無法接觸到noise,那麼他們今後面對魚龍混雜信息的適應力也不會太好。老子云:「曲則全,枉則直」,豈是虛言。我們即使有無偏的數據,但為了網絡的generalization,有時也需要在數據中加入噪音,只要這些噪音是相互獨立的,我們要相信我們的孩子能夠從帶著噪音的數據中找出真正的規律來。
第三種克服overfitting的方法是綜合多個網絡(或者不同機器學習模型)的輸出,這種方法對應的是兼聽則明偏信則暗。除了使用多個不同的網絡,也可以使用同一個規模較小的網絡結構,但給予多個網絡不同的訓練集,使其術業有專攻,同時加入一個負責調控的網絡,針對每一個網絡給出的輸出,給予一個對應的權值,面對預測集時則時給出網絡的加權平均值,這個對於是現代社會的專業化分工,每個人各有其所長,對於不同的需求(即預測集的數據),通過給予不同成員的意見不同的重視程度,來綜合給出整個小組的答案。
第四種克服overfitting的方式在於將所要考慮的數據投射到一個高維度的空間上(這也是SVM的擴展性好,不容易出現過擬合的原因)。這裡的關鍵是你首先要知道觀察分析事物還有其他的維度,而這需要你視野開闊,不斷吸收總結新的知識,之後通過將遇到的事在不同文化背景,不同情緒,不同時間軸上進行重新的投射到不同的評價標準,從而避免偏激的以自己的價值觀來評判別人。
最後要談的克服overfitting的方法是boosting,一言以蔽之,也就是,三個臭皮匠賽過諸葛亮。該算法最初由Schapire提出。該算法先從樣本整體集合D中,不放回的隨機抽樣n1 < n 個樣本,得到集合 D1,訓練弱分類器C1;再從樣本整體集合D中,抽取 n2 < n 個樣本,其中合併進一半被 C1 分類錯誤的樣本。得到樣本集合 D2,訓練弱分類器C2,再抽取D樣本集合中,C1 和 C2 分類不一致樣本,組成D3,訓練弱分類器C3,最後用三個分類器做投票,得到最後分類結果。這個算法本身就說明了問題,我們每個人看問題時也許不夠全面,就像每一個弱分類器,但只要我們選擇樣本的角度是獨立的,那麼我們的偏見會相互抵消,從而產生群體的智慧。
說完了如何克服overfitting,即如何應對偏激。但更值得關心的問題是我們應該怎樣對待偏激,年輕人難免偏激,一個社會如何能健康的對待偏激,是值得深思的。在神經網絡的實現中,網絡出現了overfitting,不是壞事,這說明我們的網絡足以描繪數據中所有相關的特徵,也就是說我們的網絡擁有足以應對其所需解決問題的複雜度,我們接下來要做的是採取上文提到的種種措施,來克服overfitting。
同樣年輕人偏激,也不是應當成是洪水猛獸。相反,在設計神經網絡時,如果沒有出現overfitting的問題,反而說明我們的網絡過於簡單,hidden unit太少,或者需要加入新的hidden layer,使網絡先overfittin,之後才有必要試圖解決overfitting的問題。
因此,一個光明的結論擺在我們面前,偏激是通向進步的階梯,是不可或缺的半成品。如果你年輕時沒有偏激過,也就無法走向真正的成熟。我知道我這樣寫東西就很偏激,可是我看神經網絡課程時就是這麼想的,因為真實,也就不在乎別人的看法了。我還是堅信,與其做一個快樂的愚人,不如做痛苦的智者,通過構造量化的模型,我們可以客觀的去看人類社會出現的問題,為爭辯提供一個平臺,而不是各自的自說自話。
ps.這篇兩年前的舊文,如今重新讀來,發覺其中缺少了一點。人們之所以會偏激,是因為缺乏對自身的關照,只看到別人,看不到自己。比如現在很多人都在追捧華為任正非的「厚積薄發」,而唯成功論,不正是對厚積薄發的諷刺嗎。人們之所以會顯得偏激,是因為其自身的言論與所作所為不夠一致。
歡迎加小編鐵哥個人微信562763765