Ⅰ 神經網路用於風險,輸入什麼輸出什麼
神經網路和粗集理論是智能信息處理的兩種重要的方法,其任務是從大量觀察和實驗數據中獲取知識、表達知識和推理決策規則。粗集理論是基於不可分辯性思想和知識簡化方法,從數據中推理邏輯規則,適合於數據簡化、數據相關性查找、發現數據模式、從數據中提取規則等。神經網路是利用非線性映射的思想和並行處理方法,用神經網路本身的結構表達輸入與輸出關聯知識的隱函數編碼,具有較強的並行處理、逼近和分類能力。在處理不準確、不完整的知識方面,粗集理論和神經網路都顯示出較強的適應能力,然而兩者處理信息的方法是不同的,粗集方法模擬人類的抽象邏輯思維,神經網路方法模擬形象直覺思維,具有很強的互補性。
首先,通過粗集理論方法減少信息表達的屬性數量,去掉冗餘信息,使訓練集簡化,減少神經網路系統的復雜性和訓練時間;其次利用神經網路優良的並行處理、逼近和分類能力來處理風險預警這類非線性問題,具有較強的容錯能力;再次,粗集理論在簡化知識的同時,很容易推理出決策規則,因而可以作為後續使用中的信息識別規則,將粗集得到的結果與神經網路得到的結果相比較,以便相互驗證;最後,粗集理論的方法和結果簡單易懂,而且以規則的形式給出,通過與神經網路結合,使神經網路也具有一定的解釋能力。因此,粗集理論與神經網路融合方法具有許多優點,非常適合處理諸如企業戰略風險預警這類非結構化、非線性的復雜問題。
關於輸入的問題--輸入模塊。
這一階段包括初始指標體系確定,根據所確定的指標體系而形成的數據採集系統及數據預處理。企業戰略風險的初始評價指標如下:
企業外部因素:政治環境(法律法規及其穩定性),經濟環境(社會總體收入水平,物價水平,經濟增長率),產業結構(進入產業障礙,競爭對手數量及集中程度),市場環境(市場大小)。
企業內部因素:企業盈利能力(銷售利潤率,企業利潤增長率),產品競爭能力(產品銷售率,市場佔有率),技術開發能力(技術開發費比率,企業專業技術人才比重),資金籌措能力(融資率),企業職工凝聚力(企業員工流動率),管理人才資源,信息資源;戰略本身的風險因素(戰略目標,戰略重點,戰略措施,戰略方針)。
本文所建立的預警指標系統是針對普遍意義上的企業,當該指標系統運用於實際企業時,需要對具體指標進行適當的增加或減少。因為各個企業有其具體的戰略目標、經營活動等特性。
計算處理模塊。這一模塊主要包括粗集處理部分和神經網路處理部分。
粗集處理階段。根據粗集的簡化規則及決策規則對數據進行約簡,構造神經網路的初始結構,便於神經網路的訓練。
企業戰略風險分析需要解決的問題是在保證對戰略風險狀態評價一致的情況下,選擇最少的特徵集,以便減少屬性維數、降低計算工作量和減少不確定因素的影響,粗集理論中的屬性約簡演算法可以很好地解決這個問題。
然後是輸出模塊~
該模塊是對將發生的戰略風險問題發出警報。
按照戰略風險大小強弱程度的不同,可將其分為三個層次。第一層次是輕微戰略風險,是損失較小、後果不甚明顯,對企業的戰略管理活動不構成重要影響的各類風險。這類風險一般情況下無礙大局,僅對企業形成局部和微小的傷害。第二層次是一般戰略風險,是損失適中、後果明顯但不構成致命性威脅的各類風險。這類風險的直接後果使企業遭受一定損失,並對其戰略管理的某些方面帶來較大的不利影響或留有一定後遺症。第三層次是致命性戰略風險,指損失較大,後果嚴重的風險。這類風險的直接後果往往會威脅企業的生存,導致重大損失,使之一時不能恢復或遭受破產。在實際操作中,每個企業應根據具體的狀況,將這三個層次以具體的數值表現出來。
下面回答你的問題:
總的來說,神經網路輸入的是初始指標體系;輸出的是風險。
你所說的風險應該說屬於輸出范疇,具體等級分為三級:無警、輕警、重警,並用綠、黃、紅三種顏色燈號表示。其中綠燈區表示企業綜合指標所反映的實際運行值與目標值基本一致,運行良好;黃燈區表示企業綜合指標所反映的實際運行值與目標值偏離較大,要引起企業的警惕。若採取一定的措施可轉為綠燈區,若不重視可在短期內轉為紅燈區;紅燈區則表示這種偏離超過企業接受的可能,並給企業帶來整體性的重大損失。例如:銷售利潤率極低、資產負債率過高,資源配置不合理、缺乏發展後勁等,必須找出原因,繼而採取有效措施,使企業的戰略管理活動始終處於「安全」的狀態。
希望以上答案能夠幫到你,祝你好運~
Ⅱ 深度學習之卷積神經網路經典模型
LeNet-5模型 在CNN的應用中,文字識別系統所用的LeNet-5模型是非常經典的模型。LeNet-5模型是1998年,Yann LeCun教授提出的,它是第一個成功大規模應用在手寫數字識別問題的卷積神經網路,在MNIST數據集中的正確率可以高達99.2%。
下面詳細介紹一下LeNet-5模型工作的原理。
LeNet-5模型一共有7層,每層包含眾多參數,也就是卷積神經網路中的參數。雖然層數只有7層,這在如今龐大的神經網路中可是說是非常少的了,但是包含了卷積層,池化層,全連接層,可謂麻雀雖小五臟俱全了。為了方便,我們把卷積層稱為C層,下采樣層叫做下采樣層。
首先,輸入層輸入原始圖像,原始圖像被處理成32×32個像素點的值。然後,後面的隱層計在卷積和子抽樣之間交替進行。C1層是卷積層,包含了六個特徵圖。每個映射也就是28x28個神經元。卷積核可以是5x5的十字形,這28×28個神經元共享卷積核權值參數,通過卷積運算,原始信號特徵增強,同時也降低了雜訊,當卷積核不同時,提取到圖像中的特徵不同;C2層是一個池化層,池化層的功能在上文已經介紹過了,它將局部像素值平均化來實現子抽樣。
池化層包含了六個特徵映射,每個映射的像素值為14x14,這樣的池化層非常重要,可以在一定程度上保證網路的特徵被提取,同時運算量也大大降低,減少了網路結構過擬合的風險。因為卷積層與池化層是交替出現的,所以隱藏層的第三層又是一個卷積層,第二個卷積層由16個特徵映射構成,每個特徵映射用於加權和計算的卷積核為10x10的。第四個隱藏層,也就是第二個池化層同樣包含16個特徵映射,每個特徵映射中所用的卷積核是5x5的。第五個隱藏層是用5x5的卷積核進行運算,包含了120個神經元,也是這個網路中卷積運算的最後一層。
之後的第六層便是全連接層,包含了84個特徵圖。全連接層中對輸入進行點積之後加入偏置,然後經過一個激活函數傳輸給輸出層的神經元。最後一層,也就是第七層,為了得到輸出向量,設置了十個神經元來進行分類,相當於輸出一個包含十個元素的一維數組,向量中的十個元素即0到9。
AlexNet模型
AlexNet簡介
2012年Imagenet圖像識別大賽中,Alext提出的alexnet網路模型一鳴驚人,引爆了神經網路的應用熱潮,並且贏得了2012屆圖像識別大賽的冠軍,這也使得卷積神經網路真正意義上成為圖像處理上的核心演算法。上文介紹的LeNet-5出現在上個世紀,雖然是經典,但是迫於種種復雜的現實場景限制,只能在一些領域應用。不過,隨著SVM等手工設計的特徵的飛速發展,LeNet-5並沒有形成很大的應用狀況。隨著ReLU與dropout的提出,以及GPU帶來算力突破和互聯網時代大數據的爆發,卷積神經網路帶來歷史的突破,AlexNet的提出讓深度學習走上人工智慧的最前端。
圖像預處理
AlexNet的訓練數據採用ImageNet的子集中的ILSVRC2010數據集,包含了1000類,共1.2百萬的訓練圖像,50000張驗證集,150000張測試集。在進行網路訓練之前我們要對數據集圖片進行預處理。首先我們要將不同解析度的圖片全部變成256x256規格的圖像,變換方法是將圖片的短邊縮放到 256像素值,然後截取長邊的中間位置的256個像素值,得到256x256大小的圖像。除了對圖片大小進行預處理,還需要對圖片減均值,一般圖像均是由RGB三原色構成,均值按RGB三分量分別求得,由此可以更加突出圖片的特徵,更方便後面的計算。
此外,對了保證訓練的效果,我們仍需對訓練數據進行更為嚴苛的處理。在256x256大小的圖像中,截取227x227大小的圖像,在此之後對圖片取鏡像,這樣就使得原始數據增加了(256-224)x(256-224)x2= 2048倍。最後對RGB空間做PCA,然後對主成分做(0,0.1)的高斯擾動,結果使錯誤率下降1%。對測試數據而言,抽取以圖像4個角落的大小為224224的圖像,中心的224224大小的圖像以及它們的鏡像翻轉圖像,這樣便可以獲得10張圖像,我們便可以利用softmax進行預測,對所有預測取平均作為最終的分類結果。
ReLU激活函數
之前我們提到常用的非線性的激活函數是sigmoid,它能夠把輸入的連續實值全部確定在0和1之間。但是這帶來一個問題,當一個負數的絕對值很大時,那麼輸出就是0;如果是絕對值非常大的正數,輸出就是1。這就會出現飽和的現象,飽和現象中神經元的梯度會變得特別小,這樣必然會使得網路的學習更加困難。此外,sigmoid的output的值並不是0為均值,因為這會導致上一層輸出的非0均值信號會直接輸入到後一層的神經元上。所以AlexNet模型提出了ReLU函數,公式:f(x)=max(0,x)f(x)=max(0,x)。
用ReLU代替了Sigmoid,發現使用 ReLU 得到的SGD的收斂速度會比 sigmoid快很多,這成了AlexNet模型的優勢之一。
Dropout
AlexNet模型提出了一個有效的模型組合方式,相比於單模型,只需要多花費一倍的時間,這種方式就做Dropout。在整個神經網路中,隨機選取一半的神經元將它們的輸出變成0。這種方式使得網路關閉了部分神經元,減少了過擬合現象。同時訓練的迭代次數也得以增加。當時一個GTX580 GPU只有3GB內存,這使得大規模的運算成為不可能。但是,隨著硬體水平的發展,當時的GPU已經可以實現並行計算了,並行計算之後兩塊GPU可以互相通信傳輸數據,這樣的方式充分利用了GPU資源,所以模型設計利用兩個GPU並行運算,大大提高了運算效率。
模型分析
AlexNet模型共有8層結構,其中前5層為卷積層,其中前兩個卷積層和第五個卷積層有池化層,其他卷積層沒有。後面3層為全連接層,神經元約有六十五萬個,所需要訓練的參數約六千萬個。
圖片預處理過後,進過第一個卷積層C1之後,原始的圖像也就變成了55x55的像素大小,此時一共有96個通道。模型分為上下兩塊是為了方便GPU運算,48作為通道數目更加適合GPU的並行運算。上圖的模型里把48層直接變成了一個面,這使得模型看上去更像一個立方體,大小為55x55x48。在後面的第二個卷積層C2中,卷積核的尺寸為5x5x48,由此再次進行卷積運算。在C1,C2卷積層的卷積運算之後,都會有一個池化層,使得提取特徵之後的特徵圖像素值大大減小,方便了運算,也使得特徵更加明顯。而第三層的卷積層C3又是更加特殊了。第三層卷積層做了通道的合並,將之前兩個通道的數據再次合並起來,這是一種串接操作。第三層後,由於串接,通道數變成256。全卷積的卷積核尺寸也就變成了13×13×25613×13×256。一個有4096個這樣尺寸的卷積核分別對輸入圖像做4096次的全卷積操作,最後的結果就是一個列向量,一共有4096個數。這也就是最後的輸出,但是AlexNet最終是要分1000個類,所以通過第八層,也就是全連接的第三層,由此得到1000個類輸出。
Alexnet網路中各個層發揮了不同的作用,ReLU,多個CPU是為了提高訓練速度,重疊pool池化是為了提高精度,且不容易產生過擬合,局部歸一化響應是為了提高精度,而數據增益與dropout是為了減少過擬合。
VGG net
在ILSVRC-2014中,牛津大學的視覺幾何組提出的VGGNet模型在定位任務第一名和分類任務第一名[[i]]。如今在計算機視覺領域,卷積神經網路的良好效果深得廣大開發者的喜歡,並且上文提到的AlexNet模型擁有更好的效果,所以廣大從業者學習者試圖將其改進以獲得更好地效果。而後來很多人經過驗證認為,AlexNet模型中所謂的局部歸一化響應浪費了計算資源,但是對性能卻沒有很大的提升。VGG的實質是AlexNet結構的增強版,它側重強調卷積神經網路設計中的深度。將卷積層的深度提升到了19層,並且在當年的ImageNet大賽中的定位問題中獲得了第一名的好成績。整個網路向人們證明了我們是可以用很小的卷積核取得很好地效果,前提是我們要把網路的層數加深,這也論證了我們要想提高整個神經網路的模型效果,一個較為有效的方法便是將它的深度加深,雖然計算量會大大提高,但是整個復雜度也上升了,更能解決復雜的問題。雖然VGG網路已經誕生好幾年了,但是很多其他網路上效果並不是很好地情況下,VGG有時候還能夠發揮它的優勢,讓人有意想不到的收獲。
與AlexNet網路非常類似,VGG共有五個卷積層,並且每個卷積層之後都有一個池化層。當時在ImageNet大賽中,作者分別嘗試了六種網路結構。這六種結構大致相同,只是層數不同,少則11層,多達19層。網路結構的輸入是大小為224*224的RGB圖像,最終將分類結果輸出。當然,在輸入網路時,圖片要進行預處理。
VGG網路相比AlexNet網路,在網路的深度以及寬度上做了一定的拓展,具體的卷積運算還是與AlexNet網路類似。我們主要說明一下VGG網路所做的改進。第一點,由於很多研究者發現歸一化層的效果並不是很好,而且佔用了大量的計算資源,所以在VGG網路中作者取消了歸一化層;第二點,VGG網路用了更小的3x3的卷積核,而兩個連續的3x3的卷積核相當於5x5的感受野,由此類推,三個3x3的連續的卷積核也就相當於7x7的感受野。這樣的變化使得參數量更小,節省了計算資源,將資源留給後面的更深層次的網路。第三點是VGG網路中的池化層特徵池化核改為了2x2,而在AlexNet網路中池化核為3x3。這三點改進無疑是使得整個參數運算量下降,這樣我們在有限的計算平台上能夠獲得更多的資源留給更深層的網路。由於層數較多,卷積核比較小,這樣使得整個網路的特徵提取效果很好。其實由於VGG的層數較多,所以計算量還是相當大的,卷積層比較多成了它最顯著的特點。另外,VGG網路的拓展性能比較突出,結構比較簡潔,所以它的遷移性能比較好,遷移到其他數據集的時候泛化性能好。到現在為止,VGG網路還經常被用來提出特徵。所以當現在很多較新的模型效果不好時,使用VGG可能會解決這些問題。
GoogleNet
谷歌於2014年Imagenet挑戰賽(ILSVRC14)憑借GoogleNet再次斬獲第一名。這個通過增加了神經網路的深度和寬度獲得了更好地效果,在此過程中保證了計算資源的不變。這個網路論證了加大深度,寬度以及訓練數據的增加是現有深度學習獲得更好效果的主要方式。但是增加尺寸可能會帶來過擬合的問題,因為深度與寬度的加深必然會帶來過量的參數。此外,增加網路尺寸也帶來了對計算資源侵佔過多的缺點。為了保證計算資源充分利用的前提下去提高整個模型的性能,作者使用了Inception模型,這個模型在下圖中有展示,可以看出這個有點像金字塔的模型在寬度上使用並聯的不同大小的卷積核,增加了卷積核的輸出寬度。因為使用了較大尺度的卷積核增加了參數。使用了1*1的卷積核就是為了使得參數的數量最少。
Inception模塊
上圖表格為網路分析圖,第一行為卷積層,輸入為224×224×3 ,卷積核為7x7,步長為2,padding為3,輸出的維度為112×112×64,這裡面的7x7卷積使用了 7×1 然後 1×7 的方式,這樣便有(7+7)×64×3=2,688個參數。第二行為池化層,卷積核為3×33×3,滑動步長為2,padding為 1 ,輸出維度:56×56×64,計算方式:1/2×(112+2×1?3+1)=56。第三行,第四行與第一行,第二行類似。第 5 行 Inception mole中分為4條支線,輸入均為上層產生的 28×28×192 結果:第 1 部分,1×1 卷積層,輸出大小為28×28×64;第 2 部分,先1×1卷積層,輸出大小為28×28×96,作為輸入進行3×3卷積層,輸出大小為28×28×128;第 3部分,先1×1卷積層,輸出大小為28×28×32,作為輸入進行3×3卷積層,輸出大小為28×28×32;而第3 部分3×3的池化層,輸出大小為輸出大小為28×28×32。第5行的Inception mole會對上面是個結果的輸出結果並聯,由此增加網路寬度。
ResNet
2015年ImageNet大賽中,MSRA何凱明團隊的ResialNetworks力壓群雄,在ImageNet的諸多領域的比賽中上均獲得了第一名的好成績,而且這篇關於ResNet的論文Deep Resial Learning for Image Recognition也獲得了CVPR2016的最佳論文,實至而名歸。
上文介紹了的VGG以及GoogleNet都是增加了卷積神經網路的深度來獲得更好效果,也讓人們明白了網路的深度與廣度決定了訓練的效果。但是,與此同時,寬度與深度加深的同時,效果實際會慢慢變差。也就是說模型的層次加深,錯誤率提高了。模型的深度加深,以一定的錯誤率來換取學習能力的增強。但是深層的神經網路模型犧牲了大量的計算資源,學習能力提高的同時不應當產生比淺層神經網路更高的錯誤率。這個現象的產生主要是因為隨著神經網路的層數增加,梯度消失的現象就越來越明顯。所以為了解決這個問題,作者提出了一個深度殘差網路的結構Resial:
上圖就是殘差網路的基本結構,可以看出其實是增加了一個恆等映射,將原本的變換函數H(x)轉換成了F(x)+x。示意圖中可以很明顯看出來整個網路的變化,這樣網路不再是簡單的堆疊結構,這樣的話便很好地解決了由於網路層數增加而帶來的梯度原來越不明顯的問題。所以這時候網路可以做得很深,到目前為止,網路的層數都可以上千層,而能夠保證很好地效果。並且,這樣的簡單疊加並沒有給網路增加額外的參數跟計算量,同時也提高了網路訓練的效果與效率。
在比賽中,為了證明自己觀點是正確的,作者控制變數地設計幾個實驗。首先作者構建了兩個plain網路,這兩個網路分別為18層跟34層,隨後作者又設計了兩個殘差網路,層數也是分別為18層和34層。然後對這四個模型進行控制變數的實驗觀察數據量的變化。下圖便是實驗結果。實驗中,在plain網路上觀測到明顯的退化現象。實驗結果也表明,在殘差網路上,34層的效果明顯要好於18層的效果,足以證明殘差網路隨著層數增加性能也是增加的。不僅如此,殘差網路的在更深層的結構上收斂性能也有明顯的提升,整個實驗大為成功。
除此之外,作者還做了關於shortcut方式的實驗,如果殘差網路模塊的輸入輸出維度不一致,我們如果要使維度統一,必須要對維數較少的進行増維。而增維的最好效果是用0來填充。不過實驗數據顯示三者差距很小,所以線性投影並不是特別需要。使用0來填充維度同時也保證了模型的復雜度控制在比較低的情況下。
隨著實驗的深入,作者又提出了更深的殘差模塊。這種模型減少了各個層的參數量,將資源留給更深層數的模型,在保證復雜度很低的情況下,模型也沒有出現梯度消失很明顯的情況,因此目前模型最高可達1202層,錯誤率仍然控製得很低。但是層數如此之多也帶來了過擬合的現象,不過諸多研究者仍在改進之中,畢竟此時的ResNet已經相對於其他模型在性能上遙遙領先了。
殘差網路的精髓便是shortcut。從一個角度來看,也可以解讀為多種路徑組合的一個網路。如下圖:
ResNet可以做到很深,但是從上圖中可以體會到,當網路很深,也就是層數很多時,數據傳輸的路徑其實相對比較固定。我們似乎也可以將其理解為一個多人投票系統,大多數梯度都分布在論文中所謂的effective path上。
DenseNet
在Resnet模型之後,有人試圖對ResNet模型進行改進,由此便誕生了ResNeXt模型。
這是對上面介紹的ResNet模型結合了GoogleNet中的inception模塊思想,相比於Resnet來說更加有效。隨後,誕生了DenseNet模型,它直接將所有的模塊連接起來,整個模型更加簡單粗暴。稠密相連成了它的主要特點。
我們將DenseNet與ResNet相比較:
從上圖中可以看出,相比於ResNet,DenseNet參數量明顯減少很多,效果也更加優越,只是DenseNet需要消耗更多的內存。
總結
上面介紹了卷積神經網路發展史上比較著名的一些模型,這些模型非常經典,也各有優勢。在算力不斷增強的現在,各種新的網路訓練的效率以及效果也在逐漸提高。從收斂速度上看,VGG>Inception>DenseNet>ResNet,從泛化能力來看,Inception>DenseNet=ResNet>VGG,從運算量看來,Inception<DenseNet< ResNet<VGG,從內存開銷來看,Inception<ResNet< DenseNet<VGG。在本次研究中,我們對各個模型均進行了分析,但從效果來看,ResNet效果是最好的,優於Inception,優於VGG,所以我們第四章實驗中主要採用谷歌的Inception模型,也就是GoogleNet。
Ⅲ 財務困境預測的人工神經網路分析方法
(1)(ANN)
在1980年代末期,神經網路理論(NN)開始興起,其影響也及於財務危機預測研究領域。雖然神經網路判別模型可謂是研究方法上的重大創新,但實際效果卻很不穩定。例如,Coats 和Fant(1991)對47家財務危機公司和47家正常公司運用神經網路模型進行判別時,對財務危機公司的預測准確率達到了91%,明顯高於多元判別法72%的准確率。然而,Back等人在1994年所做的一項研究卻並不認為神經網路模型具有比多元判別分析(MDA)和Logistic分析明顯更佳的預測效果。Altman, Marco和Varetto(1995)對義大利公司財務危機預測中應用了神經網路分析法。Coats, Fant(1993)、Trippi和Turban,Kevin、KarYanTan和MdodyY.Kiang(1992)採用了神經網路分析法分別對美國公司和銀行財務危機進行了預測,取得了一定的效果。Altman(1995)在對神經網路法和判別分析法的比較研究中得出結論「神經網路分析方法在信用風險識別和預測中的應用,並沒有實質性的優於線性判別模型」。
Ⅳ 一文看懂四種基本的神經網路架構
原文鏈接:
http://blackblog.tech/2018/02/23/Eight-Neural-Network/
更多干貨就在我的個人博客 http://blackblog.tech 歡迎關注
剛剛入門神經網路,往往會對眾多的神經網路架構感到困惑,神經網路看起來復雜多樣,但是這么多架構無非也就是三類,前饋神經網路,循環網路,對稱連接網路,本文將介紹四種常見的神經網路,分別是CNN,RNN,DBN,GAN。通過這四種基本的神經網路架構,我們來對神經網路進行一定的了解。
神經網路是機器學習中的一種模型,是一種模仿動物神經網路行為特徵,進行分布式並行信息處理的演算法數學模型。這種網路依靠系統的復雜程度,通過調整內部大量節點之間相互連接的關系,從而達到處理信息的目的。
一般來說,神經網路的架構可以分為三類:
前饋神經網路:
這是實際應用中最常見的神經網路類型。第一層是輸入,最後一層是輸出。如果有多個隱藏層,我們稱之為「深度」神經網路。他們計算出一系列改變樣本相似性的變換。各層神經元的活動是前一層活動的非線性函數。
循環網路:
循環網路在他們的連接圖中定向了循環,這意味著你可以按照箭頭回到你開始的地方。他們可以有復雜的動態,使其很難訓練。他們更具有生物真實性。
循環網路的目的使用來處理序列數據。在傳統的神經網路模型中,是從輸入層到隱含層再到輸出層,層與層之間是全連接的,每層之間的節點是無連接的。但是這種普通的神經網路對於很多問題卻無能無力。例如,你要預測句子的下一個單詞是什麼,一般需要用到前面的單詞,因為一個句子中前後單詞並不是獨立的。
循環神經網路,即一個序列當前的輸出與前面的輸出也有關。具體的表現形式為網路會對前面的信息進行記憶並應用於當前輸出的計算中,即隱藏層之間的節點不再無連接而是有連接的,並且隱藏層的輸入不僅包括輸入層的輸出還包括上一時刻隱藏層的輸出。
對稱連接網路:
對稱連接網路有點像循環網路,但是單元之間的連接是對稱的(它們在兩個方向上權重相同)。比起循環網路,對稱連接網路更容易分析。這個網路中有更多的限制,因為它們遵守能量函數定律。沒有隱藏單元的對稱連接網路被稱為「Hopfield 網路」。有隱藏單元的對稱連接的網路被稱為玻爾茲曼機。
其實之前的帖子講過一些關於感知機的內容,這里再復述一下。
首先還是這張圖
這是一個M-P神經元
一個神經元有n個輸入,每一個輸入對應一個權值w,神經元內會對輸入與權重做乘法後求和,求和的結果與偏置做差,最終將結果放入激活函數中,由激活函數給出最後的輸出,輸出往往是二進制的,0 狀態代表抑制,1 狀態代表激活。
可以把感知機看作是 n 維實例空間中的超平面決策面,對於超平面一側的樣本,感知器輸出 1,對於另一側的實例輸出 0,這個決策超平面方程是 w⋅x=0。 那些可以被某一個超平面分割的正反樣例集合稱為線性可分(linearly separable)樣例集合,它們就可以使用圖中的感知機表示。
與、或、非問題都是線性可分的問題,使用一個有兩輸入的感知機能容易地表示,而異或並不是一個線性可分的問題,所以使用單層感知機是不行的,這時候就要使用多層感知機來解決疑惑問題了。
如果我們要訓練一個感知機,應該怎麼辦呢?
我們會從隨機的權值開始,反復地應用這個感知機到每個訓練樣例,只要它誤分類樣例就修改感知機的權值。重復這個過程,直到感知機正確分類所有的樣例。每一步根據感知機訓練法則來修改權值,也就是修改與輸入 xi 對應的權 wi,法則如下:
這里 t 是當前訓練樣例的目標輸出,o 是感知機的輸出,η 是一個正的常數稱為學習速率。學習速率的作用是緩和每一步調整權的程度,它通常被設為一個小的數值(例如 0.1),而且有時會使其隨著權調整次數的增加而衰減。
多層感知機,或者說是多層神經網路無非就是在輸入層與輸出層之間加了多個隱藏層而已,後續的CNN,DBN等神經網路只不過是將重新設計了每一層的類型。感知機可以說是神經網路的基礎,後續更為復雜的神經網路都離不開最簡單的感知機的模型,
談到機器學習,我們往往還會跟上一個詞語,叫做模式識別,但是真實環境中的模式識別往往會出現各種問題。比如:
圖像分割:真實場景中總是摻雜著其它物體。很難判斷哪些部分屬於同一個對象。對象的某些部分可以隱藏在其他對象的後面。
物體光照:像素的強度被光照強烈影響。
圖像變形:物體可以以各種非仿射方式變形。例如,手寫也可以有一個大的圓圈或只是一個尖頭。
情景支持:物體所屬類別通常由它們的使用方式來定義。例如,椅子是為了讓人們坐在上面而設計的,因此它們具有各種各樣的物理形狀。
卷積神經網路與普通神經網路的區別在於,卷積神經網路包含了一個由卷積層和子采樣層構成的特徵抽取器。在卷積神經網路的卷積層中,一個神經元只與部分鄰層神經元連接。在CNN的一個卷積層中,通常包含若干個特徵平面(featureMap),每個特徵平面由一些矩形排列的的神經元組成,同一特徵平面的神經元共享權值,這里共享的權值就是卷積核。卷積核一般以隨機小數矩陣的形式初始化,在網路的訓練過程中卷積核將學習得到合理的權值。共享權值(卷積核)帶來的直接好處是減少網路各層之間的連接,同時又降低了過擬合的風險。子采樣也叫做池化(pooling),通常有均值子采樣(mean pooling)和最大值子采樣(max pooling)兩種形式。子采樣可以看作一種特殊的卷積過程。卷積和子采樣大大簡化了模型復雜度,減少了模型的參數。
卷積神經網路由三部分構成。第一部分是輸入層。第二部分由n個卷積層和池化層的組合組成。第三部分由一個全連結的多層感知機分類器構成。
這里舉AlexNet為例:
·輸入:224×224大小的圖片,3通道
·第一層卷積:11×11大小的卷積核96個,每個GPU上48個。
·第一層max-pooling:2×2的核。
·第二層卷積:5×5卷積核256個,每個GPU上128個。
·第二層max-pooling:2×2的核。
·第三層卷積:與上一層是全連接,3*3的卷積核384個。分到兩個GPU上個192個。
·第四層卷積:3×3的卷積核384個,兩個GPU各192個。該層與上一層連接沒有經過pooling層。
·第五層卷積:3×3的卷積核256個,兩個GPU上個128個。
·第五層max-pooling:2×2的核。
·第一層全連接:4096維,將第五層max-pooling的輸出連接成為一個一維向量,作為該層的輸入。
·第二層全連接:4096維
·Softmax層:輸出為1000,輸出的每一維都是圖片屬於該類別的概率。
卷積神經網路在模式識別領域有著重要應用,當然這里只是對卷積神經網路做了最簡單的講解,卷積神經網路中仍然有很多知識,比如局部感受野,權值共享,多卷積核等內容,後續有機會再進行講解。
傳統的神經網路對於很多問題難以處理,比如你要預測句子的下一個單詞是什麼,一般需要用到前面的單詞,因為一個句子中前後單詞並不是獨立的。RNN之所以稱為循環神經網路,即一個序列當前的輸出與前面的輸出也有關。具體的表現形式為網路會對前面的信息進行記憶並應用於當前輸出的計算中,即隱藏層之間的節點不再無連接而是有連接的,並且隱藏層的輸入不僅包括輸入層的輸出還包括上一時刻隱藏層的輸出。理論上,RNN能夠對任何長度的序列數據進行處理。
這是一個簡單的RNN的結構,可以看到隱藏層自己是可以跟自己進行連接的。
那麼RNN為什麼隱藏層能夠看到上一刻的隱藏層的輸出呢,其實我們把這個網路展開來開就很清晰了。
從上面的公式我們可以看出,循環層和全連接層的區別就是循環層多了一個權重矩陣 W。
如果反復把式2帶入到式1,我們將得到:
在講DBN之前,我們需要對DBN的基本組成單位有一定的了解,那就是RBM,受限玻爾茲曼機。
首先什麼是玻爾茲曼機?
[圖片上傳失敗...(image-d36b31-1519636788074)]
如圖所示為一個玻爾茲曼機,其藍色節點為隱層,白色節點為輸入層。
玻爾茲曼機和遞歸神經網路相比,區別體現在以下幾點:
1、遞歸神經網路本質是學習一個函數,因此有輸入和輸出層的概念,而玻爾茲曼機的用處在於學習一組數據的「內在表示」,因此其沒有輸出層的概念。
2、遞歸神經網路各節點鏈接為有向環,而玻爾茲曼機各節點連接成無向完全圖。
而受限玻爾茲曼機是什麼呢?
最簡單的來說就是加入了限制,這個限制就是將完全圖變成了二分圖。即由一個顯層和一個隱層構成,顯層與隱層的神經元之間為雙向全連接。
h表示隱藏層,v表示顯層
在RBM中,任意兩個相連的神經元之間有一個權值w表示其連接強度,每個神經元自身有一個偏置系數b(對顯層神經元)和c(對隱層神經元)來表示其自身權重。
具體的公式推導在這里就不展示了
DBN是一個概率生成模型,與傳統的判別模型的神經網路相對,生成模型是建立一個觀察數據和標簽之間的聯合分布,對P(Observation|Label)和 P(Label|Observation)都做了評估,而判別模型僅僅而已評估了後者,也就是P(Label|Observation)。
DBN由多個限制玻爾茲曼機(Restricted Boltzmann Machines)層組成,一個典型的神經網路類型如圖所示。這些網路被「限制」為一個可視層和一個隱層,層間存在連接,但層內的單元間不存在連接。隱層單元被訓練去捕捉在可視層表現出來的高階數據的相關性。
生成對抗網路其實在之前的帖子中做過講解,這里在說明一下。
生成對抗網路的目標在於生成,我們傳統的網路結構往往都是判別模型,即判斷一個樣本的真實性。而生成模型能夠根據所提供的樣本生成類似的新樣本,注意這些樣本是由計算機學習而來的。
GAN一般由兩個網路組成,生成模型網路,判別模型網路。
生成模型 G 捕捉樣本數據的分布,用服從某一分布(均勻分布,高斯分布等)的雜訊 z 生成一個類似真實訓練數據的樣本,追求效果是越像真實樣本越好;判別模型 D 是一個二分類器,估計一個樣本來自於訓練數據(而非生成數據)的概率,如果樣本來自於真實的訓練數據,D 輸出大概率,否則,D 輸出小概率。
舉個例子:生成網路 G 好比假幣製造團伙,專門製造假幣,判別網路 D 好比警察,專門檢測使用的貨幣是真幣還是假幣,G 的目標是想方設法生成和真幣一樣的貨幣,使得 D 判別不出來,D 的目標是想方設法檢測出來 G 生成的假幣。
傳統的判別網路:
生成對抗網路:
下面展示一個cDCGAN的例子(前面帖子中寫過的)
生成網路
判別網路
最終結果,使用MNIST作為初始樣本,通過學習後生成的數字,可以看到學習的效果還是不錯的。
本文非常簡單的介紹了四種神經網路的架構,CNN,RNN,DBN,GAN。當然也僅僅是簡單的介紹,並沒有深層次講解其內涵。這四種神經網路的架構十分常見,應用也十分廣泛。當然關於神經網路的知識,不可能幾篇帖子就講解完,這里知識講解一些基礎知識,幫助大家快速入(zhuang)門(bi)。後面的帖子將對深度自動編碼器,Hopfield 網路長短期記憶網路(LSTM)進行講解。
Ⅳ 自測題5:風險評估方法如何創新
信息安全的至關重要性越來越受到更多人的關注,它牽涉的不只是技術問題,更多的是管理問題。信息安全所涉及的工作是識別、度量和減輕運作信息資產所面臨的風險,或最低限度要記錄這些風險。所以風險評估是信息安全管理中最核心的一環。 ITIL培訓
風險評估是在整個信息安全戰略中有著「知己知彼」的作用,了解機構運作的薄弱環節所在;了解機構的信息是如何處理、存儲和傳送以及機構有何種資源可用;發現與評估機構運作的風險;同時確定怎樣控制和減少那些風險。選擇一種合適的風險評估方法是進行風險評估的關鍵,直接影響評估結果的優劣。
2 常用風險評估方法
2.1 定量分析方法
定量分析方法是根據一定的數據,建立數學模型,再去計算分析各項指標的一種方法。這種方法把整個風險評估的過程和結果量化,然後通過這些被量化的數值對信息系統進行評估判定。常見的定量分析方法有時序序列分析法、因子分析法、聚類分析法、決策樹法等。定量分析方法由於在實際操作過程中要收集大量的數據,所需工作量太大而且有時數據保密而無法獲得或成本過高,純定量分析方法已經很少使用。
2.2 定性分析方法
定性分析方法不需要嚴格的數據來量化各個屬性,它採用人為的判斷、只關注威脅事件所帶來的損失,而忽略事件發生的概率。利用一些非量化的指標對信息系統進行判斷,最後,根據風險評估計算公式得出風險值。常用的定性分析方法有:德爾菲法、OCTAVE方法等。
定性分析方法由於是非量化的,主觀性強,對評估者要求相對較高,可以挖掘出一些蘊藏很深的思想,使評估的結論更全面、更深刻,使用比較廣范。
2.3 定量定性結合分析方法
定量定性結合的分析方法是把前兩種方法結合起來,取長補短,發揮各自的優勢,比如在現場調查階段,針對系統關鍵資產進行定量的調查、分析,提供量化的參考依據,在風險分析階段,可以採用定性的分析形成概念、觀點、作出判斷,得出結論。常用的方法有層次分析法(AHP)、故障樹分析方法、模糊綜合評價法等。定量定性結合的分析方法由於網路環境的多元化,信息安全風險評估的不確定性因素隨之增加,採用這種評估方法,能更精確地對大型系統進行風險評估,是實際應用中最常使用的方法。
3 風險評估新方法的發展
近年來,國內外學者對信息安全風險評估做了大量研究,人們也在探索更科學的理論、技術和方法。本文對風險評估的新方法進行探討,希望有助於新方法的論證和推廣應用。
國內學者基於前面三類常用方法做出了一些研究,將更多的新技術應用到信息安全風險評估中,提出了一些新的評估方法。如基於模糊層次法的評估方法、基於模糊-小波神經網路的評估方法、基於邏輯滲透圖模型的評估方法、基於離散動態貝葉斯網路的評估方法等。
3.1 基於模糊層次法的評估方法
通過對層次分析法和模糊評價法分別進行改進,將兩者有機結合,分析和評估風險事件發生的概率和影響,以確定各風險因素的風險等級,並給出了信息系統的風險控制建議。該方法通過算例表明是一種有效且操作性強的方法。
3.2 基於模糊-小波神經網路的評估方法
此方法是將人工神經網路(ANN)理論應用到風險評估。首先將人工神經網路應用於信息系統風險因素評估,對神經網路的輸入進行了預處理,將模糊系統的輸出作為神經網路的輸入。人工神經網路經過訓練,可以實時地估算風險因素的級別。然後提出了一種信息安全風險評估的小波神經網路模型,該模型以非線性小波基為神經元函數,通過優化伸縮因子和平移因子確定對應各神經元的小波基函數,從而合成小波神經網路。該模型經過訓練後可用於信息、安全風險因素的評估,精度更高。ITIL
3.3 基於邏輯滲透圖模型的評估方法
這是一種基於邏輯滲透圖模型的網路安全風險評估方法)(LEG-SRA),該方法建立了一套識別網路系統需要受保護的安全目標的方法,該方法可將安全目標與網路系統的關信息資產及其安全需求關聯起來。基於這種關聯關系,能夠在真實的業務背景下識別與分析各種風險因素,使風險評估結果和安全改進活動更具有現實意義;基於威脅主體的行為特徵對安全風險的形成過程進行建模,確定威脅主體利用脆弱性製造風險的過程及其蘊含的時序邏輯,並在此基礎上計算安全風險的最大成功概率;採用客觀數據、主觀數據和缺失數據相結合方法進行風險量化評估,通過對原子滲透敏感度和風險概率可信度來調整不確定數據對評估結果的影響,不斷地進行數據採集和計算反饋,從而使得評估結果趨於更加精確和可信;評估結果可以直接支持科學的安全改進活動;針對不同的網路系統可以對評估方法進行定製,根據網路系統實際情況和評估者的意願對評估流程進行動態調整,合理配置資源,突出安全管理的重點;能夠監測風險的變化情況,這幾個方面因素中任何因素的變化都可能觸發新一輪評估周期,以產生新的適應於新形勢的安全方案。
3.4 基於離散動態貝葉斯網路的評估方法
首先用指定的網路初始狀態和條件概率對模型進行初始化;當某一時刻檢測到新的風險指標變數信息,即網路的葉結點信息更新或者說是網路的觀測結點的信息更新,則觸發網路模型推理,通過推理演算法,得到網路風險的後驗概率,從而更新整個網路結點狀態的概率分布,更新後的後驗概率分布則作為下一時刻推理的依據;通過時序觀測數據的不斷輸入模型,可得到網路實時風險,進而採取相應的措施對風險進行實時的控制。
以上四種方法是在對現階段的大量研究進行解讀後得到風險評估的新的方法,通過分析,我們可以得到:由於信息技術應用的更加廣泛、信息安全風險因素難以獲取、不確定性較多的特點,一種風險評估方法難以進行准確的風險分析,就要兩種方法相結合,或者把先進的計算機技術應用到信息安全風險評估中,得到更精確,實踐性更強的評估方法。新方法中的基於模糊層次法的評估方法、基於模糊-小波神經網路的評估方法可以應用於各個風險因素風險級別的計算;基於邏輯滲透圖模型的評估方法、基於離散動態貝葉斯網路的評估方法可以動態的、實時的對網路信息系統進行風險評估。
4 結束語
對信息系統進行風險評估時,選擇不同的方法對評估的有效性佔有舉足輕重的地位,直接影響到評估過程中的每個環節,甚至可以左右最終的評估結果,影響決策者的重大決定。所以在選擇時應該考慮法律、法規、政策和標准要求;電子商務或者電子政務的特殊行業要求;風險評估方法應與風險接受准則和組織相關目標相一致,並能產生可再現的結果;風險評估應包括風險分析和風險評價;風險評估的結果應能識別、量化和區分風險的優先次序,用以指導確定適當的管理措施及其優先順序。
Ⅵ 人工神經網路的應用分析
經過幾十年的發展,神經網路理論在模式識別、自動控制、信號處理、輔助決策、人工智慧等眾多研究領域取得了廣泛的成功。下面介紹神經網路在一些領域中的應用現狀。 在處理許多問題中,信息來源既不完整,又包含假象,決策規則有時相互矛盾,有時無章可循,這給傳統的信息處理方式帶來了很大的困難,而神經網路卻能很好的處理這些問題,並給出合理的識別與判斷。
1.信息處理
現代信息處理要解決的問題是很復雜的,人工神經網路具有模仿或代替與人的思維有關的功能, 可以實現自動診斷、問題求解,解決傳統方法所不能或難以解決的問題。人工神經網路系統具有很高的容錯性、魯棒性及自組織性,即使連接線遭到很高程度的破壞, 它仍能處在優化工作狀態,這點在軍事系統電子設備中得到廣泛的應用。現有的智能信息系統有智能儀器、自動跟蹤監測儀器系統、自動控制制導系統、自動故障診斷和報警系統等。
2. 模式識別
模式識別是對表徵事物或現象的各種形式的信息進行處理和分析,來對事物或現象進行描述、辨認、分類和解釋的過程。該技術以貝葉斯概率論和申農的資訊理論為理論基礎,對信息的處理過程更接近人類大腦的邏輯思維過程。現在有兩種基本的模式識別方法,即統計模式識別方法和結構模式識別方法。人工神經網路是模式識別中的常用方法,近年來發展起來的人工神經網路模式的識別方法逐漸取代傳統的模式識別方法。經過多年的研究和發展,模式識別已成為當前比較先進的技術,被廣泛應用到文字識別、語音識別、指紋識別、遙感圖像識別、人臉識別、手寫體字元的識別、工業故障檢測、精確制導等方面。 由於人體和疾病的復雜性、不可預測性,在生物信號與信息的表現形式上、變化規律(自身變化與醫學干預後變化)上,對其進行檢測與信號表達,獲取的數據及信息的分析、決策等諸多方面都存在非常復雜的非線性聯系,適合人工神經網路的應用。目前的研究幾乎涉及從基礎醫學到臨床醫學的各個方面,主要應用在生物信號的檢測與自動分析,醫學專家系統等。
1. 生物信號的檢測與分析
大部分醫學檢測設備都是以連續波形的方式輸出數據的,這些波形是診斷的依據。人工神經網路是由大量的簡單處理單元連接而成的自適應動力學系統, 具有巨量並行性,分布式存貯,自適應學習的自組織等功能,可以用它來解決生物醫學信號分析處理中常規法難以解決或無法解決的問題。神經網路在生物醫學信號檢測與處理中的應用主要集中在對腦電信號的分析,聽覺誘發電位信號的提取、肌電和胃腸電等信號的識別,心電信號的壓縮,醫學圖像的識別和處理等。
2. 醫學專家系統
傳統的專家系統,是把專家的經驗和知識以規則的形式存儲在計算機中,建立知識庫,用邏輯推理的方式進行醫療診斷。但是在實際應用中,隨著資料庫規模的增大,將導致知識「爆炸」,在知識獲取途徑中也存在「瓶頸」問題,致使工作效率很低。以非線性並行處理為基礎的神經網路為專家系統的研究指明了新的發展方向, 解決了專家系統的以上問題,並提高了知識的推理、自組織、自學習能力,從而神經網路在醫學專家系統中得到廣泛的應用和發展。在麻醉與危重醫學等相關領域的研究中,涉及到多生理變數的分析與預測,在臨床數據中存在著一些尚未發現或無確切證據的關系與現象,信號的處理,干擾信號的自動區分檢測,各種臨床狀況的預測等,都可以應用到人工神經網路技術。 1. 市場價格預測
對商品價格變動的分析,可歸結為對影響市場供求關系的諸多因素的綜合分析。傳統的統計經濟學方法因其固有的局限性,難以對價格變動做出科學的預測,而人工神經網路容易處理不完整的、模糊不確定或規律性不明顯的數據,所以用人工神經網路進行價格預測是有著傳統方法無法相比的優勢。從市場價格的確定機制出發,依據影響商品價格的家庭戶數、人均可支配收入、貸款利率、城市化水平等復雜、多變的因素,建立較為准確可靠的模型。該模型可以對商品價格的變動趨勢進行科學預測,並得到准確客觀的評價結果。
2. 風險評估
風險是指在從事某項特定活動的過程中,因其存在的不確定性而產生的經濟或財務的損失、自然破壞或損傷的可能性。防範風險的最佳辦法就是事先對風險做出科學的預測和評估。應用人工神經網路的預測思想是根據具體現實的風險來源, 構造出適合實際情況的信用風險模型的結構和演算法,得到風險評價系數,然後確定實際問題的解決方案。利用該模型進行實證分析能夠彌補主觀評估的不足,可以取得滿意效果。 從神經網路模型的形成開始,它就與心理學就有著密不可分的聯系。神經網路抽象於神經元的信息處理功能,神經網路的訓練則反映了感覺、記憶、學習等認知過程。人們通過不斷地研究, 變化著人工神經網路的結構模型和學習規則,從不同角度探討著神經網路的認知功能,為其在心理學的研究中奠定了堅實的基礎。近年來,人工神經網路模型已經成為探討社會認知、記憶、學習等高級心理過程機制的不可或缺的工具。人工神經網路模型還可以對腦損傷病人的認知缺陷進行研究,對傳統的認知定位機制提出了挑戰。
雖然人工神經網路已經取得了一定的進步,但是還存在許多缺陷,例如:應用的面不夠寬闊、結果不夠精確;現有模型演算法的訓練速度不夠高;演算法的集成度不夠高;同時我們希望在理論上尋找新的突破點, 建立新的通用模型和演算法。需進一步對生物神經元系統進行研究,不斷豐富人們對人腦神經的認識。
Ⅶ 神經網路分析法的神經網路分析法在風險評估的運用
神經網路分析方法應用於信用風險評估的優點在於其無嚴格的假設限制,且具有處理非線性問題的能力。它能有效解決非正態分布、非線性的信用評估問題,其結果介於0與1之間,在信用風險的衡量下,即為違約概率。神經網路法的最大缺點是其工作的隨機性較強。因此使該模型的應用受到了限制。Altman、marco和varetto(1994)在對義大利公司財務危機預測中應用了神經網路分析法;coats及fant(1993)trippi採用神經網路分析法分別對美國公司和銀行財務危機進行預測,取得較好效果。然而,要得到一個較好的神經網路結構,需要人為隨機調試,需要耗費大量人力和時間,加之該方法結論沒有統計理論基礎,解釋性不強,所以應用受到很大限制。
Ⅷ 財務風險評價方法有哪些
財務風險評價的方法
1、單變數判定模型。這種方法用單一的財務比率來評價企業財務風險,依據是:企業出現財務困境時,其財務比率和正常企業的財務比率有顯著差別。一般認為,比較重要的財務比率是:現金流量/負債總額、資產收益率、資產負債率。
單變數模型將財務指標用於風險評價是一大進步,指標單一,簡單易行,但是不可避免會出現評價的片面性。這種方法在人們開始認識財務風險時採用,但隨著經營環境的日益復雜、多變,單一的指標已不能全面反映企業的綜合財務狀況。
2、多元線性評價模型。它的形式是:Z=1.2x1+1.4x2+3.3x3+0.6x4+0.999x5.Z:判別函數值;x1:營運資金/資產總額; x2:留存收益/資產總額;x3:息稅前利潤/資產總額;x4:普通股和優先股市場價值總額/負債賬面價值總額;x5:銷售收入/資產總額。Z值應在1.81~ 2.99之間,Z=2.675時居中。Z>2。675時,企業財務狀況良好;Z<1.81時,企業存在很大的破產風險;Z值處於1.81~ 2.99之間,稱為「灰色地帶」,這個區間的企業財務極不穩定。
多元線性模型在單一式的基礎上趨向綜合,且把財務風險概括在某一范圍內,這是它的突破,但仍沒有考慮企業的成長能力,同時它的假設條件是變數服從多元正態分布,沒有解決變數之間的相關性問題。這種方法在現實中比較常見。
3、綜合評價法。這種方法認為,企業財務風險評價的內容主要是盈利能力,其次是償債能力,此外還有成長能力,它們之間大致按5∶3∶2來分配。盈利能力的 主要指標是資產凈利率、銷售凈利率、凈值報酬率,按2∶2∶1安排分值;償債能力有4個常用指標:自有資金比率、流動比率、應收賬款周轉率、存貨周轉率, 分值比為1;成長能力有3個指標:銷售增長率、凈利增長率、人均凈利增長率,分值比為1,總分為100分。
這里的關鍵是確定標准評分值和標准比率,需要經過長時間實踐,主觀性比較強。這種方法以及下面的概率模型在應用中很普遍。
4、概率模型。二元Logistic概率函數又稱增長函數,其形式為:
P是二元Logistic函數的計算結果,a是常數項,bi是斜率,xi是自變數,將上式變形:
計算的結果P是事件發生的概率,所以將回歸因變數的值域定義在(0,1)上。
5、神經網路分析模型。上面的財務風險評價方法是靜態的,神經網路分析模型實現了企業財務風險的動態評價。20世紀90年代,Fletcher,Goss 和Altman等國外研究者將神經網路分析應用於財務預警模型。它由一個輸入層、若干中間層和一個輸出層構成;它不需要主觀定性地判斷企業財務風險狀態, 但是比較復雜,技術要求高,工作隨機性強,所以在應用中易受到限制。
Ⅸ SPSS統計分析案例:多層感知器神經網路
SPSS統計分析案例:多層感知器神經網路
神經網路模型起源於對人類大腦思維模式的研究,它是一個非線性的數據建模工具, 由輸入層和輸出層、 一個或者多個隱藏層構成神經元,神經元之間的連接賦予相關的權重, 訓練學習演算法在迭代過程中不斷調整這些權重,從而使得預測誤差最小化並給出預測精度。
在SPSS神經網路中,包括多層感知器(MLP)和徑向基函數(RBF)兩種方法。
本期主要學習多層感知器神經網路,要把它講清楚是比較困難的,為了能直觀感受它的功能,首先以一個案例開始,最後再總結知識。
案例數據
該數據文件涉及某銀行在降低貸款拖欠率方面的舉措。該文件包含 700 位過去曾獲得貸款的客戶財務和人口統計信息。請使用這 700 名客戶的隨機樣本創建多層感知器神經網路模型。銀行需要此模型對新的客戶數據按高或低信用風險對他們進行分類。
第一次分析:菜單參數
要運行「多層感知器」分析,請從菜單中選擇:
分析 > 神經網路 > 多層感知器
如上圖所示,MLP主面板共有8個選項卡,至少需要設置其中"變數"、"分區"、"輸出"、"保存"、"導出"等5個選項卡,其他接受軟體默認設置。
▌ "變數"選項卡
將"是否拖欠"移入因變數框;
將分類變數"學歷"移入因子框,其他數值變數移入"協變數"框;
因各協變數量綱不同,選擇"標准化"處理;
▌ "分區"選項卡
在此之前,首先在 "轉換 > 隨機數生成器"菜單中設置隨機數固定種子為9191972(此處同SPSS官方文檔,用戶可以自由設定),因為"分區"選項卡中,要求對原始數據文件進行隨機化抽樣,將數據劃分為"訓練樣本"、"支持樣本"、"檢驗樣本"3個區塊,為了隨機過程可重復,所以此處指定固定種子一枚;
初次建模,先抽樣70%作為訓練樣本,用於完成自學習構建神經網路模型,30%作為支持樣本,用於評估所建立模型的性能,暫不分配檢驗樣本;
▌ "輸出"選項卡
勾選"描述"、"圖";
勾選"模型摘要"、"分類結果"、"預測實測圖";
勾選"個案處理摘要";
構成"自變數重要性分析";
這是第一次嘗試性的分析,主要參數設置如上,其他選項卡接受軟體默認設置,最後返回主面板,點擊"確定"按鈕,軟體開始執行MLP過程。
第一次分析產生的結果:
主要看重點的結果,依次如下:
個案處理摘要表,700個貸款客戶的記錄,其中480個客戶被分配到訓練樣本,佔比68.6%,另外220個客戶分配為支持樣本。
模型摘要表,首次構建的MLP神經網路模型其不正確預測百分比為12.7%,獨立的支持樣本檢驗模型的不正確百分比為20.9%,提示"超出最大時程數",模型非正常規則中止,顯示有過度學習的嫌疑。
判斷:首次建立的模型需要預防過度訓練。
第二次分析:菜單參數
首次分析懷疑訓練過度,所以第二次分析主要是新增檢驗樣本以及輸出最終的模型結果。
運行「多層感知器」分析,請從菜單中選擇:
分析 > 神經網路 > 多層感知器
▌ "分區"選項卡
對樣本進行重新分配,總700樣本,支持樣本繼續30%,訓練樣本由原來的70%縮減至50%,另外的20%分配給獨立的檢驗樣本空間;
▌ "保存"選項卡
保存每個因變數的預測值或類別;
保存每個因變數的預測擬概率;
▌ "導出"選項卡
將突觸權重估算值導出到XML文件;
給XML模型文件起名並制定存放路徑;
其他選項卡的操作和第一次分析保持一致。返回主面板,點擊"確定"開始執行第二次分析。
第一次分析產生的結果:
總樣本在3個分區的分配比例。
MLP神經網路圖,模型包括1個輸入層、1個隱藏層和1個輸出層,輸入層神經元個數12個,隱藏層9個,輸出層2個。
模型摘要表,模型誤差在1個連續步驟中未出現優化減少現象,模型按預定中止。模型在3個分區中的不正確預測百分比較接近。
模型分類表,軟體默認採用0.5作為正確和錯誤的概率分界,將3大分區樣本的正確率進行交叉對比,顯示出預測為NO,即預測為不拖欠的概率高於拖欠,模型對有拖欠的貸款客戶風險識別能力較低。
預測-實測圖,按照貸款客戶是否拖欠與預測結果進行分組,縱坐標為預測概率。以0.5為分界時,對優質客戶的識別效果較好,但是有較大的概率在識別有拖欠客戶上出錯。
顯然以0.5作為分界並不是最優解,可以嘗試將分界下移至0.3左右,此操作會使第四個箱圖中大量欠貸客戶正確地重新分類為欠貸者,提高風險識別能力。
自變數重要性圖,重要性圖為重要性表格中值的條形圖,以重要性值降序排序。其顯示與客戶穩定性(employ、address)和負債(creddebt、debtinc)相關的變數對於網路如何對客戶進行分類有重大影響;
最後來看導出的XML模型文件:
以XML文件存儲了第二次構建的MLP神經網路模型,可以用於新客戶的分類和風險識別。
新客戶分類
假設現在有150名新客戶,現在需要採用此前建立的模型,對這些客戶進行快速的風險分類和識別。
打開新客戶數據,菜單中選擇:
實用程序 > 評分向導
型"XML文件,點擊"下一步":
檢查新數據文件變數的定義是否准確。下一步。
選擇輸出"預測類別的概率"、"預測值"。完成。
新客戶數據文件新增3列,分別給出每一個新客戶的預測概率和風險分類(是否欠貸)。
多層感知器神經網路 總結
一種前饋式有監督的學習技術;
多層感知器可以發現極為復雜的關系;
如果因變數是分類型,神經網路會根據輸入數據,將記錄劃分為最適合的類別;
如果因變數是連續型,神將網路預測的連續值是輸入數據的某個連續函數;
建議創建訓練-檢驗-支持三個分區,網路訓練學習將更有效;
可將模型導出成 XML 格式對新的數據進行打分;
Ⅹ 人工神經網路概念梳理與實例演示
人工神經網路概念梳理與實例演示
神經網路是一種模仿生物神經元的機器學習模型,數據從輸入層進入並流經激活閾值的多個節點。
遞歸性神經網路一種能夠對之前輸入數據進行內部存儲記憶的神經網路,所以他們能夠學習到數據流中的時間依賴結構。
如今機器學習已經被應用到很多的產品中去了,例如,siri、Google Now等智能助手,推薦引擎——亞馬遜網站用於推薦商品的推薦引擎,Google和Facebook使用的廣告排名系統。最近,深度學習的一些進步將機器學習帶入公眾視野:AlphaGo 打敗圍棋大師李世石事件以及一些圖片識別和機器翻譯等新產品的出現。
在這部分中,我們將介紹一些強大並被普遍使用的機器學習技術。這當然包括一些深度學習以及一些滿足現代業務需求傳統方法。讀完這一系列的文章之後,你就掌握了必要的知識,便可以將具體的機器學習實驗應用到你所在的領域當中。
隨著深層神經網路的精度的提高,語音和圖像識別技術的應用吸引了大眾的注意力,關於AI和深度學習的研究也變得更加普遍了。但是怎麼能夠讓它進一步擴大影響力,更受歡迎仍然是一個問題。這篇文章的主要內容是:簡述前饋神經網路和遞歸神經網路、怎樣搭建一個遞歸神經網路對時間系列數據進行異常檢測。為了讓我們的討論更加具體化,我們將演示一下怎麼用Deeplearning4j搭建神經網路。
一、什麼是神經網路?
人工神經網路演算法的最初構思是模仿生物神經元。但是這個類比很不可靠。人工神經網路的每一個特徵都是對生物神經元的一種折射:每一個節點與激活閾值、觸發的連接。
連接人工神經元系統建立起來之後,我們就能夠對這些系統進行訓練,從而讓他們學習到數據中的一些模式,學到之後就能執行回歸、分類、聚類、預測等功能。
人工神經網路可以看作是計算節點的集合。數據通過這些節點進入神經網路的輸入層,再通過神經網路的隱藏層直到關於數據的一個結論或者結果出現,這個過程才會停止。神經網路產出的結果會跟預期的結果進行比較,神經網路得出的結果與正確結果的不同點會被用來更正神經網路節點的激活閾值。隨著這個過程的不斷重復,神經網路的輸出結果就會無限靠近預期結果。
二、訓練過程
在搭建一個神經網路系統之前,你必須先了解訓練的過程以及網路輸出結果是怎麼產生的。然而我們並不想過度深入的了解這些方程式,下面是一個簡短的介紹。
網路的輸入節點收到一個數值數組(或許是叫做張量多維度數組)就代表輸入數據。例如, 圖像中的每個像素可以表示為一個標量,然後將像素傳遞給一個節點。輸入數據將會與神經網路的參數相乘,這個輸入數據被擴大還是減小取決於它的重要性,換句話說,取決於這個像素就不會影響神經網路關於整個輸入數據的結論。
起初這些參數都是隨機的,也就是說神經網路在建立初期根本就不了解數據的結構。每個節點的激活函數決定了每個輸入節點的輸出結果。所以每個節點是否能夠被激活取決於它是否接受到足夠的刺激強度,即是否輸入數據和參數的結果超出了激活閾值的界限。
在所謂的密集或完全連接層中,每個節點的輸出值都會傳遞給後續層的節點,在通過所有隱藏層後最終到達輸出層,也就是產生輸入結果的地方。在輸出層, 神經網路得到的最終結論將會跟預期結論進行比較(例如,圖片中的這些像素代表一隻貓還是狗?)。神經網路猜測的結果與正確結果的計算誤差都會被納入到一個測試集中,神經網路又會利用這些計算誤差來不斷更新參數,以此來改變圖片中不同像素的重要程度。整個過程的目的就是降低輸出結果與預期結果的誤差,正確地標注出這個圖像到底是不是一條狗。
深度學習是一個復雜的過程,由於大量的矩陣系數需要被修改所以它就涉及到矩陣代數、衍生品、概率和密集的硬體使用問題,但是用戶不需要全部了解這些復雜性。
但是,你也應該知道一些基本參數,這將幫助你理解神經網路函數。這其中包括激活函數、優化演算法和目標函數(也稱為損失、成本或誤差函數)。
激活函數決定了信號是否以及在多大程度上應該被發送到連接節點。階梯函數是最常用的激活函數, 如果其輸入小於某個閾值就是0,如果其輸入大於閾值就是1。節點都會通過階梯激活函數向連接節點發送一個0或1。優化演算法決定了神經網路怎麼樣學習,以及測試完誤差後,權重怎麼樣被更准確地調整。最常見的優化演算法是隨機梯度下降法。最後, 成本函數常用來衡量誤差,通過對比一個給定訓練樣本中得出的結果與預期結果的不同來評定神經網路的執行效果。
Keras、Deeplearning4j 等開源框架讓創建神經網路變得簡單。創建神經網路結構時,需要考慮的是怎樣將你的數據類型匹配到一個已知的被解決的問題,並且根據你的實際需求來修改現有結構。
三、神經網路的類型以及應用
神經網路已經被了解和應用了數十年了,但是最近的一些技術趨勢才使得深度神經網路變得更加高效。
GPUs使得矩陣操作速度更快;分布式計算結構讓計算能力大大增強;多個超參數的組合也讓迭代的速度提升。所有這些都讓訓練的速度大大加快,迅速找到適合的結構。
隨著更大數據集的產生,類似於ImageNet 的大型高質量的標簽數據集應運而生。機器學習演算法訓練的數據越大,那麼它的准確性就會越高。
最後,隨著我們理解能力以及神經網路演算法的不斷提升,神經網路的准確性在語音識別、機器翻譯以及一些機器感知和面向目標的一些任務等方面不斷刷新記錄。
盡管神經網路架構非常的大,但是主要用到的神經網路種類也就是下面的幾種。
3.1前饋神經網路
前饋神經網路包括一個輸入層、一個輸出層以及一個或多個的隱藏層。前饋神經網路可以做出很好的通用逼近器,並且能夠被用來創建通用模型。
這種類型的神經網路可用於分類和回歸。例如,當使用前饋網路進行分類時,輸出層神經元的個數等於類的數量。從概念上講, 激活了的輸出神經元決定了神經網路所預測的類。更准確地說, 每個輸出神經元返回一個記錄與分類相匹配的概率數,其中概率最高的分類將被選為模型的輸出分類。
前饋神經網路的優勢是簡單易用,與其他類型的神經網路相比更簡單,並且有一大堆的應用實例。
3.2卷積神經網路
卷積神經網路和前饋神經網路是非常相似的,至少是數據的傳輸方式類似。他們結構大致上是模仿了視覺皮層。卷積神經網路通過許多的過濾器。這些過濾器主要集中在一個圖像子集、補丁、圖塊的特徵識別上。每一個過濾器都在尋找不同模式的視覺數據,例如,有的可能是找水平線,有的是找對角線,有的是找垂直的。這些線條都被看作是特徵,當過濾器經過圖像時,他們就會構造出特徵圖譜來定位各類線是出現在圖像的哪些地方。圖像中的不同物體,像貓、747s、榨汁機等都會有不同的圖像特徵,這些圖像特徵就能使圖像完成分類。卷積神經網路在圖像識別和語音識別方面是非常的有效的。
卷積神經網路與前饋神經網路在圖像識別方面的異同比較。雖然這兩種網路類型都能夠進行圖像識別,但是方式卻不同。卷積神經網路是通過識別圖像的重疊部分,然後學習識別不同部分的特徵進行訓練;然而,前饋神經網路是在整張圖片上進行訓練。前饋神經網路總是在圖片的某一特殊部分或者方向進行訓練,所以當圖片的特徵出現在其他地方時就不會被識別到,然而卷積神經網路卻能夠很好的避免這一點。
卷積神經網路主要是用於圖像、視頻、語音、聲音識別以及無人駕駛的任務。盡管這篇文章主要是討論遞歸神經網路的,但是卷積神經網路在圖像識別方面也是非常有效的,所以很有必要了解。
3.3遞歸神經網路
與前饋神經網路不同的是,遞歸神經網路的隱藏層的節點里有內部記憶存儲功能,隨著輸入數據的改變而內部記憶內容不斷被更新。遞歸神經網路的結論都是基於當前的輸入和之前存儲的數據而得出的。遞歸神經網路能夠充分利用這種內部記憶存儲狀態處理任意序列的數據,例如時間序列。
遞歸神經網路經常用於手寫識別、語音識別、日誌分析、欺詐檢測和網路安全。
遞歸神經網路是處理時間維度數據集的最好方法,它可以處理以下數據:網路日誌和伺服器活動、硬體或者是醫療設備的感測器數據、金融交易、電話記錄。想要追蹤數據在不同階段的依賴和關聯關系需要你了解當前和之前的一些數據狀態。盡管我們通過前饋神經網路也可以獲取事件,隨著時間的推移移動到另外一個事件,這將使我們限制在對事件的依賴中,所以這種方式很不靈活。
追蹤在時間維度上有長期依賴的數據的更好方法是用內存來儲存重要事件,以使近期事件能夠被理解和分類。遞歸神經網路最好的一點就是在它的隱藏層裡面有「內存」可以學習到時間依賴特徵的重要性。
接下來我們將討論遞歸神經網路在字元生成器和網路異常檢測中的應用。遞歸神經網路可以檢測出不同時間段的依賴特徵的能力使得它可以進行時間序列數據的異常檢測。
遞歸神經網路的應用
網路上有很多使用RNNs生成文本的例子,遞歸神經網路經過語料庫的訓練之後,只要輸入一個字元,就可以預測下一個字元。下面讓我們通過一些實用例子發現更多RNNs的特徵。
應用一、RNNs用於字元生成
遞歸神經網路經過訓練之後可以把英文字元當做成一系列的時間依賴事件。經過訓練後它會學習到一個字元經常跟著另外一個字元(「e」經常跟在「h」後面,像在「the、he、she」中)。由於它能預測下一個字元是什麼,所以它能有效地減少文本的輸入錯誤。
Java是個很有趣的例子,因為它的結構包括很多嵌套結構,有一個開的圓括弧必然後面就會有一個閉的,花括弧也是同理。他們之間的依賴關系並不會在位置上表現的很明顯,因為多個事件之間的關系不是靠所在位置的距離確定的。但是就算是不明確告訴遞歸神經網路Java中各個事件的依賴關系,它也能自己學習了解到。
在異常檢測當中,我們要求神經網路能夠檢測出數據中相似、隱藏的或許是並不明顯的模式。就像是一個字元生成器在充分地了解數據的結構後就會生成一個數據的擬像,遞歸神經網路的異常檢測就是在其充分了解數據結構後來判斷輸入的數據是不是正常。
字元生成的例子表明遞歸神經網路有在不同時間范圍內學習到時間依賴關系的能力,它的這種能力還可以用來檢測網路活動日誌的異常。
異常檢測能夠使文本中的語法錯誤浮出水面,這是因為我們所寫的東西是由語法結構所決定的。同理,網路行為也是有結構的,它也有一個能夠被學習的可預測模式。經過在正常網路活動中訓練的遞歸神經網路可以監測到入侵行為,因為這些入侵行為的出現就像是一個句子沒有標點符號一樣異常。
應用二、一個網路異常檢測項目的示例
假設我們想要了解的網路異常檢測就是能夠得到硬體故障、應用程序失敗、以及入侵的一些信息。
模型將會向我們展示什麼呢?
隨著大量的網路活動日誌被輸入到遞歸神經網路中去,神經網路就能學習到正常的網路活動應該是什麼樣子的。當這個被訓練的網路被輸入新的數據時,它就能偶判斷出哪些是正常的活動,哪些是被期待的,哪些是異常的。
訓練一個神經網路來識別預期行為是有好處的,因為異常數據不多,或者是不能夠准確的將異常行為進行分類。我們在正常的數據里進行訓練,它就能夠在未來的某個時間點提醒我們非正常活動的出現。
說句題外話,訓練的神經網路並不一定非得識別到特定事情發生的特定時間點(例如,它不知道那個特殊的日子就是周日),但是它一定會發現一些值得我們注意的一些更明顯的時間模式和一些可能並不明顯的事件之間的聯系。
我們將概述一下怎麼用 Deeplearning4j(一個在JVM上被廣泛應用的深度學習開源資料庫)來解決這個問題。Deeplearning4j在模型開發過程中提供了很多有用的工具:DataVec是一款為ETL(提取-轉化-載入)任務准備模型訓練數據的集成工具。正如Sqoop為Hadoop載入數據,DataVec將數據進行清洗、預處理、規范化與標准化之後將數據載入到神經網路。這跟Trifacta』s Wrangler也相似,只不過它更關注二進制數據。
開始階段
第一階段包括典型的大數據任務和ETL:我們需要收集、移動、儲存、准備、規范化、矢量話日誌。時間跨度的長短是必須被規定好的。數據的轉化需要花費一些功夫,這是由於JSON日誌、文本日誌、還有一些非連續標注模式都必須被識別並且轉化為數值數組。DataVec能夠幫助進行轉化和規范化數據。在開發機器學習訓練模型時,數據需要分為訓練集和測試集。
訓練神經網路
神經網路的初始訓練需要在訓練數據集中進行。
在第一次訓練的時候,你需要調整一些超參數以使模型能夠實現在數據中學習。這個過程需要控制在合理的時間內。關於超參數我們將在之後進行討論。在模型訓練的過程中,你應該以降低錯誤為目標。
但是這可能會出現神經網路模型過度擬合的風險。有過度擬合現象出現的模型往往會在訓練集中的很高的分數,但是在遇到新的數據時就會得出錯誤結論。用機器學習的語言來說就是它不夠通用化。Deeplearning4J提供正則化的工具和「過早停止」來避免訓練過程中的過度擬合。
神經網路的訓練是最花費時間和耗費硬體的一步。在GPUs上訓練能夠有效的減少訓練時間,尤其是做圖像識別的時候。但是額外的硬體設施就帶來多餘的花銷,所以你的深度學習的框架必須能夠有效的利用硬體設施。Azure和亞馬遜等雲服務提供了基於GPU的實例,神經網路還可以在異構集群上進行訓練。
創建模型
Deeplearning4J提供ModelSerializer來保存訓練模型。訓練模型可以被保存或者是在之後的訓練中被使用或更新。
在執行異常檢測的過程中,日誌文件的格式需要與訓練模型一致,基於神經網路的輸出結果,你將會得到是否當前的活動符合正常網路行為預期的結論。
代碼示例
遞歸神經網路的結構應該是這樣子的:
MultiLayerConfiguration conf = new NeuralNetConfiguration.Builder(
.seed(123)
.optimizationAlgo(OptimizationAlgorithm.STOCHASTIC_GRADIENT_DESCENT).iterations(1)
.weightInit(WeightInit.XAVIER)
.updater(Updater.NESTEROVS).momentum(0.9)
.learningRate(0.005)
.gradientNormalization(GradientNormalization.ClipElementWiseAbsoluteValue)
.(0.5)
.list()
.layer(0, new GravesLSTM.Builder().activation("tanh").nIn(1).nOut(10).build())
.layer(1, new RnnOutputLayer.Builder(LossFunctions.LossFunction.MCXENT)
.activation("softmax").nIn(10).nOut(numLabelClasses).build())
.pretrain(false).backprop(true).build();
MultiLayerNetwork net = new MultiLayerNetwork(conf);
net.init();
下面解釋一下幾行重要的代碼:
.seed(123)
隨機設置一個種子值對神經網路的權值進行初始化,以此獲得一個有復驗性的結果。系數通常都是被隨機的初始化的,以使我們在調整其他超參數時仍獲得一致的結果。我們需要設定一個種子值,讓我們在調整和測試的時候能夠用這個隨機的權值。
.optimizationAlgo(OptimizationAlgorithm.STOCHASTIC_GRADIENT_DESCENT).iterations(1)
決定使用哪個最優演算法(在這個例子中是隨機梯度下降法)來調整權值以提高誤差分數。你可能不需要對這個進行修改。
.learningRate(0.005)
當我們使用隨機梯度下降法的時候,誤差梯度就被計算出來了。在我們試圖將誤差值減到最小的過程中,權值也隨之變化。SGD給我們一個讓誤差更小的方向,這個學習效率就決定了我們該在這個方向上邁多大的梯度。如果學習效率太高,你可能是超過了誤差最小值;如果太低,你的訓練可能將會永遠進行。這是一個你需要調整的超參數。