粒子群优化算法求优 及LBG算法的运行 深圳大学信息工程学院 黄彩玲.

Slides:



Advertisements
Similar presentations
六大類食物 五穀根莖類 六大類食物 油脂類 蛋魚肉豆類 奶類 蔬菜類 水果類. 五穀根莖類 : 提供熱量 : 部份蛋白質,維生素,礦物質,及膳食纖維 包含麵 ( 及麵包饅頭 ) ,飯類,蕃薯等食物 也就是一般所稱的 " 主食 " ( 蘿蔔不是這一類,是屬於蔬菜類喔! ) 飲食建議吃三到六碗 並推薦攝取全穀類食品.
Advertisements

揮別電腦族疲勞症候群 主講人 : 陳潮宗 中醫師. 常有症狀一 起因&症狀: 起因&症狀: 坐姿不正最易引起腰酸背痛、 過度看螢幕則眼睛疲勞酸痛。 治療重點: 治療重點:補固腰腎、明目保睛。
引言 高血壓自我健康管理包含飲食、 運動、 及健康生活型態三大方向。 飲食 是改善高血壓的重要部分, 並提 供飲食方式來改善高血壓。
index 目次 ( 請按一下滑鼠,解答就會出現喔 !) 接續下頁解答 3-1 極限的概念.
人事室專題計畫業務報告 人事室 謝明峯 轉 一、專任助理注意事項 計畫案如有聘任專任助理者, 請依據「南 華大學專案助理報到程序單」內容, 將資 料繳交至人事室 ( 請於聘任到職日前繳交, 以免影響到本身權利 ) 。 離職儲金或勞工退休金 依勞工退休金條例相關規定,
山伯與英台在健康書院修業完 成後,一行人逗陣開開心心的 回自己的家鄉 …… 於是開啟了另一段 ~ 新梁祝的故事 ~ 在下 梁山伯 小女子 祝英台 我是 阿成 我是 阿香.
第八章 膳食與營養 第一節 均衡營養與膳食 年 7 月公布新版「每日飲食指南」, 依食物營養特性,分為六大類: 全榖根莖類 蔬菜類水果類 低脂乳品類 油脂與堅果種子類 豆魚肉蛋類 食全十美.
中醫臨床常見養生藥膳 臺 北 市 立 聯 合 醫 院中醫院區 院長 鄭振鴻. 壹、前言 在臺灣地處亞熱帶的氣候,冬季溫暖,夏 季炎熱,雨量多的特性。吃補的概念源自 中國大陸,但生活習性與食物亦有其地域 性,因此針對臺灣常用藥膳的食物與藥物 的性能作用,解析其效用、功能,了解食 物與人的關係,利用食物特性,藥物的效.
青春期 女生可以早在八、九歲, 或晚到十三、四歲才進入 青春期。 男生早的在十、十一歲, 晚到十四、五歲,甚至更 遲才進入青春期。
手动换页 域外风情系列 儿子去美国留学,毕业后定居美国。还给我找了 个洋媳妇苏珊。如今,小孙子托比已经 3 岁了。 今年夏天,儿子为我申请了探亲签证。在美国待 了三个月,洋媳妇苏珊教育孩子的方法,令我这 个中国婆婆大开眼界。
第八課 路 *課前預習 一 二 三 *題解 *作者介紹 *課文內容 一 、 、 、 *修辭回顧
99學年度第1學期導師輔導工作座談會 全校性共同必修服務學習課程 報告單位:學務處領導知能與服務學習中心.
你愛美食嗎? 很多人都有這種體會,在廚房熱火朝天忙活了好一陣,好不容易美味佳餚端上桌,卻絲毫沒了胃口。難道真的是像大家開玩笑說的,都是在做飯時“偷吃”飽啦?經常有一些人在烹飪過後卻沒有食欲,出現嗅覺遲鈍、口渴、頭暈,眼、鼻、喉受刺激的症狀,國外把這種現象稱為“醉油綜合征”。
請愛惜自己 衛生署日前公佈了去年國人的十大 死因統計,惡性腫瘤(癌症)又第 二十度蟬聯冠軍,而且是每四名死 亡人口中,就有一人「因癌而」,
E時代盛宴 健康123年菜發表會 新春新氣象,處於資訊蓬勃E時代的您,是否已構思好如何為自己及家人準備一桌健康、豐盛的年菜?隨著國人健康意識的提升,對年菜訴求也有別於傳統年菜四大特點-高油、高鹽、高糖、低纖,加上其繁瑣的製備過程,對講求速度及效率的E時代族群而言,已不符現今年菜簡單製備、健康需求性。在這距離農曆春節只剩短短二個星期,豐原醫院營養室關心您的健康、滿足您的胃蕾,推出「E時代盛宴-健康123-年菜發表會」,以「一高、二少、三低」的健康原則,利用家中減少烹調油量的鍋具,如:烤箱、電鍋、不沾鍋等,製
生活常規.
雅樂舞基本動作與身體探索 陳玉秀老師主授 【本著作除另有註明外,採取創用CC「姓名標示-非商業性-相同方式分享」台灣3.0版授權釋出】
窦娥冤 关汉卿 感天动地 元·关汉卿.
治癒肺癌 的妙方.
嘴破怎麼辦? 嘴角或嘴唇內常常破一小傷口的人, 吃東西時真是痛苦萬分; 有的人試著補充維他命C及B群,
性平三法及兒少相關保護法令之介紹與宣導 華誠聯合律師事務所 蔡其龍律師.
肺臟的藥膳介紹 台中慈濟醫院 中醫部 陳建仲.
位置的表示方法.
说课课件 感悟工业革命力量,闪耀科技创新光辉 ----《走向整体的世界》教学设计及反思 爱迪生 西门子 卡尔·本茨 诺贝尔 学军中学 颜先辉.
『外食謹慎選、健康輕鬆來 上班族健康挑食小撇步』
合理水價之探討 台灣省自來水公司前財務處經理 王禮忠 台灣省自來水公司財務處組長 賴祐.
知其不可而为之.
男性生殖系統.
近期国内景区安全事故.
水 生命之源 威海文登中心医院 王倩倩.
中国画家协会理事、安徽省美术家协会会员、 工艺美术师、黄山市邮协常务理事余承平主讲
图书馆直属党总支 党风廉政建设专题党课.
認識大腸直腸癌 大腸直腸外科 李元魁醫師.
芳香小物.
兔 子.
透過教學鷹架引導 三年級學生形成科學議題 高雄市復興國小 李素貞 102年3月20日
請愛惜自己 衛生署日前公佈了去年國人的十大 死因統計,惡性腫瘤(癌症)又第 二十度蟬聯冠軍,而且是每四名死 亡人口中,就有一人「因癌而」,
節能減碳—兒童廢物利用 遊戲闖關活動 設計者—賴姿良 陳俐諭 陳松吉.
系統分析與設計 系級:資管三B 姓名:朱秋儒 學號:
美国史 美利坚合众国创造了一个人类建国史的奇迹,在短短230年的时间从一个被英帝国奴役的殖民地到成为驾驭全世界的“超级大国”、“世界警察”,美国的探索为人类的发展提供了很宝贵的经验。
牙齒保健常識 胖福2050/12.
第1课 欧洲的君主专制 香山中学 聂渭清.
指導老師:楊淑娥 組別:第一組 成員:劉怡萱4a0i0066 吳珮瑜4a0i0070 林秋如4a0i0075 陳婉婷4a0i0076
農委會及其他計畫 執行應注意事項 第四組 涂怡禎 日期:104年10月5、6日.
膀胱過動症 & 間質性膀胱炎 台中榮總/埔里分院 蔡青倍.
第十一章 真理与价值 主讲人:阎华荣.
汉字的构造.
诵读欣赏 古代诗词三首.
嘴破怎麼辦? 嘴角或嘴唇內常常破一小傷口的人, 吃東西時真是痛苦萬分; 有的人試著補充維他命C及B群, 有的人塗抹進口藥膏,
小組成員:洪偉凱 簡子昀 李佳旻 陳泓憲.
延伸課程(專題研習)科美好生活之成長的我
微笑的天空 2008.12.1(星期一)農曆戌子年十一月四日的傍晚天上的金星、木星在上弦月左右相互輝映,形成「微笑的天空 」天文奇景。 「金星、木星伴月」,在空軍官校停機坪的上空微笑著面對著校園裡所有仰望天空的筧橋學子,真是令人難忘!因此,決定將網路詩集的初刊定名為「微笑的天空 」。
一言之辩强于九鼎之宝 三寸之舌胜于百万雄师
別忘了,每天都要…… 實踐8大自然養生法 保持3次排便 至少喝3杯蔬果汁 曬太陽30分鐘
第七章 粒子群优化算法.
第七章 固 定 资 产.
泰式料理食譜 137實餐 謝宏德.
故事:《一叶障目新编》 思考: 俊媳妇为什么能优雅地拿走东西?书呆子为什么会羞愧万分?
贴近教学 服务师生 方便老师.
六年级 语文 下册 第四单元 指尖的世界.
(浙教版)四年级品德与社会下册 共同生活的世界 第四单元 世界之窗 第二课时.
行政院國軍退除役官兵輔導委員會 嘉義榮民醫院.
Particle Swarm Optimization Xidian University, Xi’an, China © 2005
本著作除另有註明外,採取創用CC「姓名標示-非商業性-相同方式分享」台灣2.5版授權釋出
公立學校教職員退休資遣撫卹條例重點說明 苗栗縣政府人事處編製 主講人:陳處長坤榮 107年5月2日.
選擇勞退新制,終身免煩惱 勞工退休金新制 說明會.
埃及永生之旅 報告者:陳菱霙.
設計者:台中市重慶國小 張祐榕.楊晟汶.張儷齡
Xián 伯 牙 绝 弦 安徽淮南市八公山区第二小学 陈燕朵.
績優教師分享 美容保健科 林品瑄 教師.
Presentation transcript:

