天天看點

【圖像分割】基于matlab随機遊走算法圖像分割【含Matlab源碼 149期】

1 關于全局最優化求解

全局最優化是一個非常複雜的問題,目前還沒有一個通用的辦法可以對任意複雜函數求解全局最優值。上一篇文章講解了一個求解局部極小值的方法——梯度下降法。這種方法對于求解精度不高的情況是實用的,可以用局部極小值近似替代全局最小值點。但是當要求精确求解全局最小值時,梯度下降法就不适用了,需要采用其他的辦法求解。常見的求解全局最優的辦法有拉格朗日法、線性規劃法、以及一些人工智能算法比如遺傳算法、粒子群算法、模拟退火算法等(可以參見我之前的部落格)。而今天要講的是一個操作簡單但是不易陷入局部極小值的方法:随機遊走算法。

2 随機遊走算法操作步驟

設f(x)f(x)是一個含有nn個變量的多元函數,x=(x1,x2,…,xn)x=(x1,x2,…,xn)為nn維向量。

給定初始疊代點xx,初次行走步長λλ,控制精度ϵϵ(ϵϵ是一個非常小的正數,用于控制結束算法)。

給定疊代控制次數NN,kk為目前疊代次數,置k=1k=1。

當 k<Nk<N時,随機生成一個(−1,1)(−1,1)之間的nn維向量u=(u1,u2,⋯,un),(−1<ui<1,i=1,2,⋯,n)u=(u1,u2,⋯,un),(−1<ui<1,i=1,2,⋯,n),并将其标準化得到u′=u∑ni=1u2i√u′=u∑i=1nui2。令x1=x+λu′x1=x+λu′,完成第一步遊走。

計算函數值,如果 f(x1)<f(x)f(x1)<f(x),即找到了一個比初始值好的點,那麼kk重新置為1,将x1x1變為xx,回到第2步;否則k=k+1k=k+1,回到第3步。

如果連續NN次都找不到更優的值,則認為,最優解就在以目前最優解為中心,目前步長為半徑的NN維球内(如果是三維,則剛好是空間中的球體)。此時,如果λ<ϵλ<ϵ,則結束算法;否則,令λ=λ2λ=λ2,回到第1步,開始新一輪遊走。

【圖像分割】基于matlab随機遊走算法圖像分割【含Matlab源碼 149期】
【圖像分割】基于matlab随機遊走算法圖像分割【含Matlab源碼 149期】

1 matlab版本

2014a

2 參考文獻

[1] 蔡利梅.MATLAB圖像處理——理論、算法與執行個體分析[M].清華大學出版社,2020.

[2]楊丹,趙海濱,龍哲.MATLAB圖像處理執行個體詳解[M].清華大學出版社,2013.

[3]周品.MATLAB圖像處理與圖形使用者界面設計[M].清華大學出版社,2013.

[4]劉成龍.精通MATLAB圖像處理[M].清華大學出版社,2015.

[5]陳浩,方勇,朱大洲,王成,陳子龍.基于蟻群算法的玉米植株熱紅外圖像邊緣檢測[J].農機化研究. 2015,37(06)

繼續閱讀