❶ 人工神經網路的發展趨勢
人工神經網路特有的非線性適應性信息處理能力,克服了傳統人工智慧方法對於直覺,如模式、語音識別、非結構化信息處理方面的缺陷,使之在神經專家系統、模式識別、智能控制、組合優化、預測等領域得到成功應用。人工神經網路與其它傳統方法相結合,將推動人工智慧和信息處理技術不斷發展。近年來,人工神經網路正向模擬人類認知的道路上更加深入發展,與模糊系統、遺傳演算法、進化機制等結合,形成計算智能,成為人工智慧的一個重要方向,將在實際應用中得到發展。將信息幾何應用於人工神經網路的研究,為人工神經網路的理論研究開辟了新的途徑。神經計算機的研究發展很快,已有產品進入市場。光電結合的神經計算機為人工神經網路的發展提供了良好條件。
神經網路在很多領域已得到了很好的應用,但其需要研究的方面還很多。其中,具有分布存儲、並行處理、自學習、自組織以及非線性映射等優點的神經網路與其他技術的結合以及由此而來的混合方法和混合系統,已經成為一大研究熱點。由於其他方法也有它們各自的優點,所以將神經網路與其他方法相結合,取長補短,繼而可以獲得更好的應用效果。目前這方面工作有神經網路與模糊邏輯、專家系統、遺傳演算法、小波分析、混沌、粗集理論、分形理論、證據理論和灰色系統等的融合。
下面主要就神經網路與小波分析、混沌、粗集理論、分形理論的融合進行分析。
與小波分析的結合
1981年,法國地質學家Morlet在尋求地質數據時,通過對Fourier變換與加窗Fourier變換的異同、特點及函數構造進行創造性的研究,首次提出了小波分析的概念,建立了以他的名字命名的Morlet小波。1986年以來由於YMeyer、S.Mallat及IDaubechies等的奠基工作,小波分析迅速發展成為一門新興學科。Meyer所著的小波與運算元,Daubechies所著的小波十講是小波研究領域最權威的著作。
小波變換是對Fourier分析方法的突破。它不但在時域和頻域同時具有良好的局部化性質,而且對低頻信號在頻域和對高頻信號在時域里都有很好的解析度,從而可以聚集到對象的任意細節。小波分析相當於一個數學顯微鏡,具有放大、縮小和平移功能,通過檢查不同放大倍數下的變化來研究信號的動態特性。因此,小波分析已成為地球物理、信號處理、圖像處理、理論物理等諸多領域的強有力工具。
小波神經網路將小波變換良好的時頻局域化特性和神經網路的自學習功能相結合,因而具有較強的逼近能力和容錯能力。在結合方法上,可以將小波函數作為基函數構造神經網路形成小波網路,或者小波變換作為前饋神經網路的輸入前置處理工具,即以小波變換的多解析度特性對過程狀態信號進行處理,實現信噪分離,並提取出對加工誤差影響最大的狀態特性,作為神經網路的輸入。
小波神經網路在電機故障診斷、高壓電網故障信號處理與保護研究、軸承等機械故障診斷以及許多方面都有應用,將小波神經網路用於感應伺服電機的智能控制,使該系統具有良好的跟蹤控制性能,以及好的魯棒性,利用小波包神經網路進行心血管疾病的智能診斷,小波層進行時頻域的自適應特徵提取,前向神經網路用來進行分類,正確分類率達到94%。
小波神經網路雖然應用於很多方面,但仍存在一些不足。從提取精度和小波變換實時性的要求出發,有必要根據實際情況構造一些適應應用需求的特殊小波基,以便在應用中取得更好的效果。另外,在應用中的實時性要求,也需要結合DSP的發展,開發專門的處理晶元,從而滿足這方面的要求。
混沌神經網路
混沌第一個定義是上世紀70年代才被Li-Yorke第一次提出的。由於它具有廣泛的應用價值,自它出現以來就受到各方面的普遍關注。混沌是一種確定的系統中出現的無規則的運動,混沌是存在於非線性系統中的一種較為普遍的現象,混沌運動具有遍歷性、隨機性等特點,能在一定的范圍內按其自身規律不重復地遍歷所有狀態。混沌理論所決定的是非線性動力學混沌,目的是揭示貌似隨機的現象背後可能隱藏的簡單規律,以求發現一大類復雜問題普遍遵循的共同規律。
1990年Kaihara、T.Takabe和M.Toyoda等人根據生物神經元的混沌特性首次提出混沌神經網路模型,將混沌學引入神經網路中,使得人工神經網路具有混沌行為,更加接近實際的人腦神經網路,因而混沌神經網路被認為是可實現其真實世界計算的智能信息處理系統之一,成為神經網路的主要研究方向之一。
與常規的離散型Hopfield神經網路相比較,混沌神經網路具有更豐富的非線性動力學特性,主要表現如下:在神經網路中引入混沌動力學行為;混沌神經網路的同步特性;混沌神經網路的吸引子。
當神經網路實際應用中,網路輸入發生較大變異時,應用網路的固有容錯能力往往感到不足,經常會發生失憶現象。混沌神經網路動態記憶屬於確定性動力學運動,記憶發生在混沌吸引子的軌跡上,通過不斷地運動(回憶過程)一一聯想到記憶模式,特別對於那些狀態空間分布的較接近或者發生部分重疊的記憶模式,混沌神經網路總能通過動態聯想記憶加以重現和辨識,而不發生混淆,這是混沌神經網路所特有的性能,它將大大改善Hopfield神經網路的記憶能力。混沌吸引子的吸引域存在,形成了混沌神經網路固有容錯功能。這將對復雜的模式識別、圖像處理等工程應用發揮重要作用。
混沌神經網路受到關注的另一個原因是混沌存在於生物體真實神經元及神經網路中,並且起到一定的作用,動物學的電生理實驗已證實了這一點。
混沌神經網路由於其復雜的動力學特性,在動態聯想記憶、系統優化、信息處理、人工智慧等領域受到人們極大的關注。針對混沌神經網路具有聯想記憶功能,但其搜索過程不穩定,提出了一種控制方法可以對混沌神經網路中的混沌現象進行控制。研究了混沌神經網路在組合優化問題中的應用。
為了更好的應用混沌神經網路的動力學特性,並對其存在的混沌現象進行有效的控制,仍需要對混沌神經網路的結構進行進一步的改進和調整,以及混沌神經網路演算法的進一步研究。
基於粗集理論
粗糙集(Rough Sets)理論是1982年由波蘭華沙理工大學教授Z.Pawlak首先提出,它是一個分析數據的數學理論,研究不完整數據、不精確知識的表達、學習、歸納等方法。粗糙集理論是一種新的處理模糊和不確定性知識的數學工具,其主要思想就是在保持分類能力不變的前提下,通過知識約簡,導出問題的決策或分類規則。目前,粗糙集理論已被成功應用於機器學習、決策分析、過程式控制制、模式識別與數據挖掘等領域。
粗集和神經網路的共同點是都能在自然環境下很好的工作,但是,粗集理論方法模擬人類的抽象邏輯思維,而神經網路方法模擬形象直覺思維,因而二者又具有不同特點。粗集理論方法以各種更接近人們對事物的描述方式的定性、定量或者混合性信息為輸入,輸入空間與輸出空間的映射關系是通過簡單的決策表簡化得到的,它考慮知識表達中不同屬性的重要性確定哪些知識是冗餘的,哪些知識是有用的,神經網路則是利用非線性映射的思想和並行處理的方法,用神經網路本身結構表達輸入與輸出關聯知識的隱函數編碼。
在粗集理論方法和神經網路方法處理信息中,兩者存在很大的兩個區別:其一是神經網路處理信息一般不能將輸入信息空間維數簡化,當輸入信息空間維數較大時,網路不僅結構復雜,而且訓練時間也很長;而粗集方法卻能通過發現數據間的關系,不僅可以去掉冗餘輸入信息,而且可以簡化輸入信息的表達空間維數。其二是粗集方法在實際問題的處理中對雜訊較敏感,因而用無雜訊的訓練樣本學習推理的結果在有雜訊的環境中應用效果不佳。而神經網路方法有較好的抑制雜訊干擾的能力。
因此將兩者結合起來,用粗集方法先對信息進行預處理,即把粗集網路作為前置系統,再根據粗集方法預處理後的信息結構,構成神經網路信息處理系統。通過二者的結合,不但可減少信息表達的屬性數量,減小神經網路構成系統的復雜性,而且具有較強的容錯及抗干擾能力,為處理不確定、不完整信息提供了一條強有力的途徑。
目前粗集與神經網路的結合已應用於語音識別、專家系統、數據挖掘、故障診斷等領域,將神經網路和粗集用於聲源位置的自動識別,將神經網路和粗集用於專家系統的知識獲取中,取得比傳統專家系統更好的效果,其中粗集進行不確定和不精確數據的處理,神經網路進行分類工作。
雖然粗集與神經網路的結合已應用於許多領域的研究,為使這一方法發揮更大的作用還需考慮如下問題:模擬人類抽象邏輯思維的粗集理論方法和模擬形象直覺思維的神經網路方法更加有效的結合;二者集成的軟體和硬體平台的開發,提高其實用性。
與分形理論的結合
自從美國哈佛大學數學系教授Benoit B. Mandelbrot於20世紀70年代中期引入分形這一概念,分形幾何學(Fractal geometry)已經發展成為科學的方法論--分形理論,且被譽為開創了20世紀數學重要階段。現已被廣泛應用於自然科學和社會科學的幾乎所有領域,成為現今國際上許多學科的前沿研究課題之一。
由於在許多學科中的迅速發展,分形已成為一門描述自然界中許多不規則事物的規律性的學科。它已被廣泛應用在生物學、地球地理學、天文學、計算機圖形學等各個領域。
用分形理論來解釋自然界中那些不規則、不穩定和具有高度復雜結構的現象,可以收到顯著的效果,而將神經網路與分形理論相結合,充分利用神經網路非線性映射、計算能力、自適應等優點,可以取得更好的效果。
分形神經網路的應用領域有圖像識別、圖像編碼、圖像壓縮,以及機械設備系統的故障診斷等。分形圖像壓縮/解壓縮方法有著高壓縮率和低遺失率的優點,但運算能力不強,由於神經網路具有並行運算的特點,將神經網路用於分形圖像壓縮/解壓縮中,提高了原有方法的運算能力。將神經網路與分形相結合用於果實形狀的識別,首先利用分形得到幾種水果輪廓數據的不規則性,然後利用3層神經網路對這些數據進行辨識,繼而對其不規則性進行評價。
分形神經網路已取得了許多應用,但仍有些問題值得進一步研究:分形維數的物理意義;分形的計算機模擬和實際應用研究。隨著研究的不斷深入,分形神經網路必將得到不斷的完善,並取得更好的應用效果。?
❷ 卷積神經網路(CNN)基礎
在七月初七情人節,牛郎織女相見的一天,我終於學習了CNN(來自CS231n),感覺感觸良多,所以趕快記下來,別忘了,最後祝大家情人節快樂5555555.正題開始!
CNN一共有卷積層(CONV)、ReLU層(ReLU)、池化層(Pooling)、全連接層(FC(Full Connection))下面是各個層的詳細解釋。
卷積,尤其是圖像的卷積,需要一個濾波器,用濾波器對整個圖像進行遍歷,我們假設有一個32*32*3的原始圖像A,濾波器的尺寸為5*5*3,用w表示,濾波器中的數據就是CNN的參數的一部分,那麼在使用濾波器w對A進行濾波的話,可以用下面的式子表示:
其中x為原始圖像的5*5*3的一部分,b是偏置項置為1。在對A進行濾波之後,產生的是一個28*28*1的數據。那麼假設我們存在6個濾波器,這六個濾波器之間彼此是獨立的,也就是他們內部的數據是不同的且沒有相關性的。可以理解為一個濾波器查找整幅圖像的垂直邊緣,一個查找水平邊緣,一個查找紅色,一個查找黑色這樣。那麼我就可以產生6個28*28*1的數據,將它們組合到一起就可以產生28*28*6的數據,這就是卷積層主要做的工作。
CNN可以看作一系列的卷積層和ReLU層對原始數據結構進行處理的神經網路,處理的過程可以用下面這幅圖表示
特別要注意的是濾波器的深度一定要與上一層傳來的數據的深度相同,就像上圖的第二個卷積層在處理傳來的28*28*6的數據時要使用5*5*6的濾波器.
濾波器在圖像上不斷移動對圖像濾波,自然存在步長的問題,在上面我們舉的例子都是步長為1的情況,如果步長為3的話,32*32*3的圖像經過5*5*3的濾波器卷積得到的大小是(32-5)/3+1=10, 註:步長不能為2因為(32-5)/2+1=14.5是小數。
所以當圖像大小是N,濾波器尺寸為F時,步長S,那麼卷積後大小為(N-F)/S+1
我們從上面的圖中可以看到圖像的長和寬在逐漸的減小,在經過超過5層之後極可能只剩下1*1的空間尺度,這樣是十分不好的,而且也不利於我們接下來的計算,所以我們想讓卷積層處理完之後圖像在空間尺度上大小不變,所以我們引入了pad the border的操作。pad其實就是在圖像周圍補0,擴大圖像的尺寸,使得卷積後圖像大小不變。在CNN中,主要存在4個超參數,濾波器個數K,濾波器大小F,pad大小P和步長S,其中P是整數,當P=1時,對原始數據的操作如圖所示:
那麼在pad操作後卷積後的圖像大小為:(N-F+2*P)/S+1
而要想讓卷積層處理後圖像空間尺度不變,P的值可以設為P=(F-1)/2
卷積層輸入W 1 *H 1 *D 1 大小的數據,輸出W 2 *H 2 *D 2 的數據,此時的卷積層共有4個超參數:
K:濾波器個數
P:pad屬性值
S:濾波器每次移動的步長
F:濾波器尺寸
此時輸出的大小可以用輸入和超參計算得到:
W 2 =(W 1 -F+2P)/S+1
H 2 =(H 1 -F+2P)/S+1
D 2 =D 1
1*1的濾波器也是有意義的,它在深度方向做卷積,例如1*1*64的濾波器對56*56*64的數據卷積得到56*56的數據
F通常是奇數,這樣可以綜合考慮上下左右四個方向的數據。
卷積層從神經元的角度看待可以有兩個性質: 參數共享和局域連接 。對待一個濾波器,例如5*5*3的一個濾波器,對32*32*3的數據卷積得到28*28的數據,可以看作存在28*28個神經元,每個對原圖像5*5*3的區域進行計算,這28*28個神經元由於使用同一個濾波器,所以參數相同,我們稱這一特性為 參數共享 。
針對不同的濾波器,我們可以看到他們會看到同一區域的圖像,相當於在深度方向存在多個神經元,他們看著相同區域叫做 局域連接
參數共享減少了參數的數量,防止了過擬合
局域連接為查找不同特徵更豐富的表現圖像提供了可能。
卷積就像是對原圖像的另一種表達。
激活函數,對於每一個維度經過ReLU函數輸出即可。不改變數據的空間尺度。
通過pad操作,輸出圖像在控制項上並沒有變化,但是深度發生了變化,越來越龐大的數據給計算帶來了困難,也出現了冗餘的特徵,所以需要進行池化操作,池化不改變深度,只改變長寬,主要有最大值和均值兩種方法,一般的池化濾波器大小F為2步長為2,對於最大值池化可以用下面的圖像清晰的表示:
卷積層輸入W 1 *H 1 *D 1 大小的數據,輸出W 2 *H 2 *D 2 的數據,此時的卷積層共有2個超參數:
S:濾波器每次移動的步長
F:濾波器尺寸
此時輸出的大小可以用輸入和超參計算得到:
W 2 =(W 1 -F)/S+1
H 2 =(H 1 -F)/S+1
D 2 =D 1
將最後一層(CONV、ReLU或Pool)處理後的數據輸入全連接層,對於W 2 *H 2 *D 2 數據,我們將其展成1*1*W 2 *H 2 *D 2 大小的數據,輸入層共有W 2 *H 2 *D 2 個神經元,最後根據問題確定輸出層的規模,輸出層可以用softmax表示。也就是說,全連接層就是一個常見的BP神經網路。而這個網路也是參數最多的部分,是接下來想要去掉的部分。完整的神經網路可以用下面的圖表示:
[(CONV-ReLU)*N-POOL?]*M-(FC-RELU)*K,SoftMax
1.更小的濾波器與更深的網路
2.只有CONV層而去掉池化與全鏈接
最早的CNN,用於識別郵編,結構為:
CONV-POOL-CONV-POOL-CONV-FC
濾波器大小5*5,步長為1,池化層2*2,步長為2
2012年由於GPU技術所限,原始AlexNet為兩個GPU分開計算,這里介紹合起來的結構。
輸入圖像為227*227*3
1.首次使用ReLU
2.使用Norm layers,現在已經拋棄,因為效果不大
3.數據經過預處理(例如大小變化,顏色變化等)
4.失活比率0.5
5.batch size 128
6.SGD Momentum 參數0.9(SGD和Momentum見我的其他文章)
7.學習速率 0.01,准確率不在提升時減少10倍,1-2次後達到收斂
8.L2權重減少0.0005
9.錯誤率15.4%
改進自AlexNet,主要改變:
1.CONV1的濾波器從11*11步長S=4改為7*7步長為2.
2.CONV3,4,5濾波器數量有384,384,256改為512,1024,512(濾波器數量為2的n次冪有利於計算機計算可以提高效率)
錯誤率:14.8%後繼續改進至11.2%
當前最好的最易用的CNN網路,所有卷積層濾波器的大小均為3*3,步長為1,pad=1,池化層為2*2的最大值池化,S=2。
主要參數來自全連接層,這也是想要去掉FC的原因。
具有高度的統一性和線性的組合,易於理解,十分方便有VGG-16,VGG-19等多種結構。
錯誤率7.3%
完全移除FC層,參數只有500萬,使用Inception模塊(不太理解,有時間繼續看)
准確率6.67%
准確率3.6%
擁有極深的網路結構,且越深准確率越高。是傳統CNN不具備的特點,傳統CNN並非越深越准確。需要訓練時間較長但是快於VGG
1.每個卷積層使用Batch Normalization
2.Xavier/2初始化
3.SGD+Momentum(0.9)
4.Learning rate:0.1,准確率不變減小10倍(因為Batch Normalization所以比AlexNet大)
5.mini-batch size 256
6.Weight decay of 0.00001
7.不適用失活(因為Batch Normalization)
具體的梯度過程學完ResNet再說吧。
❸ 神經網路的准確率是怎麼計算的
其實神經網路的准確率的標準是自己定義的。
我把你的例子賦予某種意義講解:
1,期望輸出[1 0 0 1],每個元素代表一個屬性是否存在。像著4個元素分別表示:是否肺炎,是否肝炎,是否腎炎,是否膽炎,1表示是,0表示不是。
2,你的神經網路輸出必定不可能全部都是輸出只有0,1的輸出。絕大部分是像[ 0.9968 0.0000 0.0001 0.9970]這樣的輸出,所以只要輸出中的某個元素大於一定的值,例如0.7,我們就認為這個元素是1,即是有某種炎。否則為0,所以你的[ 0.9968 0.0000 0.0001 0.9970]可以看成是[1,0,0,1],。
3,所以一般神經網路的輸出要按一定的標準定義成另一種輸出(像上面說的),看調整後的輸出和期望輸出是否一致,一致的話算正確,不一致算錯誤。
4,用總量為n的檢驗樣本對網路進行評價,輸出調整後的輸出,統計錯誤的個數,記為m。
所以檢驗正確率可以定義為n/m。
❹ 神經網路:卷積神經網路(CNN)
神經網路 最早是由心理學家和神經學家提出的,旨在尋求開發和測試神經的計算模擬。
粗略地說, 神經網路 是一組連接的 輸入/輸出單元 ,其中每個連接都與一個 權 相關聯。在學習階段,通過調整權值,使得神經網路的預測准確性逐步提高。由於單元之間的連接,神經網路學習又稱 連接者學習。
神經網路是以模擬人腦神經元的數學模型為基礎而建立的,它由一系列神經元組成,單元之間彼此連接。從信息處理角度看,神經元可以看作是一個多輸入單輸出的信息處理單元,根據神經元的特性和功能,可以把神經元抽象成一個簡單的數學模型。
神經網路有三個要素: 拓撲結構、連接方式、學習規則
神經網路的拓撲結構 :神經網路的單元通常按照層次排列,根據網路的層次數,可以將神經網路分為單層神經網路、兩層神經網路、三層神經網路等。結構簡單的神經網路,在學習時收斂的速度快,但准確度低。
神經網路的層數和每層的單元數由問題的復雜程度而定。問題越復雜,神經網路的層數就越多。例如,兩層神經網路常用來解決線性問題,而多層網路就可以解決多元非線性問題
神經網路的連接 :包括層次之間的連接和每一層內部的連接,連接的強度用權來表示。
根據層次之間的連接方式,分為:
1)前饋式網路:連接是單向的,上層單元的輸出是下層單元的輸入,如反向傳播網路,Kohonen網路
2)反饋式網路:除了單項的連接外,還把最後一層單元的輸出作為第一層單元的輸入,如Hopfield網路
根據連接的范圍,分為:
1)全連接神經網路:每個單元和相鄰層上的所有單元相連
2)局部連接網路:每個單元只和相鄰層上的部分單元相連
神經網路的學習
根據學習方法分:
感知器:有監督的學習方法,訓練樣本的類別是已知的,並在學習的過程中指導模型的訓練
認知器:無監督的學習方法,訓練樣本類別未知,各單元通過競爭學習。
根據學習時間分:
離線網路:學習過程和使用過程是獨立的
在線網路:學習過程和使用過程是同時進行的
根據學習規則分:
相關學習網路:根據連接間的激活水平改變權系數
糾錯學習網路:根據輸出單元的外部反饋改變權系數
自組織學習網路:對輸入進行自適應地學習
摘自《數學之美》對人工神經網路的通俗理解:
神經網路種類很多,常用的有如下四種:
1)Hopfield網路,典型的反饋網路,結構單層,有相同的單元組成
2)反向傳播網路,前饋網路,結構多層,採用最小均方差的糾錯學習規則,常用於語言識別和分類等問題
3)Kohonen網路:典型的自組織網路,由輸入層和輸出層構成,全連接
4)ART網路:自組織網路
深度神經網路:
Convolutional Neural Networks(CNN)卷積神經網路
Recurrent neural Network(RNN)循環神經網路
Deep Belief Networks(DBN)深度信念網路
深度學習是指多層神經網路上運用各種機器學習演算法解決圖像,文本等各種問題的演算法集合。深度學習從大類上可以歸入神經網路,不過在具體實現上有許多變化。
深度學習的核心是特徵學習,旨在通過分層網路獲取分層次的特徵信息,從而解決以往需要人工設計特徵的重要難題。
Machine Learning vs. Deep Learning
神經網路(主要是感知器)經常用於 分類
神經網路的分類知識體現在網路連接上,被隱式地存儲在連接的權值中。
神經網路的學習就是通過迭代演算法,對權值逐步修改的優化過程,學習的目標就是通過改變權值使訓練集的樣本都能被正確分類。
神經網路特別適用於下列情況的分類問題:
1) 數據量比較小,缺少足夠的樣本建立模型
2) 數據的結構難以用傳統的統計方法來描述
3) 分類模型難以表示為傳統的統計模型
缺點:
1) 需要很長的訓練時間,因而對於有足夠長訓練時間的應用更合適。
2) 需要大量的參數,這些通常主要靠經驗確定,如網路拓撲或「結構」。
3) 可解釋性差 。該特點使得神經網路在數據挖掘的初期並不看好。
優點:
1) 分類的准確度高
2)並行分布處理能力強
3)分布存儲及學習能力高
4)對噪音數據有很強的魯棒性和容錯能力
最流行的基於神經網路的分類演算法是80年代提出的 後向傳播演算法 。後向傳播演算法在多路前饋神經網路上學習。
定義網路拓撲
在開始訓練之前,用戶必須說明輸入層的單元數、隱藏層數(如果多於一層)、每一隱藏層的單元數和輸出層的單元數,以確定網路拓撲。
對訓練樣本中每個屬性的值進行規格化將有助於加快學習過程。通常,對輸入值規格化,使得它們落入0.0和1.0之間。
離散值屬性可以重新編碼,使得每個域值一個輸入單元。例如,如果屬性A的定義域為(a0,a1,a2),則可以分配三個輸入單元表示A。即,我們可以用I0 ,I1 ,I2作為輸入單元。每個單元初始化為0。如果A = a0,則I0置為1;如果A = a1,I1置1;如此下去。
一個輸出單元可以用來表示兩個類(值1代表一個類,而值0代表另一個)。如果多於兩個類,則每個類使用一個輸出單元。
隱藏層單元數設多少個「最好」 ,沒有明確的規則。
網路設計是一個實驗過程,並可能影響准確性。權的初值也可能影響准確性。如果某個經過訓練的網路的准確率太低,則通常需要採用不同的網路拓撲或使用不同的初始權值,重復進行訓練。
後向傳播演算法學習過程:
迭代地處理一組訓練樣本,將每個樣本的網路預測與實際的類標號比較。
每次迭代後,修改權值,使得網路預測和實際類之間的均方差最小。
這種修改「後向」進行。即,由輸出層,經由每個隱藏層,到第一個隱藏層(因此稱作後向傳播)。盡管不能保證,一般地,權將最終收斂,學習過程停止。
演算法終止條件:訓練集中被正確分類的樣本達到一定的比例,或者權系數趨近穩定。
後向傳播演算法分為如下幾步:
1) 初始化權
網路的權通常被初始化為很小的隨機數(例如,范圍從-1.0到1.0,或從-0.5到0.5)。
每個單元都設有一個偏置(bias),偏置也被初始化為小隨機數。
2) 向前傳播輸入
對於每一個樣本X,重復下面兩步:
向前傳播輸入,向後傳播誤差
計算各層每個單元的輸入和輸出。輸入層:輸出=輸入=樣本X的屬性;即,對於單元j,Oj = Ij = Xj。隱藏層和輸出層:輸入=前一層的輸出的線性組合,即,對於單元j, Ij =wij Oi + θj,輸出=
3) 向後傳播誤差
計算各層每個單元的誤差。
輸出層單元j,誤差:
Oj是單元j的實際輸出,而Tj是j的真正輸出。
隱藏層單元j,誤差:
wjk是由j到下一層中單元k的連接的權,Errk是單元k的誤差
更新 權 和 偏差 ,以反映傳播的誤差。
權由下式更新:
其中,△wij是權wij的改變。l是學習率,通常取0和1之間的值。
偏置由下式更新:
其中,△θj是偏置θj的改變。
Example
人類視覺原理:
深度學習的許多研究成果,離不開對大腦認知原理的研究,尤其是視覺原理的研究。1981 年的諾貝爾醫學獎,頒發給了 David Hubel(出生於加拿大的美國神經生物學家) 和Torsten Wiesel,以及Roger Sperry。前兩位的主要貢獻,是「發現了視覺系統的信息處理」, 可視皮層是分級的 。
人類的視覺原理如下:從原始信號攝入開始(瞳孔攝入像素Pixels),接著做初步處理(大腦皮層某些細胞發現邊緣和方向),然後抽象(大腦判定,眼前的物體的形狀,是圓形的),然後進一步抽象(大腦進一步判定該物體是只氣球)。
對於不同的物體,人類視覺也是通過這樣逐層分級,來進行認知的:
在最底層特徵基本上是類似的,就是各種邊緣,越往上,越能提取出此類物體的一些特徵(輪子、眼睛、軀乾等),到最上層,不同的高級特徵最終組合成相應的圖像,從而能夠讓人類准確的區分不同的物體。
可以很自然的想到:可以不可以模仿人類大腦的這個特點,構造多層的神經網路,較低層的識別初級的圖像特徵,若干底層特徵組成更上一層特徵,最終通過多個層級的組合,最終在頂層做出分類呢?答案是肯定的,這也是許多深度學習演算法(包括CNN)的靈感來源。
卷積神經網路是一種多層神經網路,擅長處理圖像特別是大圖像的相關機器學習問題。卷積網路通過一系列方法,成功將數據量龐大的圖像識別問題不斷降維,最終使其能夠被訓練。
CNN最早由Yann LeCun提出並應用在手寫字體識別上。LeCun提出的網路稱為LeNet,其網路結構如下:
這是一個最典型的卷積網路,由 卷積層、池化層、全連接層 組成。其中卷積層與池化層配合,組成多個卷積組,逐層提取特徵,最終通過若干個全連接層完成分類。
CNN通過卷積來模擬特徵區分,並且通過卷積的權值共享及池化,來降低網路參數的數量級,最後通過傳統神經網路完成分類等任務。
降低參數量級:如果使用傳統神經網路方式,對一張圖片進行分類,那麼,把圖片的每個像素都連接到隱藏層節點上,對於一張1000x1000像素的圖片,如果有1M隱藏層單元,一共有10^12個參數,這顯然是不能接受的。
但是在CNN里,可以大大減少參數個數,基於以下兩個假設:
1)最底層特徵都是局部性的,也就是說,用10x10這樣大小的過濾器就能表示邊緣等底層特徵
2)圖像上不同小片段,以及不同圖像上的小片段的特徵是類似的,也就是說,能用同樣的一組分類器來描述各種各樣不同的圖像
基於以上兩個假設,就能把第一層網路結構簡化
用100個10x10的小過濾器,就能夠描述整幅圖片上的底層特徵。
卷積運算的定義如下圖所示:
如上圖所示,一個5x5的圖像,用一個3x3的 卷積核 :
101
010
101
來對圖像進行卷積操作(可以理解為有一個滑動窗口,把卷積核與對應的圖像像素做乘積然後求和),得到了3x3的卷積結果。
這個過程可以理解為使用一個過濾器(卷積核)來過濾圖像的各個小區域,從而得到這些小區域的特徵值。在實際訓練過程中, 卷積核的值是在學習過程中學到的。
在具體應用中,往往有多個卷積核,可以認為, 每個卷積核代表了一種圖像模式 ,如果某個圖像塊與此卷積核卷積出的值大,則認為此圖像塊十分接近於此卷積核。如果設計了6個卷積核,可以理解為這個圖像上有6種底層紋理模式,也就是用6種基礎模式就能描繪出一副圖像。以下就是24種不同的卷積核的示例:
池化 的過程如下圖所示:
可以看到,原始圖片是20x20的,對其進行采樣,采樣窗口為10x10,最終將其采樣成為一個2x2大小的特徵圖。
之所以這么做,是因為即使做完了卷積,圖像仍然很大(因為卷積核比較小),所以為了降低數據維度,就進行采樣。
即使減少了許多數據,特徵的統計屬性仍能夠描述圖像,而且由於降低了數據維度,有效地避免了過擬合。
在實際應用中,分為最大值采樣(Max-Pooling)與平均值采樣(Mean-Pooling)。
LeNet網路結構:
注意,上圖中S2與C3的連接方式並不是全連接,而是部分連接。最後,通過全連接層C5、F6得到10個輸出,對應10個數字的概率。
卷積神經網路的訓練過程與傳統神經網路類似,也是參照了反向傳播演算法
第一階段,向前傳播階段:
a)從樣本集中取一個樣本(X,Yp),將X輸入網路;
b)計算相應的實際輸出Op
第二階段,向後傳播階段
a)計算實際輸出Op與相應的理想輸出Yp的差;
b)按極小化誤差的方法反向傳播調整權矩陣。
❺ 神經網路精度一般設0.0001,可以嘛訓練樣本數值有歸一化的情況
神經網路精度,要根據數據類型了,計算方法等來設定
歸一化有同一、統一和合一的意思。
無論是為了建模還是為了計算,首先基本度量單位要同一,神經網路是以樣本在事件中的統計分別幾率來進行訓練(概率計算)和預測的,歸一化是同一在0-1之間的統計概率分布;SVM是以降維後線性劃分距離來分類和模擬的,因此時空降維歸一化是統一在-1--+1之間的統計坐標分布。一分為二和合二為一爭論了多年,這里歸一化也有合二為一的思想。
❻ caffe訓練神經網路測試集准確率達到多少就可以
這個並沒有準確的結論,如果你數據預處理存在問題或者標簽不合理,accuracy自然不會很高。並且,還需要改變已有網路中的參數或者網路結構才能有效提高accuracy。我們的目的並不在於准確率到底是多少,而是當測試准確率比較高時,得到的模型可以代替人去進行復雜圖片的等級判斷
❼ 神經網路為什麼深度越深,准確率越高
因為深度神經網路的參數特別多(可以達到上億,目前已經可以支持到萬億參數)。
參數多,表示模型的搜索空間就越大,必須有足夠的數據才能更好地刻畫出模型在空間上的分布
❽ 如何提高pb神經網路分類的准確率
要想提高BP神經網路分類的准確率,關鍵在於提高網路性能,使網路能夠反映數據的內部非線性規律。一般有以下幾種措施:
保證學習樣本質量。網路的輸出結果質量不可能超出原始訓練數據的質量,一定要保證樣本准確、典型、規模足夠大。
選定合適的輸入向量方案。輸入向量的配置方案不是固定的,可以添加自變數,增加因素。
選定適當的隱層節點數。過少學習能力不足,過多可能過擬合並且學習較慢。
調整參數,如學習率、學習目標等。
與其他演算法結合進行改進。如帶動量項的BP演算法、與GA演算法融合的GA-BP演算法等。
效果不理想時,可考慮增加隱層數量。
❾ 卷積神經網路(CNN)文本訓練的問題
CNN卷積神經網路是一種深度模型。它其實老早就已經可以成功訓練並且應用了(最近可能deep learning太火了,CNNs也往這裡面靠。雖然CNNs也屬於多層神經網路架構,但把它置身於DL家族,還是有不少人保留自己的理解的)。