粒子群优化算法求优 及LBG算法的运行 深圳大学信息工程学院 黄彩玲

一. 粒子群优化算法求最优解 初始化一群随机粒子(随机解) 每次迭代中,粒子通过跟踪两个极值更新自己: -粒子本身找到的历史最后解(个体极值点pbest) -整个种群目前找到的最好解(全局极值点gbest) 需要计算粒子的适应值,以判断粒子位置距最优点的距离。 每次迭代中,根据适应度值更新pbest和gbest。 迭代中止条件:设置最大迭代次数或全局最优位置满足预定最小适应阈值。

粒子群优化算法求最优解 D维空间中,有N个粒子; 粒子i位置:xi=(xi1,xi2,…xid),将xi代入适应函数f(xi)求适应值; 粒子i速度:vi=(vi1,vi2,…vid) 粒子i个体极值点位置:pbesti=(pi1,pi2,…pid) 种群的全局极值点位置:gbest=(g1,g2,…gd) 粒子i的第n维速度和位置更新公式: vin=w*vin+c1*r1*(pbestin-xin)+c2*r2*(gbestn-xin) xin=xin+vin c1,c2—学习因子,经验值取c1=c2=2,调节学习最大步长 r1,r2—两个随机数,取值范围(0,1),以增加搜索随机性 w —惯性因子,非负数,调节对解空间的搜索范围

