国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網 會員登陸 & 注冊

【DELM分類】基于螢火蟲算法改進深度學習極限學習機實現(xiàn)數據分類附matlab代碼

2022-04-24 14:25 作者:Matlab工程師  | 我要投稿

1 簡介

人工神經網絡的最大缺點是訓練時間太長從而限制其實時應用范圍,近年來,極限學習機(Extreme Learning Machine, ELM)的提出使得前饋神經網絡的訓練時間大大縮短,然而當原始數據混雜入大量噪聲變量時,或者當輸入數據維度非常高時,極限學習機算法的綜合性能會受到很大的影響.深度學習算法的核心是特征映射,它能夠摒除原始數據中的噪聲,并且當向低維度空間進行映射時,能夠很好的起到對數據降維的作用,因此我們思考利用深度學習的優(yōu)勢特性來彌補極限學習機的弱勢特性從而改善極限學習機的性能.為了進一步提升DELM預測精度,本文采用麻雀搜索算法進一步優(yōu)化DELM超參數,仿真結果表明,改進算法的預測精度更高。

2 部分代碼

%% 清空環(huán)境變量clc;clear;%% 初始化參數domx = [-3, 3; -3, 3]; ? ? ? % 定義域rho = 0.9; ? ? ? ? ? ? ? ? ? % 熒光素揮發(fā)因子gamma = 0.1; ? ? ? ? ? ? ? ? % 適應度提取比例beta = 0.58; ? ? ? ? ? ? ? ? % 鄰域變化率nt = 6; ? ? ? ? ? ? ? ? ? ? ?% 鄰域閥值(鄰域螢火蟲數)s = 0.03; ? ? ? ? ? ? ? ? ? ?% 步長iot0 = 400; ? ? ? ? ? ? ? ? ?% 熒光素初始濃度rs = 3; ? ? ? ? ? ? ? ? ? ? ?% 感知半徑r0 = 3; ? ? ? ? ? ? ? ? ? ? ?% 決策半徑m = size(domx, 1); ? ? ? ? ? % 函數空間維數n = 50; ? ? ? ? ? ? ? ? ? ? ?% 螢火蟲數量gaddress = zeros(n, m); ? ? ?% 分配螢火蟲地址空間gvalue = zeros(n, 1); ? ? ? ?% 分配適應度存放空間ioti = zeros(n, 1); ? ? ? ? ?% 分配熒光素存放空間rdi = zeros(n, 1); ? ? ? ? ? % 分配螢火蟲決策半徑存放空間%% 螢火蟲常量初始化% 初始化地址for i = 1:m ? ?gaddress(:, i) = domx(i, 1)+(domx(i, 2)-domx(i, 1))*rand(n, 1);end% 初始化熒光素濃度ioti(:, 1) = iot0;% 初始化決策半徑rdi(:, 1) = r0;iter_max = 500; ? ? ? ? ? ?% 最大迭代次數t = 1; ? ? ? ? ? ? ? ? ? ? % 迭代計數器yy = zeros(iter_max, 1); ? % 各代最優(yōu)解%% 迭代尋優(yōu)while t <= iter_max ? ?% 更新熒光素濃度 ? ?ioti = (1-rho)*ioti+gamma*fun(gaddress); ? ?% 各螢火蟲移動過程開始 ? ?for i = 1:n ? ? ? ?% 決策半徑內找更優(yōu)點 ? ? ? ?Nit = []; ? ? ? ? ? ? ? ? % 存放螢火蟲序號 ? ? ? ?for j = 1:n ? ? ? ? ? ?if norm(gaddress(j, :)-gaddress(i, :)) < rdi(i) && ioti(i, 1) < ioti(j, 1) ? ? ? ? ? ? ? ?Nit(numel(Nit)+1) = j; ? ? ? ? ? ?end ? ? ? ?end ? ? ? ?% 找下一步移動的點開始 ? ? ? ?if ~isempty(Nit) ? ? ? ? ? ? ? ? ? ? ?Nitioti = ioti(Nit, 1); ? ? ? ? ? ? ?% 選出Nit熒光素 ? ? ? ? ? ?SumNitioti = sum(Nitioti); ? ? ? ? ? % Nit熒光素和 ? ? ? ? ? ?Molecular = Nitioti-ioti(i, 1); ? ? ?% 分子 ? ? ? ? ? ?Denominator = SumNitioti-ioti(i, 1); % 分母 ? ? ? ? ? ?Pij = Molecular./Denominator; ? % 計算Nit各元素被選擇概率 ? ? ? ? ? ?Pij = cumsum(Pij); ? ? ? ?% 累計 ? ? ? ? ? ?Pij = Pij./Pij(end); ? ? ?% 歸一化 ? ? ? ? ? ?Pos = find(rand < Pij); ? % 確定位置 ? ? ? ? ? ?j = Nit(Pos(1)); ? ? ? ? ?% 確定j的位置 ? ? ? ? ? ?% 螢火蟲i向j移動一小步 ? ? ? ? ? ?gaddress(i, :) = gaddress(i, :)+s*(gaddress(j, :)-gaddress(i, :))/norm(gaddress(j, :)-gaddress(i, :)); ? ? ? ? ? ?% 邊界處理(限制范圍) ? ? ? ? ? ?gaddress(i, :) = min(gaddress(i, :), domx(1, 2)); ? ? ? ? ? ? ? ? ? ?gaddress(i, :) = max(gaddress(i, :), domx(1, 1)); ? ? ? ? ? ?% 更新決策半徑 ? ? ? ? ? ?rdi(i) = rdi(i)+beta*(nt-length(Nit)); ? ? ? ? ? ?if rdi(i, 1) < 0 ? ? ? ? ? ? ? ?rdi(i, 1) = 0; ? ? ? ? ? ?end ? ? ? ? ? ?if rdi(i, 1) > rs ? ? ? ? ? ? ? ?rdi(i, 1) = rs; ? ? ? ? ? ?end ? ? ? ?end ? ?end ? ?% 每代最優(yōu)解存入yy數組內 ? ?yy(t) = max(fun(gaddress)); ? ?% 迭代次數+1 ? ?t = t+1;end%% 結果顯示gvalue = fun(gaddress); ? ? ? ? ? ? ? % 求各個螢火蟲的值disp('最大值為:')num = find(gvalue == max(gvalue)); ? ?% 最大值序號MaxValue = max(gvalue)disp('最優(yōu)解為:')BestAddress = gaddress(num, :)figure;plot(yy, 'r', 'linewidth', 2)xlabel ('迭代次數'); ylabel( '函數值');title( 'GSO算法各代最優(yōu)解變化');

3 仿真結果

4 參考文獻

[1]馬萌萌. 基于深度學習的極限學習機算法研究[D]. 中國海洋大學, 2015.

博主簡介:擅長智能優(yōu)化算法、神經網絡預測、信號處理、元胞自動機、圖像處理、路徑規(guī)劃、無人機等多種領域的Matlab仿真,相關matlab代碼問題可私信交流。

部分理論引用網絡文獻,若有侵權聯(lián)系博主刪除。



【DELM分類】基于螢火蟲算法改進深度學習極限學習機實現(xiàn)數據分類附matlab代碼的評論 (共 條)

分享到微博請遵守國家法律
高安市| 宕昌县| 巴林左旗| 星座| 屏东县| 大城县| 万源市| 福泉市| 五家渠市| 廊坊市| 秦皇岛市| 武义县| 遂昌县| 赤峰市| 漾濞| 古田县| 安西县| 屏南县| 高淳县| 旅游| 息烽县| 锡林浩特市| 枣强县| 旬邑县| 曲周县| 易门县| 彰化县| 武夷山市| 开鲁县| 林芝县| 津南区| 巢湖市| 怀柔区| 黄山市| 荣昌县| 什邡市| 石屏县| 米易县| 双桥区| 德州市| 新沂市|