详细解读神经网络十大误解,再也不会弄错它的事情原理
神經網絡是機械學習算法中最盛行和最強盛的一類。在計量金融中,神經網絡常被用于時間序列展望、構建專用指標、算法生意業務、證券分類和信用風險建模。它們也被用于構建隨機歷程模子和價錢衍生品。只管神經網絡有這些用處,但它們卻往往有一個壞名聲,由于它們的體現是「不行靠的」。在我看來,緣故原由在于對神經網絡事情原理存在誤解,導致網絡設計也很糟糕。本文將對其中的一些誤解舉行討論。
焦點要點
神經網絡不是人類大腦的模子神經網絡并不是統計學的「弱形式」神經網絡盛行許多差別的架構規模很主要,但并不是越大越好神經網絡的訓練算法有許多種神經網絡并不總是需要大量數據神經網絡不能基于任何數據訓練神經網絡需要被再訓練神經網絡不是黑箱神經網絡不難實現
1. 神經網絡不是人類大腦的模子
人類大腦,是我們這個時代最大的秘密之一,科學家還未對其事情方式告竣共識。現在已有的關于大腦的兩個理論劃分叫做祖母細胞理論(grandmother cell theory)和漫衍式表征理論。前一個理論以為,單個神經元具有很高的信息容量,能夠表征龐大的觀點,如你的祖母或甚至 Jennifer Aniston(《老友記》女主角之一——譯者)。后一個理論則以為,神經元要簡樸得多,而龐大的表征漫衍在許多神經元上。人工神經網絡受到了第二種理論不夠準確的啟發。
我以為,現在這一代神經網絡不具備感知(sentience,一個與智能差別觀點)能力的一個緣故原由在于,生物神經元遠比人工神經元龐大。
大腦中的一個單個神經元就是一個極其龐大的機械,縱然在今天,我們也還不能明白它。而神經網絡中的一個「神經元」只是一個極其簡樸的數學函數,它只能獲取生物神經元龐大性中極小的一部門。以是,若是要說神經網絡模擬大腦,那也只在不夠準確的啟發水平上是對的,但事實上人工神經網絡和生物大腦沒什么相似之處。——吳恩達
大腦和神經網絡之間的另一個龐大差別:巨細和組織性。人類大腦包羅的神經元和突觸數目遠多于神經網絡,而且它們是自組織和自順應的。相對地,神經網絡是憑據一個架構舉行組織的。神經網絡的「自組織」很是和大腦的自組織并不是一個意思,它更類似于一張圖標,而不是一張有序的網絡。
最先進的大腦成像手藝天生的有趣大腦視圖
以是,那是什么意思?可以這樣想:神經網絡受到大腦啟發,就像北京的奧運體育場的設計靈感源自鳥巢。這并不意味著,該奧運體育場就是一個鳥巢,只是說,鳥巢的一些元素存在于該體育場的設計中。換句話說,大腦的元素存在于神經網絡的設計中,但它們的相似水平比你想象的低得多。
事實上,比起人類大腦,神經網絡更靠近于曲線擬合(curve fitting)和回歸剖析(regression analysis)等統計要領。我以為,在計量金融的配景中記著這一點很主要,雖說某件事物是「由大腦啟發的」可能聽起來很酷,可是,這一表述可能會導致不切現實的期望或擔憂。
曲線擬合,亦即函數迫近。神經網絡常被用來迫近龐大的數學函數2. 神經網絡并不是統計學的「弱形式」
神經網絡由互連節點層組成。單個節點被稱為感知器(perceptron),類似于一個多元線性回歸(multiple linear regression)。多元線性回歸和感知器之間的差別之處在于:感知器將多元線性回歸天生的信號饋送進可能線性也可能非線性的激活函數中。在多層感知器(MLP)中,感知器按層級排布,層與層之間相互毗連。在 MLP 中有三種類型的層,即:輸入層(input layer)、隱藏層(hidden layer)和輸出層(output layer)。輸入層吸收輸入模式而輸出層可以包羅一個分類列表或那些輸入模式可以映射的輸出信號。隱藏層調整那些輸入的權重,直到將神經網絡的誤差降至最小。對此的一個詮釋是,隱藏層提取輸入數據中的顯著特征,這些特征有關于輸出的展望能力。
映射輸入:輸出
感知器吸收輸入向量,z=(z1,z2,…,zn)z=(z1,z2,…,zn),包羅 n 個屬性。該輸入向量被稱為輸入模式(input pattern)。這些輸入再通過屬于感知器的權重向量 v=(v1,v2,…,vn) 舉行加權。在多元線性回歸的配景中,這些可被以為是回歸系數或 β 系數。感知器的凈輸入信號通常是輸入模式和其權重的總和產物。使用該總和產物獲得凈值(net)的神經元被稱為求和單元(summation unit)。
凈輸入信號減去誤差 θ 后被輸入一些激活函數 f()。激活函數通常是單調遞增函數,其值位于 (0,1) 或 (-1,1) 之間(本文后面將進一步對此舉行討論)。激活函數可以是線性的,也可以是非線性的。
下面是神經網絡中一些常見的激活函數:
依次為:線性函數、階躍函數、斜坡函數、S 型函數、雙曲正切函數、高斯函數
最簡樸的神經網絡只有一個映射輸入到輸出的神經元。對于給定模式 p,該網絡的目的是相對一些給定的訓練模式 tp 的一些一只的目的值來最小化輸出信號 op 的誤差。好比,若是該神經元應該映射 p 到 -1,但卻將其映射到了 1,那么,憑據距離的求寧靜方測定,神經元的誤差為 4,即 (-1-1)^2.
分層
如上圖所示,感知器被分層舉行組織。感知器的第一層被稱為輸入層,它吸收訓練集 PT 中的模式 p. 最后一層映射到這些模子的預期輸出。舉一個輸出的例子:模式可以是關于寧靜性的差別手藝指標的數目列表,而潛在的輸出則可能是 {買進、持有、賣出} 這樣的分類。
隱藏層則將前一層的輸出作為下一層的輸入;而下一層的輸出又會作為另一層的輸入。以是,這些隱藏層到底在做什么?一個詮釋是,它們提取輸入數據中的顯著特征,這些特征可以展望輸出。這個歷程被稱為特征提取(feature extraction),而且在某種水平上,其和主身分剖析(PCA)等統計手藝具有相似的功效。
深度神經網絡具有大量隱藏層,有能力從數據中提取越發深層的特征。最近,深度神經網絡在圖像識別問題上取得了異常優異的體現。圖像識別中的特征提取的圖示如下:
除了過擬合(overfitting)的顯著風險,我以為,用于生意業務的深度神經網絡,在使用上所面臨的一個問題是該神經網絡的輸入險些總是經由了嚴重的預處置懲罰,這意味著現實可以提取的特征可能很是少,由于輸入已經是某種水平的特征了。
學習規則
正如前面提到的那樣,神經網絡的目的是最小化一些錯誤懷抱(measure of error) ε. 最常見的錯誤懷抱是誤差平方和(Sum squared error (SSE));只管在金融市場的應用中,這種懷抱對異常值很敏感,而且可能沒有跟蹤誤差(tracking error)那樣合適。
誤差平方和:
鑒于該網絡的目的是最小化 ε,我們可以使用一種優化算法調整該神經網絡中的權重。神經網絡最常見的學習算法是梯度下降算法,只管也可能使用其它算法和潛在更好的優化算法。梯度下降算法的事情方式是,盤算相對于神經網絡中每一層的權重的誤差偏導數,然后在與梯度相反的偏向上移動(由于我們想最小化神經網絡的誤差)。通過最小化誤差,我們可以最大化神經網絡在樣本中的體現。
數學表現神經網絡(v)中的權重更新規則由下式給出:
其中 η 是指學習率,控制著神經網絡收斂的快慢水平。f 相對于模式 p 的凈輸入信號的偏導數的盤算是所有非一連激活函數所面臨的問題,這不值一提;這也是可能使用可選優化算法的一個緣故原由。學習率的選擇對神經網絡的體現有很大的影響。較小值的 η 可能導致很是慢的收斂,而較高值的 η 則可能導致訓練中的大量誤差。
小學習率慢收斂,大學習率發散
總結
不管我遇見過的一些統計學家信賴什么,神經網絡不只是「懶人剖析師的弱形式的統計學」(之前確實有人跟我這么說,而且這還挺有趣);神經網絡代表了一種可追溯到幾百年前的可靠統計要領的抽象。對于神經網絡背后的統計學,我推薦閱讀超棒的這一章(http://page.mi.fu-berlin.de/rojas/neural/chapter/K9.pdf)。話雖云云,但我贊成,一些從業者喜歡將神經網絡看作是「黑箱」,這樣就可以在沒有花時間相識問題的本質和神經網絡是否是合適的選擇的條件下,將神經網絡應用于任何問題。在生意業務使用神經網絡就是其中一例;市場是動態轉變的,可是,隨著時間的已往,神經網絡假設輸入模式的漫衍仍然保持靜止。在《All Models are Wrong, 7 Sources of Model Risk》中可看到更詳細的討論。
3.神經網絡盛行許多差別的架構
到現在為止,我們已經討論了最簡樸的神經網絡結構,也就是多層感知器(multi-layer perception)。另有許多差別的神經網絡結構(太多了,以至于難以在此提及),而且,任何神經網絡的性能,是其結構和權重的一個函數。現在在機械學習領域中取得的許多前進,并非源自重新思索感知器和優化算法事情原理,而是締造性地思索怎樣融合這些組分。在下面,我會討論一些很是有趣且富締造性的神經網絡結構,遞歸神經網絡(RNN)——一些或所有的毗連倒流,意味著反饋環路存在于網絡中。人們信賴,這些網絡能夠在時間序列數據上體現得更好。照此說來,在金融市場的語境中,他們可能會特殊相關。更多信息,請參見這篇很棒的文章《The unreasonable performance of recurrent [deep] neural networks.》
這張圖表展示了三個盛行的遞歸神經網絡結構,即 Elman 神經網絡,Jordan 神經網絡與 Hopfield 單層神經網絡。
一個更新近、有趣的遞歸神經網絡結構是神經圖靈機械(Neural Turing Machine),聯合了存儲器與一個遞歸神經網絡。事實已經證實,這些神經網絡是圖靈完全(Turing complete)的,并能夠學習分類算法和其他盤算使命。
Boltzmann 神經網絡——最早的全毗連神經網絡之一,也就是 Boltzmann 機。這些網絡是第一批能夠學習內部表征、解決很是難的組合數學問題的網絡。對 Boltzmann 機的一個詮釋是這樣的:Hopfield 遞歸神經網絡的蒙特卡洛版。只管云云,很難訓練神經網絡,可是,受到約束時,會比傳統神經網絡更有用。給 Boltzmann 機施加限制,最盛行的做法就是禁絕許隱藏神經元之間建設直接聯系。這一特殊結構被稱為受限 Boltzmann 機(Restricted Boltzmann Machine),被用于深度受限 Boltzmann 機(Deep Botlzmann Machines)。
圖表展示了差別的波茲曼機(帶有差別節點毗連),怎樣能顯著影響神經網絡效果
深度神經網絡——有著多層隱藏層的神經網絡。近些年,深度神經網絡已經成為最盛行的網絡,由于在圖像和聲音識別方面,它們取得了亙古未有的樂成。深度神經網絡架構數目正在迅速增加,一些最受接待的架構包羅深度信托網絡(Deep Belief Networks),卷積神經網絡,深度受限波茲曼機,棧化自動編碼器,等等。深度神經網絡最大問題之一,尤其是不穩固的金融市場情況下,是過分擬合。
多個隱藏層組成的深度神經網絡
自順應神經網絡(Adaptive Neural Networks)——能夠在學習中同時自順應、并優化自身結構的神經網絡。實現這一點,要么是靠生長結構(添加更多隱藏層)或壓縮結構(修剪不須要的隱藏層)。我信賴,自順應神經網絡是最適合金融市場的網絡,由于市場具有動態性。之以是這么說,是由于神經網絡所讀取的特征可能會隨著時間和市場的轉變而有所增強或削弱。這意味著,已往收效很好的架構也需要修改,才氣在今天到達最好的效果。
兩個差別類型的自順應神經網絡結構。左圖是級聯神經網絡(cascade neural network),右圖是自組織映射。
徑向基函數網絡(Radial basis networks)——只管從感知與毗連上來說并不是一個差別類型的結構,徑向基函數網絡使用徑向基函數作為它們激活功效,這些是真實的主要功效,其輸出從一個特定的角度來看取決于距離。最常用的徑向基函數是高斯漫衍。由于徑向基函數可以接納越發龐大的形式,他們最初用于執行函數插值。因此徑向基函數神經網絡可以有一個更高的信息能力。徑向基函數還用于支持向量機(Support Vector Machine)的內核。
使用徑向基函數,怎樣實現曲線擬合
總之,有數百個神經網絡結構,而且一個神經網絡性能可以會顯著優于另一個。有興趣使用神經網絡舉行量化剖析的人,可能要測試多個神經網絡結構,并聯合它們的輸出一起思量,要從總體上最大化他們的投資結果。使用神經網絡舉行生意業務之前,我建議先閱讀我寫的《All Your Models are Wrong,7 Sources of Model Risk》,由于內里談到的不少問題仍然有用。
4.規模很主要,但并不是越大越好
選擇了一個架構后,你還要決議神經網絡的規模巨細。幾多輸入?應該使用幾多隱藏神經元?又有幾多要用的隱藏層(若是我們用的是深度神經網絡的話)?幾多輸入迷經元?這些問題之以是十分主要是由于若是神經網絡太大(或太小),神經網絡可能會泛起過分擬合(或擬合不夠),也就是說,網絡無法順遂泛化樣本。
該使用幾多或哪些輸入?
輸入的數目取決于待決問題、可提供數據的數目和質量,或許還需要一些締造力。輸入是一些簡樸的變量,我們信賴,這些變量具有一些展望能力,可以憑據被展望的因變量舉行一些展望。若是不清晰某個問題的輸入,你可以系統地決議哪個變量應該被包羅在內,要領就是視察潛在自變量和因變量之間的相關性和相互關。這種要領在《What Drives Real GDP Growth?》中有詳細先容。
使用相關性去選擇輸入變量,存在兩個問題。首先,若是你正在使用一個線性相關矩陣,你也許會不小心清除了有用的變量。第二,兩個相對不相關變量,聯合在一起,可能會發生一個強相關變量。若是伶仃視察變量,你也許會錯失這一良機。為了戰勝第二種問題,你應該使用主身分剖析去獲取有用的特征向量(變量的線性聯合),并將它們作為輸入。這里的問題是,特征向量也許不能很好地泛化,而且它們還假設輸入模式漫衍是牢固的。
選擇變量歷程中會遇到的另一個問題,就是多重共線性。多重共線性是指,正被輸入到模子中的自力變量中,有兩個或更多的自力變量是高度相關的。在回歸模子的語境下,這種情形可能會引發回歸系數憑據模子或數據的細微改變而不紀律地轉變。鑒于神經網絡和回歸模子是相似的,我嫌疑神經網絡也會存在這個問題。
最后,但并非不主要的是,當選擇變量是基于省略變量的私見時,或許會引發統計學上的私見。當建立一個模子,這個模子遺漏了一個或者越發主要的緣故原由變量時,省略變量私見會泛起。
當模子通過過分或低估某個其他變量影響的方式,不準確地賠償遺漏的變量時,也會制造私見。好比,權重會變得過大,或SSE(誤差平方和)會過大。
我該使用幾多隱藏神經元?
隱藏單元的最佳數目,是個細節問題。這也就是說,作為一條履歷規則,隱藏層越多,過分擬合風險越大。當神經網絡并沒有學習數據的主要統計特征,而是「影象」模式與他們可能網絡到的任何噪音,過分擬合就會發生。在樣本中,這個效果不錯,可是,脫離樣本,這個效果沒有說服力。怎樣制止過分擬合?在工業領域,有兩種盛行的要領:早期制止(early stopping)和規則化(regularization),而我小我私家最喜歡的要領——全程檢索。
早期制止,包羅將訓練組分為主要訓練組和一個驗證組。然后,不是以牢固的迭代量來訓練神經網絡,而是訓練網絡,直到它在驗證組上的體現結果最先惡化。本質上,這能防止神經網絡使用所有可以接觸到的參數,并限制它簡樸影象每一個所見模式的能力。這幅圖顯示了兩個潛在的制止點(a 和 b)。
圖片展示了神經網絡在a到b舉行阻止后的效果與過分擬合
規范化是指,神經網絡使用龐大結構時,對其舉行處罰。可以憑據神經網絡權重巨細來權衡這一要領的龐大性。可以這樣實現規范化,添加一個條件(term),求平方誤差目的函數,這個函數取決于權重巨細。這相當于添加一個先驗(prior),讓神經網絡信賴它正在迫近的函數是平滑的。
n是神經網絡中的權重數值。參數α與β控制著神經網絡過分擬合或擬合不足水平。
我最喜歡的手藝,也是到現在為止盤算最昂貴的,就是全程搜索。在這一要領中,搜索算法被用來實驗差別的神經網絡結構,最終做出一個近乎最佳的選擇。人們經常使用基因算法來實現這個。
什么是輸出?
神經網絡能被用于回歸或分類。在回歸模子中,一個簡樸輸出值可能被會被隱射到一組真實數字,這意味著只需要一個輸入迷經元。在分類模子中,針對模式可能被歸入的每個潛在種別,系統需要一個輸入迷經元。若是種別是未知的,我們就要使用無監視神經網絡手藝,好比自組織映射。
總而言之,最好的措施是遵守奧卡姆剃刀原理。奧卡姆剃刀原理主張,對于兩個性能相當的模子,自由參數更少的模子,其泛化效果越加。另一方面,絕不能通過犧牲效果,來選擇過分簡化的模子。類似地,人們不能去假設,僅僅由于神經網絡有更多的隱藏層與隱藏神經元,它就一定優于更簡樸的網絡。不幸的是,在我看來,人們似乎太重視大型網絡,很少強調做一個好的設計決議。就神經網絡而言,規模更大并不意味著效果更好。
5. 神經網絡的訓練算法有許多種
神經網絡的學習算法不停實驗優化神經網絡的權重,直到遇到必須制止的情形。這種情形通常發生在網絡的誤差率降到了可接受水平時、驗證集的誤差率最先變差時、或指定的盤算資源預算已被耗盡時。現在最常見的神經網絡學習算法是反向轉播(backpropagation)算法,這種算法使用了前文提到過的隨機梯度下降。反向轉播包羅兩個步驟:
前向流傳——將訓練數據集通過網絡,記載下神經網絡的輸出并盤算出網絡的誤差。
反向轉播——將誤差信號反向通過網絡,使用梯度下降優化神經網絡的權重。
這種算法存在一些問題:一次性調整所有權重將會導致權重空間中的神經網絡泛起顯著的轉變、隨機梯度下降算法很是慢、對局部最小值敏感。對于一些特定的神經網絡(包羅所有的 product link 神經網絡)局部最小值是一個問題。反向轉播算法的前兩個問題可以通過使用梯度下降算法的變體來解決,例如動量梯度下降(QuickProp)、Nesterov 加速動量(NAG)梯度下降、自順應梯度算法(AdaGrad)、彈性反向流傳(RProp)和均方根反向流傳(RMSProp)。下圖可以看到,變體算法相比經典梯度下降算法可以有顯著的提高。
需要指出的是,這些算法并不能完全解決局部最小值問題,而且在同時優化神經網絡的架構和權重時用處也不大。為了獲得所需的全局優化算法。兩種盛行的全局優化算法是粒子群優化算法(PSO)和遺傳算法(GA)。下面是兩者可被用來訓練神經網絡的方式:
神經網絡向量表現—— 通過將神經網絡編碼為權重向量,每一個向量代表神經網絡中一個毗連的權重,我們可以使用大部門元啟發式(meta-heuristic)搜索算法來訓練這種神經網絡。由于向量會變得太,這種算法在訓練深度神經網絡上效果不佳。
下圖展示了將神經網絡表現為向量并與搜索空間或順應度曲面的觀點相聯系的方式:
粒子群優化算法(PSO)——使用 PSO 訓練神經網絡可以構建一個這些神經網絡的群體/集群。每個神經網絡都可表現為權重的向量,并憑據它在全局最優粒子中的位置和它自身最優的情形來舉行調整。
在訓練數據集一次前向流傳之后,順應度函數將作為重構的神經網絡的誤差平方和舉行盤算。這個要領主要思量的是權重更新的顛簸性。由于若是權重調整的太快,神經網絡的誤差平方和的轉變將障礙,不會發生學習行為。
下圖示出了在單一群體的粒子群優化算法中粒子是怎樣被其它粒子吸引的。
遺傳算法——使用遺傳算法訓練神經網絡,首先構建一個表現神經網絡的向量的群體。然后對群體應用三項遺傳因子以使其逐步進化成越來越好的神經網絡。這三項遺傳因子是:
1.選擇——使用一次前向流傳之后的誤差平方和,對神經網絡群體舉行排序。群體中排名前 x %的神經網絡可「生活」至下一輪,被用于雜交。
2.雜交——將排名前 x %的神經網絡相互混淆。這個歷程天生了「子代」。這種情形下,每個子女都代表一個新的神經網絡,其權重來自「親代」神經網絡。
3.變異 ——這個歷程是為了保持群體的基因多樣性。一小部門的群體被選中舉行變異。這些神經網絡的部門權重將在一個特定規模內隨機調整。
下圖展示了選擇、雜交、變異遺傳因子應用至由向量表現的神經網絡群體的歷程:
除了基于群體的元啟發式搜索算法,用來訓練神經網絡的算法還包羅加入動量的反向流傳、差分進化法、Levenberg Marquardt 算法、模擬退火法等。我小我私家推薦將局部最優算法和全局最優算法相聯合,來戰勝兩者的短處。
6. 神經網絡并不總是需要大量數據
神經網絡可以使用的三種學習計謀,包羅監視學習計謀、無監視學習計謀、增強學習計謀。監視學習需要至少兩個數據集,其中訓練集由輸入數據和預期輸出數據組成,測試集只包羅輸入數據。這兩個數據集的數據必須有標志,即數據模式是已知的。無監視學習計謀一樣平常用在沒有標志的數據中以發現隱藏結構(例如隱藏的馬爾科夫鏈)。其行為模式與聚類算法相似。增強學習基于對神經網絡好的行為夸獎,對壞的行為處罰這樣一個簡樸條件。由于無監視學習和增強學習計謀不需要帶有標志的數據,以是它們可以應用在準確輸出效果未知的非規范化問題上。
無監視學習
最盛行的無監視神經網絡架構之一是自組織映射(Self Organizing Map,也稱為 Kohonen 映射)。自組織映射本質上是一個多維量度手藝,其可在生存該數據集的拓撲結構的同時,構建一個基礎數據集 Z 的概率密度漫衍函數的近似值。這是通過將數據集 Z 中的輸入向量 zi 映射到特征映射 V 中的權重向量 vj (神經元)實現的。生存拓撲結構意味著若是兩個輸入向量在 Z 中是相鄰的,那么這些輸入向量用 V 所映射神經元也是相鄰的。
自組織映射的另一個有趣的應用是對股票生意業務的時間序列圖表舉行上色。這是為了顯示在某一時間點的市場情形。
強化學習
強化學習計謀由三個部門組成:一個指定神經網絡怎樣舉行決議的規則,例如使用手藝剖析和基本面剖析;一個區分優劣的夸獎功效,例如掙錢 vs. 賠錢;一個指定長時間目的的價值函數。在金融市場(和游戲領域)情況中,強化學習計謀特殊有用,由于神經網絡可以學習對特定量化指標舉行優化,例如對風險調整收益的合適量度。
下圖展示了神經網絡可以負面或正面增強。
7. 神經網絡不能基于任何數據訓練
神經網絡可能不能事情的一個最大的問題是使用者沒有對注著迷經網絡的數據做適當的預處置懲罰。數據尺度化、冗余信息消除和異常點移除都應該被用以提高性能優秀的神經網絡的可能性。
數據尺度化——神經網絡由多層感知器組成,感知器由經由加權的毗連相互毗連。每個感知器包羅一個擁有特定的「激活規模」的激活函數( 徑向基函數除外)。進到神經網絡的輸入需要被調整到激活規模內以使神經網絡可以區分差別輸入模式的差異。
舉例來說,給定一個神經網絡生意業務系統,該系統吸收證券組合中提醒需要售出或買入證券的輸入和輸出的指示信息。其中一個輸入是證券的價錢,我們使用 S 型激活函數。然而,大多數證券的成本在每股 5 美元和 15 美元之間,在 S 型激活函數輸出值靠近1.0。這樣的話,所有證券的 S 型激活函數的輸出值都將為1.0,所有的感知器都市失效,神經網絡也無法學習。
通過未處置懲罰的數據獲得訓練的神經網絡會發生類似「the lights are on but nobodys home(燈亮著但無人在家)」的模子。
異常點移除——一個異常點是指數據組中遠大于或遠小于其它數據的值。異常點會由于回歸剖析和曲線擬合等統計手藝而泛起問題,由于當該模子試圖「容納」異常值時,模子在所有其它數據上的體現都將下降。
上圖展示了試圖將異常值納入線性回歸模子所導致的數據集的糟糕匹配。異常點對包羅神經網絡在內的線性回歸剖析模子的影響是相似的。因此將異常點移出訓練數據組是很是有須要的。
冗余消除——當兩個或更多被注著迷經網絡的自力變量高度相關時(多元共線性),這將對神經網絡的學習能力發生負面影響。高度相關的輸入數據也說明晰每個變量具有的奇特信息是較少的,以是更無關緊要的輸入可以被移除。移除冗余變量的另一個利益是更快的訓練時間。順應性的神經網絡可以用來精簡冗余的毗連和感知器。
8. 神經網絡需要被再訓練
假定你可以訓練一個在樣本中樂成買進和賣出的神經網絡,這個神經網絡也可能會隨時間逐漸失效。這并非是神經網絡的功效有限的體現,而是金融市場的準確反映。金融市場是龐大的自順應系統,這意味著它們是實時轉變的,以是在已往有用的模子在未來可能就可能失效。這種特征被稱作非穩態或動態優化問題,神經網絡并不很善于于解決此類問題。
類似于金融市場的動態情況對神經網絡而言是很是難以建模處置懲罰的。現有兩種解決的方式要么是隨時間連續再訓練神經網絡,要么是使用動態神經網絡。動態神經網絡「跟蹤」情況隨時間發生的轉變并響應地調整它們的架構和權值。它們是自順應轉變的。對于動態問題,多重解的啟發式優化算法可被用于追蹤當地最優解隨時間的轉變。其中一個這樣的算法是多集群優化算法(multi-swarm optimization algorithm),這是粒子群優化算法衍生算法。另外,增強了多樣性和內存的基因算法在動態系統中被證實是穩健的。
下圖展示了基因算法是怎樣隨時間演化而找到動態系統的最優解的。該圖也說明晰模擬(從眾)生意業務群( mimic trade crowding)——市場到場者爭相選擇一個可觀的市場生意業務計謀的情景,因此爭搶生意業務時機讓生意業務變得不那么有利可圖。
9. 神經網絡不是黑箱
神經網絡自己并不是黑箱。這將問題拋給了那些想要使用神經網絡工具的人,好比,基金司理不會知道一個神經網絡怎樣做出生意業務決議,因此也不行能評估這個神經網絡學習到的生意業務計謀的風險。類似地,那些使用神經網絡為信用風險建模的銀行也沒法合理說明為什么一位客戶有著特殊的信用評級。這是一個羈系要求。話雖云云,但最先進的規則提取算法已被開發出來以透明化一些神經網絡架構。這些算法從作為數學公式、符號邏輯、模糊邏輯或決議樹的神經網絡中提取知識。
數學規則——可以從神經網絡中提取多重線性回歸線的算法已被開發出來。這些手藝的問題在于,這些規則往往是很難明白的,因此這些要領照舊沒有解決黑箱問題。
命題邏輯——命題邏輯是處置懲罰在離散值變量上完成的操作的數學邏輯的一個分支。這些變量, 好比 A 或者 B ,通常要么為「真」,要么為「假」;但它們能籠罩一個離散規模里的值,如 {買進,持有,賣出}這樣的規模。
邏輯運算可以被應用于那些變量,好比 OR, AND 以及 XOR 。這些效果被稱為謂詞(predicates),可以用量詞量化。這就是謂詞和命題邏輯的區別。若是有個簡樸神經網絡,其中,價錢(P) , 簡樸易懂均數 SMA,指數移動均數EM作為輸入,從命題邏輯神經網絡中提取出一個遵從計謀的趨勢,或允許以獲得類似這樣的規則:
模糊邏輯—模糊邏輯就是概率與命題邏輯相遇之處。命題邏輯的問題在于那是一種絕對處置懲罰。好比,買入或者出售,真或偽,0或1。 因此,生意業務者沒有措施確定這些效果的可信度。模糊邏輯戰勝了這一局限性,由于引入了附屬函數(membership function),詳細說明晰一個變量多大水平上屬于某個特定域。好比,一家公司(谷歌)可能屬于一個域(買入)的可信度為0.7, 屬于另一個域(出售)的可信度為 0.3。將神經網絡與模糊邏輯聯合起來,就是神經—模糊系統。這種研究觀察討論了種種模糊規則的提取手藝。
決議樹——決議樹向我們展示了,給定信息后,怎樣做出決議。決議樹推導是一個術語,指的是從神經網絡中提取決議樹這個歷程。
例如,使用決議樹來表現一個簡樸的生意業務計謀。三角型表現決議節點,可以是買入、持有或者出售一家公司。每個長方塊表現一個元組 <indicator, inequality,="" value="">。例如 <sma,>, 25> or <ema, <="," 30="">。
10. 神經網絡不難實現
從履歷角度來說,自力更生舉行編碼,這樣搭建神經網絡很有挑戰性。幸運的是,現在有數以百計的開源和專有包,使得使用神經網絡事情起來簡樸多了。以下就是相關列表,數目剖析專家可能會以為對計量金融有用。
H20
H2O 并不只是提供機械學習的算法包,也為使用大數據的智能應用提供了一套處置懲罰速率更快,更具可拓展性的機械學習 API 。他們的 API 提供了深度學習模子,通用加速模子和通用線性模子以及更多人工智能模子。
谷歌 TENSORFLOW
TensorFlow 是一項用于使用數據流圖的數值盤算的開源軟件庫。數據流圖中的節點代表數學運算符,圖像邊緣則代表著在此間流動的多維數據數組(tensors)。這種天真的架構資助你在桌面電腦,服務器以及移動裝備的 CPU 和 GPU 上部署盤算使命,而不需要重寫代碼以順應各平臺。
微軟 DMTK
DMTK 包羅以下項目:DMTK 框架(Mutiverso)——漫衍式機械學習的參數服務器框架。LightLDA ——可拓展,快速,輕量的大規模主題建模系統。漫衍式詞嵌入:詞嵌入的漫衍式算法。漫衍式 skipgram 混淆物:漫衍式多感知詞嵌入算法。
微軟 Azure 機械學習
這個基于微軟云服務機械學習/展望剖析平臺,是一個完全托管的云服務系統,可以資助你輕松地建立,設置和分享展望剖析解決方案。該軟件允許你拖放預設的組件(包羅機械學習模子),用于操作流程中數據組的自界說組件。該流程圖之后將被編譯為可以設置為互聯網服務的法式。它和更早的 SAS 公司的數據挖掘解決方案相似,除了它更現代化,更適用,支持深度學習模子,以及為客戶提供 Python 和 R 語言。
MXNET
MXNet是一為兼顧效率和天真性而設計的深度學習框架。它允許用戶混淆符號式編程和指令式編程的特點,最大化法式執行效率和你的生產效率。它的焦點,是一個自動并行化符號和指令操作符的動態依賴調理器。構建在頂層的圖形優化層,使符號運算快速且節約內存。該算法庫便攜且輕量化,而且適配多種 GPU 和多種機械。
Neon
Neon 是 Nervana 的基于深度學習框架的 Python 庫,在許多常見的如 AlexNet, VGG 以及 GoogLeNet 深度神經網絡取得了最快速的運算體現。我們根據以下功效設計:1)支持常用模子和樣例: convnets, MLPs, RNNs, LSTMs, autoencoders。2)和用于fp16和fp32 (benchmarks)的基于 Maxwell 架構的 nervanaGPU 內核親近團結。3)基本的自動微分支持。4)可視化框架。5)可交流的硬件后端...
Theano
Theano 是一個允許用戶高效地界說、優化和評估包羅多維數組的數學表達式的 Python 庫。它可以使用 GPU來完成高效地符號區分。
Theano 和 TensorFlow 及 Torch 一樣,獲得了比神經網絡越發普遍的應用:它是一個整合現存的或使用現成的數據結構以及算法建立的機械學習模子的人工智能框架。
Torch
Torch 是一個普遍支持機械學習算法的科學盤算框架...其焦點特征的摘要包羅一個 N 維數組,索引流程,切片,轉置,面向 C 的接口,通過 LuaJIT,線性代數流程,神經網絡,基于能源的模子,數值加速例程,快速和高效的 GPU 支持,嵌入式,面向 iOS,Andriod 和 FPGA 的端口。
像Tensorflow 和 Theano,Torch 獲得了比神經網絡越發普遍的應用:它是一個整合現存的或使用現成的數據結構以及算法建立的機械學習模子的人工智能框架。
SciKit Learn
SciKit Learn 是一個用于機械學習的 Python 包,很是受接待。基于NumPy, SciPy, 和 matplotlib 開源,而且用于種種機械學習模子的實行:分類,回歸,聚類,降維,模子選擇和數據預處置懲罰等。
正如上文提及的,現在有數以百計的機械學習包和框架。討論解決方案之前,我建議做個適當剖析,看看哪種開源或者專屬機械學習包或者軟件最適合你的應用案例。總的說來,在軟件工程以及針對計量金融的模子研發中,有一個需要遵照的好規則:不要重復造車輪。已經有了足夠先進的模子,就不要再寫自己的代碼了。
結 論
神經網絡是一種強盛的機械學習算法。建設在可靠的統計基礎上,多年來,已被樂成用于金融模子以及生意業務計謀。只管云云,由于許多失敗的應用實驗,這些算法的名聲依然欠好。在絕大多數案例中,我們可以將那些不樂成的使用案例歸因于不合理的神經網絡設計決議以及錯誤明白了這些網絡的運作原理。這篇文章指出了這些誤解中的一部門。當你需要相識神經網絡以及它們在金融模子和算法生意業務中的作用時,可以看看這些書。
轉載于:https://blog.51cto.com/lucianlv/1792176
總結
以上是生活随笔為你收集整理的详细解读神经网络十大误解,再也不会弄错它的事情原理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: eclipse中修改内存
- 下一篇: 第17讲 数据块