BP神經網絡

2020-12-11 騰訊網

前言:企業陷入財務風險是一個循序漸進的過程,不同程度的財務風險,其症狀和表現不一。隨著大數據時代的到來,信息的重要性越來越受到決策者的重視。我國上市公司在飛速發展的同時,也不斷地受到各種外界風險的衝擊,如何能夠對上市公司的財務風險進行有效預警,是許多決策者和研究者面臨的難題。本文介紹智能財務風險預警方法——BP神經網絡。「大數據與人工智慧環境下的智能財務風險預警方法」系列推文二:BP神經網絡

近年來,AlphaGo擊敗了人類職業圍棋選手,激起了全球範圍內對人工智慧的關注。作為目前最接近實現人工智慧的算法,機器學習隨之興起形成熱潮。可以看出隨著學習程度的深入AlphaGo的技術變得更為高級,甚至變得更為「人性化」的有的放矢。其實在其他領域也是一樣,隨著神經網絡學習資料庫的範圍變大,學習程度的深入,使得神經網絡在更多領域得到運用,神經網絡正在成為一種有效的工具。由於財務風險預警的複雜性以及對決策的重要影響,國內外有大量的研究預測工作,採用各種方法來優化財務風險預警模型。大數據時代到來,IT技術發展使得信息化程度越來越高,各種信息湧向企業,在激烈的市場競爭中,誰的信息化管理水平高,誰就能掌握主動權

1.BP神經網絡原理

人工神經網絡是一種數學模型,它具有人類神經網絡的一些特質,並且有自學習的能力,一般由MATLAB軟體來實現。與傳統統計方法不同之處是神經網絡是通過訓練實驗來找到解決問題的路徑。神經網絡的訓練過程,由特定的算法構成,提供了理想的學習樣本,訓練後,輸入和輸出足夠數量的例子,知道達到收斂。直至使神經網絡的輸出和理想輸出之間的誤差達到極小的狀態。就可以將經過訓練的模型用於解決相同類型的問題了。人工神經網絡各層結構之間的關係是非線性的映射。非線性等的分類問題也可以通過神經網絡來解決。人工神經網絡有著優秀的自學習能力,可以任意精度逼近我們所設定的非線性函數關係。神經網絡的傳播方式有兩種,即正向和反向。正向傳播是指神經網絡從輸入層到隱藏層,經過信號傳播到輸出層,將輸出層得到的結果與期望值對比,如果是最後所希望的結果,則該算法終止,否則反向傳播。反向傳播是逆運算,誤差信號輸出樣本和網絡出口按原連接路徑通道以前權值和閾值調整,誤差信號將描述採用一般梯度下降法來計算反向連接,用於調節還原。BP神經網絡模型一般的結構有三層包括輸入(input)、、輸出(output layer)和隱層(hide layer)。如圖所示:

反向傳播是通過一個層級來計算每層級中的輸出誤差輸出層神經元已經從第一層開始,誤差梯度下降算法調整每一層和閾值的功率,因此,對網絡內部的不斷修正可使最終輸出可以接近到預期。

2.BP神經網絡的優勢與不足

構建企業的智能財務風險預警模型,可以使企業儘可能的避免財務風險帶來的損失,預防經營失敗的情況出現。相比於以往的財務風險預警方法,BP神經網絡準確性高,誤差更小,BP神經網絡更可貴的一點是它具有收斂性,可以讓系統誤差達到任何我們所要求的精度。

通過對目標數據的學習,不斷調整模型內各個參數,找到最優參數組合,達到穩定的低誤差狀態,而正是這種自學習能力使研究避免了人為賦權等非客觀因素的出現,大大提高了預測的準確性、科學性。BP神經網絡具備非線性映射能力,實質上實現了一個從輸入到輸出的映射功能,數學理論證明三層的神經網絡就能夠以任意精度逼近任何非線性連續函數。這使得其特別適合於求解內部機制複雜的問題。

此外BP神經網絡在訓練時,能夠通過學習自動提取輸出、輸出數據間的「合理規則」,並自適應的將學習內容記憶於網絡的權值中。即BP神經網絡具有高度自學習和自適應的能力。還可以進行動態性預測,如果需要隨時加入或者減少比較樣本,該模型可以進一步學習並且進行動態跟蹤比較。

隨著應用範圍的逐步擴大,BP神經網絡也暴露出了越來越多的缺點和不足,比如局部極小化問題,從數學角度看,傳統的 BP神經網絡為一種局部搜索的優化方法,它要解決的是一個複雜非線性化問題,網絡的權值是通過沿局部改善的方向逐漸進行調整的,這樣會使算法陷入局部極值,權值收斂到局部極小點,從而導致網絡訓練失敗。加上BP神經網絡對初始網絡權重非常敏感,以不同的權重初始化網絡,其往往會收斂於不同的局部極小,這也是很多學者每次訓練得到不同結果的根本原因。

