⑴ 如何用python和scikit learn實現神經網路
1:神經網路演算法簡介
2:Backpropagation演算法詳細介紹
3:非線性轉化方程舉例
4:自己實現神經網路演算法NeuralNetwork
5:基於NeuralNetwork的XOR實例
6:基於NeuralNetwork的手寫數字識別實例
7:scikit-learn中BernoulliRBM使用實例
8:scikit-learn中的手寫數字識別實例
一:神經網路演算法簡介
1:背景
以人腦神經網路為啟發,歷史上出現過很多版本,但最著名的是backpropagation
2:多層向前神經網路(Multilayer Feed-Forward Neural Network)
⑵ 如何在matlab中建立多層bp神經網路
當你用newff的時候,裡面有一個參數可以控制層數,比如說:
P = [0 1 2 3 4 5 6 7 8 9 10];
T = [0 1 2 3 4 3 2 1 2 3 4];
net = newff(P,T,5); %這樣表示有1個隱藏層,裡面那個5表示神經元的個數
net = newff(P,T,[5,10]); %這樣表示有2個隱藏層
net = newff(P,T,[5 10 8]); %這樣表示有3個隱藏層,以此類推,明白吧?
⑶ 如何用matlab構建一個三層bp神經網路模型,用於預測溫度。
第0節、引例
本文以Fisher的Iris數據集作為神經網路程序的測試數據集。Iris數據集可以在http://en.wikipedia.org/wiki/Iris_flower_data_set 找到。這里簡要介紹一下Iris數據集:
有一批Iris花,已知這批Iris花可分為3個品種,現需要對其進行分類。不同品種的Iris花的花萼長度、花萼寬度、花瓣長度、花瓣寬度會有差異。我們現有一批已知品種的Iris花的花萼長度、花萼寬度、花瓣長度、花瓣寬度的數據。
一種解決方法是用已有的數據訓練一個神經網路用作分類器。
如果你只想用C#或Matlab快速實現神經網路來解決你手頭上的問題,或者已經了解神經網路基本原理,請直接跳到第二節——神經網路實現。
第一節、神經網路基本原理
1. 人工神經元( Artificial Neuron )模型
人工神經元是神經網路的基本元素,其原理可以用下圖表示:
圖1. 人工神經元模型
圖中x1~xn是從其他神經元傳來的輸入信號,wij表示表示從神經元j到神經元i的連接權值,θ表示一個閾值 ( threshold ),或稱為偏置( bias )。則神經元i的輸出與輸入的關系表示為:
圖中 yi表示神經元i的輸出,函數f稱為激活函數 ( Activation Function )或轉移函數 ( Transfer Function ) ,net稱為凈激活(net activation)。若將閾值看成是神經元i的一個輸入x0的權重wi0,則上面的式子可以簡化為:
若用X表示輸入向量,用W表示權重向量,即:
X = [ x0 , x1 , x2 , ....... , xn ]
則神經元的輸出可以表示為向量相乘的形式:
若神經元的凈激活net為正,稱該神經元處於激活狀態或興奮狀態(fire),若凈激活net為負,則稱神經元處於抑制狀態。
圖1中的這種「閾值加權和」的神經元模型稱為M-P模型 ( McCulloch-Pitts Model ),也稱為神經網路的一個處理單元( PE, Processing Element )。
2. 常用激活函數
激活函數的選擇是構建神經網路過程中的重要環節,下面簡要介紹常用的激活函數。
(1) 線性函數 ( Liner Function )
(2) 斜面函數 ( Ramp Function )
(3) 閾值函數 ( Threshold Function )
以上3個激活函數都屬於線性函數,下面介紹兩個常用的非線性激活函數。
(4) S形函數 ( Sigmoid Function )
該函數的導函數:
(5) 雙極S形函數
該函數的導函數:
S形函數與雙極S形函數的圖像如下:
圖3. S形函數與雙極S形函數圖像
雙極S形函數與S形函數主要區別在於函數的值域,雙極S形函數值域是(-1,1),而S形函數值域是(0,1)。
由於S形函數與雙極S形函數都是可導的(導函數是連續函數),因此適合用在BP神經網路中。(BP演算法要求激活函數可導)
具體http://blog.csdn.net/gongxq0124/article/details/7681000/