摘要: 那些年咱們錯誤理解了人工神經網絡,想知道錯在什麼地方嗎?快來學習一下吧。html
讓咱們繼續談談關於人工神經網絡的誤解:神經網絡體系結構不多,越大型的神經網絡就越好?git
被錯誤理解的人工神經網絡(一)!github
神經網絡並不是只有一種體系結構算法
在第1部分中,咱們討論了最簡單的神經網絡體系結構:多層感知器。在實際操做中,有許多不一樣的神經網絡體系結構,任何神經網絡的性能都是其體系結構和權重的函數。機器學習領域的許多現代進步並不是來自於從新思考感知器和優化算法的工做方式,而是來自創造性地關注這些組件如何組合在一塊兒。下面,我將討論一些隨着時間推移而發展的很是有趣和創造性的神經網絡架構。數據庫
在遞歸神經網絡中,部分或所有鏈接向後流動,這意味着網絡中存在反饋機制。這也是遞歸神經網絡在時間序列數據上表現更好的緣由。所以,它們可能在金融市場的狀況下特別重要。想要了解更多信息,能夠了解一下這篇文章。網絡
該圖顯示了三種流行的遞歸神經網絡架構——即Elman神經網絡,約旦神經網絡和Hopfield單層神經網絡架構
Neural Turing Machine是一個近期有趣的遞歸神經網絡體系結構,該網絡將遞歸神經網絡架構與存儲器結合在一塊兒,它可以學習排序算法和其餘計算任務。機器學習
第一個徹底鏈接的神經網絡是Boltzmann神經網絡,AKA是Boltzmann機器,這些網絡是第一個可以學習內部表示並解決很是困難的組合問題的網絡。Boltzmann機器的一個解釋:它是Hopfield遞歸神經網絡的蒙特卡羅版本。儘管如此,神經網絡依然很難訓練。可是,當受到限制時,它們能夠證實比傳統的神經網絡更有效,Boltzmann機器上最受歡迎的約束是禁止隱藏的神經元之間的直接鏈接。這種特殊的體系結構被稱爲限制玻爾茲曼機器,它被用於深博特爾曼機器中。函數
該圖顯示了不一樣波爾茲曼機器在不一樣節點之間的鏈接能夠顯着影響神經網絡的結果(網絡右側的圖)性能
在深度神經網絡中,存在多個隱藏層的神經網絡。因爲在圖像識別和語音識別問題上取得了無與倫比的成功,深度神經網絡在近年來變得很是流行。深層神經網絡架構增加得很快,好比深信念網絡,卷積神經網絡,深受限玻爾茲曼機,堆放自動編碼器等等。深度神經網絡的一個最大問題就是在非平穩金融市場的狀況下,就是過分擬合。
該圖顯示了由多個隱藏層組成的深層神經網絡
自適應神經網絡是能夠在學習的同時調整和優化其架構的神經網絡。這是經過增加架構(增長更多隱藏的神經元)或縮小它(修剪沒必要要的隱藏的神經元)來完成的。我相信自適應神經網絡最適合金融市場,由於金融市場是非平穩的。我這樣說是由於神經網絡提取的特徵可能會隨着時間的推移而加強或減弱,這取決於市場動態。這意味着任何在過去最佳工做的體系結構都須要進行修改,以適應今天的工做方式。
該圖顯示了兩種不一樣類型的自適應神經網絡架構。左圖是級聯神經網絡,右圖是自組織映射圖
儘管在感知和鏈接方面沒有不一樣類型的體系結構,可是徑向基(RBF)網絡使用徑向基函數做爲它們的激活函數,它們是實值函數,其輸出取決於與特定點的距離,最經常使用的徑向基函數是高斯分佈。因爲徑向基函數能夠採用更復雜的形式,它們最初是用於執行函數插值。所以,使用徑向基函數的神經網絡能夠具備更高的信息容量,徑向基函數也是支持向量機的核心。
該圖顯示瞭如何使用徑向基函數完成曲線擬合。
總之,現實中存在數百種神經網絡架構,而且一個神經網絡的性能能夠明顯優於另外一個。所以,對神經網絡感興趣的定量分析人員應該測試多個神經網絡架構,並考慮將它們的輸出組合在一塊兒以最大化他們的投資績效。
神經網絡的尺寸問題,但更大並不老是更好
選擇了架構以後,必須決定神經網絡的大小。須要多少輸入?使用多少個隱藏的神經元?使用多少隱藏層?須要多少輸出神經元?這些問題很重要的緣由是由於若是神經網絡太大(或過小),神經網絡可能會過分擬合(或欠適合)數據,那麼這將意味着網絡不能很好地從樣本中泛化。
那麼應該使用多少個和那些輸入呢?
投入的數量取決於正在解決的問題——可用數據的數量和質量,以及可能產生的一些創造性。投入是簡單的變量,咱們認爲這些變量對預測的因變量具備必定的預測能力。若是問題的輸入不明確,則能夠經過查看潛在的自變量與因變量之間的相關性來系統地肯定應包含哪些變量。
使用相關性選擇輸入變量有兩個問題。首先,若是你使用的是線性相關性度量標準,則可能會無心中排除有用的變量。其次,兩個相對不相關的變量可能會結合起來產生強相關變量。若是你單獨看變量,你可能會錯過這些機會。爲了克服第二個問題,你可使用主成分分析來提取有用的特徵向量做爲輸入。也就是說,一個問題是特徵向量可能不能很好地推廣,而且他們也假設輸入模式的分佈是平穩的。
選擇變量的另外一個問題是多重共線性。多重共線性是當兩個或多個自變量被輸入模型時高度相關。在迴歸模型的背景下,這可能會致使迴歸係數隨着模型或數據的微小變化而不規律地改變。鑑於神經網絡和迴歸模型是類似的,我懷疑這對神經網絡也是一個問題。
最後,但並不是最不重要的是,當選擇變量時可能引入的統計誤差被省略了。當一個模型被建立時遺漏了一個或多個重要的因果變量,就會出現省略變量誤差。當模型經過超出或低估其餘變量之一的影響來錯誤地補償缺失變量時,就會產生誤差,例如,這些變量的權重可能變得過大或者SSE很大。
你應該使用多少隱藏的神經元?
隱藏單元的最佳數量是根據問題而定的。這就是說,根據通常的經驗法則,使用的隱藏單位越多,過分擬合的風險就越有可能發生。過分擬合是指神經網絡不知道數據的基本統計屬性,而是經過「記憶」模式記住訓練集的數據。這致使神經網絡在這個訓練集中表現良好,但在以外的數據庫中表現不好。那麼,咱們如何避免過分擬合呢?在行業中有兩種流行的方法,即提早中止和正規化,然而我我的最喜歡的方法是全局搜索。
提早中止是將你的數據集分紅訓練集和驗證集。而後,不是訓練神經網絡進行固定次數的迭代,而是訓練到驗證集上神經網絡的性能開始變差。實質上,這阻止了神經網絡使用全部可用的參數,並限制了它簡單記住它所看到的每一個模式的能力。右側的圖像顯示了神經網絡的兩個潛在中止點(a和b)。
下圖顯示了中止在a或b時的神經網絡的性能和過分擬合。
正則化是使用複雜體系結構的神經網絡。這種方法的複雜性是經過神經網絡權重的大小來衡量的。正則化是經過向求和平方的偏差目標函數添加一個項來完成的,該項取決於權重的大小。這至關於增長一個先驗值,這實際上使得神經網絡相信它近似的函數是平滑的。
其中n是神經網絡中權重的數量,參數α和β控制神經網絡過分擬合或不適合數據的程度。使用貝葉斯分析和優化能夠導出α和β的良好值。這個和上面的內容在這個精彩的文章中有更詳細的解釋。
我最喜歡的技術也是迄今爲止計算量最大的技術,它是全球搜索。在這種方法中,搜索算法用於嘗試不一樣的神經網絡架構並達到近乎最佳的選擇。這一般是使用本文中進一步討論的遺傳算法完成的。
什麼是輸出?
神經網絡能夠用於迴歸或分類,在迴歸模型下,輸出單個值可映射到一組實數,這意味着只須要一個輸出神經元。在分類模型下,模式可能屬於的每一個潛在類,因此每一個類都須要一個輸出神經元。若是這些類是未知的,則應該使用無監督的神經網絡技術,例如自組織映射。
總之,最好的方法是參考奧卡姆的剃刀原理。奧卡姆的剃刀原理認爲,對於兩個等效性能模型,具備較少自由參數的模型更容易推廣。另外一方面,不該該以性能爲代價來選擇過於簡單化的模型。一樣,不該該假定僅僅由於神經網絡具備更多隱藏的神經元、具備更多的隱藏層,它就賽過更簡單的網絡。相反,在我看來,太多的注意力放在大型網絡上,而致使放在作出好的設計決策上太少。在神經網絡的領域,更大並不老是更好。
本文由阿里云云棲社區組織翻譯。
原文連接本文爲雲棲社區原創內容,未經容許不得轉載。