BP人工神經網絡實驗,蠓蟲分類(美國1989年建模賽題)

2020-12-05 理工科日記

1、用BP人工神經網絡擬合函數 y=0.12e^(-0.23x)+0.54e^(-0.17x)sin(1.23x).要求給出真實數據點,用*表示,給出BP神經網絡擬合後的曲線。同時用CFTOOL和1stopt驗證。(提示:首先用函數產生若干真實數據點)

A、matlab BP神經擬合:

原始碼:

% 程序設計思路:構建樣本數據空間,構建網絡並繪製構建結果;

clear;%清空緩存;

x=-10:0.1:10;%樣本(自變量)空間;

%y為真實值(樣本空間大小基於x);

y=0.12*exp(-0.23.*x)+0.54*exp(-0.17.*x).*sin(1.23*x);

net=cascadeforwardnet(6);

% 創建隱含層含有6個「神經元」BP神經網絡;

% 或者使用語句:net=feedforwardnet(6);

net=train(net,x,y); %訓練網絡

Y=sim(net,x);%Y為網絡訓練值

plot(y,'r*');%用紅色*號繪製真實值;

hold on

plot(Y);%繼續繪製網絡訓練擬合值;

legend('真實值','訓練值')

實驗結果:

網絡結構以及訓練參數結果圖:

由於樣本空間大小不一樣,所以訓練次數有所不同,也可能的到不同的訓練結果,特別是在樣本空間較小的時候,訓練結果受訓練次數的影響更大。所以可以通過更改自變量x的取值空間大小,從而改變樣本空間y的大小,進而可以直觀的比較訓練結果。

如下為樣本空間大小分別為20、40和200(個取值)的訓練結果:

由上述訓練結果可知,樣本空間越大,訓練結果受訓練次數的影響就越小,訓練迭代結果也就越趨近於真實結果。

B、CFTOOL驗證:

通過存入待擬合數據,打開cftool窗口,選用待擬合數據以及擬合方法即可得到擬合結果。

實驗結果:

選用不同的擬合方法也會得到不同的擬合結果,下圖分別為線性插值擬合和傅立葉四次擬合的結果:

C、1stopt驗證:

原始碼:

//以下為部分代碼;

data;

-10 1.974997063

-9.5 3.161848789

-9 3.437890591

-8.5 2.811661272

-8.00 1.60

實驗結果:

由於數據空間不同,擬合結果也可能不同,下面為樣本空間大小為四十的擬合情況:

2、蠓蟲分類(美國1989年建模賽題) 兩種蠓蟲Apf和Af已由生物學家Grogan和Wirth於1981年根據他們的觸角長度和翅長加以區分. 現測得6隻Apf蠓蟲和9隻Af蠓蟲的觸長、翅長的數據如下:

Apf: (1.14,1.78), (1.18,1.96), (1.20,1.86),

(1.26,2.00), (1.28,2.00), (1.30,1.96);

Af: (1.24,1.72), (1.36,1.74), (1.38,1.64),

(1.38,1.82), (1.38,1.90), (1.40,1.70),

(1.48,1.82), (1.54,1.82), (1.56,2.08).

請用恰當的方法對3隻觸長、翅長分別為:(1.24,1.80), (1.28,1.84), (1.40,2.04)的蠓蟲進行識別。

A、matlab BP神經擬合:

原始碼:

% 程序設計思路:將蠓蟲的觸角長度和翅長數據存入變量中,

% 通過構建BP神經網絡擬分別擬合出兩種蠓蟲出觸角長度和翅長的關係,並繪製曲線;

% 進而標記出待識別的「蠓蟲數據」,根據接近程度初步判斷該蠓蟲屬於哪一種類別。

clear;%清空緩存;

% 下列變量___x和__y分別代表___蠓蟲的觸角長度(x)和翅長(y);

Apfx=[1.14,1.18,1.20,1.26,1.28,1.30];%樣本(自變量)空間;

