1. 程式人生 > >人工神經網路(Artificial Neural Networks)

人工神經網路(Artificial Neural Networks)

轉載:http://www.datalab.sinaapp.com/?p=309

人工神經網路的產生一定程度上受生物學的啟發,因為生物的學習系統是由相互連線的神經元相互連線的神經元組成的複雜網路。而人工神經網路跟這個差不多,它是一系列簡單的單元相互密集連線而成的。其中每個單元有一定數量的輸入(可能是其他單元的輸出),併產生單一的實數值輸出(可能成為其他單元的輸入)。

常見的人工神經網路結果如下圖:

  1. 網路由三部分組成,輸入層、隱藏層和輸出層,往往隱藏層只有1層或2層;
  2. 每層由若干個單元組成,所有單元分層互連形成一個無環的前饋網路;
  3. 下一層的某個單元的輸入由上一層的所有單元的輸出組成,每個輸入的權重由相連的邊的權值決定。

不同型別的單元對輸入的處理方式不同,比較常用是sigmoid單元。sigmoid單元首先對所有輸入進行線性組合,然後將線性組合的結果通過sigmoid函式,即F(x) = 1/(1+power(e,-x)),對映為0跟1之間的某個值作為輸出(sigmoid函式有一個比較有用的特徵就是F’(x) = F(x)*( 1-F(x)))。這樣,sigmoid單元的輸出是輸入的非線性函式,並且輸出是輸入的可微函式。

人工神經網路的學習訓練就是為每一條邊選取一個合適的權值,使網路輸出層的輸出和目標值之間的誤差平方和最小化。而像反向傳播(BackPropagation)這樣的演算法,就是使用梯度下降來調節各條表的權重,來最佳擬合輸入-輸出組成的訓練資料。

實驗:人臉朝向識別

實驗資料是具有不同朝向的600多張人臉圖片,每個圖片的畫素是30*32。分為訓練集、驗證集和測試集,大致影象張數比為6:2:2。訓練集用來訓練人工神經網路,驗證集用來選取在驗證集上具有最好效能的網路,而測試集對選中的網路進行最後的評估。

  • 輸入:每個畫素對應一個網路輸入,並且把範圍是0-255的亮度值按比例縮放到0-1之間。
  • 輸出:使用4個不同的輸出單元,每個單元對應一個臉的朝向,取具有最高值的輸出作為人臉朝向的預測值。另外,使用0.1和0.9,而不是0和1,例如(0.9,0.1,0.1,01.)表示臉朝向正前方。
  • 網路結構:使用一個隱藏層,隱藏層的單元個數為3個。
  • 其他引數:學習速率設定為0.3,輸入單元的權值被設定為0.0,輸出單元的權值被初始化為一個較小的隨機值。

1.把輸入沿網路前向傳播

1 2 3 4 5 6 7 8 9 10 11 12 deffeedForward(self): forj inxrange(1,self.hidNum): sum= 0.0 fori inxrange(self.inNum): sum+=self.inOutput[i]*self.wIn2Hid[i][j] self.hidOutput[j]=self.sigmoid(sum) fork inxrange(self.outNum): sum= 0.0 forj inxrange(self.hidNum): sum+=self.hidOutput[j]*self.wHid2Out[j][k] self.outOutput[k]

相關推薦

人工神經網路(Artificial Neural Networks)

轉載:http://www.datalab.sinaapp.com/?p=309 人工神經網路的產生一定程度上受生物學的啟發,因為生物的學習系統是由相互連線的神經元相互連線的神經元組成的複雜網路。而人工神經網路跟這個差不多,它是一系列簡單的單元相互密集連線而成的

機器學習筆記——神經網路neural networks

神經網路 非線性假設 對於非線性假設而言,當特徵足夠多的時候,如果我們仍採用多項式進行線性擬合,那麼我們將獲得數量非常龐大的高次項,這使得計算變得非常複雜。出於這個原因,我們受到人腦的啟發,提出了神經網路 我們可以將logistic單元表示成神經元的形式,中間的神經元代表假設函式h

迴圈神經網路( Recurrent Neural Networks,RNN)介紹

