![機(jī)器學(xué)習(xí)及應(yīng)用第4章-神經(jīng)網(wǎng)絡(luò)課件_第1頁(yè)](http://file4.renrendoc.com/view/1d2f2a6e14b33052699b4b66060f39fd/1d2f2a6e14b33052699b4b66060f39fd1.gif)
![機(jī)器學(xué)習(xí)及應(yīng)用第4章-神經(jīng)網(wǎng)絡(luò)課件_第2頁(yè)](http://file4.renrendoc.com/view/1d2f2a6e14b33052699b4b66060f39fd/1d2f2a6e14b33052699b4b66060f39fd2.gif)
![機(jī)器學(xué)習(xí)及應(yīng)用第4章-神經(jīng)網(wǎng)絡(luò)課件_第3頁(yè)](http://file4.renrendoc.com/view/1d2f2a6e14b33052699b4b66060f39fd/1d2f2a6e14b33052699b4b66060f39fd3.gif)
![機(jī)器學(xué)習(xí)及應(yīng)用第4章-神經(jīng)網(wǎng)絡(luò)課件_第4頁(yè)](http://file4.renrendoc.com/view/1d2f2a6e14b33052699b4b66060f39fd/1d2f2a6e14b33052699b4b66060f39fd4.gif)
![機(jī)器學(xué)習(xí)及應(yīng)用第4章-神經(jīng)網(wǎng)絡(luò)課件_第5頁(yè)](http://file4.renrendoc.com/view/1d2f2a6e14b33052699b4b66060f39fd/1d2f2a6e14b33052699b4b66060f39fd5.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第04章 神經(jīng)網(wǎng)絡(luò)神經(jīng)元感知機(jī)梯度下降法隨機(jī)梯度下降法前向神經(jīng)網(wǎng)絡(luò)分類器BP神經(jīng)網(wǎng)絡(luò)玻爾茲曼機(jī)4.1 引言神經(jīng)網(wǎng)絡(luò)是一門受生物神經(jīng)網(wǎng)絡(luò)的啟發(fā)而興起的、發(fā)展迅速的交叉學(xué)科,涉及計(jì)算機(jī)、生物、數(shù)學(xué)、心理學(xué)、電子、認(rèn)知科學(xué)等學(xué)科。人工神經(jīng)網(wǎng)絡(luò)可以設(shè)計(jì)出某些具有類似大腦功能的智能系統(tǒng)來(lái)處理各種信息,解決不同問(wèn)題。如市場(chǎng)預(yù)測(cè)、數(shù)據(jù)分類、語(yǔ)音識(shí)別、文字識(shí)別、醫(yī)療診斷等。4.1.1人工神經(jīng)網(wǎng)絡(luò)的發(fā)展歷程1890年,首次闡明了人腦結(jié)構(gòu)功能和相關(guān)的學(xué)習(xí)聯(lián)想記憶規(guī)則。1943年,神經(jīng)元的基本特性,提出了神經(jīng)元的數(shù)學(xué)模型,即M-P模型。1949年,神經(jīng)元學(xué)習(xí)的一般規(guī)則,即Hebbin法則。1958年,歷史上第一個(gè)具
2、有學(xué)習(xí)型神經(jīng)網(wǎng)絡(luò)特點(diǎn)的模式識(shí)別裝置,并給出了兩層感知機(jī)的收斂定理;之后,又提出三層感知機(jī)模型。4.1 引言1960年代初期,自適應(yīng)線性元結(jié)構(gòu),提出了Windrow-Hoff算法,主要應(yīng)用于自適應(yīng)系統(tǒng)。1969年,單層神經(jīng)網(wǎng)絡(luò)的功能局限性,發(fā)展走入低谷。20世紀(jì)80年代,成功求解NP完全的旅行商問(wèn)題,研制了Boltzmann機(jī);誤差反向傳播算法。1990年,神經(jīng)網(wǎng)絡(luò)集成方法。1997年,AdaBoost算法。2012年6月,吳恩達(dá)和谷歌科學(xué)家合作,用1.6萬(wàn)臺(tái)計(jì)算機(jī)搭建并模擬了一個(gè)人腦神經(jīng)網(wǎng)絡(luò)。2015年5月,深度學(xué)習(xí)開始被學(xué)術(shù)界接受。2016年3月,AlphaGo打敗韓國(guó)圍棋選手李世石。4.1
3、 引言分布式存儲(chǔ)信息并行協(xié)同處理信息信息處理與存儲(chǔ)合二為一對(duì)信息的處理具有自組織、自學(xué)習(xí)的特點(diǎn),便于聯(lián)想、綜合和推廣4.1.2 人工神經(jīng)網(wǎng)絡(luò)的特點(diǎn)4.1.3 人工神經(jīng)網(wǎng)絡(luò)的分類前饋神經(jīng)網(wǎng)絡(luò)將神經(jīng)元分層排列,分別是輸入層、中間層和輸出層。按照層數(shù)不同,劃分為單層前饋神經(jīng)網(wǎng)絡(luò)和多層前饋神經(jīng)網(wǎng)絡(luò)。感知機(jī)、BP網(wǎng)絡(luò)、RBF網(wǎng)絡(luò)。反饋神經(jīng)網(wǎng)絡(luò)每個(gè)神經(jīng)元同時(shí)將自身的輸出信號(hào)作為輸入信號(hào)反饋給其他神經(jīng)元,Hopfield神經(jīng)網(wǎng)絡(luò)是反饋網(wǎng)絡(luò)中最簡(jiǎn)單且應(yīng)用廣泛的模型。自組織神經(jīng)網(wǎng)絡(luò)是無(wú)導(dǎo)師學(xué)習(xí)網(wǎng)絡(luò)通常采用競(jìng)爭(zhēng)原則進(jìn)行網(wǎng)絡(luò)學(xué)習(xí)。4.2 神經(jīng)元模型神經(jīng)元是神經(jīng)網(wǎng)絡(luò)的基本信息處理單位,是(人工)神經(jīng)網(wǎng)絡(luò)的設(shè)計(jì)基礎(chǔ)。對(duì)
4、于神經(jīng)元的研究由來(lái)已久,1904年生物學(xué)家就已經(jīng)知曉了神經(jīng)元的組成結(jié)構(gòu)。一個(gè)(生物)神經(jīng)元主要由細(xì)胞體(Cell body)、樹突(Dendrites)、軸突(Myelin Sheath)和突觸(Synapse)等組成。樹突是傳入纖維,軸突是傳出纖維。4.2 神經(jīng)元模型 神經(jīng)元是神經(jīng)網(wǎng)絡(luò)的基本信息處理單位,組成結(jié)構(gòu)。1943年,神經(jīng)學(xué)家和解剖學(xué)家W.S. McCulloch和數(shù)理邏輯學(xué)家W. Pitts參考了生物神經(jīng)元的結(jié)構(gòu),提出了形似(生物)神經(jīng)元的線性加權(quán)求和閾值模型,簡(jiǎn)稱M-P模型。4.2 神經(jīng)元模型神經(jīng)元閾值函數(shù):符號(hào)函數(shù)SgnLogistic函數(shù)M-P神經(jīng)元特點(diǎn)多輸入單輸出分為興奮性
5、輸入和抑制性輸入空間整合特性和閾值特性輸入通過(guò)權(quán)值表征耦合程度突觸接頭有時(shí)間延遲,網(wǎng)絡(luò)的活動(dòng)過(guò)程離散化4.3 感知機(jī)與多層神經(jīng)網(wǎng)絡(luò)美國(guó)計(jì)算機(jī)科學(xué)家Frank Rosenblatt于1957年發(fā)明了感知機(jī),是最早的人工神經(jīng)網(wǎng)絡(luò),是一種二元線性分類器。單層感知機(jī)是一個(gè)具有一層神經(jīng)元、采用閾值激活函數(shù)的前向網(wǎng)絡(luò)。4.3.1 感知機(jī)4.3 感知機(jī)與多層神經(jīng)網(wǎng)絡(luò)4.3.1 感知機(jī)4.3 感知機(jī)與多層神經(jīng)網(wǎng)絡(luò)4.3.1 感知機(jī)4.3 感知機(jī)與多層神經(jīng)網(wǎng)絡(luò)1.感知機(jī)訓(xùn)練4.3 感知機(jī)與多層神經(jīng)網(wǎng)絡(luò)2.感知機(jī)神經(jīng)網(wǎng)絡(luò)的局限性感知機(jī)神經(jīng)網(wǎng)絡(luò)的傳輸函數(shù)一般采用閾值函數(shù),故輸出只有兩種(1或者0),所以只能用來(lái)解決
6、簡(jiǎn)單的分類問(wèn)題;單層感知機(jī)網(wǎng)絡(luò)只能解決線性可分的分類問(wèn)題,而對(duì)線性不可分的分類問(wèn)題無(wú)能為力;感知機(jī)學(xué)習(xí)算法只適于單層感知機(jī)網(wǎng)絡(luò),所以一般感知機(jī)網(wǎng)絡(luò)都是單層的。4.3 感知機(jī)與多層神經(jīng)網(wǎng)絡(luò)3.感知機(jī)實(shí)驗(yàn) (a)線性可分 (b) 線性不可分4.3 感知機(jī)與多層神經(jīng)網(wǎng)絡(luò) # 訓(xùn)練感知機(jī) def train(self, inputs, targets, eta, nIterations): # 偏置加入輸入,構(gòu)成4 * 3維矩陣 inputs = concatenate(inputs, - ones(self.nData,1), axis = 1) # 訓(xùn)練 for n in range( nIter
7、ations ): # 前向傳播 self.outputs = self.forward(inputs) # 修改權(quán)值 self.weights = self.weights + eta * dot(transpose(inputs), targets - self.outputs)# 前向傳播 def forward(self, inputs): outputs = dot(inputs, self.weights) return where(outputs 0.5, 1, 0) # 輸出閾值 # 輸出 def prn(self): print(Percetrons weights:n, s
8、elf.weights) print(Percetrons outputs:n, self.outputs)主要實(shí)現(xiàn)代碼:4.3 感知機(jī)與多層神經(jīng)網(wǎng)絡(luò)inputs = array(0,0,0,1,1,0,1,1) # 輸入數(shù)據(jù),也是測(cè)試數(shù)據(jù)targets = array(0,0,0,1) # AND運(yùn)算的標(biāo)簽數(shù)據(jù)p = singlePerception(inputs,targets) #單層感知機(jī)對(duì)象p.train(inputs, targets, 0.25, 6) # 訓(xùn)練感知機(jī)對(duì)象 p.prn() # 輸出結(jié)果運(yùn)行結(jié)果:Percetrons weights: 0.51900471 0.46
9、993134-0.28361255Percetrons outputs:0001主程序(含輸入數(shù)據(jù)):(續(xù)上)4.3.2 梯度下降法1.邏輯回歸(Logistic Regression)4.3.2 梯度下降法1.邏輯回歸(Logistic Regression)4.3.2 梯度下降法1.邏輯回歸(Logistic Regression)4.3.2 梯度下降法1.邏輯回歸(Logistic Regression)4.3.2 梯度下降法1.邏輯回歸(Logistic Regression)4.3.2 梯度下降法2.梯度下降(gradient descent)4.3.2 梯度下降法2.梯度下降(gr
10、adient descent)4.3.3 隨機(jī)梯度下降法4.3.4 多層神經(jīng)網(wǎng)絡(luò)1.二層前向神經(jīng)網(wǎng)絡(luò)4.3.4 多層神經(jīng)網(wǎng)絡(luò)1.二層前向神經(jīng)網(wǎng)絡(luò)4.3.4 多層神經(jīng)網(wǎng)絡(luò)1.二層前向神經(jīng)網(wǎng)絡(luò)4.3.4 多層神經(jīng)網(wǎng)絡(luò) # 通過(guò)試錯(cuò)訓(xùn)練神經(jīng)網(wǎng)絡(luò),每次微調(diào)突觸權(quán)重 def train(self, trainingInputs, trainingOutputs, nTrainingIteration): for iteration in range(nTrainingIteration): # 將整個(gè)訓(xùn)練集傳遞給神經(jīng)網(wǎng)絡(luò) output_from_layer_1, output_from_layer_2
11、= self.predict(trainingInputs) # 計(jì)算第二層的誤差 layer2_error = trainingOutputs - output_from_layer_2 layer2_delta = layer2_error * self._sigmoid_derivative(output_from_layer_2) # 計(jì)算第二層的權(quán)重調(diào)整量 layer2_adjustment = self.layer2.eta * output_from_layer_1.T.dot(layer2_delta) # 調(diào)整第二層的權(quán)重 self.layer2.weights += lay
12、er2_adjustment # 計(jì)算第一層的誤差,得到第一層對(duì)第二層的影響 layer1_error = layer2_delta.dot(self.layer2.weights.T) layer1_delta = layer1_error * self._sigmoid_derivative(output_from_layer_1) # 計(jì)算第一層的權(quán)重調(diào)整量 layer1_adjustment = self.layer1.eta * trainingInputs.T.dot(layer1_delta) # 調(diào)整第一層的權(quán)重 self.layer1.weights += layer1_ad
13、justment實(shí)現(xiàn)代碼:4.3.4 多層神經(jīng)網(wǎng)絡(luò)# 二層神經(jīng)網(wǎng)絡(luò)的預(yù)測(cè)(第一層神經(jīng)網(wǎng)絡(luò)輸出,第二層神經(jīng)網(wǎng)絡(luò)輸出) def predict(self, inputs): output_from_layer1 = self.sigmoid(dot(inputs, self.layer1.weights) output_from_layer2 = self.sigmoid(dot(output_from_layer1, self.layer2.weights) return output_from_layer1, output_from_layer2# 訓(xùn)練集,XOR函數(shù)trainingInput
14、s = array(0, 0, 0, 1, 1, 0, 1, 1)trainingOutputs = array(0, 1, 1, 0).T# 初始化隨機(jī)數(shù)種子random.seed(1)#創(chuàng)建第一層 (4神經(jīng)元, 每個(gè)2輸入)layer1 = NeuronLayer(4, 2)#創(chuàng)建第二層 (單神經(jīng)元,4輸入)layer2 = NeuronLayer(1, 4)主程序(含訓(xùn)練數(shù)據(jù)):4.3.4 多層神經(jīng)網(wǎng)絡(luò)# 組合成神經(jīng)網(wǎng)絡(luò)tlnn = TwoLayersNeuralNetwork(layer1, layer2)print (1) 隨機(jī)初始突觸權(quán)重: )tlnn.print_weights(
15、)# 用訓(xùn)練集訓(xùn)練神經(jīng)網(wǎng)絡(luò)tlnn.train(trainingInputs, trainingOutputs, 50000)print (2) 訓(xùn)練后的權(quán)重值: )tlnn.print_weights()print (3) 預(yù)測(cè): )for i in range(len(trainingInputs): hidden_state, output = tlnn.predict(trainingInputsi) print(output)主程序(含訓(xùn)練數(shù)據(jù)):(續(xù)上)4.3.4 多層神經(jīng)網(wǎng)絡(luò)1) 隨機(jī)初始突觸權(quán)重: Layer 1 (4 neurons, each with 2 inputs):
16、 -0.16595599 0.44064899 -0.99977125 -0.39533485 -0.70648822 -0.81532281 -0.62747958 -0.30887855 Layer 2 (1 neuron, with 4 inputs):-0.20646505 0.07763347 -0.16161097 0.370439 2) 訓(xùn)練后的權(quán)重值: Layer 1 (4 neurons, each with 2 inputs): 2.57612468 3.91438561 -5.96509441 -7.38577669 -1.0245413 -8.02972636 -5.8
17、6303221 3.40368198 Layer 2 (1 neuron, with 4 inputs): -5.89617401 10.15582609 -19.37274716 6.449688243) 預(yù)測(cè): 0.01297458 0.99036898 0.98825116 0.01010893運(yùn)行結(jié)果:4.4 誤差反向傳播算法1986年,David E. Rumelhart和James McClelland提出的BP神經(jīng)網(wǎng)絡(luò)(Back Propagation Network),是一種按照誤差逆向傳播算法訓(xùn)練的多層前饋神經(jīng)網(wǎng)絡(luò),是目前應(yīng)用最廣泛的神經(jīng)網(wǎng)絡(luò)。BP神經(jīng)網(wǎng)絡(luò)的基本思想是梯度下降
18、法,利用梯度搜索技術(shù),以期使網(wǎng)絡(luò)的實(shí)際輸出值和期望輸出值的誤差均方差為最小。算法包括信號(hào)的前向傳播和誤差的反向傳播,即計(jì)算誤差輸出時(shí),按從輸入到輸出的方向進(jìn)行;而調(diào)整權(quán)值和閾值時(shí),按從輸出到輸入的方向進(jìn)行。正向傳播時(shí),輸入信號(hào)通過(guò)隱含層作用于輸出結(jié)點(diǎn),經(jīng)過(guò)非線性變換,產(chǎn)生輸出信號(hào),若實(shí)際輸出與期望輸出不相符,則轉(zhuǎn)入誤差的反向傳播過(guò)程。誤差的反向傳播是將輸出誤差通過(guò)隱含層向輸入層逐層反傳,并將誤差分?jǐn)偨o各層所有單元,以從各層獲得的誤差信號(hào)作為調(diào)整各單元權(quán)值的依據(jù),所以稱該算法為誤差反向傳播算法。4.4 誤差反向傳播算法4.4.1 BP神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)算法4.4 誤差反向傳播算法4.4.1 BP神經(jīng)網(wǎng)
19、絡(luò)學(xué)習(xí)算法4.4 誤差反向傳播算法4.4.1 BP神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)算法4.4 誤差反向傳播算法4.4.1 BP神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)算法4.4 誤差反向傳播算法4.4.1 BP神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)算法4.4 誤差反向傳播算法2.隱藏層權(quán)值訓(xùn)練4.4 誤差反向傳播算法2.隱藏層權(quán)值訓(xùn)練4.4 誤差反向傳播算法4.4 誤差反向傳播算法 stochastic gradient descent algorithm for training a three-layer network (only one hidden layer)4.4 誤差反向傳播算法4.4.1. BP神經(jīng)網(wǎng)絡(luò)實(shí)驗(yàn)4.4 誤差反向傳播算法# 前向計(jì)算。以i
20、nput_vector作為輸入值,計(jì)算神經(jīng)網(wǎng)絡(luò)neural_network的各層輸出def feed_forward(neural_network, input_vector): outputs = for layer in neural_network: input_with_bias = input_vector + 1 # 擴(kuò)展輸入向量 output = neuron_output(neuron, input_with_bias) for neuron in layer # 計(jì)算每一層的輸出結(jié)果 outputs.append(output) # 記錄當(dāng)前層(隱含層)的輸出值 input_
21、vector = output # 將當(dāng)前層的輸出作為下一層的輸入 return outputs4.4.2 BP神經(jīng)網(wǎng)絡(luò)實(shí)驗(yàn)程序代碼:4.4 誤差反向傳播算法4.4.2 BP神經(jīng)網(wǎng)絡(luò)實(shí)驗(yàn)# 反向傳播。以input_vector 為輸入訓(xùn)練向量,target為標(biāo)準(zhǔn),# 采用BP算法,反向逐層調(diào)整network的連接權(quán)值def backpropagate(network, input_vector, target): # 以input_vector為輸入,前向計(jì)算網(wǎng)絡(luò)的各層輸出值hidden_outputs, outputs = feed_forward(network, input_vector
22、)# 計(jì)算各層的delta值=output * (1 - output)。此處的激活函數(shù)為sigmoid output_deltas = output * (1 - output) * (output - targeti) for i, output in enumerate(outputs) # 調(diào)整輸出層的連接權(quán)重 for i, output_neuron in enumerate(network-1):續(xù)代碼4.4 誤差反向傳播算法 for j, hidden_output in enumerate(hidden_outputs + 1): output_neuronj -= output_deltasi * hidden_output # 反向調(diào)整各隱含層(除第一層外)的連接權(quán)重 hidden_deltas = hidden_output * (1 - hidden_output) * dot(output_deltas,
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 現(xiàn)代網(wǎng)絡(luò)教育技術(shù)的優(yōu)勢(shì)與挑戰(zhàn)
- 環(huán)境保護(hù)技術(shù)的創(chuàng)新及其商業(yè)模式研究
- 深化綠色能源技術(shù)教育的重要性
- 國(guó)慶節(jié)洋酒活動(dòng)方案設(shè)計(jì)
- 充電樁設(shè)備安裝施工方案
- 15 可親可敬的家鄉(xiāng)人1(說(shuō)課稿)2024-2025學(xué)年統(tǒng)編版道德與法治二年級(jí)上冊(cè)
- many、much、a lot of(說(shuō)課稿)-2023-2024學(xué)年譯林版(三起)英語(yǔ)六年級(jí)下冊(cè)
- 11屹立在世界的東方 自力更生 揚(yáng)眉吐氣 說(shuō)課稿-2023-2024學(xué)年道德與法治五年級(jí)下冊(cè)統(tǒng)編版
- 2024-2025學(xué)年高中歷史 專題六 穆罕默德 阿里改革 一 亟待拯救的文明古國(guó)(1)教學(xué)說(shuō)課稿 人民版選修1001
- 2023九年級(jí)數(shù)學(xué)上冊(cè) 第二十一章 一元二次方程21.3 實(shí)際問(wèn)題與一元二次方程第3課時(shí) 實(shí)際問(wèn)題與一元二次方程(3)說(shuō)課稿(新版)新人教版
- (高清版)DZT 0073-2016 電阻率剖面法技術(shù)規(guī)程
- 完整2024年開工第一課課件
- 貨運(yùn)車輛駕駛員安全培訓(xùn)內(nèi)容資料完整
- 高一學(xué)期述職報(bào)告
- 風(fēng)神汽車4S店安全生產(chǎn)培訓(xùn)課件
- ICU患者的體位轉(zhuǎn)換與床旁運(yùn)動(dòng)訓(xùn)練
- 人教版四年級(jí)上冊(cè)豎式計(jì)算200題及答案
- 建設(shè)工程工作總結(jié)報(bào)告
- 脾破裂術(shù)后健康宣教課件
- 三廢環(huán)保管理培訓(xùn)
- 藏族唐卡藝術(shù)特色分析
評(píng)論
0/150
提交評(píng)論