Apfy=[1.78,1.96,1.86,2.00,2.00,1.96];%y為真實值;

Apfnet=cascadeforwardnet(6);

% 創建隱含層含有6個「神經元」BP神經網絡;

% 或者使用語句:net=feedforwardnet(6);

Apfnet=train(Apfnet,Apfx,Apfy); %訓練網絡

Y1=sim(Apfnet,Apfx);%Y為網絡訓練值

subplot(3,1,1);

plot(Apfy,'r*');%用紅色*號繪製真實值;

hold on

plot(Y1);%繼續繪製網絡訓練擬合值;

xlabel('觸角長度');

ylabel('翅長');

legend('Apf真實值','訓練值')

Afx=[1.24,1.36,1.38,1.38,1.38,1.40,1.48,1.54,1.56];

Afy=[1.72,1.74,1.64,1.82,1.90,1.70,1.82,1.82,2.08];

Afnet=cascadeforwardnet(6);

Afnet=train(Afnet,Afx,Afy);

Y2=sim(Afnet,Afx);

subplot(3,1,2);

plot(Afy,'r*');

hold on

plot(Y2);

xlabel('觸角長度');

ylabel('翅長');

legend('Af真實值','訓練值')

% 存入待識別的蠓蟲數據

% 繪製出測試數據以及兩種蠓蟲的擬合曲線,根據接近情況識別蠓蟲類別;

testx=[1.24,1.28,1.40];

testy=[1.80,1.84,2.04];

subplot(3,1,3)

plot(testx,testy,'rp','MarkerSize',5);

hold on

plot(Y1,'g');

hold on

plot(Y2,'b');

xlabel('觸角長度');

ylabel('翅長');

legend('測試點','Apf擬合曲線','Af擬合曲線')

實驗結果:

由於數據點(樣本空間)較少,對於BP網絡訓練結果有著較大的影響,準確性也有所降低,識別效果也顯得不容樂觀,所以以下為基於本思路的識別效果,僅用於參考。

由圖三可知,前兩個點更接近Apf的擬合曲線,後一個點更接近Af擬合曲線;即識別結果為:觸長、翅長分別為:(1.24,1.80), (1.28,1.84)的蠓蟲為Apf蠓蟲;觸長、翅長分別為:(1.40,2.04)的蠓蟲為Af蠓蟲。

感謝您的觀看,希望此文章對你有所幫助;查看更多精彩內容請關注微信公眾「理工科日記」。

