神經網絡能否直接判斷奇偶數

神經網絡判斷奇偶數

擁有神經網絡的深度學習比機器學習的一大特點是,深度學習的非線性轉換能夠實現一定程度上的特徵提取和特徵組合。但是,當你傳入一批自然數進入模型中訓練,想要預測奇偶性的時候,你會發現,這個任務有點難。但是,如果你將這些數值轉爲二進制的時候,這個任務又變得可行。可以看出,深度學習也需要我們做一下數據的預處理工作。當然,也側邊看出了神經網絡並非萬能。

1. 神經網絡如何針對當前的任務建立模型
比如檢測,分割,分類等問題。這些問題都有一個共同點,同一個類別的目標在高維空間裏也在同一個區域。這樣在高維空間裏,我們的神經網絡將這些空間分割成多個塊,每個塊預測出一個類別,就能達到很高的指標。

2. 神經網絡爲什麼無法直接通過自然數數據直接構建特徵預測奇偶性

作者:王贇 Maigo(Facebook 研究科學家)

機器學習裏面有一個「沒有免費午餐」定理(No Free Lunch Theorem):任意一種算法,如果對於某些類型的問題效果好,必然對於另一些類型的問題效果差。各種模型都有自己的先驗假設,如果數據分佈符合這個先驗假設,學習效果就好,否則就差。比如很多模型都假設數據是線性可分的,對於線性不可分的數據效果就不好。

不平滑的輸入導致難以擬合
機器學習適合處理的問題,一般都有這麼一個特點:在特徵空間中相近的輸入,對應的輸出一般也相近(暫且稱爲「平滑性」)。這是機器學習能夠把從訓練數據中學到的知識推廣(generalize)到新數據上的前提。如果一個問題不「平滑」,也就是說,輸入稍微變一點兒,輸出往往都會有巨大的變化,那麼機器學習一般就會表現得慘不忍睹。

比如,如果直接輸入自然數0,1,2,3,…n(n很大),這就是一個典型的「不平滑」問題:輸入稍微變動一點兒(從2變成相鄰數3),輸出就會有很大變動(從一個標籤轉爲另一個標籤)。還有一個例子是,輸入是若干個布爾特徵,輸出是它們的異或。那麼,輸入中有一個布爾值發生了變化,就會導致輸出發生翻天覆地的變化。在自然語言處理中,也會存在一個字的改變,導致整個句子的語義發生改變,所以給模型加入了先驗,使用了word embedding 來刻畫單詞之間的距離和位置關係。

激活函數的影響
奇偶判斷的核心規律是週期性,與relu是完全違背的,這些激活函數都沒有太多的轉折,不會像週期性函數cos/sin把特徵空間切得很碎,relu可以看作只有兩段區域。強行使用relu會使得神經網絡需要擬合數軸上的每個數,無法完成任何泛化。當然,如果以後讓激活函數具有周期性,那麼也許也可以解決這類週期性的問題。但是損失函數的問題又會出現,這類崎嶇的損失曲面將會很難找到全局最優解。

信息論解釋
從信息論也可以理解,一個所有符號出現概率均等的系統,將無法對符號進行壓縮。一個問題的解空間,可以用符號表示,如果對其中特徵完全不瞭解,可以認爲所有符號出現的概率均等,也將無法對解空間進行壓縮,也就不存在一種相對高效的解法。

3. 爲什麼轉爲二進制之後,神經網絡就可以工作了
這是因爲通過設計合適的特徵,把問題轉化成一個【平滑】的問題。從信息論的角度來說,奇偶性的信息就藏在二進制的最後一位,信息就在那裏,可是神經網絡竟然無法捕獲它。如果我們把輸入數值轉換成二進制,每一位作爲一個布爾特徵,一般的機器學習方法都會很容易地學習到個位特徵就對應着答案,而其它特徵與答案無關。通過最後一位是0還是1就可以直接判斷label, 這是典型的data leakage.

參考

https://www.zhihu.com/question/364113452
公衆號【深度學習視覺】
https://fainke.com

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章