BP 神經網絡算法的收斂速度慢:由於BP神經網絡算法本質上為梯度下降法,它所要優化的目標函數是非常複雜的,因此,必然會出現「鋸齒形現象」,這使得BP算法低效;又由於優化的目標函數很複雜,它必然會在神經元輸出接近0或1的情況下,出現一些平坦區,在這些區域內,權值誤差改變很小,使訓練過程幾乎停頓;BP神經網絡模型中,為了使網絡執行BP算法,不能使用傳統的一維搜索法求每次迭代的步長,而必須把步長的更新規則預先賦予網絡,這種方法也會引起算法低效。以上種種,導致了BP神經網絡算法收斂速度慢的現象。

除此之外,還存在結構選擇不一、預測能力和訓練能力的矛盾、對樣本依賴性等問題。

雖然神經網絡模型的理論較為抽象,科學性和準確性有待提高,以及會出現局部極小化、收斂速度慢等問題,但諸多學者的研究已經證明了神經網絡方法所構建的模型比多元判別分析模型、邏輯模型以及決策樹模型等具有更精確、更穩定的特點,而且沒有嚴格假設,有很強的容錯性、學習能力和糾錯能力。因此,在構建智能財務風險預警模型時選擇使用BP神經網絡能夠克服傳統集成預測方法的不足,為公司高管提供有效的決策信息。

3.BP神經網絡的設計和創建

與多數神經網絡不同,BP神經網絡是多隱含層的,隱層至少在一個或者一個以上,而其他大部分神經網絡是給定網絡結構層數的,搭建一個完整的BP 神經網絡一般需要對六個方面明確,分別是輸入層、輸入層與隱含層之間的傳遞函數、隱含層、隱含層與輸出層之間的傳遞函數、輸出層和網絡參數。

首先,設計輸入層 ,BP神經網絡的輸入層節點個數一般等於輸入向量的維數,網絡的各個輸入數據常常具有不同的物理意義和不同的量綱,變化範圍各異,尺度變換使網絡訓練一開始就給各輸入分量以同等重要的地位,一般來說,輸入量的選取對輸出量影響大而且能夠檢測。

輸出層代表系統要實現的目標功能,實際上是網絡訓練的期望輸出,分類問題中的輸出變量多為語言變量。設計智能財務風險預警模型,可以將企業財務狀況劃分為財務正常、財務危機兩種狀態,則可以將輸出層的節點數目設定為1,輸出「1」代表公司存在財務危機,輸出「0」代表公司財務正常。

隱含層單元數並沒有統一的理論指導,只能通過反覆調試最終確定。節點太少,不能體現樣本中的規律;節點過多,又可能出現「過度吻合」的現象,需要對 BP 神經網絡反覆調試。理論分析已經證明,在不限制隱層節點的前提條件下,具有單隱層的前饋神經網絡可以映像所有連續函數。在設計多層前饋網絡時,一般來說先考慮設計一個隱層。雖然說增加隱層數可以降低網絡誤差,提高精度,但是也會使網絡複雜化,從而增加了網絡的訓練時間甚至有「過擬合」的傾向。但是實際上,我們可以同時增加隱層的節點來改善這個問題,不需要多設置一個隱層。隱含層節點的作用是從樣本中提取並儲存其內在的規律,每個節點有若干個權值,而每個權值都是增強網絡映像能力的一個參數。一般來說,如果一個神經網絡的隱含層包含有無數隱含層節點,那麼該神經網絡可以實現從輸入到輸出的任意精度的非線性映像。但是現實中我們無法實現無數個隱含層節點,我們必需根據需要確定隱含層節點數。一方面,如果節點數設置的太少,網絡從樣本中獲取信息的能力就差,不足以概括和體現訓練集中的樣本規律;另一方面,隱含層節點數量過多,則有可能把非規律性的內容,如噪音也學會記牢,從而出現「過擬合」的現象,反而降低了神經網絡的泛化能力。此外,隱含層節點數量太多還會增加訓練時間。因此,設置多少個隱含層節點取決於訓練樣本的多少、樣本噪聲的大小以及樣本中蘊含規律的複雜程度。確定最佳隱含層節點數的一個常用的方法成為試湊法,可以先設置較少的隱含節點訓練網絡,然後逐漸增加隱含層節點數,用同一樣本集進行訓練,從中確定網絡誤差最小時對應的隱含層節點數。在適用試湊法的時候,可以用一些確定隱含層節點數的經驗公式。