根据适应度更新pbest、gbest,更新粒子位置速度 基本粒子群优化算法流程图 开始 初始化粒子群 计算每个粒子的适应度 根据适应度更新pbest、gbest,更新粒子位置速度 结束 no yes 达到最大迭代次数或 全局最优位置满足最小界限?

程序分析 主要数据结构: 种群大小(PopSize) 空间维数(NDim) 矢量的边界(Bound) 最大迭代次数(MaxIter) C1、C2、W、R1、R2 各粒子当前适应度值(fvalue) 各粒子位置(population) 各粒子速度(velocity) 各粒子的最佳位置(pbest) 全局最佳粒子位置(gbest) 全局最佳粒子序号(index) 更新前各粒子适应度值(fpbest) 得到相近适应度值的迭代次数(samecounter) 临时适应度值 (oldbestval)

初始化各主要数据(设三维的Sphere函数求最优) flag=0; %停止程序标志 oldbestval=0; %记录旧的适应度值 samecounter=0; %记录得到相同适应度值的迭代次数 iteration = 0; %迭代次数 MaxIter =100; %最大迭代次数 PopSize=20; %种群大小 c1 = .5; %学习因子 c2 = .5; %学习因子 w=0.8; %惯性因子 Bound=[-100 100;-100 100;-100 100]; %粒子的坐标范围 NDim = length(Bound); %空间维数 … for i=1:PopSize %定义粒子上下边界 lowerbound(:,i)=Bound(:,1); upperbound(:,i)=Bound(:,2); end

