1. 程式人生 > >ANN神經網路入門——分類問題(MATLAB)

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   %% 訓練資料

神經網路學習筆記1Image 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.輸出層為線性輸出。 理論