導航:首頁 > 網路問題 > 神經網路監督學習中的權重是什麼

神經網路監督學習中的權重是什麼

發布時間:2022-11-07 05:12:18

① 人工神經網路是哪個流派的基礎

「純意念控制」人工神經康復機器人系統2014年6月14日在天津大學和天津市人民醫院共同舉辦的發表會上,由雙方共同研製的人工神經康復機器人「神工一號」正式亮相。
中文名
「純意念控制」人工神經康復機器人系統
發布時間
2014年6月14日
快速
導航
產品特色發展歷史
功能配置
「純意念控制」人工神經康復機器人系統在復合想像動作信息解析與處理、非同步腦——機介面訓練與識別、皮層——肌肉活動同步耦合優化、中風後抑鬱腦電非線性特徵提取與篩查等關鍵技術上取得了重大突破。
「純意念控制」人工神經康復機器人系統包括無創腦電感測模塊、想像動作特徵檢測模塊、運動意圖識別模塊、指令編碼介面模塊、刺激信息調理模塊、刺激電流輸出模塊6部分。
產品特色
「純意念控制」人工神經康復機器人系統最新研究成果將讓不少中風、癱瘓人士燃起重新獨立生活的希望。現已擁有包括23項授權國家發明專利、1項軟體著作權在內的自主知識產權集群,是全球首台適用於全肢體中風康復的「純意念控制」人工神經機器人系統。[1]
腦控機械外骨骼是利用被動機械牽引,非肌肉主動收縮激活。而「神工一號」則利用神經肌肉電刺激,模擬神經沖動的電刺激引起肌肉產生主動收縮,帶動骨骼和關節產生自主動作,與人體自主運動原理一致。
體驗者需要把裝有電極的腦電探測器戴在頭部,並在患病肢體的肌肉上安裝電極,藉助「神工一號」的連接,就可以用「意念」來「控制」自己本來無法行動的肢體了。[2]
發展歷史
「純意念控制」人工神經康復機器人系統技術歷時10年,是國家「863計劃「、「十二五」國家科技支撐計劃和國家優秀青年科學基金重點支持項目。
人工神經網路(Artificial Neural Network,即ANN ),是20世紀80 年代以來人工智慧領域興起的研究熱點。它從信息處理角度對人腦神經元網路進行抽象, 建立某種簡單模型,按不同的連接方式組成不同的網路。在工程與學術界也常直接簡稱為神經網路或類神經網路。神經網路是一種運算模型,由大量的節點(或稱神經元)之間相互聯接構成。每個節點代表一種特定的輸出函數,稱為激勵函數(activation function)。每兩個節點間的連接都代表一個對於通過該連接信號的加權值,稱之為權重,這相當於人工神經網路的記憶。網路的輸出則依網路的連接方式,權重值和激勵函數的不同而不同。而網路自身通常都是對自然界某種演算法或者函數的逼近,也可能是對一種邏輯策略的表達。
最近十多年來,人工神經網路的研究工作不斷深入,已經取得了很大的進展,其在模式識別、智能機器人、自動控制、預測估計、生物、醫學、經濟等領域已成功地解決了許多現代計算機難以解決的實際問題,表現出了良好的智能特性。
中文名
人工神經網路
外文名
artificial neural network
別稱
ANN
應用學科
人工智慧
適用領域范圍
模式分類
精品薦讀
「蠢萌」的神經網路
作者:牛油果進化論
快速
導航
基本特徵發展歷史網路模型學習類型分析方法特點優點研究方向發展趨勢應用分析
神經元
如圖所示
a1~an為輸入向量的各個分量
w1~wn為神經元各個突觸的權值
b為偏置
f為傳遞函數,通常為非線性函數。以下默認為hardlim()
t為神經元輸出
數學表示 t=f(WA'+b)
W為權向量
A為輸入向量,A'為A向量的轉置
b為偏置
f為傳遞函數
可見,一個神經元的功能是求得輸入向量與權向量的內積後,經一個非線性傳遞函數得到一個標量結果。
單個神經元的作用:把一個n維向量空間用一個超平面分割成兩部分(稱之為判斷邊界),給定一個輸入向量,神經元可以判斷出這個向量位於超平面的哪一邊。
該超平面的方程: Wp+b=0
W權向量
b偏置
p超平面上的向量
基本特徵
人工神經網路是由大量處理單元互聯組成的非線性、自適應信息處理系統。它是在現代神經科學研究成果的基礎上提出的,試圖通過模擬大腦神經網路處理、記憶信息的方式進行信息處理。人工神經網路具有四個基本特徵:
(1)非線性 非線性關系是自然界的普遍特性。大腦的智慧就是一種非線性現象。人工神經元處於激活或抑制二種不同的狀態,這種行為在數學上表現為一種非線性關系。具有閾值的神經元構成的網路具有更好的性能,可以提高容錯性和存儲容量。
人工神經網路
(2)非局限性 一個神經網路通常由多個神經元廣泛連接而成。一個系統的整體行為不僅取決於單個神經元的特徵,而且可能主要由單元之間的相互作用、相互連接所決定。通過單元之間的大量連接模擬大腦的非局限性。聯想記憶是非局限性的典型例子。
(3)非常定性 人工神經網路具有自適應、自組織、自學習能力。神經網路不但處理的信息可以有各種變化,而且在處理信息的同時,非線性動力系統本身也在不斷變化。經常採用迭代過程描寫動力系統的演化過程。
(4)非凸性 一個系統的演化方向,在一定條件下將取決於某個特定的狀態函數。例如能量函數,它的極值相應於系統比較穩定的狀態。非凸性是指這種函數有多個極值,故系統具有多個較穩定的平衡態,這將導致系統演化的多樣性。
人工神經網路中,神經元處理單元可表示不同的對象,例如特徵、字母、概念,或者一些有意義的抽象模式。網路中處理單元的類型分為三類:輸入單元、輸出單元和隱單元。輸入單元接受外部世界的信號與數據;輸出單元實現系統處理結果的輸出;隱單元是處在輸入和輸出單元之間,不能由系統外部觀察的單元。神經元間的連接權值反映了單元間的連接強度,信息的表示和處理體現在網路處理單元的連接關系中。人工神經網路是一種非程序化、適應性、大腦風格的信息處理 ,其本質是通過網路的變換和動力學行為得到一種並行分布式的信息處理功能,並在不同程度和層次上模仿人腦神經系統的信息處理功能。它是涉及神經科學、思維科學、人工智慧、計算機科學等多個領域的交叉學科。
人工神經網路
人工神經網路是並行分布式系統,採用了與傳統人工智慧和信息處理技術完全不同的機理,克服了傳統的基於邏輯符號的人工智慧在處理直覺、非結構化信息方面的缺陷,具有自適應、自組織和實時學習的特點。[1]
發展歷史
1943年,心理學家W.S.McCulloch和數理邏輯學家W.Pitts建立了神經網路和數學模型,稱為MP模型。他們通過MP模型提出了神經元的形式化數學描述和網路結構方法,證明了單個神經元能執行邏輯功能,從而開創了人工神經網路研究的時代。1949年,心理學家提出了突觸聯系強度可變的設想。60年代,人工神經網路得到了進一步發展,更完善的神經網路模型被提出,其中包括感知器和自適應線性元件等。M.Minsky等仔細分析了以感知器為代表的神經網路系統的功能及局限後,於1969年出版了《Perceptron》一書,指出感知器不能解決高階謂詞問題。他們的論點極大地影響了神經網路的研究,加之當時串列計算機和人工智慧所取得的成就,掩蓋了發展新型計算機和人工智慧新途徑的必要性和迫切性,使人工神經網路的研究處於低潮。在此期間,一些人工神經網路的研究者仍然致力於這一研究,提出了適應諧振理論(ART網)、自組織映射、認知機網路,同時進行了神經網路數學理論的研究。以上研究為神經網路的研究和發展奠定了基礎。1982年,美國加州工學院物理學家J.J.Hopfield提出了Hopfield神經網格模型,引入了「計算能量」概念,給出了網路穩定性判斷。 1984年,他又提出了連續時間Hopfield神經網路模型,為神經計算機的研究做了開拓性的工作,開創了神經網路用於聯想記憶和優化計算的新途徑,有力地推動了神經網路的研究,1985年,又有學者提出了波耳茲曼模型,在學習中採用統計熱力學模擬退火技術,保證整個系統趨於全局穩定點。1986年進行認知微觀結構地研究,提出了並行分布處理的理論。1986年,Rumelhart, Hinton, Williams發展了BP演算法。Rumelhart和McClelland出版了《Parallel distribution processing: explorations in the microstructures of cognition》。迄今,BP演算法已被用於解決大量實際問題。1988年,Linsker對感知機網路提出了新的自組織理論,並在Shanon資訊理論的基礎上形成了最大互信息理論,從而點燃了基於NN的信息應用理論的光芒。1988年,Broomhead和Lowe用徑向基函數(Radial basis function, RBF)提出分層網路的設計方法,從而將NN的設計與數值分析和線性適應濾波相掛鉤。90年代初,Vapnik等提出了支持向量機(Support vector machines, SVM)和VC(Vapnik-Chervonenkis)維數的概念。人工神經網路的研究受到了各個發達國家的重視,美國國會通過決議將1990年1月5日開始的十年定為「腦的十年」,國際研究組織號召它的成員國將「腦的十年」變為全球行為。在日本的「真實世界計算(RWC)」項目中,人工智慧的研究成了一個重要的組成部分。
人工神經網路
網路模型
人工神經網路模型主要考慮網路連接的拓撲結構、神經元的特徵、學習規則等。目前,已有近40種神經網路模型,其中有反傳網路、感知器、自組織映射、Hopfield網路、波耳茲曼機、適應諧振理論等。根據連接的拓撲結構,神經網路模型可以分為:[1]
人工神經網路
前向網路
網路中各個神經元接受前一級的輸入,並輸出到下一級,網路中沒有反饋,可以用一個有向無環路圖表示。這種網路實現信號從輸入空間到輸出空間的變換,它的信息處理能力來自於簡單非線性函數的多次復合。網路結構簡單,易於實現。反傳網路是一種典型的前向網路。[2]
反饋網路
網路內神經元間有反饋,可以用一個無向的完備圖表示。這種神經網路的信息處理是狀態的變換,可以用動力學系統理論處理。系統的穩定性與聯想記憶功能有密切關系。Hopfield網路、波耳茲曼機均屬於這種類型。
學習類型
學習是神經網路研究的一個重要內容,它的適應性是通過學習實現的。根據環境的變化,對權值進行調整,改善系統的行為。由Hebb提出的Hebb學習規則為神經網路的學習演算法奠定了基礎。Hebb規則認為學習過程最終發生在神經元之間的突觸部位,突觸的聯系強度隨著突觸前後神經元的活動而變化。在此基礎上,人們提出了各種學習規則和演算法,以適應不同網路模型的需要。有效的學習演算法,使得神經網路能夠通過連接權值的調整,構造客觀世界的內在表示,形成具有特色的信息處理方法,信息存儲和處理體現在網路的連接中。
人工神經網路
分類
根據學習環境不同,神經網路的學習方式可分為監督學習和非監督學習。在監督學習中,將訓練樣本的數據加到網路輸入端,同時將相應的期望輸出與網路輸出相比較,得到誤差信號,以此控制權值連接強度的調整,經多次訓練後收斂到一個確定的權值。當樣本情況發生變化時,經學習可以修改權值以適應新的環境。使用監督學習的神經網路模型有反傳網路、感知器等。非監督學習時,事先不給定標准樣本,直接將網路置於環境之中,學習階段與工作階段成為一體。此時,學習規律的變化服從連接權值的演變方程。非監督學習最簡單的例子是Hebb學習規則。競爭學習規則是一個更復雜的非監督學習的例子,它是根據已建立的聚類進行權值調整。自組織映射、適應諧振理論網路等都是與競爭學習有關的典型模型。
分析方法
研究神經網路的非線性動力學性質,主要採用動力學系統理論、非線性規劃理論和統計理論,來分析神經網路的演化過程和吸引子的性質,探索神經網路的協同行為和集體計算功能,了解神經信息處理機制。為了探討神經網路在整體性和模糊性方面處理信息的可能,混沌理論的概念和方法將會發揮作用。混沌是一個相當難以精確定義的數學概念。一般而言,「混沌」是指由確定性方程描述的動力學系統中表現出的非確定性行為,或稱之為確定的隨機性。「確定性」是因為它由內在的原因而不是外來的雜訊或干擾所產生,而「隨機性」是指其不規則的、不能預測的行為,只可能用統計的方法描述。

② 神經網路權值怎麼確定

神經網路的權值是通過對網路的訓練得到的。如果使用MATLAB的話不要自己設定,newff之後會自動賦值。也可以手動:net.IW{}= ; net.bias{}=。一般來說輸入歸一化,那麼w和b取0-1的隨機數就行。神經網路的權值確定的目的是為了讓神經網路在訓練過程中學習到有用的信息,這意味著參數梯度不應該為0。

參數初始化要滿足兩個必要條件:

1、各個激活層不會出現飽和現象,比如對於sigmoid激活函數,初始化值不能太大或太小,導致陷入其飽和區。

2、各個激活值不為0,如果激活層輸出為零,也就是下一層卷積層的輸入為零,所以這個卷積層對權值求偏導為零,從而導致梯度為0。

(2)神經網路監督學習中的權重是什麼擴展閱讀:

神經網路和權值的關系。

在訓練智能體執行任務時,會選擇一個典型的神經網路框架,並相信它有潛力為這個任務編碼特定的策略。注意這里只是有潛力,還要學習權重參數,才能將這種潛力變化為能力。

受到自然界早成行為及先天能力的啟發,在這項工作中,研究者構建了一個能自然執行給定任務的神經網路。也就是說,找到一個先天的神經網路架構,然後只需要隨機初始化的權值就能執行任務。研究者表示,這種不用學習參數的神經網路架構在強化學習與監督學習都有很好的表現。

其實如果想像神經網路架構提供的就是一個圈,那麼常規學習權值就是找到一個最優點(或最優參數解)。但是對於不用學習權重的神經網路,它就相當於引入了一個非常強的歸納偏置,以至於,整個架構偏置到能直接解決某個問題。

但是對於不用學習權重的神經網路,它相當於不停地特化架構,或者說降低模型方差。這樣,當架構越來越小而只包含最優解時,隨機化的權值也就能解決實際問題了。如研究者那樣從小架構到大架構搜索也是可行的,只要架構能正好將最優解包圍住就行了。

如何用人工神經網路確定指標體系的權重

說的確定應該就是訓練方法吧,神經網路的權值不是人工給定的。而是用訓練集(包括輸入和輸出)訓練,用訓練集訓練一遍稱為一個epoch,一般要許多epoch才行,目的是使得目標與訓練結果的誤差(一般採用均方誤差)小到一個給定的閾值。以上所說是有監督的學習方法,還有無監督的學習方法。

④ 入門 | 一文簡述循環神經網路

入門 | 一文簡述循環神經網路

本文簡要介紹了什麼是循環神經網路及其運行原理,並給出了一個 RNN 實現示例。

什麼是循環神經網路(RNN)?它們如何運行?可以用在哪裡呢?本文試圖回答上述這些問題,還展示了一個 RNN 實現 demo,你可以根據自己的需要進行擴展。

循環神經網路架構

基礎知識。Python、CNN 知識是必備的。了解 CNN 的相關知識,是為了與 RNN 進行對比:RNN 為什麼以及在哪些地方比 CNN 更好。

我們首先從「循環」(Recurrent)這個詞說起。為什麼將其稱為循環?循環的意思是:

經常或重復出現

將這類神經網路稱為循環神經網路是因為它對一組序列輸入重復進行同樣的操作。本文後續部分將討論這種操作的意義。

我們為什麼需要 RNN?

也許你現在想的是,已經有像卷積網路這樣表現非常出色的網路了,為什麼還需要其他類型的網路呢?有一個需要用到 RNN 的特殊例子。為了解釋 RNN,你首先需要了解序列的相關知識,我們先來講一下序列。

序列是相互依賴的(有限或無限)數據流,比如時間序列數據、信息性的字元串、對話等。在對話中,一個句子可能有一個意思,但是整體的對話可能又是完全不同的意思。股市數據這樣的時間序列數據也是,單個數據表示當前價格,但是全天的數據會有不一樣的變化,促使我們作出買進或賣出的決定。

當輸入數據具有依賴性且是序列模式時,CNN 的結果一般都不太好。CNN 的前一個輸入和下一個輸入之間沒有任何關聯。所以所有的輸出都是獨立的。CNN 接受輸入,然後基於訓練好的模型輸出。如果你運行了 100 個不同的輸入,它們中的任何一個輸出都不會受之前輸出的影響。但想一下如果是文本生成或文本翻譯呢?所有生成的單詞與之前生成的單詞都是獨立的(有些情況下與之後的單詞也是獨立的,這里暫不討論)。所以你需要有一些基於之前輸出的偏向。這就是需要 RNN 的地方。RNN 對之前發生在數據序列中的事是有一定記憶的。這有助於系統獲取上下文。理論上講,RNN 有無限的記憶,這意味著它們有無限回顧的能力。通過回顧可以了解所有之前的輸入。但從實際操作中看,它只能回顧最後幾步。

本文僅為了與人類大體相關聯,而不會做任何決定。本文只是基於之前關於該項目的知識做出了自己的判斷(我甚至尚未理解人類大腦的 0.1%)。

何時使用 RNN?

RNN 可用於許多不同的地方。下面是 RNN 應用最多的領域。

1. 語言建模和文本生成

給出一個詞語序列,試著預測下一個詞語的可能性。這在翻譯任務中是很有用的,因為最有可能的句子將是可能性最高的單片語成的句子。

2. 機器翻譯

將文本內容從一種語言翻譯成其他語言使用了一種或幾種形式的 RNN。所有日常使用的實用系統都用了某種高級版本的 RNN。

3. 語音識別

基於輸入的聲波預測語音片段,從而確定詞語。

4. 生成圖像描述

RNN 一個非常廣泛的應用是理解圖像中發生了什麼,從而做出合理的描述。這是 CNN 和 RNN 相結合的作用。CNN 做圖像分割,RNN 用分割後的數據重建描述。這種應用雖然基本,但可能性是無窮的。

5. 視頻標記

可以通過一幀一幀地標記視頻進行視頻搜索。

深入挖掘

本文按照以下主題進行。每一部分都是基於之前的部分進行的,所以不要跳著讀。

前饋網路循環網路循環神經元基於時間的反向傳播(BPTT)RNN 實現

前饋網路入門

前饋網路通過在網路的每個節點上做出的一系列操作傳遞信息。前饋網路每次通過每個層直接向後傳遞信息。這與其他循環神經網路不同。一般而言,前饋網路接受一個輸入並據此產生輸出,這也是大多數監督學習的步驟,輸出結果可能是一個分類結果。它的行為與 CNN 類似。輸出可以是以貓狗等作為標簽的類別。

前饋網路是基於一系列預先標注過的數據訓練的。訓練階段的目的是減少前饋網路猜類別時的誤差。一旦訓練完成,我們就可以用訓練後的權重對新批次的數據進行分類。

一個典型的前饋網路架構

還有一件事要注意。在前饋網路中,無論在測試階段展示給分類器的圖像是什麼,都不會改變權重,所以也不會影響第二個決策。這是前饋網路和循環網路之間一個非常大的不同。

與循環網路不同,前饋網路在測試時不會記得之前的輸入數據。它們始終是取決於時間點的。它們只會在訓練階段記得歷史輸入數據。

循環網路

也就是說,循環網路不僅將當前的輸入樣例作為網路輸入,還將它們之前感知到的一並作為輸入。

我們試著建立了一個多層感知器。從簡單的角度講,它有一個輸入層、一個具備特定激活函數的隱藏層,最終可以得到輸出。

多層感知器架構示例

如果在上述示例中的層數增加了,輸入層也接收輸入。那麼第一個隱藏層將激活傳遞到下一個隱藏層上,依此類推。最後到達輸出層。每一個隱藏層都有自己的權重和偏置項。現在問題變成了我們可以輸入到隱藏層嗎?

每一層都有自己的權重(W)、偏置項(B)和激活函數(F)。這些層的行為不同,合並它們從技術層面上講也極具挑戰性。為了合並它們,我們將所有層的權重和偏置項替換成相同的值。如下圖所示:

現在我們就可以將所有層合並在一起了。所有的隱藏層都可以結合在一個循環層中。所以看起來就像下圖:

我們在每一步都會向隱藏層提供輸入。現在一個循環神經元存儲了所有之前步的輸入,並將這些信息和當前步的輸入合並。因此,它還捕獲到一些當前數據步和之前步的相關性信息。t-1 步的決策影響到第 t 步做的決策。這很像人類在生活中做決策的方式。我們將當前數據和近期數據結合起來,幫助解決手頭的特定問題。這個例子很簡單,但從原則上講這與人類的決策能力是一致的。這讓我非常想知道我們作為人類是否真的很智能,或者說我們是否有非常高級的神經網路模型。我們做出的決策只是對生活中收集到的數據進行訓練。那麼一旦有了能夠在合理時間段內存儲和計算數據的先進模型和系統時,是否可以數字化大腦呢?所以當我們有了比大腦更好更快的模型(基於數百萬人的數據訓練出的)時,會發生什麼?

另一篇文章(https://deeplearning4j.org/lstm.html)的有趣觀點:人總是被自己的行為所困擾。

我們用一個例子來闡述上面的解釋,這個例子是預測一系列字母後的下一個字母。想像一個有 8 個字母的單詞 namaskar。

namaskar(合十禮):印度表示尊重的傳統問候或姿勢,將手掌合起置於面前或胸前鞠躬。

如果我們在向網路輸入 7 個字母後試著找出第 8 個字母,會發生什麼呢?隱藏層會經歷 8 次迭代。如果展開網路的話就是一個 8 層的網路,每一層對應一個字母。所以你可以想像一個普通的神經網路被重復了多次。展開的次數與它記得多久之前的數據是直接相關的。

循環神經網路的運作原理

循環神經元

這里我們將更深入地了解負責決策的實際神經元。以之前提到的 namaskar 為例,在給出前 7 個字母後,試著找出第 8 個字母。輸入數據的完整詞彙表是 {n,a,m,s,k,r}。在真實世界中單詞或句子都會更復雜。為了簡化問題,我們用的是下面這個簡單的詞彙表。

在上圖中,隱藏層或 RNN 塊在當前輸入和之前的狀態中應用了公式。在本例中,namaste 的字母 n 前面什麼都沒有。所以我們直接使用當前信息推斷,並移動到下一個字母 a。在推斷字母 a 的過程中,隱藏層應用了上述公式結合當前推斷 a 的信息與前面推斷 n 的信息。輸入在網路中傳遞的每一個狀態都是一個時間步或一步,所以時間步 t 的輸入是 a,時間步 t-1 的輸入就是 n。將公式同時應用於 n 和 a 後,就得到了一個新狀態。

用於當前狀態的公式如下所示:

h_t 是新狀態,h_t-1 是前一個狀態。x_t 是時間 t 時的輸入。在對之前的時間步應用了相同的公式後,我們已經能感知到之前的輸入了。我們將檢查 7 個這樣的輸入,它們在每一步的權重和函數都是相同的。

現在試著以簡單的方式定義 f()。我們使用 tanh 激活函數。通過矩陣 W_hh 定義權重,通過矩陣 W_xh 定義輸入。公式如下所示:

上例只將最後一步作為記憶,因此只與最後一步的數據合並。為了提升網路的記憶能力,並在記憶中保留較長的序列,我們必須在方程中添加更多的狀態,如 h_t-2、h_t-3 等。最後輸出可以按測試階段的計算方式進行計算:

其中,y_t 是輸出。對輸出與實際輸出進行對比,然後計算出誤差值。網路通過反向傳播誤差來更新權重,進行學習。本文後續部分會對反向傳播進行討論。

基於時間的反向傳播演算法(BPTT)

本節默認你已經了解了反向傳播概念。如果需要對反向傳播進行深入了解,請參閱鏈接:?http://cs231n.github.io/optimization-2/?。

現在我們了解了 RNN 是如何實際運作的,但是在實際工作中如何訓練 RNN 呢?該如何決定每個連接的權重呢?如何初始化這些隱藏單元的權重呢?循環網路的目的是要准確地對序列輸入進行分類。這要靠誤差值的反向傳播和梯度下降來實現。但是前饋網路中使用的標准反向傳播無法在此應用。

與有向無環的前饋網路不同,RNN 是循環圖,這也是問題所在。在前饋網路中可以計算出之前層的誤差導數。但 RNN 的層級排列與前饋網路並不相同。

答案就在之前討論過的內容中。我們需要展開網路。展開網路使其看起來像前饋網路就可以了。

展開 RNN

在每個時間步取出 RNN 的隱藏單元並復制。時間步中的每一次復制就像前饋網路中的一層。在時間步 t+1 中每個時間步 t 層與所有可能的層連接。因此我們對權重進行隨機初始化,展開網路,然後在隱藏層中通過反向傳播優化權重。通過向最低層傳遞參數完成初始化。這些參數作為反向傳播的一部分也得到了優化。

展開網路的結果是,現在每一層的權重都不同,因此最終會得到不同程度的優化。無法保證基於權重計算出的誤差是相等的。所以每一次運行結束時每一層的權重都不同。這是我們絕對不希望看到的。最簡單的解決辦法是以某種方式將所有層的誤差合並到一起。可以對誤差值取平均或者求和。通過這種方式,我們可以在所有時間步中使用一層來保持相同的權重。

RNN 實現

本文試著用 Keras 模型實現 RNN。我們試著根據給定的文本預測下一個序列。

代碼地址:?https://gist.github.com/.git?

該模型是 Yash Katariya 建的。我對該模型做了一些細微的改動以適合本文的要求。

⑤ 神經網路的歷史是什麼

沃倫·麥卡洛克和沃爾特·皮茨(1943)基於數學和一種稱為閾值邏輯的演算法創造了一種神經網路的計算模型。這種模型使得神經網路的研究分裂為兩種不同研究思路。一種主要關注大腦中的生物學過程,另一種主要關注神經網路在人工智慧里的應用。

一、赫布型學習

二十世紀40年代後期,心理學家唐納德·赫布根據神經可塑性的機制創造了一種對學習的假說,現在稱作赫布型學習。赫布型學習被認為是一種典型的非監督式學習規則,它後來的變種是長期增強作用的早期模型。從1948年開始,研究人員將這種計算模型的思想應用到B型圖靈機上。

法利和韋斯利·A·克拉克(1954)首次使用計算機,當時稱作計算器,在MIT模擬了一個赫布網路。納撒尼爾·羅切斯特(1956)等人模擬了一台 IBM 704計算機上的抽象神經網路的行為。

弗蘭克·羅森布拉特創造了感知機。這是一種模式識別演算法,用簡單的加減法實現了兩層的計算機學習網路。羅森布拉特也用數學符號描述了基本感知機里沒有的迴路,例如異或迴路。這種迴路一直無法被神經網路處理,直到保羅·韋伯斯(1975)創造了反向傳播演算法。

在馬文·明斯基和西摩爾·派普特(1969)發表了一項關於機器學習的研究以後,神經網路的研究停滯不前。他們發現了神經網路的兩個關鍵問題。

第一是基本感知機無法處理異或迴路。第二個重要的問題是電腦沒有足夠的能力來處理大型神經網路所需要的很長的計算時間。直到計算機具有更強的計算能力之前,神經網路的研究進展緩慢。

二、反向傳播演算法與復興

後來出現的一個關鍵的進展是保羅·韋伯斯發明的反向傳播演算法(Werbos 1975)。這個演算法有效地解決了異或的問題,還有更普遍的訓練多層神經網路的問題。

在二十世紀80年代中期,分布式並行處理(當時稱作聯結主義)流行起來。戴維·魯姆哈特和詹姆斯·麥克里蘭德的教材對於聯結主義在計算機模擬神經活動中的應用提供了全面的論述。

神經網路傳統上被認為是大腦中的神經活動的簡化模型,雖然這個模型和大腦的生理結構之間的關聯存在爭議。人們不清楚人工神經網路能多大程度地反映大腦的功能。

支持向量機和其他更簡單的方法(例如線性分類器)在機器學習領域的流行度逐漸超過了神經網路,但是在2000年代後期出現的深度學習重新激發了人們對神經網路的興趣。

三、2006年之後的進展

人們用CMOS創造了用於生物物理模擬和神經形態計算的計算設備。最新的研究顯示了用於大型主成分分析和卷積神經網路的納米設備具有良好的前景。

如果成功的話,這會創造出一種新的神經計算設備,因為它依賴於學習而不是編程,並且它從根本上就是模擬的而不是數字化的,雖然它的第一個實例可能是數字化的CMOS設備。

在2009到2012年之間,Jürgen Schmidhuber在Swiss AI Lab IDSIA的研究小組研發的循環神經網路和深前饋神經網路贏得了8項關於模式識別和機器學習的國際比賽。

例如,Alex Graves et al.的雙向、多維的LSTM贏得了2009年ICDAR的3項關於連筆字識別的比賽,而且之前並不知道關於將要學習的3種語言的信息。

IDSIA的Dan Ciresan和同事根據這個方法編寫的基於GPU的實現贏得了多項模式識別的比賽,包括IJCNN 2011交通標志識別比賽等等。

他們的神經網路也是第一個在重要的基準測試中(例如IJCNN 2012交通標志識別和NYU的揚·勒丘恩(Yann LeCun)的MNIST手寫數字問題)能達到或超過人類水平的人工模式識別器。

類似1980年Kunihiko Fukushima發明的neocognitron和視覺標准結構(由David H. Hubel和Torsten Wiesel在初級視皮層中發現的那些簡單而又復雜的細胞啟發)那樣有深度的、高度非線性的神經結構可以被多倫多大學傑弗里·辛頓實驗室的非監督式學習方法所訓練。

2012年,神經網路出現了快速的發展,主要原因在於計算技術的提高,使得很多復雜的運算變得成本低廉。以AlexNet為標志,大量的深度網路開始出現。

2014年出現了殘差神經網路,該網路極大解放了神經網路的深度限制,出現了深度學習的概念。

構成

典型的人工神經網路具有以下三個部分:

1、結構(Architecture)結構指定了網路中的變數和它們的拓撲關系。例如,神經網路中的變數可以是神經元連接的權重(weights)和神經元的激勵值(activities of the neurons)。

2、激勵函數(Activation Rule)大部分神經網路模型具有一個短時間尺度的動力學規則,來定義神經元如何根據其他神經元的活動來改變自己的激勵值。一般激勵函數依賴於網路中的權重(即該網路的參數)。

3、學習規則(Learning Rule)學習規則指定了網路中的權重如何隨著時間推進而調整。這一般被看做是一種長時間尺度的動力學規則。一般情況下,學習規則依賴於神經元的激勵值。它也可能依賴於監督者提供的目標值和當前權重的值。

例如,用於手寫識別的一個神經網路,有一組輸入神經元。輸入神經元會被輸入圖像的數據所激發。在激勵值被加權並通過一個函數(由網路的設計者確定)後,這些神經元的激勵值被傳遞到其他神經元。

這個過程不斷重復,直到輸出神經元被激發。最後,輸出神經元的激勵值決定了識別出來的是哪個字母。

⑥ sklearn 神經網路 MLPClassifier簡單應用與參數說明

MLPClassifier是一個監督學習演算法,下圖是只有1個隱藏層的MLP模型 ,左側是輸入層,右側是輸出層。

上圖的整體結構可以簡單的理解為下圖所示:

MLP又名多層感知機,也叫人工神經網路(ANN,Artificial Neural Network),除了輸入輸出層,它中間可以有多個隱藏層,如果沒有隱藏層即可解決線性可劃分的數據問題。最簡單的MLP模型只包含一個隱藏層,即三層的結構,如上圖。

從上圖可以看到,多層感知機的層與層之間是全連接的(全連接的意思就是:上一層的任何一個神經元與下一層的所有神經元都有連接)。多層感知機最底層是輸入層,中間是隱藏層,最後是輸出層。

輸入層沒什麼好說,你輸入什麼就是什麼,比如輸入是一個n維向量,就有n個神經元。

隱藏層的神經元怎麼得來?首先它與輸入層是全連接的,假設輸入層用向量X表示,則隱藏層的輸出就是

f(W1X+b1),W1是權重(也叫連接系數),b1是偏置,函數f 可以是常用的sigmoid函數或者tanh函數:

最後就是輸出層,輸出層與隱藏層是什麼關系?其實隱藏層到輸出層可以看成是一個多類別的邏輯回歸,也即softmax回歸,所以輸出層的輸出就是softmax(W2X1+b2),X1表示隱藏層的輸出f(W1X+b1)。

MLP整個模型就是這樣子的,上面說的這個三層的MLP用公式總結起來就是,函數G是softmax

因此,MLP所有的參數就是各個層之間的連接權重以及偏置,包括W1、b1、W2、b2。對於一個具體的問題,怎麼確定這些參數?求解最佳的參數是一個最優化問題,解決最優化問題,最簡單的就是梯度下降法了(sgd):首先隨機初始化所有參數,然後迭代地訓練,不斷地計算梯度和更新參數,直到滿足某個條件為止(比如誤差足夠小、迭代次數足夠多時)。這個過程涉及到代價函數、規則化(Regularization)、學習速率(learning rate)、梯度計算等。

下面寫了一個超級簡單的實例,訓練和測試數據是mnist手寫識別數據集:

from sklearn.neural_network import MLPClassifier

import gzip

import pickle

with gzip.open('./mnist.pkl.gz') as f_gz:

    train_data,valid_data,test_data = pickle.load(f_gz)

clf = MLPClassifier(solver='sgd',activation = 'identity',max_iter = 10,alpha = 1e-5,hidden_layer_sizes = (100,50),random_state = 1,verbose = True)

clf.fit(train_data[0][:10000],train_data[1][:10000])

print clf.predict(test_data[0][:10])

print(clf.score(test_data[0][:100],test_data[1][:100]))

print(clf.predict_proba(test_data[0][:10]))

參數說明:

參數說明: 

1. hidden_layer_sizes :例如hidden_layer_sizes=(50, 50),表示有兩層隱藏層,第一層隱藏層有50個神經元,第二層也有50個神經元。 

2. activation :激活函數,{『identity』, 『logistic』, 『tanh』, 『relu』}, 默認relu 

- identity:f(x) = x 

- logistic:其實就是sigmod,f(x) = 1 / (1 + exp(-x)). 

- tanh:f(x) = tanh(x). 

- relu:f(x) = max(0, x) 

3. solver: {『lbfgs』, 『sgd』, 『adam』}, 默認adam,用來優化權重 

- lbfgs:quasi-Newton方法的優化器 

- sgd:隨機梯度下降 

- adam: Kingma, Diederik, and Jimmy Ba提出的機遇隨機梯度的優化器 

注意:默認solver 『adam』在相對較大的數據集上效果比較好(幾千個樣本或者更多),對小數據集來說,lbfgs收斂更快效果也更好。 

4. alpha :float,可選的,默認0.0001,正則化項參數 

5. batch_size : int , 可選的,默認』auto』,隨機優化的minibatches的大小batch_size=min(200,n_samples),如果solver是』lbfgs』,分類器將不使用minibatch 

6. learning_rate :學習率,用於權重更新,只有當solver為』sgd』時使用,{『constant』,』invscaling』, 『adaptive』},默認constant 

- 『constant』: 有』learning_rate_init』給定的恆定學習率 

- 『incscaling』:隨著時間t使用』power_t』的逆標度指數不斷降低學習率learning_rate_ ,effective_learning_rate = learning_rate_init / pow(t, power_t) 

- 『adaptive』:只要訓練損耗在下降,就保持學習率為』learning_rate_init』不變,當連續兩次不能降低訓練損耗或驗證分數停止升高至少tol時,將當前學習率除以5. 

7. power_t: double, 可選, default 0.5,只有solver=』sgd』時使用,是逆擴展學習率的指數.當learning_rate=』invscaling』,用來更新有效學習率。 

8. max_iter: int,可選,默認200,最大迭代次數。 

9. random_state:int 或RandomState,可選,默認None,隨機數生成器的狀態或種子。 

10. shuffle: bool,可選,默認True,只有當solver=』sgd』或者『adam』時使用,判斷是否在每次迭代時對樣本進行清洗。 

11. tol:float, 可選,默認1e-4,優化的容忍度 

12. learning_rate_int:double,可選,默認0.001,初始學習率,控制更新權重的補償,只有當solver=』sgd』 或』adam』時使用。 

14. verbose : bool, 可選, 默認False,是否將過程列印到stdout 

15. warm_start : bool, 可選, 默認False,當設置成True,使用之前的解決方法作為初始擬合,否則釋放之前的解決方法。 

16. momentum : float, 默認 0.9,動量梯度下降更新,設置的范圍應該0.0-1.0. 只有solver=』sgd』時使用. 

17. nesterovs_momentum : boolean, 默認True, Whether to use Nesterov』s momentum. 只有solver=』sgd』並且momentum > 0使用. 

18. early_stopping : bool, 默認False,只有solver=』sgd』或者』adam』時有效,判斷當驗證效果不再改善的時候是否終止訓練,當為True時,自動選出10%的訓練數據用於驗證並在兩步連續迭代改善,低於tol時終止訓練。 

19. validation_fraction : float, 可選, 默認 0.1,用作早期停止驗證的預留訓練數據集的比例,早0-1之間,只當early_stopping=True有用 

20. beta_1 : float, 可選, 默認0.9,只有solver=』adam』時使用,估計一階矩向量的指數衰減速率,[0,1)之間 

21. beta_2 : float, 可選, 默認0.999,只有solver=』adam』時使用估計二階矩向量的指數衰減速率[0,1)之間 

22. epsilon : float, 可選, 默認1e-8,只有solver=』adam』時使用數值穩定值。 

屬性說明: 

- classes_:每個輸出的類標簽 

- loss_:損失函數計算出來的當前損失值 

- coefs_:列表中的第i個元素表示i層的權重矩陣 

- intercepts_:列表中第i個元素代表i+1層的偏差向量 

- n_iter_ :迭代次數 

- n_layers_:層數 

- n_outputs_:輸出的個數 

- out_activation_:輸出激活函數的名稱。 

方法說明: 

- fit(X,y):擬合 

- get_params([deep]):獲取參數 

- predict(X):使用MLP進行預測 

- predic_log_proba(X):返回對數概率估計 

- predic_proba(X):概率估計 

- score(X,y[,sample_weight]):返回給定測試數據和標簽上的平均准確度 

-set_params(**params):設置參數。

⑦ 深度學習中權重全0會出現什麼結果

三角; 而頂層可能有一個結點表示人臉。
傳統的人工智慧方法蒙特卡洛樹搜索的組合:是一種人工智慧問題中做出最優決策的方法,一般是在組合博弈中的行動(move)規劃形式AlphaGo依靠精確的專家評估系統(value network):專家系統是一個智能計算機程序系統,以往沒有有效的方法構造多層網路,以前的多層神經網路的問題是容易陷入局部極值點。如果訓練樣本足夠充分覆蓋未來的樣本,那麼學到的多層權重可以很好的用來預測新的測試樣本,比如底層是像素點,上一層的結點可能表示橫線,簡單的模型。但是很多任務難以得到足夠多的標記樣本,在這種情況下。多層神經網路的頂層是底層特徵的高級表示,比如線性回歸或者決策樹往往能得到比多層神經網路更好的結果。非監督學習中,其內部含有大量的某個領域專家水平的知識與經驗,能夠利用人類專家的知識和解決問題的方法來處理該領域問題。
基於海量數據的深度神經網路(policy network):多層的好處是可以用較少的參數表示復雜的函數。在監督學習中

⑧ 簡述人工神經網路受到哪些生物神經網路的啟發

人工神經網路最初是為了嘗試利用人腦的架構來執行傳統演算法幾乎沒有成功的任務。

對人類中樞神經系統的觀察啟發了人工神經網路這個概念。在人工神經網路中,簡單的人工節點,稱作神經元(neurons),連接在一起形成一個類似生物神經網路的網狀結構。

人工神經網路基於一組稱為人工神經元的連接單元或節點,它們對生物大腦中的神經元進行鬆散建模。每個連接,就像生物大腦中的突觸一樣,可以向其他神經元傳輸信號。

人工神經元接收信號然後對其進行處理,並可以向與其相連的神經元發送信號。連接處的「信號」是一個實數,每個神經元的輸出由其輸入總和的某個非線性函數計算。連接稱為邊。

神經元和邊緣通常具有權重隨著學習的進行而調整。權重會增加或減少連接處的信號強度。神經元可能有一個閾值,這樣只有當聚合信號超過該閾值時才會發送信號。通常,神經元聚合成層。不同的層可以對其輸入執行不同的轉換。信號從第一層(輸入層)傳輸到最後一層(輸出層),可能在多次遍歷層之後。

現代神經網路是一種非線性統計性數據建模工具,神經網路通常是通過一個基於數學統計學類型的學習方法(Learning Method)得以優化,所以也是數學統計學方法的一種實際應用,通過統計學的標准數學方法我們能夠得到大量的可以用函數來表達的局部結構空間;

另一方面在人工智慧學的人工感知領域,我們通過數學統計學的應用可以來做人工感知方面的決定問題(也就是說通過統計學的方法,人工神經網路能夠類似人一樣具有簡單的決定能力和簡單的判斷能力),這種方法比起正式的邏輯學推理演算更具有優勢。

和其他機器學習方法一樣,神經網路已經被用於解決各種各樣的問題,例如機器視覺和語音識別。這些問題都是很難被傳統基於規則的編程所解決的。

構成

1、結構(Architecture)結構指定了網路中的變數和它們的拓撲關系。例如,神經網路中的變數可以是神經元連接的權重(weights)和神經元的激勵值(activities of the neurons)。

2、激勵函數(Activation Rule)大部分神經網路模型具有一個短時間尺度的動力學規則,來定義神經元如何根據其他神經元的活動來改變自己的激勵值。一般激勵函數依賴於網路中的權重(即該網路的參數)。

3、 學習規則(Learning Rule)學習規則指定了網路中的權重如何隨著時間推進而調整。這一般被看做是一種長時間尺度的動力學規則。一般情況下,學習規則依賴於神經元的激勵值。它也可能依賴於監督者提供的目標值和當前權重的值。例如,用於手寫識別的一個神經網路,有一組輸入神經元。

輸入神經元會被輸入圖像的數據所激發。在激勵值被加權並通過一個函數(由網路的設計者確定)後,這些神經元的激勵值被傳遞到其他神經元。這個過程不斷重復,直到輸出神經元被激發。最後,輸出神經元的激勵值決定了識別出來的是哪個字母。

閱讀全文

與神經網路監督學習中的權重是什麼相關的資料

熱點內容
公共網路延時特別高怎麼辦 瀏覽:541
日本蘋果4網路設置 瀏覽:724
天童美語網路上課軟體 瀏覽:254
網路合夥人如何找 瀏覽:169
帶無線路由器網路信號弱 瀏覽:384
如何用電話知道對方網路密碼 瀏覽:118
九江公安局網路安全支隊 瀏覽:994
無線網路連接密碼錯誤 瀏覽:428
隨身wifi沒有網路怎麼用 瀏覽:36
如何切換至廣電網路信號 瀏覽:314
網路收款助手在哪裡 瀏覽:300
移動網路設置接哪個位置 瀏覽:20
網路安全宣傳語錄簡短 瀏覽:310
網路上虛擬視頻用哪一個軟體 瀏覽:464
蘋果xsmax網路天線在哪裡 瀏覽:692
移動網路無法使用電信dns解析 瀏覽:663
4g網路如何解析信號 瀏覽:137
移動的網路台式電腦掉線 瀏覽:952
注冊微信網路打不開什麼原因 瀏覽:544
王者榮耀手機網路模式怎麼設置 瀏覽:362

友情鏈接