初始化各主要数据 … for i=1:Ndim %初始化各粒子初始位置,在有效范围内随机选数 population(i,:)=rand(1, PopSize)*(Bound(i,2)-Bound(i,1)) + Bound(i,1); end for i=1:Ndim %初始化各粒子最大速度,使粒子不能越出边界 vmax(i,:)=(Bound(i,2)-Bound(i,1))/2; velocity = vmax.*rand(NDim, PopSize); for i = 1:PopSize %计算各粒子的适应度值 fvalue(i) = population(1,i)^2+population(2,i)^2+population(3,i)^2; pbest = population; %记录各粒子的个体极值点位置 fpbest = fvalue; %记录最佳适应度值 [fbestval,index] = min(fvalue); % 找出全局极值和相应的序号

主程序 while(flag == 0) & (iteration < MaxIter) %寻找最优主程序 iteration = iteration +1; %迭代次数递增 for i=1:PopSize %更新全局极值点位置 gbest(:,i) = population(:,index); end R1 = rand(NDim, PopSize); %重新设置随机性 R2 = rand(NDim, PopSize); R3 = rand(NDim, PopSize); velocity = w*velocity + c1*R1.*(pbest-population) + c2*R2.*(gbest-population); % 更新各粒子速度 population = population + velocity; % 更新各粒子位置 OutFlag = population<=lowerbound | population>=upperbound; % 逸出标志 population = population - OutFlag.*velocity; % 阻止逸出

主程序 for i = 1:PopSize % 更新各粒子适应度值 fvalue(i) = population(1,i)^2+population(2,i)^2+population(3,i)^2; end changeColumns = fvalue <fpbest; % 更新后的适应度值优于更新前的,记录序号 pbest(:, find(changeColumns)) = population(:, find(changeColumns)); % 更新个体极值点位置 fpbest = fpbest.*( ~changeColumns) + fvalue.*changeColumns; %更新个体极值 [fbestval, index] = min(fvalue); %更新全局极值和相应的序号 if floor(fbestval*1e30)==oldbestval %比较更新前和更新后的放大的适应度值; samecounter=samecounter+1; %相等时记录加一; else oldbestval=floor(fbestval*1e30); %不相等时更新放大的适应度值,并记录清零; samecounter=0;

主程序 if samecounter >= 20 %多次迭代的适应度值相近时程序停止 flag=1; end Best(iteration) =fbestval; % 输出及描出找到的全局极值 plot(Best,'ro');xlabel('generation'); ylabel('f(x)'); text(0.5,0.95,['Best = ', num2str(Best(iteration))],'Units','normalized'); drawnow;

运行结果(添加三维图等,使之直观点, 达优范围要查) 函数名 表达式 维数 初值范围 理想达优值 运行次数 最大迭代次数 达优次数 平均值 Sphere ,-100<x<100 3 [-100,100] 50 46 0.053 Rosenbrock 5 [-15,30] 200 26 21.9756 六峰驼背函数 ,0<x<1 1 (0,1) 0.1989 41 18.8867

二. LBG算法矢量量化码书设计 LBG算法以初始码字开始,不断迭代直至收敛,每个迭代过程包括对训练矢量分类和更新码字。 缺点:计算量大,生成的码书无序,码书质量受初始码书影响。 基于两条优化准则: -最近邻域准则。对于给定码书,训练矢量集的最优分类可通过把每个矢量映射为离它最近的码字而得到。 -质心条件。对于给定的训练矢量分类,其对应的最优码书中各码字是通过求各胞腔的中心矢量而获得。

LBG矢量量化码书程序流程图 开始 初始化矢量和码书 找最接近码字,矢量重新分类 算失真和信噪比 更新码书 no 平均失真率达到要求? 结束 输出图像 no yes

程序分析 主要函数: main_lbg(): 主程序 cal_ed_ad():由矢量和码书得到矢量和码字距离,矢 量索引号,空胞腔数目 LBG():由训练矢量、旧码书,旧ed、矢量索引号等进 行LBG计算,得到新码书,新的矢量索引号、 新的矢量失真、空胞腔数目