迴圈神經網路(RNN, Recurrent Neural Networks)介紹   迴圈神經網路(Recurrent Neural Networks,RNNs)已經在眾多自然語言處理(Natural Language Processing, NLP

R語言——實驗4-人工神經網路(更新中)

帶包實現: rm(list=ls()) setwd("C:/Users/Administrator/Desktop/R語言與資料探勘作業/實驗4-人工神經網路") Data=read.csv("sales_data.csv")[,2:5] library(nnet) colnames(

人工神經網路基礎(1)

人工神經網路(ANN),是由大量的簡單處理單元組成的非線性、自適應、自組織的系統。 1、單個神經元 如下圖: 在圖中,我們可以看到有r個輸入引數pi,每個pi連線到神經元的線上有一組權值wi,除此之外,還有引數b連線到神經元上。這些值之和為,n將作為輸入代入一個啟用函式中,所以最終

論文筆記12:Building Adaptive Tutoring Model using Artificial Neural Networks and Reinforcement Learning

論文筆記12:《Building Adaptive Tutoring Model using Artificial Neural Networks and Reinforcement Learning》 參考文獻:Building Adaptive Tutoring Model Using Ar

基於OpenCV 人工神經網路的噴碼字元識別(C++)

新手上路記本人做的第一個影象處理實驗 噴碼字元識別流程:讀圖——濾波——二值化——腐蝕——分割——ANN訓練——識別 本例程訓練類別14類(0-9,C、L、冒號、空格),每類樣本數量50張 搭配環境:VS2017+opencv3.4.1 語言:C++ 由於工程有點大,下面進行簡單介紹,詳情見

嵌入式中的人工神經網路

人工神經網路在AI中具有舉足輕重的地位,除了找到最好的神經網路模型和訓練資料集之外,人工神經網路的另一個挑戰是如何在嵌入式裝置上實現它,同時優化效能和功率效率。 使用雲端計算並不總是一個選項,尤其是當裝置沒有連線的時候。 在這種情況下,需要一個能夠實時進行訊號預處理和執行神經網路的平臺,需要最低

python人工神經網路

人工神經網路在模組keras中,實現步驟如下: #bp人工神經網路的實現 #1、讀取資料 #2、匯入對應模組,keras.models  Sequential(建立模型)  |keras.layers.core Dense(建立層)  Activation

人工神經網路ANN程式的理解(python3.0)——單隱層MINST

1資料說明:MNIST包 資料為:28*28*1 單通道28*28的0~9的數字圖片; 訓練資料60000張;測試資料10000張;並且每張圖片對應的label是圖片中顯示的數字 train-images-idx3-ubyte 訓練資料影象 (60,000)

FPGA構建人工神經網路系統應用例項——視障人士便攜導航系統

現場可程式設計門陣列(FPGA)技術不斷呈現增長勢頭, 2013年全球FPGA市場已經增長至35億美元。 1984年Xilinx剛剛創造出FPGA時,它還是簡單的膠合邏輯片,而如今在訊號處理和控制應用中,它已經取代了自定製專用積體電路(ASIC)和處理器。今天來

人工智慧(四):人工神經網路

在這裡我們只做總結梳理,具體的證明我們並不涉及,只要掌握原理,併為我們所用即可。 一、感知器——單個神經元 在說明神經網路之前,先介紹一下神經網路的基礎計算單元——神經元,也是一直沿用至今的“M-P神經元模型”。在這個模型中,神經元接收到來自n個其他神經元傳遞過來的輸入訊號,這些輸入訊

深度學習之人工神經網路學習

人工神經網路就是把這樣的人工神經元互聯成一個網路:一個神經元的輸出作為另一個神經元的輸入。神經網路可以有多種多樣的拓撲結構。其中最簡單的就是「多層全連線前向神經網路」。它的輸入連線到網路第一層的每個神經元。前一層的每個神經元的輸出連線到下一層每個神經元的輸入。最後一層神經元的

人工神經網路(二)單層感知器

本篇文章,我們開始介紹最簡單的神經網路結構,感知器,在瞭解原理的基礎上,下篇部落格我們程式碼實現一個單層感知器: 感知器: 人工神經網路的第一個里程碑是感知機perceptron, 這個名字其實有點誤導, 因為它根本上是做決策的。 一個感知機其實是對神經元最基本概念的

人工神經網路(一)概述

百科解釋: 人工神經網路(Artificial Neural Network,即ANN ),是20世紀80 年代以來人工智慧領域興起的研究熱點。它從資訊處理角度對人腦神經元網路進行抽象, 建立某種簡單模型,按不同的連線方式組成不同的網路。在工程與學術界也常直接簡稱為神

人工神經網路神經元

人工神經網路的每一層由大量的節點(神經元)組成,層與層之間有大量的連線,但是層內部的神經元一般相互獨立。深度學習的目的就是利用已知的資料學習一套模型,使系統在遇見未知的資料時也能夠做出預測。這個過程中神經元具備以下兩個特性: 1,啟用函式,這個函式一般是非線性的函式,也就是

The Intuition Behind Artificial Neural Networks

The Intuition Behind Artificial Neural NetworksExplaining ANNs by analogy to the human brainThe NeuronBrains are the best weapons of learning and they are

5 Artificial Neural Networks Supporting Machine Learning

The human brain is especially good at solving problems… So good, in fact, that in the 1940s various computer scientists began to build computation models i

Scientists use artificial neural networks to predict new stable materials

"Predicting the stability of materials is a central problem in materials science, physics and chemistry," said senior author Shyue Ping Ong, a nanoenginee

吳恩達深度學習筆記(2)-什麼是神經網路Neural Network)

什麼是神經網路?(What is a Neural Network) 我們常常用深度學習這個術語來指訓練神經網路的過程。有時它指的是特別大規模的神經網路訓練。那麼神經網路究竟是什麼呢?在這個視訊中,會講解一些直觀的基礎知識。 首先,讓我們從一個房價預測的例子開