傳遞函數:神經元的傳遞函數反映了神經元輸出與其啟動狀態之間的關係,例如tansig,其功能是正切sigmoid傳遞函數,而purelin是純線性傳遞函數。BP神經網絡的學習規則,即權值和閉值的調節規則採用的是誤差反向傳播算法。算法實際上是一算法在多層前向神經網絡中的推廣網絡的權值和閉值,通常是沿著網絡誤差變化的負梯度方向進行調節,最終使網絡誤差達到極小值或最小值,即在這一點誤差梯度為零。限於梯度下降算法的固有缺陷,標準的BP學習算法通常具有收斂速度慢、易陷入局部極小值等缺點。MATLAB神經網絡工具箱提供了一系列快速學習算法,一類是採用啟發式學習算法,如引入動量因子的學習算法函數(traingdm)、變學習速率學習算法(traingda)和「彈性」學習算法(trainrp)等。另一類則是採用更有效的數值優化算法,該算法優點是收斂最快,佔用空間又小,但性能只隨網絡訓練誤差減小而變差。如共軛梯度學習算法(包括traincgf、traincgp、trainscg、traincgb),quasi-Newton算法包括trainlm等,其中trainlm算法優點在於收斂快且誤差小,但佔用存儲空間較大,性能隨網絡規模增大而變差。

設計網絡參數,即對目標誤差、學習速率、訓練最大循環迭代次數進行確定。最後用MATLAB語言構建一個的BP神經網絡結構作為財務預警模型。

4.BP神經網絡的訓練和檢驗

設計完成預警模型之後,就需要將樣本用於訓練和檢測。神經網絡的性能與訓練用的樣本密切相關,設計一個好的訓練樣本集既要注意樣本規模,又要注意樣本質量。第一,訓練樣本數的確定。一般來說訓練樣本越多,訓練結果越能正確反映其內在的規律。但樣本的收集整理又往往受到客觀條件的限制。此外,當樣本數量多到一定程度的時候,網絡的精度也很難再提高。實踐表明,網絡訓練所需樣本數取決於輸入輸出非線性映像的複雜程度,映像關係越複雜,樣本中含的噪聲就越大,為保證一定映像精度,所需要的樣本數就越多,而網絡的規模也越大。因此,一般訓練樣本應當是網絡連接權總數的五倍到十倍。第二,樣本的選擇與組織。一個待建模系統的輸入輸出就是神經網絡的輸入輸出變量。訓練和檢驗的樣本要具有一定的代表性,在儘可能考慮樣本模式間的平衡前提下,正確評價網絡模型的性能和泛化能力。通過對神經網絡模型進行學習和仿真,對檢驗樣本得到綜合正確率的理想效果,通過檢驗結果,判斷模型對公司的財務風險識別效果。

BP算法程序流程圖如下:

5.BP神經網絡應用於智能財務風險預警

智能財務風險預警體系,首先要建立起預警指標體系。建立科學有效的財務預警功能的關鍵在於找出哪些財務指標能夠揭示或預示公司財務狀況的變化。在多指標體系中,各個指標之間具有不同的單位、不同的數量級,所以基於這種情況是不能直接用來比較分析的,所以在處理數據的第一步就是將原始數據進行標準化處理,使之具有相同可比的數量級,有了這個基礎,才能順利地進行後續的研究。

通常在償債能力、盈利能力、營運能力、現金相關指標、資本結構、資產管理能力、擴張能力、市場價值維度、公司治理指標等方面以及引入非財務因素選擇一級指標。根據構建智能風險預警模型的思路篩選指標,也可以通過一些科學方法對指標進行篩選,例如運用Kruskal-Walis H檢驗指標對於公司財務風險的預測是否顯著。最後從總項目抽取相應的指標,組成智能財務風險預警指標體系。通過層次聚類分析法將公司的財務風險等級進行分類,並通過顯著性檢驗。BP神經網絡的結構設計主要是確定輸入輸出層節點數和網絡的隱層數、隱層節點數。隱層數及隱層節點數的選擇要視指標而定,避免進行局部最小,由指標選擇數確定輸入層節點數,通過綜合功效係數所在的警度區間選擇輸出節點數。對於多層前饋網絡來說,隱層節點數的確定是成敗的關鍵。若數量太少,則網絡所能獲取的用以解決問題的信息太少;若數量太多,不僅增加訓練時間,更重要的是隱層節點過多還可能出現所謂「過渡吻合」(Overfitting)問題,即測試誤差增大導致泛化能力下降,因此合理選擇隱層節點數非常重要。關於隱層數及其節點數的選擇比較複雜,一般原則是:在能正確反映輸入輸出關係的基礎上,應選用較少的隱層節點數,以使網絡結構儘量簡單。假設有 n 個輸入節點,m 個輸出節點,則根據經驗公式選擇隱層節點數為:

式中: a 為 1 到 10 之間的常數。

傳遞函數是一個神經元及網絡的核心,網絡解決問題的能力與功效除了與網絡的結構有關,在很大程度上取決於所採用的傳遞函數。通過上文介紹的方法,找到最佳參數組合之後,對設計的BP神經網路模型進行檢驗,經過多次迭代,將每次得出的結果進行統計,最後分析 BP 神經網絡模型用於公司的智能財務風險預警的準確率及可行性。財務風險的預警有助於投資者進行投資決策、有助於企業管理層加強內部控制並改善經營管理。智能財務風險預警體系利用BP神經網絡的非線性映射能力和自學習能力,通過分析歷史財務指標數據,進行風險預警,也很好的解決了對指標賦權過於主觀化的不足。

經邦大數據致力於數字賦能用戶,實現風險可控下的運營價值最大化。目前已經在集團企業決策支持平臺、AI分析建模平臺、移動應用平臺和大數據集成平臺上取得豐碩成果,司企共建一批全國樣板客戶案例,獲得業界良好口碑。基本企業全面風險管控體系的基礎內控系統建設梳理與諮詢指導、核心風控系統的開發建設與實施落地、評價優化系統的監督評價與優化改進等服務,最終實現企業風控目標與戰略目標的統一。