相關焦點

  • BP神經網絡
    BP神經網絡原理 人工神經網絡是一種數學模型,它具有人類神經網絡的一些特質,並且有自學習的能力,一般由MATLAB軟體來實現。與傳統統計方法不同之處是神經網絡是通過訓練實驗來找到解決問題的路徑。
  • 神經網絡實現分類與預測的基本原理
    文章目標:神經網絡特別是深層神經網絡是黑盒的,通過閱讀本文可以讓大家了解神經網絡的基本實現方法、基本數學原理、實現流程等,同時建議初學者從基礎學起,查詢更多的資料豐富認知,有不明白的地方可以關注作者或留言。
  • 胖不胖:看人工神經網絡怎麼「稱」
    世界衛生組織的最新報告顯示,在我國現有近9000萬肥胖者,這一數字已超越美國居世界首位。肥胖常與心血管、高血脂、糖尿病等疾病相伴,更增加了對人體健康的威脅。然而,怎樣才算肥胖,如何對肥胖進行更確切的評估呢?2016年第3期《前沿科學》刊載了清華大學體育與健康科學研究中心主任張冰教授等的論文「基於BP神經網絡的體脂百分比評估模型研究」,對這一問題進行了詳細解讀。
  • 神經網絡模型預測值 論文_bp神經網絡預測模型建模步驟 - CSDN
    在深度學習十分火熱的今天,不時會湧現出各種新型的人工神經網絡,想要實時了解這些新型神經網絡的架構還真是不容易。光是知道各式各樣的神經網絡模型縮寫(如:DCIGN、BiLSTM、DCGAN……還有哪些?),就已經讓人招架不住了。因此,這裡整理出一份清單來梳理所有這些架構。
  • 人工神經網絡及其應用
    第一個階段為啟蒙階段,始於1890年美國心理學家 William James發表的第一部關於詳細論述人腦結構及功能的專著《心理學原理》,對於相關學習、聯繫記憶的基本原理做了開創性研究。半個世紀後,生理學家 W.s.McCulloch和數學家W.A.Pitts於1943年發表了一篇神經網絡方面的著名文章。
  • 機器學習算法盤點:人工神經網絡、深度學習
    學習方式   根據數據類型的不同,對一個問題的建模有不同的方式。在機器學習或者人工智慧領域,人們首先會考慮算法的學習方式。在機器學習領域,有幾種主要的學習方式。將算法按照學習方式分類是一個不錯的想法,這樣可以讓人們在建模和算法選擇的時候考慮能根據輸入數據來選擇最合適的算法來獲得最好的結果。
  • 機器學習算法匯總:人工神經網絡、深度學習及其它
    將算法按照學習方式分類是一個不錯的想法,這樣可以讓人們在建模和算法選擇的時候考慮能根據輸入數據來選擇最合適的算法來獲得最好的結果。 算法類似性根據算法的功能和形式的類似性,我們可以把算法分類,比如說基於樹的算法,基於神經網絡的算法等等。當然,機器學習的範圍非常龐大,有些算法很難明確歸類到某一類。而對於有些分類來說,同一分類的算法可以針對不同類型的問題。這裡,我們儘量把常用的算法按照最容易理解的方式進行分類。
  • 什麼是人工神經網絡(ANN)?
    每天使用神經網絡的應用程式有很多,例如Google的翻譯服務,Apple的Face ID iPhone鎖和Amazon的Alexa AI驅動的助手。神經網絡也在其他領域的一些重要人工智慧突破背後,例如診斷皮膚和乳腺癌,讓目光投向自動駕駛汽車。人工神經網絡背後的概念和科學已經存在了數十年。
  • 神經網絡中的分類器該如何改成生成器?
    作者 | 李秋鍵責編 | 劉靜引言: 相信我們都做過一些圖片分類或者是其他分類的項目,我們知道神經網絡是在w和b參數調節基礎上,使得x與y達到對應輸出的效果。在現代的分解建模中的,一般使用統計數據的似然作為改進目的,而GAN創新地用於了另一個改進目的。首先,引進判斷建模(常見建模還包括反對矢量機和多層人工神經網絡)。其次,其改進步驟是在分解建模和判斷建模兩者之間尋找沃克平衡。
  • 人工神經網絡的本質(物理或數學意義)是什麼?
    從數學的角度講,人工神經網絡的本質從機器學習的過程可理解為通過參數求最佳解得過程。同樣也是一個負反饋的過程,以最簡單的負反饋神經網絡bp神經網絡(back propagation)為例,其本質可以形象的理解為這樣一個過程:我們假設這個剛搭建的好的機器人叫
  • 深度|人工神經網絡深入分析
    本文與吳老師的講解方式不同,筆者希望能從神經網絡的起源揭開神經網絡的面紗,從而幫助更多的對神經網絡感興趣但卻沒有相關理論基礎的朋友們。說起人工神經網絡的起源肯定要追溯到生物的神經網絡。突觸延遲使輸入與輸出間有固定時滯。人工神經網絡1943年,基於生物神經網絡莫克羅-彼特氏神經模型(McCulloch-Pitts′neuronmodel)誕生。它由心理學家Warren McCulloch(下圖左)和數學家Walter Pitts(下圖右)合作提出。
  • 如何通過人工神經網絡實現圖像識別?
    人工神經網絡(Artificial Neural Networks)(簡稱ANN)系統從20 世紀40 年代末誕生至今僅短短半個多世紀,但由於他具有信息的分布存儲模式識別、智能控制及系統建模等領域得到越來越廣泛的應用。
  • 對人工神經網絡「開刀」,利用神經科學消融法檢測人工神經網絡
    在此之前,消融已經被應用在一些人工神經網絡的研究中,但這些研究主要關注於調整神經網絡層和改變其結構,因此更像是參數搜索而不是生物學的消融法。Mayes Meisen 以及他們的同事 Peter Lillian 進行這項實驗的目的是想從生物學的角度檢驗人工神經網絡,評估它們的結構以及不同組成部分的不同功能。
  • 科技:人工神經網絡的進步
    這些重大新故事中的一些與人工神經網絡有關,人工智慧研究中的一個相對較新的現象正在推動從娛樂到醫學等許多領域的各種進步。人工神經網絡依賴於這樣的思想:技術可以使用對應於個體人類神經元和神經元組的小單元來模擬人類大腦的生物學工作,以基於輸入產生輸出。
  • 基於神經網絡算法 羊毛_基於pso算法和bp算法訓練神經網絡 - CSDN
    圖神經網絡是用於圖結構數據的深度學習架構,將端到端學習與歸納推理相結合,業界普遍認為其有望解決深度學習無法處理的因果推理、可解釋性等一系列瓶頸問題,是未來 3 到 5 年的重點方向。2019 年圖神經網絡有哪些研究成果值得關注?2020 年它又將朝什麼方向發展?讓我們一起來一探究竟。
  • 3D 列印造出人工神經網絡,UCLA團隊實現全光學機器學習
    圖丨論文:All-optical machine learning using diffractive deep neural networks(利用衍射深度神經網絡的全光機器學習)「構建由光學元件堆疊成的固態人工神經網絡是一種非常有創新性的方法,」瑞士洛桑聯邦理工學院光學與電氣工程學院教授
  • 科大訊飛:基於中斷循環神經網絡的文本分類
    ACL 2018基於中斷循環神經網絡的文本分類Disconnected Recurrent Neural Networks for,例如情感分類、主題分類和問題分類等。很多機器學習的新方法都會先嘗試在文本分類任務上進行實驗驗證。例如深度學習中最常見的兩大類模型,卷積神經網絡(CNN)和循環神經網絡(RNN)及其變體,在文本分類中有很多應用。RNN模型擅長對整個句子進行建模,捕捉長距離依賴信息。
  • 人工神經網絡的五大主要應用場景
    人工神經網絡是一種嘗試,模擬組成人腦的神經元網絡,這樣計算機就能像人一樣學習事物並做出決策。人工神經網絡是通過對普通計算機進行編程而產生的,使它們的行為類似於人類的相互連接的腦細胞。人工神經網絡是受人腦啟發的計算模型。人工神經網絡最近的許多進展都是在人工智慧領域取得的,包括語音識別,圖像識別,以及基於人工神經網絡的機器人。
  • 谷歌ICML獲獎論文 看像素遞歸神經網絡如何幫圖片「極致」建模 ?
    我們提出一個深度神經網絡,它根據順序沿著兩個空間維度來預測圖片中的像素。我們的模型離散了原始像素值的可能性,同時編碼保證了整個圖片的完整性。建模特性包含二維循環層,以及對深度遞歸網絡連接的有效利用。我們實現了比之前所有的模型都要好的在自然圖片上對數可能性的分數。我們的主要結果也對Imagenet進行分類提供了支撐依據。從模型分析出的樣本相當清楚、多樣且有普遍適用性。
  • ICCV 2019 論文解讀:用圖神經網絡改善視頻的多標籤分類
    作者 | 王磊本文介紹了汽車之家團隊在ICCV 2019一篇關於視頻理解論文相關的工作。針對視頻多標籤分類的問題,論文提出了將視頻多標籤之間相關性特徵加入到網絡之中,結果證明該方法可以顯著的提高視頻多標籤分類效果。