ANN神經網路入門——分類問題(MATLAB)
%讀取訓練資料
clear
clc
%f1 f2 f3 f4是四個特徵值
[f1,f2,class] = textread('trainData.txt' , '%f%f%f');
%特徵值歸一化
[input,minI,maxI] = premnmx( [f1 , f2 ]') ;
%構造輸出矩陣
s = length( class) ;
output = zeros( s , 2 ) ;
for i = 1 : s
output( i , class( i ) ) = 1 ;
end
output
%建立神經網路
net = newff( minmax(input) , [10 2] , { 'logsig' 'purelin' } , 'traingdx' ) ;
%設定訓練引數
net.trainparam.show = 50 ;% 顯示中間結果的週期
net.trainparam.epochs = 500 ;%最大迭代次數(學習次數)
net.trainparam.goal = 0.01 ;%神經網路訓練的目標誤差
net.trainParam.lr = 0.01 ;%學習速率(Learning rate)
%開始訓練
%其中input為訓練集的輸入訊號,對應output為訓練集的輸出結果
net = train( net, input , output' ) ;
%================================訓練完成====================================%
%=============================接下來進行測試=================================%
%讀取測試資料
[t1 t2 c] = textread('testData.txt' , '%f%f%f');
%測試資料歸一化
testInput = tramnmx ( [t1,t2]' , minI, maxI ) ;
%[testInput,minI,maxI] = premnmx( [t1 , t2]') ;
%模擬
%其中net為訓練後得到的網路,返回的Y為
Y = sim( net , testInput )
%{
Y返回預測值,輸出有兩個記為A、B,理想情況下輸出為上述的output,輸出結果只有1和0兩種
即:output =
0 1
0 1
0 1
0 1
1 0
1 0
1 0
1 0
1 0
1 0
---------------------------------------------------------------------------------
例:Y =
0.1432 0.4841 1.0754 1.2807 0.8405
0.6034 0.5329 0.1427 -0.4194 0.0947
則說明:
對於第一個測試資料,輸出結果A=0.1432,輸出結果B=0.6034
對於第一個測試資料,輸出結果A=0.4841,輸出結果B=0.5329
因此,對於本例:若結果A更接近於1(左接近或右接近),那麼說明該測試資料屬於第一個分類;
若結果B更接近於1(左接近或右接近),那麼說明該測試資料屬於第二個分類。
因此,ANN除了應用於分類問題,也可應用於對具體數值的預測問題。
---------------------------------------------------------------------------------
_______________________________________________________________2018.02.06 by_LeoHao
%}
%統計識別正確率
[s1 , s2] = size( Y ) ;
hitNum = 0 ;
for i = 1 : s2
[m , Index] = max( Y( : , i ) ) ;
if( Index == c(i) )
hitNum = hitNum + 1 ;
end
end
sprintf('識別率是 %3.3f%%',100 * hitNum / s2 )
相關推薦
ANN神經網路入門——分類問題(MATLAB)
%讀取訓練資料 clear clc %f1 f2 f3 f4是四個特徵值 [f1,f2,class] = textread('trainData.txt' , '%f%f%f'); %特徵值歸一化 [input,minI,maxI] = premnmx( [f1 , f2 ]') ; %構造輸出矩陣 s =
BP神經網路的資料分類--語音特徵訊號分類(MATLAB)
測試樣例的data資料鏈接:https://pan.baidu.com/s/1sVdYE3-KqVccypy0jWfXHA 提取碼:wnwc %% 該程式碼為基於BP網路的語言識別的通用版本 %% 清空環境變數 clc clear %% 訓練資料
神經網路學習筆記(1)Image Classification
學習網站: 資料驅動方法 KNN(例如採用L1曼哈頓距離) 程式碼如下: import numpy as np class NearestNeighbor: def train(self,X,y): self.Xtrain=X self
神經網路簡單理解(一):梯度彌散
這裡C(w)為最後的代價函式,它權值w的函式。每一層的加權輸入為ZJ=W×aj-1+b。每一層的輸出為aj,aj=φ(ZJ),這裡φ是啟用函式。 反向傳播更新的是每一層神經元連線的權重w,即求C(w)對每一層w 的偏導數。反向傳播首先求C對W4的偏導數,所以公式為: 同理,由於W
改善深層神經網路——優化演算法(6)
目錄 1.Mini-batch gradient descent 前我們介紹的神經網路訓練過程是對所有m個樣本,稱為batch,通過向量化計算方式,同時進行的。如果m很大,例如達到百萬數量級,訓練速度往往會很慢,因為每次迭代都要對所
神經網路解決XOR(抑或)問題
引言 神經網路用於解決XOR問題也算是一個神經網路的一個重大突破。 首先,我們需要知道什麼是抑或問題,這裡我就不多說了。 抑或問題有4個輸入,1個輸出。輸入是二維的,且每維要麼是0要麼是1,輸出是一維的,要麼是0要麼是1. 當輸入為0,0或者1,1時,輸出為0,當輸入為1,0或者0,
斯坦福CS231n計算機視覺-神經網路訓練細節(1)
引用:https://zhuanlan.zhihu.com/p/21462488?refer=intelligentunit 本節課沒有從頭講解神經網路,而是講了一些神經網路的細節問題。 兩個需要注意的問題 1、訓練樣本不夠多沒事,使用預訓練好的卷積神經網路,所以不用擔
使用tensorflow:LSTM神經網路預測股票(三)
原始資料處理 有朋友在qq群裡分享了原始資料處理的想法,例如調整origin_data_row引數、新增一些大盤的資料作為新的特徵等。所以這一篇我將原始資料以及原始資料的處理方法寫下來,為方便大家驗證、探
使用tensorflow:LSTM神經網路預測股票(一)
基礎理論知識 關於深度學習和LSTM神經網路在網上有很多內容,這裡不再贅述,只列舉幾個優質的資源: 1. 深度學習入門:https://www.deeplearning.ai 百度前首席科學家吳恩達創立的網站,旨在傳播深度學習的基礎知識。他的視
深度學習小白——卷積神經網路視覺化(二)
一、由卷積後的code得到原始影象 可以看出隨著卷積網路的進行,越來越多的資訊被扔掉了,能還原除的資訊也就越少。 二、Deep Dream google發明的起初是用來看神經網路各層在“看”什麼,後來因為得到的影象很具有藝術感,所以成為了一個藝術圖片生成器。 這是一
脈衝神經網路之Tempotron(二)
脈衝神經網路之Tempotron程式碼示例 上一篇從原理的角度大致介紹了脈衝神經網路的神經元模型以及Tempotron監督學習方法,這一章記錄了Tempotron的程式碼實現。這份程式碼是使用matlab編寫,
迴圈神經網路的訓練(2)
權重梯度的計算 現在,我們終於來到了BPTT演算法的最後一步:計算每個權重的梯度。 首先,我們計算誤差函式E對權重矩陣W的梯度∂E∂W。 上圖展示了我們到目前為止,在前兩步中已經計算得到的量,包括每個時刻t 迴圈層的輸出值st,以及誤差項δt。 回憶一下我們在文章
深度學習之卷積神經網路程式設計實現(二)
void conv_bprop(Layer *layer, Layer *prev_layer, bool *pconnection) { int index = 0; int size = prev_layer->map_w * prev_layer->map_h; // delta
深度卷積神經網路學習筆記(一)
1.卷積操作實質: 輸入影象(input volume),在深度方向上由很多slice組成,對於其中一個slice,可以對應很多神經元,神經元的weight表現為卷積核的形式,即一個方形的濾波器(filter)(如3X3),這些神經元各自分別對應影象中的某一個區域性區域(local region
神經網路學習筆記(六):感知機收斂定理
先對與操作進行討論,與(AND)操作需要將(0,0)(0,1)(1,0,)(1,1)進行二分類,結果輸出0或者1,顯然前三個點對應輸出為0的類,最後一個點對應輸出為1的類,這四個點在二維平面上一畫很容易看出,有無數條線可以將其分類。故是線性可分的類,同理可證或,非邏輯操作。
神經網路反向傳播(BP)演算法原理
一.BP演算法簡介 BP演算法的學習過程由正(前)向傳播過程和反向傳播過程組成。 1.正向傳播 將訓練集資料輸入到ANN的輸入層,經過隱藏層,最後達到輸出層並輸出結果; 2.反向傳播 由於ANN的輸出結果與實際結果有誤差,則計算估計值與
神經網路學習筆記(五):感知機
感知機在神經網路發展的歷史上佔據著重要的位置:它是第一個從演算法上完整描述的神經網路。它的發明者Rosenblatt是一位心理學家。 感知機是用於線性可分模式(即不同的類別可由超平面完全分割)分類的最簡單的神經網路模型,基本上它是由一個具有可調突觸權值和偏置的神經
卷積神經網路論文學習(Lecun1998)
Ⅰ.介紹 A.資料學習 自動機器學習可以歸納為,是第p個輸入模式,W是學習權值,是識別類標號。損失函式,理想輸出。 ,目標是最小化平均損失以及最小化,所以是個折中問題。其中,h是機器的有效容量(h
深入淺出——搞懂卷積神經網路誤差分析(一)
第一部分 全連線網路的權值更新 卷積神經網路使用基於梯度的學習方法進行監督訓練,實踐中,一般使用隨機梯度下降(機器學習中幾種常見的梯度下降方式)的版本,對於每個訓練樣本均更新一次權值,誤差函式使用誤差平方和函式,誤差方式採用平方誤差代價函式。 注:本
神經網路學習筆記(五) 徑向基函式神經網路
徑向基函式神經網路 首先介紹一下網路結構: 1.輸入層為向量,維度為m,樣本個數為n,線性函式為傳輸函式。 2.隱藏層與輸入層全連線,層內無連線,隱藏層神經元個數與樣本個數相等,也就是n,傳輸函式為徑向基函式。 3.輸出層為線性輸出。 理論