相關焦點

  • BP神經網絡算法與實踐
    (點擊上方公眾號,可快速關注)來源: CodeMealscnblogs.com/fengfenggirl/p/bp_network.html
  • 神經網絡篇——從代碼出發理解BP神經網絡
    一提到反向傳播算法,我們就不自覺的想到隨機梯度下降、sigmoid激活函數和最讓人頭大的反向傳播法則的推導,即便是把反向傳播神經網絡的原理學了一遍,也還是一頭霧水,在這裡推薦一本小編認為把BP神經網絡講的最通透的教材《Python神經網絡編程》。
  • 「人工神經網絡」人工神經網絡之BP算法
    人工神經網絡(Artificial Neural Network,ANN)是在受到了生物學的啟發後創建的,在某種程度上它是對生物大腦的一種模擬。人們仿照生物神經網絡的結構,使用簡單運算單元模擬神經元,並將大量運算單元按某種形式密集連接,便構成了人工神經網絡。結構如圖:人工神經網絡(ANN)模型帶有權重值(w1,w2,...
  • AI從入門到放棄:BP神經網絡算法推導及代碼實現筆記
    仿生嘛,於是喜歡放飛自我的 某些人 就提出了人工神經網絡。一切的基礎-->人工神經單元,看圖:▌三. 通往沙漠的入口: 神經元是什麼,有什麼用:開始前,需要搞清楚一個很重要的問題:人工神經網絡裡的神經元是什麼,有什麼用。只有弄清楚這個問題,你才知道你在哪裡,在做什麼,要往哪裡去。
  • 神經網絡的BP算法學習
    有了上面的基礎後,就可以看看幾種常見的神經網絡的推導1)普通的神經網絡將其中的函數塊都變為節點,一個典型的seq2seq網絡就如下圖所示:
  • 人工神經網絡
    而人腦能實現這一關鍵靠的就是1000多億個神經元,於是我們就從中受到啟發,提出了人工神經網絡的算法。人工神經網絡是大量的神經元相互連接,通過模擬人的大腦神經處理信息的方式,進行信息並行處理和非線性轉換的複雜網絡系統。
  • R 語言機器學習—快速實現BP神經網絡
    BP神經網絡(BPNN)的全稱是:誤差反向傳播神經網絡(Error back propagation training neural network
  • BP神經網絡+TensorFlow做圖片識別
    +圖片識別應用(附源碼)前言:這是一篇基於tensorflow框架,創建的只有一層隱藏層的BP神經網絡,做的圖片識別,內容也比較簡單,全當是自己的學習筆記了。None表示其值大小不定,意即選中的X、Y的數量暫時不定4、創建BP神經網絡"""用隨機數列生成的方式,創建含一個隱藏層的神經網絡。
  • 神經網絡和誤差逆傳播法算法(BP)的推導
    一、神經網絡     神經網絡由大量的神經元相互連接而成。
  • 前饋神經網絡和BP算法簡單教程
    吳立德老師親自講解前饋神經網絡和BP算法,讓初學者對基礎更加了解,對以後網絡的改建和創新打下基礎,值得好好學習!
  • 神經網絡篇——用TensorFlow2.0框架實現BP網絡
    那這個感知器模型和BP網絡有什麼關係呢?在我們所看到的BP網絡的結構圖中,其實是被簡化了的,下面小編畫了一個邏輯更清晰一點的圖:這樣我們就可以看出來,其實BP網絡是由一個一個的感知器組成,也就構成了一個真正的神經網絡,自然就能理解為什麼要使用激活函數了。接下來我們來看一下TensorFlow實現BP神經網絡到底有多簡單!
  • 前饋神經網絡——深度學習之神經網絡核心原理與算法
    因上幾次讀者反映,公式代碼有亂碼和不規整的問題,小編有改善喲,這篇文章開始親們會看到效果的喲~Feedforward Neural Network網絡結構(一般分兩種)BP網絡是所有的神經網絡中結構最為簡單的一種網絡。一般我們習慣把網絡畫成左邊輸入右邊輸出層的結構。
  • 神經網絡和深度學習簡史(第一部分):從感知機到BP算法
    這一部分,我們會介紹1958年感知機神經網絡的誕生,70年代人工智慧寒冬以及1986年BP算法讓神經網絡再度流行起來。深度學習掀起海嘯如今,深度學習浪潮拍打計算機語言的海岸已有好幾年,但是,2015年似乎才是這場海嘯全力衝擊自然語言處理(NLP)會議的一年。——Dr. Christopher D.
  • 【神經網絡】神經網絡簡介
    這種網絡依靠系統的複雜程度,通過調整內部大量節點之間相互連接的關係,從而達到處理信息的目的。剛剛入門神經網絡,往往會對眾多的神經網絡架構感到困惑,神經網絡看起來複雜多樣,但是這麼多架構無非也就是三類:前饋式網絡、反饋式網絡、圖網絡。
  • 神經網絡解析|RNN(循環神經網絡)
    RNN是兩種神經網絡模型的縮寫,一種是遞歸神經網絡(Recursive Neural Network),一種是循環神經網絡(Recurrent Neural Network)。雖然這兩種神經網絡有著千絲萬縷的聯繫,但是本文主要討論的是第二種神經網絡模型——循環神經網絡(Recurrent Neural Network)。
  • 個人對神經網絡的理解(前饋神經網絡)
    神經網絡的發展還是挺快的,市面上的神經網絡種類已經發展得挺豐富了,比如卷積神經網絡(CNN),循環神經網絡(RNN),長短期記憶網絡(LSTM)等等。本文僅介紹一下筆者對於最簡單的神經網絡中前饋神經網絡的部分的理解,想必其中有許多謬誤,歡迎大家指正。
  • 衝量網絡|神經網絡
    簡單來說,人工神經網絡是生物神經網絡在某種簡化意義下的技術復現,作為一門學科,它的主要任務是根據生物神經網絡的原理和實際應用的需要,建造實用的人工神經網絡模型,設計相應的學習算法,模擬人腦的某種智能活動,然後在技術上實現出來用以解決實際問題。因此,生物神經網絡主要研究智能的機理,人工神經網絡主要研究智能機理的實現,兩者相輔相成。
  • ​深度學習之BP神經網絡--Stata和R同步實現(附數據和代碼)
    和SVM支持向量機類似,神經網絡屬於典型的black box黑箱方法。從更廣泛的角度來看,神經網絡可以實現幾乎所有的學習算法——既可以應用於有監督學習的分類和回歸,也可以用於無監督學習的聚類等。    神經網絡的分類有多種,從演進的角度來看,大概包括早期的單層神經網絡(也叫感知器,Perceptron)和前饋神經網絡(Feedforward Neural Network,FNN),到BP(Backward Propagation,反向傳播)神經網絡,再到現在更為複雜的卷帙(Convolutional)、循環(Recurrent)、深度信念(
  • 深度:回顧Google神經網絡機器翻譯上線歷程
    深度神經網絡提倡的是end-to-end learning,即跳過中間各種子NLP步驟,用深層的網絡結構去直接學習擬合源語言到目標語言的概率。2014年,Cho et. al [3]和Sutskever et al. [4] 提出了Encoder-Decoder架構的神經網絡機器翻譯系統。
  • 《神經網絡和深度學習》系列文章四:神經網絡的結構
    本節譯者:哈工大SCIR碩士生 徐偉 (https://github.com/memeda)聲明:我們將在每周一,周四,周日定期連載該書的中文翻譯,如需轉載請聯繫wechat_editors@ir.hit.edu.cn,未經授權不得轉載。