A. 深度神經網路dnn怎麼調節參數
深度神經網路(DNN)目前是許多現代AI應用的基礎。
自從DNN在語音識別和圖像識別任務中展現出突破性的成果,使用DNN的應用數量呈爆炸式增加。這些DNN方法被大量應用在無人駕駛汽車,癌症檢測,游戲AI等方面。
在許多領域中,DNN目前的准確性已經超過人類。與早期的專家手動提取特徵或制定規則不同,DNN的優越性能來自於在大量數據上使用統計學習方法,從原始數據中提取高級特徵的能力,從而對輸入空間進行有效的表示。
然而,DNN超高的准確性是以超高的計算復雜度為代價的。
通常意義下的計算引擎,尤其是GPU,是DNN的基礎。因此,能夠在不犧牲准確性和增加硬體成本的前提下,提高深度神經網路的能量效率和吞吐量的方法,對於DNN在AI系統中更廣泛的應用是至關重要的。研究人員目前已經更多的將關注點放在針對DNN計算開發專用的加速方法。
鑒於篇幅,本文主要針對論文中的如下幾部分詳細介紹:
DNN的背景,歷史和應用
DNN的組成部分,以及常見的DNN模型
簡介如何使用硬體加速DNN運算
DNN的背景
人工智慧與深度神經網路
深度神經網路,也被稱為深度學習,是人工智慧領域的重要分支,根據麥卡錫(人工智慧之父)的定義,人工智慧是創造像人一樣的智能機械的科學工程。深度學習與人工智慧的關系如圖1所示:
圖1:深度神經網路與人工智慧的關系
人工智慧領域內,一個大的子領域是機器學習,由Arthur Samuel在1959年定義為:讓計算機擁有不需要明確編程即可學習的能力。
這意味著創建一個程序,這個程序可以被訓練去學習如何去做一些智能的行為,然後這個程序就可以自己完成任務。而傳統的人工啟發式方法,需要對每個新問題重新設計程序。
高效的機器學習演算法的優點是顯而易見的。一個機器學習演算法,只需通過訓練,就可以解決某一領域中每一個新問題,而不是對每個新問題特定地進行編程。
在機器學習領域,有一個部分被稱作brain-inspired computation。因為人類大腦是目前學習和解決問題最好的「機器」,很自然的,人們會從中尋找機器學習的方法。
盡管科學家們仍在探索大腦工作的細節,但是有一點被公認的是:神經元是大腦的主要計算單元。
人類大腦平均有860億個神經元。神經元相互連接,通過樹突接受其他神經元的信號,對這些信號進行計算之後,通過軸突將信號傳遞給下一個神經元。一個神經元的軸突分支出來並連接到許多其他神經元的樹突上,軸突分支和樹突之間的連接被稱為突觸。據估計,人類大腦平均有1014-1015個突觸。
突觸的一個關鍵特性是它可以縮放通過它的信號大小。這個比例因子可以被稱為權重(weight),普遍認為,大腦學習的方式是通過改變突觸的權重實現的。因此,不同的權重導致對輸入產生不同的響應。注意,學習過程是學習刺激導致的權重調整,而大腦組織(可以被認為是程序)並不改變。
大腦的這個特徵對機器學習演算法有很好的啟示。
神經網路與深度神經網路
神經元的計算是輸入值的加權和這個概念啟發了神經網路的研究。這些加權和對應於突觸的縮放值以及神經元所接收的值的組合。此外,神經元並不僅僅是輸入信號的加權和,如果是這樣的話,級聯的神經元的計算將是一種簡單的線性代數運算。
相反的是,神經元組合輸入的操作似乎是一種非線性函數,只有輸入達到某個閾值的時候,神經元才會生成輸出。因此,通過類比,我們可以知道神經網路在輸入值的加權和的基礎上應用了非線性函數。
圖2(a)展示了計算神經網路的示意圖,圖的最左邊是接受數值的「輸入層」。這些值被傳播到中間層神經元,通常也叫做網路的「隱藏層」。通過一個或更多隱藏層的加權和最終被傳播到「輸出層」,將神經網路的最終結果輸出給用戶。
圖2:神經網路示意圖
在神經網路領域,一個子領域被稱為深度學習。最初的神經網路通常只有幾層的網路。而深度網路通常有更多的層數,今天的網路一般在五層以上,甚至達到一千多層。
目前在視覺應用中使用深度神經網路的解釋是:將圖像所有像素輸入到網路的第一層之後,該層的加權和可以被解釋為表示圖像不同的低階特徵。隨著層數的加深,這些特徵被組合,從而代表更高階的圖像特徵。
例如,線可以被組合成形狀,再進一步,可以被組合成一系列形狀的集合。最後,再訓練好這些信息之後,針對各個圖像類別,網路給出由這些高階特徵組成各個對象的概率,即分類結果。
推理(Inference)與訓練(Training)
既然DNN是機器學習演算法中的一員,那麼它的基本編程思想仍然是學習。DNN的學習即確定網路的權重值。通常,學習過程被稱為訓練網路(training)。一旦訓練完成,程序可以使用由訓練確定的權值進行計算,這個使用網路完成任務的操作被被稱為推斷(inference)。
接下來,如圖3所示,我們用圖像分類作為例子來展示如何訓練一個深度神經網路。當我們使用一個DNN的時候,我們輸入一幅圖片,DNN輸出一個得分向量,每一個分數對應一個物體分類;得到最高分數的分類意味著這幅圖片最有可能屬於這個分類。
訓練DNN的首要目標就是確定如何設置權重,使得正確分類的得分最高(圖片所對應的正確分類在訓練數據集中標出),而使其他不正確分類的得分盡可能低。理想的正確分類得分與目前的權重所計算出的得分之間的差距被稱為損失函數(loss)。
因此訓練DNN的目標即找到一組權重,使得對一個較大規模數據集的loss最小。
圖3:圖像分類
權重(weight)的優化過程類似爬山的過程,這種方法被稱為梯度下降(gradient decent)。損失函數對每個權值的梯度,即損失函數對每個權值求偏導數,被用來更新權值(例:第t到t+1次迭代:,其中α被稱為學習率(Learning rate)。梯度值表明權值應該如何變化以減小loss。這個減小loss值的過程是重復迭代進行的。
梯度可以通過反向傳播(Back-Propagation)過程很高效地進行計算,loss的影響反向通過網路來計算loss是如何被每個權重影響的。
訓練權重有很多種方法。前面提到的是最常見的方法,被稱為監督學習,其中所有的訓練樣本是有標簽的。
無監督學習是另一種方法,其中所有訓練樣本都沒有標簽,最終目標是在數據中查找結構或聚類。半監督學習結合了兩種方法,只有訓練數據的一小部分被標記(例如,使用未標記的數據來定義集群邊界,並使用少量的標記數據來標記集群)。
最後,強化學習可以用來訓練一個DNN作為一個策略網路,對策略網路給出一個輸入,它可以做出一個決定,使得下一步的行動得到相應的獎勵;訓練這個網路的過程是使網路能夠做出使獎勵(即獎勵函數)最大化的決策,並且訓練過程必須平衡嘗試新行為(Exploration)和使用已知能給予高回報的行為(Exploitation)兩種方法。
用於確定權重的另一種常用方法是fine-tune,使用預先訓練好的模型的權重用作初始化,然後針對新的數據集(例如,傳遞學習)或新的約束(例如,降低的精度)調整權重。與從隨機初始化開始相比,能夠更快的訓練,並且有時會有更好的准確性。
B. 遺傳演算法優化概率神經網路的matlab代碼
原理大概是,設置一個初始種群,種群里的個體就是平滑因子,經過遺傳演算法的選擇、交叉、變異後,逐漸找到一個最佳的spread,即為最終結果。
附件是一個GA-BP演算法的程序,雖然不同,但是原理是相近的,可以參考。
遺傳演算法的基本運算過程如下:
a)初始化:設置進化代數計數器t=0,設置最大進化代數T,隨機生成M個個體作為初始群體P(0)。
b)個體評價:計算群體P(t)中各個個體的適應度。
c)選擇運算:將選擇運算元作用於群體。選擇的目的是把優化的個體直接遺傳到下一代或通過配對交叉產生新的個體再遺傳到下一代。選擇操作是建立在群體中個體的適應度評估基礎上的。
d)交叉運算:將交叉運算元作用於群體。遺傳演算法中起核心作用的就是交叉運算元。
e)變異運算:將變異運算元作用於群體。即是對群體中的個體串的某些基因座上的基因值作變動。
群體P(t)經過選擇、交叉、變異運算之後得到下一代群體P(t+1)。
f)終止條件判斷:若t=T,則以進化過程中所得到的具有最大適應度個體作為最優解輸出,終止計算。
C. 神經網路演算法可以求最優解嘛
神經網路可以做優化問題,但不一定能找到最優解。
邏輯性的思維是指根據邏輯規則進行推理的過程;它先將信息化成概念,並用符號表示,然後,根據符號運算按串列模式進行邏輯推理;這一過程可以寫成串列的指令,讓計算機執行。
直觀性的思維是將分布式存儲的信息綜合起來,忽然間產生的想法或解決問題的辦法。這種思維方式的根本之點在於以下兩點:
1、信息是通過神經元上的興奮模式分布存儲在網路上。
2、信息處理是通過神經元之間同時相互作用的動態過程來完成的。
神經網路:
思維學普遍認為,人類大腦的思維分為抽象(邏輯)思維、形象(直觀)思維和靈感(頓悟)思維三種基本方式。
人工神經網路就是模擬人思維的第二種方式。這是一個非線性動力學系統,其特色在於信息的分布式存儲和並行協同處理。雖然單個神經元的結構極其簡單,功能有限,但大量神經元構成的網路系統所能實現的行為卻是極其豐富多彩的。
D. 怎樣可以提高神經網路的收斂速度
改變一下訓練函數用trainscg,trainlm要比traingdx快,再就是優化初始權閾值,這方面方法就多了,網上這方面東西比較多,搜下看吧!祝你成功。
E. 如何用其他演算法優化神經網路演算法
matlab有神經網路和遺傳演算法的工具箱, 我沒用過,不過你的問題看起來也很基礎的,應該容易做
F. matlab的遺傳演算法優化BP神經網路
對y=x1^2+x2^2非線性系統進行建模,用1500組數據對網路進行構建網路,500組數據測試網路。由於BP神經網路初始神經元之間的權值和閾值一般隨機選擇,因此容易陷入局部最小值。本方法使用遺傳演算法優化初始神經元之間的權值和閾值,並對比使用遺傳演算法前後的效果。
步驟:
未經遺傳演算法優化的BP神經網路建模
1、
隨機生成2000組兩維隨機數(x1,x2),並計算對應的輸出y=x1^2+x2^2,前1500組數據作為訓練數據input_train,後500組數據作為測試數據input_test。並將數據存儲在data中待遺傳演算法中使用相同的數據。
2、
數據預處理:歸一化處理。
3、
構建BP神經網路的隱層數,次數,步長,目標。
4、
使用訓練數據input_train訓練BP神經網路net。
G. 關於遺傳演算法優化BP神經網路的問題
matlab自動給出的權閾值(應該是全0)----------應該隨機初始化
究竟遺傳演算法能優化到什麼程度
------------
不同的數據集,不同的訓練方法,將有不同的結論
ga優化神經網路初始權值如果真的那麼牛x就好了,從來就沒有萬能的方法。
H. 基於優化的BP神經網路遙感影像分類
羅小波1 劉明培1,2
(1.重慶郵電大學計算機學院中韓GIS研究所,重慶,400065;2.西南大學資源環境學院,重慶,400065)
摘要:在網路結構給定的情況下,利用遺傳演算法的全局尋優能力得到一組權值和閾值作為BP神經網路的初始權值和閾值,來避免BP神經網路易陷入局部極小的缺陷,同時也可以提高網路的收斂速度。然後再利用BP神經網路的局部尋優能力,對權值和閾值進行進一步的精細調整。實驗結果表明,把這種基於遺傳演算法的BP神經網路應用於遙感影像監督分類,具有較高的分類精度。
關鍵詞:BP神經網路;遺傳演算法;遙感影像分類
1 引言
隨著遙感技術的快速發展,遙感技術已經廣泛應用於各個領域。其中,遙感影像分類是其重要組成部分。近年來,隨著人工神經網路理論的快速發展,神經網路技術日益成為遙感影像分類中的有效手段,特別是對高光譜等影像數據,更是具有許多獨特的優勢。
一般我們把採用BP (Back-propogation)演算法的多層感知器叫做BP 神經網路,它是目前研究得最完善、應用最廣泛的神經網路之一。與經典的最大似然法相比,BP神經網路最大的優勢就是不要求訓練樣本正態分布。但是,它具有結構難以確定、容易陷入局部極小、不易收斂等缺陷。在本文中,網路的結構由用戶根據問題的復雜度確定。在進行網路訓練之前,利用遺傳演算法的全局尋優能力確定網路的初始權值和閾值;然後利用BP學習演算法的局部尋優能力對網路進行進一步的精細調整。最後利用訓練後的網路進行遙感影像監督分類。結果表明,基於遺傳演算法的BP神經網路進行遙感影像監督分類,具有較高的分類精度。
2 BP 神經網路
2.1 網路結構
BP神經網路的結構一般包括輸入層、中間隱層、輸出層。在模式識別中,輸入層的神經元個數等於輸入的特徵個數,輸出層的神經元個數等於需要分類的類別數。隱層可以為一層或多層,但一般的實際應用中一層隱層就可以滿足要求。而各隱層的神經元個數需要根據實際問題的復雜度而定。以單隱層為例,其結構示意圖如圖1。
為了實現一種通用的遙感影像分類手段,除了提供默認的網路結構外,還為使用者提供了根據實際問題的復雜度自行確定網路隱層數與各隱層神經元數的功能。這為一些高級用戶提供了靈活性,但這種靈活性在一定程度上增加了使用的難度,有時也需要一個實驗的過程,才能取得滿意的效果。
圖1 BP 神經網路結構
2.2 BP 學習演算法
演算法的基本步驟如下:
(1)將全部權值與節點的閾值預置為一個小的隨機數。
(2)載入輸入與輸出。在n個輸入節點上載入一n維向量X,並指定每一輸出節點的期望值。每次訓練可以選取新的同類或者異類樣本,直到權值對各類樣本達到穩定。
(3)計算實際輸出y1,y2,…,yn。
(4)修正權值。權值修正採用了最小均方(LMS)演算法的思想,其過程是從輸出節點開始,反向地向第一隱層傳播由總誤差誘發的權值修正。下一時刻的互連權值Wij (t+1)由下式給出:
土地信息技術的創新與土地科學技術發展:2006年中國土地學會學術年會論文集
式中,j為本節點的輸出;i則是隱層或者輸入層節點的序號;
A.若j為輸出節點,則:
δj=yj(1 -yj)(tj -yj)
其中,tj為輸出節點 j 的期望值,yj為該節點的實際輸出值;
B.若j為內部隱含節點,則:
土地信息技術的創新與土地科學技術發展:2006年中國土地學會學術年會論文集
其中k為j節點所在層之上各層的全部節點。
(5)在達到預定的誤差精度或者循環次數後退出,否則,轉(2)。
2.3 基於遺傳演算法的網路學習演算法
遺傳演算法具有全局尋優、不易陷入局部極小的優點,但局部尋優的能力較差。而BP學習演算法卻具有局部尋優的優勢。因此,如果將兩種演算法結合起來構成混合訓練演算法,則可以相互取長補短獲得較好的分類效果。主要思路如下:
(1)利用遺傳演算法確定最優個體
A.把全部權值、閾值作為基因進行實數編碼,形成具有M個基因的遺傳個體結構,其中M等於所有權值、閾值的個數。
B.設定種群規模N,隨機初始化這N個具有M個基因的結構。
C.適應度的計算:分別用訓練樣本集對N組權值、閾值進行訓練,得出各自網路期望輸出與網路實際輸出的總誤差e,適應度f=1.0-e。
D.進行遺傳運算元操作,包括選擇運算元、交叉運算元和變異運算元,形成新的群體:其中,選擇運算元採用了輪盤賭的方法,交叉運算元採用了兩點交叉。
E.反復進行C、D兩步,直到滿足停止條件為止。停止條件為:超出最大代數、最優個體精度達到了規定的精度。
(2)把經過 GA 優化後的最優個體進行解碼操作,形成 BP 神經網路的初始權值和閾值。
(3)採用BP學習演算法對網路進行訓練,直到滿足停止條件。停止條件為:①達到最大迭代次數;②總體誤差小於規定的最小誤差。
網路訓練結束後,把待分數據輸入訓練好的神經網路,進行分類,就可以得到分類結果影像圖。
3 應用實例
實現環境為VC+ +6.0,並基於Mapgis的二次開發平台,因為二次平台提供了一些遙感影像的基本處理函數,如底層的一些讀取文件的基本操作。
實驗中使用的遙感影像大小為500×500,如圖1所示。該影像是一美國城市1985年的遙感影像圖。根據同地區的SPOT影像及相關資料,把該區地物類別分為8類,各類所對應的代碼為:C1為水體、C2為草地、C3為綠化林、C4為裸地、C5為大型建築物、C6為軍事基地、C7為居民地、C8為其他生活設施(包括街道、道路、碼頭等)。其中,居民地、軍事設施、其他生活設施的光譜特徵比較接近。
圖1 TM 原始影像 (5,4,3 合成)
在網路訓練之前,經過目視解譯,並結合一些相關資料,從原始圖像上選取了3589個類別已知的樣本組成原始樣本集。要求原始樣本具有典型性、代表性,並能反映實際地物的分布情況。把原始樣本集進行預處理,共得到2979個純凈樣本。這些預處理後的樣本就組成訓練樣本集。
網路訓練時的波段選擇為TM1、TM2、TM3、TM4、TM5、TM7 共6個波段。另外,由於所要分類的類別數為8,因此,網路結構為:輸入層節點數為6,輸出層節點數為8,隱層數為1,隱層的節點數為10,然後用訓練樣本集對網路進行訓練。在訓練網路的時候,其訓練參數分別為:學習率為0.05,動量率為0.5,最小均方誤差為0.1,迭代次數為1000。把訓練好的網路對整幅遙感影像進行分類,其分類結果如下面圖2所示。
圖2 分類結果
為了測試網路的分類精度,在分類完成後,需要進行網路的測試。測試樣本的選取仍然採用與選取訓練樣本集一樣的方法在原始影像上進行選取,即結合其他資料,進行目視判讀,在原始圖像上隨機選取類別已知的樣本作為測試樣本。
利用精度評價模塊,把測試樣本集與已分類圖像進行比較,得到分類誤差矩陣以及各種分類精度評價標准,如表1 所示:
表1 分類誤差矩陣
總體精度:0.91,Kappa系數:0.90。
從表1 可以看出,採用測試樣本集進行測試,大部分地物的分類精度都達到了 0.9以上,只有居民地和其他生活設施的精度沒有達到,但也分別達到了0.89 和0.77,總的分類精度為0.91。Kappa系數在遙感影像分類精度評價中應用極為廣泛,在本次測試中其值為0.90。從上面的分析可以看出,利用基於遺傳演算法的BP神經網路進行遙感影像分類,其分類精度較高,取得了令人滿意的效果。
4 結論
與傳統的基於統計理論的分類方法相比,BP神經網路分類不要求訓練樣本正態分布,並且具有復雜的非線性映射能力,更適合於日益激增的海量高光譜遙感數據的處理。但BP神經網路也有易陷於局部極小、不易收斂等缺陷。
初始權值和閾值設置不當,是引起網路易陷於局部極小、不易收斂的重要原因。在實驗中,利用遺傳演算法的全局尋優能力來確定BP網路的初始權值和閾值,使得所獲取的初始權值和閾值是一組全局近似最優解。然後,利用BP學習演算法的局部尋優能力對網路權值和閾值進行精細調整。這樣,訓練後的穩定網路,不但具有較強的非線性映射能力,而且總可以得到一組均方誤差最小的全局最優解。
實驗表明,利用上述的基於遺傳演算法的BP神經網路進行遙感影像分類,只要所選取的訓練樣本具有代表性,能反映實際地物的分布情況,就能夠得到較高的分類精度,具有較強的實際應用價值。
參考文獻
H.Yang et al,A Back-propagation neural networkmfor mineralogical mapping fromAVIRIS data,Int.J.Remote sensing,20 (1):97~110
Arti Alessandro,et al.Speed up learning and network optimization with extended back propogation.Neural Networks,1993,6:365~383
Patrick P.Minimization methods for training feed forward neural networks.Neural Networks,1994,7:1~12
Goldberg D E.Genetic algorithms in Search Optimization and Machine Learing.MA:Addison-Wesley,1989
Rudolph Gunter.Convergence analysis of canonical genetic algorithms.IEEE Transactions on Neural Networks,1994,5 (1);102~119
Fang J,Xi Y.Toward design based on evolutionary programming.ArtificialIntel.Eng.,1997,11 (2):155~161
Park Y R,et al.Prediction sun spots using layered perception neural network.IEEE Trans.on Neural Netorks,1996,7 (2):501~505
楊行峻、鄭君里.人工神經網路與盲信號處理[M].北京:清華出版社,2003,23~40
周成虎、駱劍成等.遙感影像地學理解與分析[M].北京:科學出版社,2001,228~238
王耀男.衛星遙感圖像的神經網路自動識別[J].湖南大學學報,1998,61~66
江東,王建華.人工神經網路在遙感中的應用與發展.國土與資源遙感,1999,13~18
I. SPSS的神經網路模型參數設置疑問
1神經網路對於定量數據也能用
2因子根據具體研究面對確定
3比例3:7,也可以cross
4驗證集必須
5這些就多了,有數學公式
J. BP神經網路中初始權值和閾值的設定
首先需要了解BP神經網路是一種多層前饋網路。以看一下在matlab中BP神經網路的訓練函數,有梯度下降法traingd,彈性梯度下降法trainrp,自適應lr梯度下降法traingda等。
因為初始值(初始權值和閥值)都在x這個向量中,x(n,1)的長度n為:n=inputnum*hiddennum+hiddennum+hiddennum*outputnum+outputnum
其中inputnum*hiddennum是輸入層到隱含層的權值數量,hiddennum是隱含層神經元個數(即隱含層閥值個數),hiddennum*outputnum是隱含層到輸出層權值個數,outputnum是輸出層神經元個數(即輸出層閥值個數)。
結構
BP網路是在輸入層與輸出層之間增加若干層(一層或多層)神經元,這些神經元稱為隱單元,它們與外界沒有直接的聯系,但其狀態的改變,則能影響輸入與輸出之間的關系,每一層可以有若干個節點。
BP神經網路的計算過程由正向計算過程和反向計算過程組成。正向傳播過程,輸入模式從輸入層經隱單元層逐層處理,並轉向輸出層,每~層神經元的狀態隻影響下一層神經元的狀態。如果在輸出層不能得到期望的輸出,則轉入反向傳播,將誤差信號沿原來的連接通路返回,通過修改各神經元的權值,使得誤差信號最小。
以上內容參考:網路-BP神經網路