亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        一種回聲狀態(tài)神經(jīng)網(wǎng)絡(luò)分類挖掘教學(xué)演示模型

        2016-02-19 09:36:25王華秋
        計算機時代 2016年2期

        王華秋

        DOI:10.16644/j.cnki.cn33-1094/tp.2016.02.024

        摘 ?要: 回聲狀態(tài)神經(jīng)網(wǎng)絡(luò)分類算法是一種重要的數(shù)據(jù)挖掘方法,是處理大數(shù)據(jù)分類的重要工具。但該算法原理比較抽象,從公式推導(dǎo)的角度很難讓學(xué)生深刻理解,因此提出利用MATLAB數(shù)學(xué)軟件實現(xiàn)回聲狀態(tài)神經(jīng)網(wǎng)絡(luò)分類算法,將其編譯成.NET平臺的COM組件,由Visual C#.NET集成開發(fā)環(huán)境下的應(yīng)用程序調(diào)用編譯后的MATLAB的COM組件,實現(xiàn)回聲狀態(tài)神經(jīng)網(wǎng)絡(luò)的分類模型。

        關(guān)鍵詞: 回聲狀態(tài)神經(jīng)網(wǎng)絡(luò); 分類模型; MATLAB組件; Windows應(yīng)用程序

        中圖分類號:G642 ? ? ? ? ?文獻標(biāo)志碼:A ? ? 文章編號:1006-8228(2016)02-82-04

        A teaching demonstration model of classification mining

        based on echo state neural network

        Wang Huaqiu

        (Computer Science and Engineering College, Chongqing University of Technology, Chongqing 400054, China)

        Abstract: Echo state neural network classification algorithm is an important data mining method, which is an important tool to deal with classification of Big data. But the principle of the algorithm is abstract and complex, and it is very difficult for the students to understand the essence of the algorithm from the angle of formula derivation. In this paper, echo state neural network classification algorithm is realized by MATLAB mathematics software, and is compiled into COM component on .NET platform. The compiled COM component is called by an application program, which is developed in Visual C#.NET integrated environment, to realize the echo state neural network classification model.

        Key words: echo state neural network; classification model; MATLAB component; Windows application program

        0 引言

        回聲狀態(tài)神經(jīng)網(wǎng)絡(luò)(ESN)由Jaeger于2001年提出[1],其特點在于將隨機稀疏連接的神經(jīng)元構(gòu)成的儲備池作為隱藏層,用以對輸入進行高維的、非線性的表示。回聲狀態(tài)神經(jīng)網(wǎng)絡(luò)常用于解決數(shù)據(jù)分類決策問題,Alexandre等[2]提出面向靜態(tài)模式分類的回聲狀態(tài)網(wǎng)絡(luò)方法。彭喜元等[3]在此基礎(chǔ)上提出了隨機子空間多儲備池分類模型,提高了傳統(tǒng)回聲狀態(tài)網(wǎng)絡(luò)分類模型的泛化能力及分類性能,郭嘉等[4]在Alexandre基礎(chǔ)上提出了基于相應(yīng)簇的回聲狀態(tài)網(wǎng)絡(luò)靜態(tài)分類方法,將儲備池子簇與需分類數(shù)據(jù)類別數(shù)量建立對應(yīng)關(guān)系,能夠更好地滿足對不同數(shù)據(jù)有針對性的分類需求。

        神經(jīng)網(wǎng)絡(luò)分類算法是數(shù)據(jù)挖掘的一種重要方法,是教學(xué)中的重點環(huán)節(jié),由于回聲狀態(tài)神經(jīng)網(wǎng)絡(luò)分類算法比較復(fù)雜,單從公式推導(dǎo)的角度講解,學(xué)生會難以真正理解,因此需要編程實現(xiàn)這些算法,讓學(xué)生有一個直觀的認(rèn)識,這種分類算法需用到多種數(shù)學(xué)公式,用高級語言編程代碼量較大,學(xué)生依然難于理解,為了用少量的代碼編寫復(fù)雜的分類算法程序,本文采用專業(yè)數(shù)學(xué)軟件MATLAB實現(xiàn)了回聲狀態(tài)神經(jīng)網(wǎng)絡(luò)分類算法。但由于MATLAB軟件主要是處理數(shù)學(xué)公式,進行復(fù)雜的矩陣運算,因此專業(yè)性較強,對于非數(shù)學(xué)專業(yè)用戶來說輸入矩陣復(fù)雜、輸出結(jié)果抽象,較難理解[5],而且MATLAB是純粹的數(shù)學(xué)計算工具,操作界面繁瑣,造成用戶使用不方便[6]。本文采用混合編程技術(shù),即使用.NET編程環(huán)境,通過COM組件跨平臺調(diào)用的方式集成MATLAB自定義DLL組件,構(gòu)建既能夠進行專業(yè)的數(shù)學(xué)分析和數(shù)學(xué)計算,又具有友好的操作界面,方便非專業(yè)人員使用的分類模型。

        1 總體思路

        首先,在MATLAB R2010b中新建.NET Aseembly類型的工程,編寫實現(xiàn)分類算法的m文件,編譯生成相應(yīng)的COM組件。在Visual Studio 2010應(yīng)用程序中引用MATLAB R2010b組件MWArray和實現(xiàn)分類算法的自定義組件,結(jié)合頁面輸入將數(shù)據(jù)參數(shù)傳遞給自定義組件,就可進行分析計算,并將結(jié)果返回到界面中。系統(tǒng)的技術(shù)架構(gòu)如圖1所示。

        2 回聲狀態(tài)網(wǎng)絡(luò)分類模型

        ESN是一種新型的遞歸神經(jīng)網(wǎng)絡(luò),由輸入層、儲備池、輸出層組成,其結(jié)構(gòu)如圖2所示。

        假設(shè)該網(wǎng)絡(luò)中輸入層有K個輸入,儲備池有N個內(nèi)部連接單元,輸出層有L個輸出,儲備池內(nèi)部單元狀態(tài)更新方程如公式⑴所示:

        x(n+1)=f(Winu(n+1)+Wx(n)) ?⑴

        其中,x(n)=(x1(n),…,xN(n))T表示回聲狀態(tài)網(wǎng)絡(luò)的狀態(tài)變量,y(n)=(y1(n),…,yL(n))T表示目標(biāo)輸出,u(n)=(u1(n),…,uK(n))T表示輸入。f表示儲備池處理單元處理函數(shù),本文選擇雙曲正切函數(shù)tanh。Win表示輸入單元與儲備池處理單元的連接權(quán)值,W為儲備池內(nèi)處理單元之間的連接權(quán)值,其中Win、W無須訓(xùn)練,經(jīng)初試給定后不再發(fā)生改變。

        回聲狀態(tài)網(wǎng)絡(luò)分類模型在訓(xùn)練某特征數(shù)據(jù)對應(yīng)的狀態(tài)變量x(n)時保持輸入數(shù)據(jù)不變,當(dāng)狀態(tài)變量的變化量‖x(n)-x(n-1)‖小于閾值δ時,表示狀態(tài)變量趨于穩(wěn)定,該特征數(shù)據(jù)對應(yīng)的狀態(tài)變量訓(xùn)練完成。

        關(guān)鍵代碼如下:

        X1=zeros(N,n);

        Yt=I_OUT;

        for t=1:n

        u=I_1(:,t);

        x1=zeros(N,1);

        x11=zeros(N,1)+1;

        his=200;

        error=0;

        while(sum(abs(x1-x11))>1&&error<2)

        if(sum(abs(x1-x11))-his>0)

        error=error+1;

        his=sum(abs(x1-x11));

        x11=x1;

        x1=tanh(Win1*[1;u] + W1*x1);

        else

        error=0;

        his=sum(abs(x1-x11));

        x11=x1;

        x1=tanh(Win1*[1;u] + W1*x1);

        end

        end

        X1(:,t)=x1;

        end

        分類輸出如公式⑵所示:

        y(n+1)=Woutf(u(n+1),x(n+1)) ?⑵

        其中,Wout表示儲備池與輸出單元的連接權(quán)值為輸出層到儲備池的連接權(quán)值,通過狀態(tài)變量計算得到,f為輸出單元處理函數(shù)。

        關(guān)鍵語句如下:

        x1=tanh(Win1*[1;u]+W1*x1);

        y=Wout1*x1;

        3 生成COM組件

        在MATLAB R2010b中編譯生成.NET使用的COM組件的步驟如下:

        ⑴ 新建Deployment Project,名稱為DM.prj,選擇Type為.NET Assembly。

        ⑵ 新建m文件,將實現(xiàn)回聲狀態(tài)神經(jīng)網(wǎng)絡(luò)分類算法的語句寫入其中。

        ⑶ 在MATLAB R2010b窗口右側(cè)的.NET Assembly對話框中,依次選擇Add class和Add files添加ESNClassificationTrain.m和ESNClassificationTest.m文件。通過build 按鈕即可進行編譯。編譯完成后會在安裝目錄C:\Program Files\MATLAB\R2010b\

        bin\DM\distrib下生成DM.dll和DMNative.dll文件。

        4 分類模型的實現(xiàn)

        在VS2010中調(diào)用MATLAB R2010b中的dll文件實現(xiàn)分類模型步驟如下。

        ⑴ 在VS2010中新建項目,使用C#語言建立Windows應(yīng)用程序。

        ⑵ 在VS2010中設(shè)計友好的交互界面。

        ⑶ 在設(shè)計界面中,添加原始數(shù)據(jù)表格DataGridView,根據(jù)原始數(shù)據(jù)量的大小確定儲備池有N個內(nèi)部連接單元個數(shù),這是惟一需要設(shè)置的參數(shù)。在表格右邊加入三個TextBox控件,分別存放目標(biāo)分類結(jié)果,實際分類結(jié)果和分類正確標(biāo)志。在Button控件的Clicked 事件中,加入代碼,實現(xiàn)IRIS數(shù)據(jù)庫的回聲狀態(tài)網(wǎng)絡(luò)分類。這樣即可方便用戶參看原始數(shù)據(jù),又可觀察分類效果,實現(xiàn)了良好的界面展示。

        ⑷ 添加引用組件:在.NET編程環(huán)境中,MATLAB程序輸入、處理、輸出的數(shù)字?jǐn)?shù)據(jù)只能是MWNumericArray類型的矩陣。所以需引用MWarray.dll組件,該組件的位置在MATLAB的安裝目錄\MATLAB\R2010b\toolbox\dotnetbuilder\bin\win32\

        v2.0下。另外,還需添加上述的自定義組件DM.dll和DMNative.dll。

        在代碼中加入以下語句,即可在程序中調(diào)用相應(yīng)組件。

        using MathWorks.MATLAB.NET.Arrays;

        using MathWorks.MATLAB.NET.Utility;

        using DM;

        ⑸ 由于MWarray.dll是64位的組件,而Windows應(yīng)用程序編譯生成的程序是32位的。因此要需要在工程屬性中將應(yīng)用程序生成的目標(biāo)平臺設(shè)置為x64。

        ⑹ 根據(jù)界面輸入,提取相應(yīng)的判斷矩陣,數(shù)據(jù)格式的轉(zhuǎn)換是需要解決的主要問題。

        關(guān)鍵語句如下:

        //定義二維數(shù)組,用于存儲輸入、輸出數(shù)據(jù)。

        double[,] I_1=new double[dt.Columns.Count-1, dt.Rows.Count];

        double[,] I_OUT=new double[ay.Count -1, dt.Rows.Count];

        //定義MATLAB類型的矩陣變量

        MWNumericArray arrI_1=null;

        //強制類型轉(zhuǎn)換,以便作為參數(shù)傳遞給MATLAB生成的COM組件

        arrI_1=(MWNumericArray)(I_1);

        MWNumericArray arrI_OUT=null;

        arrI_OUT=(MWNumericArray)(I_OUT);

        ⑺ 調(diào)用DM組件實現(xiàn)分類決策。添加“IRIS數(shù)據(jù)分類”按鈕,在click事件中寫入代碼,調(diào)用MATLAB生成的組件,實現(xiàn)分類決策。這里以IRIS鳶尾花數(shù)據(jù)作為分類算法的數(shù)據(jù)來源,數(shù)據(jù)集包含150個數(shù)據(jù)集,分為三類,每類50個數(shù)據(jù),每個數(shù)據(jù)包含4個屬性,三類分別為:setosa,versicolor,virginica,數(shù)據(jù)包含4個獨立的屬性,這些屬性變量測量植物的花朵,比如萼片和花瓣的長度等。

        關(guān)鍵代碼如下:

        ESN e1=new ESN(); //初始化一個對象

        MWArray[] argsOut1=null; //用于存儲多個輸出結(jié)果

        int numArgsOut1=3;

        int N=40;

        argsOut1=e1.ESNClassificationTrain(numArgsOut1,arrI_

        1,arrI_OUT,N); //調(diào)用MATLAB中寫好的函數(shù)ESNClassificationTrain,此函數(shù)的功能是根據(jù)數(shù)據(jù)訓(xùn)練分類模型,得到3組輸出參數(shù),即Win,W和Wout。

        MWArray[] argsOut2=null; //用于存儲多個輸出結(jié)果

        int numArgsOut2=3;

        argsOut2=e1.ESNClassificationTest(numArgsOut2,

        (MWArray)argsOut1.GetValue(0), (MWArray)argsOut1

        .GetValue(1), (MWArray)argsOut1.GetValue(2),arrI_1,

        arrI_OUT,N); //調(diào)用MATLAB中寫好的函數(shù)ESNClassificationTest,此函數(shù)的功能是根據(jù)判斷數(shù)據(jù)的分類結(jié)果,得到3組輸出參數(shù),即目標(biāo)分類結(jié)果,實際分類結(jié)果和分類錯誤標(biāo)識。

        //輸出的MWArray[]類型轉(zhuǎn)換為double[,]

        double[,] targetOut=new double[1,argsOut2[0]

        .NumberOfElements];

        targetOut=(double[,])argsOut2[0].ToArray();

        double[,] realOut=new double[1,argsOut2[1]

        .NumberOfElements];

        realOut=(double[,])argsOut2[1].ToArray();

        double[,] correctID=new double[1,argsOut2[2]

        .NumberOfElements];

        correctID=(double[,])argsOut2[2].ToArray();

        //將目標(biāo)值,實際值和錯誤標(biāo)識顯示在控件中

        for (int i=0; i<targetOut.Length; i++)

        {

        textBox1.Text+=targetOut[0,i].ToString()+"\r\n";

        textBox5.Text+=realOut[0,i].ToString()+"\r\n";

        if(correctID[0,i]!=0)

        textBox6.Text+=i.ToString()+"出錯"+"\r\n";

        else

        textBox6.Text+=""+"\r\n";

        }

        最終實現(xiàn)的分類模型運行結(jié)果如圖3所示。

        5 總結(jié)

        回聲狀態(tài)神經(jīng)網(wǎng)絡(luò)分類比較復(fù)雜,傳統(tǒng)的公式推導(dǎo)令人難以理解,用高級語言編程又難以用簡潔代碼實現(xiàn),為了用簡易的計算機代碼反映復(fù)雜的數(shù)學(xué)公式,本文利用MATLAB與.NET混合編程實現(xiàn)基于回聲狀態(tài)神經(jīng)網(wǎng)絡(luò)分類挖掘?qū)嶒炑菔鞠到y(tǒng),體現(xiàn)了MATLAB專業(yè)數(shù)學(xué)軟件功能強大、計算簡單的優(yōu)勢,通過.NET平臺調(diào)用編譯后的MATLAB的COM組件,通過界面的直觀設(shè)計,簡化用戶操作,提高了程序的可操作性。本文使用的實例是回聲狀態(tài)神經(jīng)網(wǎng)絡(luò)分類模型,今后在實際應(yīng)用中可自行構(gòu)建具體目標(biāo)的指標(biāo)體系實現(xiàn)分類決策。

        參考文獻(References):

        [1] Jaeger H. The “Echo State” Approach to Analysing and

        Training Recurrent Neural Networks[R]. German National Reasearch Center for Information Technology,2001.

        [2] Alexandre L A, Embrechts M J, Linton J. ?Benchmarking

        Reservoir Computing on Time-independent Classification Tasks[C].In: Proceedings of the 2009 International Joint Conference on Neural Networks, Atlanta GA, USA,2009:89-93

        [3] 彭喜元,郭嘉,王建民.基于隨機子空間與多儲備池的分類方

        法[J].儀器儀表學(xué)報,2011.32(11):2487-2492

        [4] 郭嘉,雷苗,彭喜元.基于相應(yīng)簇回聲狀態(tài)網(wǎng)絡(luò)靜態(tài)分類方法[J].

        電子學(xué)報,2011.39(3):14-18

        [5] 蔣順業(yè),蘭洋.C#與Matlab混合編程在預(yù)警系統(tǒng)中的應(yīng)用[J].

        軟件,2013.34(4):83-84

        [6] 田鵬,姜印平.MATLAB與C#混合編程在ASP.NET數(shù)值計

        算中的分析與實現(xiàn)[J].天津理工大學(xué)學(xué)報,2014.30(4):41-45

        人妻少妇精品一区二区三区| 中文字幕人妻第一区| 精品少妇人妻av无码专区 | 少妇熟女淫荡丰满| 国产亚洲精品一区二区在线播放| 日韩高清不卡一区二区三区| 国产一区二区毛片视频| 少妇人妻偷人中文字幕| 玖玖资源站亚洲最大的网站| 欧美丰满熟妇xxxx性ppx人交| 成人a级视频在线播放| …日韩人妻无码精品一专区| 国产精品国产成人国产三级| 又大又粗弄得我出好多水| bbbbbxxxxx欧美性| 亚洲国产免费一区二区| 中文字幕亚洲视频一区| 国产精品爽爽久久久久久竹菊| 国产在线精品一区二区| 久久久久综合一本久道| 精品国产av一区二区三四区| 香蕉久久一区二区不卡无毒影院 | 国产丝袜视频一区二区三区| 国产精品网站夜色| 草莓视频在线观看无码免费| 久久亚洲综合亚洲综合| 色欲一区二区三区精品a片| 亚洲精品美女久久777777| 国产女人水真多18毛片18精品| 中文字幕无码免费久久| 偷拍激情视频一区二区| 国产一区二区黄色网页| 欧美狠狠入鲁的视频777色| 国产午夜激无码av毛片| 日本高清中文字幕二区在线| 人妻少妇中文字幕久久hd高清| 日本精品免费看99久久| 一本精品99久久精品77| 国模无码视频一区| 亚洲一区二区三在线播放| 一区二区三区日本伦理|