main_lbg()主要程序分析 V=50; % 迭代次数 epsilon=0.001; % 出错率极限 … [Line,Col]=size(img_lena); % 读出图像的大小 n=4; % 设定向量维数为n*n M=Line*Col/n/n; % 训练矢量大小 tv=zeros(Line*Col/n/n,n*n); for i=0:Line/n-1 % 分割图像,得到矢量,tv(4096*16) for j=0:Col/n-1 tv(i*Col/n+1+j,:)=[img_lena(i*n+1,j*n+1:j*n+n),img_lena(i*n+2,j*n+1:j*n+n), img_lena(i*n+3,j*n+1:j*n+n),img_lena(i*n+4,j*n+1:j*n+n)]; (令f=i*n使程序速度提高) end

main_lbg()主要程序分析 cbook_new=tv(round(rand(1,256)*M),:); cbook_old=cbook_new; % cbook_old为更新前码书,cbook_new为更新后码书,初始化 [N,L]=size(cbook_old); % N=256,L=16,码书大小 img_new=zeros(M,L); % 训练矢量更新, {4096 x 16} ety_cv=zeros(1,V+1); % No_of_empty_cv 每次迭代后空胞腔数目,共V+1=51次迭代 [ed_old,ad,ind_tv_old,no_ecv]=cal_ed_ad(tv,cbook_old,0); % 由矢量和码书得到矢量和码字距离,矢 %量索引号,空胞腔数目 D(1)=ad; %第一次迭代后的平均失真 ety_cv(1)=no_ecv; %第一次迭代后的空胞腔数目 … img_ini=zeros(M,L); for i = 1:M, img_ini(i,:)=cbook_old(ind_tv_old(i),:); % 重新划分后的矢量 End psnr=10*log10(GL*GL/mean(mean((img_ini-tv).^2))) %第一次迭代后的信噪比 PSNR(1)=psnr;

main_lbg()主要程序分析 for v = 1:V %迭代50次 if stop_flag==0 [cbook_new,ind_tv_new,ed_new,img_new,ad,psnr,no_ecv]... = LBG(tv,cbook_old,ed_old,ind_tv_old,L,M,N,GL); %由训练矢量、旧码书,旧ed、矢量索引号等进 行LBG计算,得到新码书,新的矢量索引号、新的矢量失真、空胞腔数目 … no_ecv=no_ecv %空胞腔数目 ety_cv(v+1)=no_ecv; %第v+1次迭代后的空胞腔数目 adr=abs(D(v+1)-D(v))/D(v) % 平均失真率 if adr<=epsilon % 如果平均失真率达到要求就停止运算 stop_flag=1; else cbook_old=cbook_new; % 否则更新码书 ind_tv_old=ind_tv_new; % 更新矢量索引号 ed_old=ed_new; % 更新所有训练矢量与所有码字的距离 end

cal_ed_ad()主要程序分析 for i = 1:M, for j = 1:N, ed(i,j)=norm(tv(i,:)-cb(j,:)); % 计算每个训练矢量与每个码字的距离 end … if cho==0 [y_ed,ind_tv]=min(ed,[],2); % 找每个矢量对应最近码字及相应的索引号 ad=ad+(norm(tv(i,:)-cb(ind_tv(i),:)))^2/M; %计算平均失真率 no_ecv=0; %记录空胞腔数目 identified_cb=zeros(1,N); % 值为‘1’ 是非空, ‘0’ 是空胞腔 identified_cb(ind_tv(i))=1; % 非空矢量作标记1 no_ecv=N-sum(identified_cb); % 计算空胞腔数目

LBG()主要程序分析 for i = 1:M %产生想得到新的码书用,码书为胞腔内矢量之和 mf_lbg(i,ind_tv_old(i))=1; end cb_new=mf_lbg‘*tv; %码书为胞腔内矢量之和 for j = 1:N %更新码书 no_tv=sum(mf_lbg(:,j)); if no_tv==0 cb_new(j,:)=cb_old(j,:); % 为空胞腔时这个码字不变 else cb_new(j,:)=cb_new(j,:)/no_tv; %非空时取中间值产生新码字 End cb_new_r=round(cb_new); % 四舍五入取整,新码书 [ed_new,ad,ind_tv_new,no_ecv]=cal_ed_ad(tv,cb_new_r,0); %更新ed和ad

LBG()主要程序分析 for i = 1:M %由新的码书产生新的训练矢量 img_new(i,:)=cb_new_r(ind_tv_new(i),:); end psnr=10*log10(GL*GL/mean(mean((img_new-tv).^2)));

运行结果 Lena原图 LBG算法译码图像

运行结果 PSNR= 28.7641 耗时:59.3350s 平均失真:1.3829e+003

谢谢!