① 神經網路參數如何確定
神經網路各個網路參數設定原則:
①、網路節點 網路輸入層神經元節點數就是系統的特徵因子(自變數)個數,輸出層神經元節點數就是系統目標個數。隱層節點選按經驗選取,一般設為輸入層節點數的75%。如果輸入層有7個節點,輸出層1個節點,那麼隱含層可暫設為5個節點,即構成一個7-5-1 BP神經網路模型。在系統訓練時,實際還要對不同的隱層節點數4、5、6個分別進行比較,最後確定出最合理的網路結構。
②、初始權值的確定 初始權值是不應完全相等的一組值。已經證明,即便確定 存在一組互不相等的使系統誤差更小的權值,如果所設Wji的的初始值彼此相等,它們將在學習過程中始終保持相等。故而,在程序中,我們設計了一個隨機發生器程序,產生一組一0.5~+0.5的隨機數,作為網路的初始權值。
③、最小訓練速率 在經典的BP演算法中,訓練速率是由經驗確定,訓練速率越大,權重變化越大,收斂越快;但訓練速率過大,會引起系統的振盪,因此,訓練速率在不導致振盪前提下,越大越好。因此,在DPS中,訓練速率會自動調整,並盡可能取大一些的值,但用戶可規定一個最小訓練速率。該值一般取0.9。
④、動態參數 動態系數的選擇也是經驗性的,一般取0.6 ~0.8。
⑤、允許誤差 一般取0.001~0.00001,當2次迭代結果的誤差小於該值時,系統結束迭代計算,給出結果。
⑥、迭代次數 一般取1000次。由於神經網路計算並不能保證在各種參數配置下迭代結果收斂,當迭代結果不收斂時,允許最大的迭代次數。
⑦、Sigmoid參數 該參數調整神經元激勵函數形式,一般取0.9~1.0之間。
⑧、數據轉換。在DPS系統中,允許對輸入層各個節點的數據進行轉換,提供轉換的方法有取對數、平方根轉換和數據標准化轉換。
(1)神經網路參數共享怎麼設計網路擴展閱讀:
神經網路的研究內容相當廣泛,反映了多學科交叉技術領域的特點。主要的研究工作集中在以下幾個方面:
1.生物原型
從生理學、心理學、解剖學、腦科學、病理學等方面研究神經細胞、神經網路、神經系統的生物原型結構及其功能機理。
2.建立模型
根據生物原型的研究,建立神經元、神經網路的理論模型。其中包括概念模型、知識模型、物理化學模型、數學模型等。
3.演算法
在理論模型研究的基礎上構作具體的神經網路模型,以實現計算機模擬或准備製作硬體,包括網路學習演算法的研究。這方面的工作也稱為技術模型研究。
神經網路用到的演算法就是向量乘法,並且廣泛採用符號函數及其各種逼近。並行、容錯、可以硬體實現以及自我學習特性,是神經網路的幾個基本優點,也是神經網路計算方法與傳統方法的區別所在。
② 人工智慧時代,神經網路的原理及使用方法 | 微課堂
人工智慧時代已經悄然來臨,在計算機技術高速發展的未來,機器是否能代替人腦?也許有些讀者會說,永遠不可能,因為人腦的思考包含感性邏輯。事實上,神經網路演算法正是在模仿人腦的思考方式。想不想知道神經網路是如何「思考」的呢?下面我向大家簡單介紹一下神經網路的原理及使用方法。
所謂人工智慧,就是讓機器具備人的思維和意識。人工智慧主要有三個學派——行為主義、符號主義和連接主義。
行為主義是基於控制論,是在構建感知動作的控制系統。理解行為主義有個很好的例子,就是讓機器人單腳站立,通過感知要摔倒的方向控制兩只手的動作,保持身體的平衡,這就構建了一個感知動作控制系統。
符號主義是基於算數邏輯和表達式。求解問題時,先把問題描述為表達式,再求解表達式。如果你在求解某個問題時,可以用if case這樣的條件語句,和若干計算公式描述出來,這就使用了符號主義的方法,比如「專家系統」。符號主義可以認為是用公式描述的人工智慧,它讓計算機具備了理性思維。但是人類不僅具備理性思維,還具備無法用公式描述的感性思維。比如,如果你看過這篇推送,下回再見到「符號主義」幾個字,你會覺得眼熟,會想到這是人工智慧相關的知識,這是人的直覺,是感性的。
連接主義就是在模擬人的這種感性思維,是在仿造人腦內的神經元連接關系。這張圖給出了人腦中的一根神經元,左側是神經元的輸入,「軸突」部分是神經元的輸出。人腦就是由860億個這樣的神經元首尾相接組成的網路。
神經網路可以讓計算機具備感性思維。我們首先理解一下基於連接主義的神經網路設計過程。這張圖給出了人類從出生到24個月神經網路的變化:
隨著我們的成長,大量的數據通過視覺、聽覺湧入大腦,使我們的神經網路連接,也就是這些神經元連線上的權重發生了變化,有些線上的權重增強了,有些線上的權重減弱了。
我們要用計算機仿出這些神經網路連接關系,讓計算機具備感性思維。
首先需要准備數據,數據量越大越好,以構成特徵和標簽對。如果想識別貓,就要有大量貓的圖片和這張圖片是貓的標簽構成特徵標簽對,然後搭建神經網路的網路結構,再通過反向傳播優化連接的權重,直到模型的識別准確率達到要求,得到最優的連線權重,把這個模型保存起來。最後用保存的模型輸入從未見過的新數據,它會通過前向傳播輸出概率值,概率值最大的一個就是分類和預測的結果。
我們舉個例子來感受一下神經網路的設計過程。鳶尾花可以分為三類:狗尾鳶尾、雜色鳶尾和佛吉尼亞鳶尾。我們拿出一張圖,需要讓計算機判斷這是哪類鳶尾花。人們通過經驗總結出了規律:通過測量花的花萼長、花萼寬、花瓣長、花瓣寬分辨出鳶尾花的類別,比如花萼長>花萼寬,並且花瓣長/花瓣寬>2,則可以判定為這是第一種,雜色鳶尾。看到這里,也許有些讀者已經想到用if、case這樣的條件語句來實現鳶尾花的分類。沒錯,條件語句根據這些信息可以判斷鳶尾花分類,這是一個非常典型的專家系統,這個過程是理性計算。只要有了這些數據,就可以通過條件判定公式計算出是哪類鳶尾花。但是我們發現鳶尾花的種植者在識別鳶尾花的時候並不需要這么理性的計算,因為他們見識了太多的鳶尾花,一看就知道是哪種,而且隨著經驗的增加,識別的准確率會提高。這就是直覺,是感性思維,也是我們這篇文章想要和大家分享的神經網路方法。
這種神經網路設計過程首先需要採集大量的花萼長、花萼寬、花瓣長、花瓣寬,和它們所對應的是哪種鳶尾花。花萼長、花萼寬、花瓣長、花瓣寬叫做輸入特徵,它們對應的分類叫做標簽。大量的輸入特徵和標簽對構建出數據集,再把這個數據集喂入搭建好的神經網路結構,網路通過反向傳播優化參數,得到模型。當有新的、從未見過的輸入特徵,送入神經網路時,神經網路會輸出識別的結果。
展望21世紀初,在近十年神經網路理論研究趨向的背景下,神經網路理論的主要前沿領域包括:
一、對智能和機器關系問題的認識進一步增長。
研究人類智力一直是科學發展中最有意義,也是空前困難的挑戰性問題。人腦是我們所知道的唯一智能系統,具有感知識別、學習、聯想、記憶、推理等智能。我們通過不斷 探索 人類智能的本質以及聯結機制,並用人工系統復現或部分復現,製造各種智能機器,這樣可使人類有更多的時間和機會從事更為復雜、更富創造性的工作。
神經網路是由大量處理單元組成的非線性、自適應、自組織系統,是在現代神經科學研究成果的基礎上提出的,試圖模擬神經網路加工、記憶信息的方式,設計一種新的機器,使之具有人腦風格的信息處理能力。智能理論所面對的課題來自「環境——問題——目的」,有極大的誘惑力與壓力,它的發展方向將是把基於連接主義的神經網路理論、基於符號主義的人工智慧專家系統理論和基於進化論的人工生命這三大研究領域,在共同追求的總目標下,自發而有機地結合起來。
二、神經計算和進化計算的重大發展。
計算和演算法是人類自古以來十分重視的研究領域,本世紀30年代,符號邏輯方面的研究非常活躍。近年來,神經計算和進化計算領域很活躍,有新的發展動向,在從系統層次向細胞層次轉化里,正在建立數學理論基礎。隨著人們不斷 探索 新的計算和演算法,將推動計算理論向計算智能化方向發展,在21世紀人類將全面進入信息 社會 ,對信息的獲取、處理和傳輸問題,對網路路由優化問題,對數據安全和保密問題等等將有新的要求,這些將成為 社會 運行的首要任務。因此,神經計算和進化計算與高速信息網路理論聯系將更加密切,並在計算機網路領域中發揮巨大的作用,例如大范圍計算機網路的自組織功能實現就要進行進化計算。
人類的思維方式正在轉變,從線性思維轉到非線性思維神經元,神經網路都有非線性、非局域性、非定常性、非凸性和混沌等特性。我們在計算智能的層次上研究非線性動力系統、混沌神經網路以及對神經網路的數理研究,進一步研究自適應性子波、非線性神經場的興奮模式、神經集團的宏觀力學等。因為,非線性問題的研究是神經網路理論發展的一個最大動力,也是它面臨的最大挑戰。
以上就是有關神經網路的相關內容,希望能為讀者帶來幫助。
以上內容由蘇州空天信息研究院謝雨宏提供。
③ 神經網路演算法中,參數的設置或者調整,有什麼方法可以採用
若果對你有幫助,請點贊。
神經網路的結構(例如2輸入3隱節點1輸出)建好後,一般就要求神經網路里的權值和閾值。現在一般求解權值和閾值,都是採用梯度下降之類的搜索演算法(梯度下降法、牛頓法、列文伯格-馬跨特法、狗腿法等等),這些演算法會先初始化一個解,在這個解的基礎上,確定一個搜索方向和一個移動步長(各種法算確定方向和步長的方法不同,也就使各種演算法適用於解決不同的問題),使初始解根據這個方向和步長移動後,能使目標函數的輸出(在神經網路中就是預測誤差)下降。 然後將它更新為新的解,再繼續尋找下一步的移動方向的步長,這樣不斷的迭代下去,目標函數(神經網路中的預測誤差)也不斷下降,最終就能找到一個解,使得目標函數(預測誤差)比較小。
而在尋解過程中,步長太大,就會搜索得不仔細,可能跨過了優秀的解,而步長太小,又會使尋解過程進行得太慢。因此,步長設置適當非常重要。
學習率對原步長(在梯度下降法中就是梯度的長度)作調整,如果學習率lr = 0.1,那麼梯度下降法中每次調整的步長就是0.1*梯度,
而在matlab神經網路工具箱里的lr,代表的是初始學習率。因為matlab工具箱為了在尋解不同階段更智能的選擇合適的步長,使用的是可變學習率,它會根據上一次解的調整對目標函數帶來的效果來對學習率作調整,再根據學習率決定步長。
機制如下:
if newE2/E2 > maxE_inc %若果誤差上升大於閾值
lr = lr * lr_dec; %則降低學習率
else
if newE2 < E2 %若果誤差減少
lr = lr * lr_inc;%則增加學習率
end
詳細的可以看《神經網路之家》nnetinfo里的《[重要]寫自己的BP神經網路(traingd)》一文,裡面是matlab神經網路工具箱梯度下降法的簡化代碼
若果對你有幫助,請點贊。
祝學習愉快
④ 人工智慧CNN卷積神經網路如何共享權值
首先權值共享就是濾波器共享,濾波器的參數是固定的,即是用相同的濾波器去掃一遍圖像,提取一次特徵特徵,得到feature map。在卷積網路中,學好了一個濾波器,就相當於掌握了一種特徵,這個濾波器在圖像中滑動,進行特徵提取,然後所有進行這樣操作的區域都會被採集到這種特徵,就好比上面的水平線。
⑤ 初識卷積神經網路
按照上文中介紹的神經網路,如果處理一張圖片的話,參數有多大呢?假設圖像的大小為1200 * 1200,下一層的神經元個數為10^5,不難得出參數量為 1200 * 1200 * 10^5 = 1.44 * 10^12。可以看出一層的參數量就是很大了,如果再多加幾層,那參數量大的應該是超出了內存的承受范圍,這從研究和工程的角度都是不允許的。而且參數太多,很容易造成過擬合。
怎麼解決這個問題呢?經過研究,從稀疏連接、參數共享和平移不變性三個方面來進行改進。
可能有些人不懂這種稀疏連接是怎麼實現的?先來說說卷積操作,以一個二維矩陣為輸入(可以看作是一個單通道圖片的像素值),卷積產生的稀疏連接根本原因就是這塊的核函數,一般的核函數的大小遠小於輸入的大小。
以下圖例:卷積操作可以看做是一種滑窗法,首先,輸入維度是4×4,輸入中紅色部分,先和核函數中的元素對應相乘,就是輸出中左上角的元素值s1,即 s1 = a×k1+b×k2+e×k3+f×k4。
參數共享是指在一個模型的多個函數中使用相同的參數,它是卷積運算帶來的固有屬性。
在全連接中,計算每層的輸出時,權重矩陣中的元素只作用於某一個輸入元素一次;
而在卷積神經網路中,卷積核中的每一個元素將作用於每一個局部輸入的特定位置上。根據參數共享的思想,我們只需要學習一組參數集合,而不需要針對每一個位置的每一個參數來進行優化學習,從而大大降低了模型的存儲需求。
如果一個函數的輸入做了一些改變,那麼輸出也跟著做出同樣的改變,這就時平移不變性。
平移不變性是由參數共享的物理意義所得。在計算機視覺中,假如要識別一個圖片中是否有一隻貓,那麼無論這只貓在圖片的什麼位置,我們都應該識別出來,即就是神經網路的輸出對於平移不變性來說是等變的。
根據稀疏連接、參數共享和平移不變性三個思想,卷積核就應運而生了。看下圖,有個直觀的感受。
上圖就是在一個通道上做的卷積,但現實中,圖片一般是由3個通道構成(R\G\B),卷積核也由二維的平面生成了三維立體。具體的樣子如下圖:
如上圖所示,Filter W0 即為卷積核,其大小為(3 * 3 * 3),每個3*3的二維平面會和圖片的相應的通道進行卷積,3個通道的結果相加後加上統一的偏置b0,結果即為Output Volume 第一個通道的第一個位置的數。
從上圖還可以看出 Input Volume 四周加了0,這個0叫做padding,一般是為了卷積劃動的過程中包含原有的所有數;而多通道卷積核計算過程和卷積核計算過程,不太一樣的是多通道卷積核計算過程每次滑2下,這個滑動的距離叫做步長-stride。
所以通過輸入大小和卷積核大小,我們可以推斷出最終的結果的大小。比如上圖卷積核計算過程,輸入大小為5 * 5,卷積核為3 * 3,那麼卷積核在原圖上每次滑動一格,橫向滑3次,縱向也是3次,最終結果為 3 * 3。在多通道卷積核計算過程中,每次滑動為2格,橫向滑3次,縱向也是3次,最終結果也為 3*3。可以推斷出,最終大小的公式為:(輸入大小 - 卷積核大小)/ 滑動步長。
在卷積核計算過程,可以看出經過卷積後的大小變小了,那能不能經過卷積計算且大小不變呢?這里,引出了 padding 的另一個作用,保證輸入和輸出的大小一致。比方輸出的 5*5 加 padding,那麼四周就被0圍繞了,這時的輸入大小就變為7 * 7, 再經過 3 * 3的卷積後,按照上邊推斷出的公式,可以得出 最終的大小為 5 * 5,這時與輸入大小保持了一致。
池化層夾在連續的卷積層中間, 用於壓縮數據和參數的量,減小過擬合。
簡而言之,如果輸入是圖像的話,那麼池化層的最主要作用就是壓縮圖像。
池化層用的方法有Max pooling 和 average pooling,而實際用的較多的是Max pooling。下圖演示一下Max pooling。
對於每個2 * 2的窗口選出最大的數作為輸出矩陣的相應元素的值,比如輸入矩陣第一個2 * 2窗口中最大的數是1,那麼輸出矩陣的第一個元素就是1,如此類推。
全連接層的部分就是將之前的結果展平之後接到最基本的神經網路了。
根據上邊的介紹,可以得出,卷積核的通道數目和輸入的圖像的通道數目是保持一致的,而輸出的通道數目是和卷積核數目是一致的。這樣參數量可以得出,假設輸入的通道為5,卷積核大小為 3 * 3 ,輸出的通道數目為10,那麼參數量為:3 * 3 * 5 * 10,其中3 * 3 * 5是1個卷積核的參數個數,3 * 3 * 5 * 10 是 10個卷積核的參數個數,也就總共的參數個數。
在卷積中,滑動一次會經過多次的點乘,只經過一次的加法,所以加法的計算量可以忽略不計。其中,滑動一次會的點乘次數和卷積核的大小有關系,比方 3 * 3的卷積,則是經過了 3 * 3 = 9次點積。一共滑動多少次和輸出大小有關系,比方 輸出的結果也為 3 * 3,那麼就是滑動了9次。這樣就可以得出輸入和輸出單通道時計算量 3 * 3 * 3 * 3 = 81。那麼對於輸入多通道時,卷積核也需要增加相應的通道數目,此時應該在剛才的計算量上乘以通道的數目,得出輸入多通道的一個卷積核的計算量。這樣,對於輸出多通道,總的計算量則是乘以多個卷積核即可。
⑥ 第五章 神經網路
神經網路 :神經網路是由具有適應性的簡單單元組成的廣泛並行互連的網路,它的組織能夠模擬生物神經系統對真實世界物體所作出的交互反應。
神經網路中最基本的成分便是 神經元模型 。
M-P神經元模型:
感知機由兩層神經元組成,分別為輸入層、輸出層。
以下是具體過程:
多層神經網路的拓撲結構如圖:
如上圖可知,多層網路由輸入層、隱含層和輸出層組成,頂層是輸出層,底層是輸入層,中間的便是隱含層。隱含層與輸出層都具有功能神經元。
多層前饋神經網路的結構需要滿足:
1、每層神經元必須與下一層完全互連
2、神經元之間不存在同層連接
3、神經元不可跨層連接
只需包含一個足夠多神經元的隱層,就能以任意精度逼近任意復雜度的連續函數
BP神經網路由於學習能力太強大比較榮譽造成過擬合問題,故有兩種策略來減緩過擬合的問題:
1、早停:將數據分成訓練集和驗證集,訓練集學習,驗證集評估性能,在訓練過程中,若訓練集的累積誤差降低,而驗證集的累積誤差提高,則終止訓練;
2、引入正則化:其基本思想是在誤差目標函數中增加一個用於描述網路復雜程度的部分,有如連接權和閾值的平方和:
其中λ∈(0,1)用於對累積經驗誤差與網路復雜度這兩項進行折中,常通過交叉驗證法來估計。
神經網路的訓練過程可看作一個參數尋優的過程,即尋找到適當的參數使得E最小。於是我們時常會談及「全局最小」和「局部最小」。
1、全局最小:即全局最小解,在參數空間中,所有其他點的誤差函數值均大於該點;
2、局部最小:即局部最小解,在參數空間中,其鄰近的點的誤差函數值均大於該點。
我們要達到局部極小點,很容易,只要滿足梯度為零的點便是了,局部極小點可以有多個,但全局最小點只有一個。顯然,我們追求的是全局最小,而非局部極小,於是人們通常採用以下策略來試圖「跳出」局部極小,使其接近全局最小:
1、以多組不同參數值初始化多個神經網路,按標准方法訓練,在迭代停止後,取其中誤差最小的解作為最終參數;
2、使用隨機梯度下降(在計算梯度時加入了隨機因素),使得在局部最小時,計算的梯度仍可能不為0,從而可能跳出局部極小,繼續進行迭代;
3、「模擬退火」技術,在每一步都以一定的概率接受比當前解更差的結果,但接受「次優解」的概率要隨著迭代進行,時間推移而逐漸減低以確保演算法的穩定。
1、RBF網路
單隱層前饋神經網路 ,使用徑向基函數作為隱層神經元激活函數,輸出層是對隱層神經元輸出的線性組合。RBF網路可表示為:
2、ART網路
競爭型學習 (神經網路中一種常用的 無監督學習 策略),由 比較層、識別層、識別閾值和重置模塊 組成。接收到比較層的輸入信號後,識別層神經元相互競爭以產生獲勝神經元,最簡單的方式就是計算輸入向量與每個識別層神經元所對應的模式類代表向量間的距離,距離小者獲勝。若獲勝神經元對應的代表向量與輸入向量間 相似度大於識別閾值 ,則將輸入樣本歸為該代表向量所屬類別,網路 連接權 也會進行 更新 以保證後面接收到相似的輸入樣本時該模式類會計算出更大的相似度,使得這樣的樣本能夠歸於一類;如果 相似度不大於識別閾值 ,則 重置模塊 會在 識別層 加一個神經元,其 代表向量 就 設置 為當前 輸入向量 。
3、SOM網路
競爭型學習的無監督神經網路 ,將高維輸入數據映射到低維空間(通常是二維),且保持輸入數據在高維空間的拓撲結構。
4、級聯相關網路
結構自適應網路 。
5、Elman網路
遞歸神經網路 。
6、Boltzmann機
基於能量的模型,其神經元分為顯層與隱層,顯層用於數據輸入輸出,隱層被理解為數據的內在表達。其神經元皆為布爾型,1為激活,0為抑制。
理論上,參數越多的模型其復雜程度越高,能完成更加復雜的學習任務。但是復雜模型的訓練效率低下,容易過擬合。但由於大數據時代、雲計算,計算能力大幅提升緩解了訓練效率低下,而訓練數據的增加則可以降低過擬合風險。
於是如何增加模型的復雜程度呢?
1、增加隱層數;
2、增加隱層神經元數.
如何有效訓練多隱層神經網路?
1、無監督逐層訓練:每次訓練一層隱節點,把上一層隱節點的輸出當作輸入來訓練,本層隱結點訓練好後,輸出再作為下一層的輸入來訓練,這稱為預訓練,全部預訓練完成後,再對整個網路進行微調。「預訓練+微調」即把大量的參數進行分組,先找出每組較好的設置,再基於這些局部最優的結果來訓練全局最優;
2、權共享:令同一層神經元使用完全相同的連接權,典型的例子是卷積神經網路。這樣做可以大大減少需要訓練的參數數目。
深度學習 可理解為一種特徵學習或者表示學習,是通過 多層處理 ,逐漸將初始的 低層特徵表示 轉化為 高層特徵表示 後,用 簡單模型 即可完成復雜的分類等 學習任務 。