rm-meda演算法是一種基於分布估計( estimation of distribution algorithms, eda)的演化演算法,用於解決多目標優化問題。該演算法於2023年發表於 ieee transaction on evolutionary computation ,標題為rm-meda: a regularity model-based multiobjective estimation of distribution algorithm。
基於eda的演化演算法的特點在產生新解的方式:先對父代建立分布模型,再在模型中取樣產生子代。rm-meda演算法利用解在ps分布的規律性,即最優解在可行域內的分布為(m-1)維流形,其中m為目標的維數。
在拓撲學中,同胚(homeomorphism)是兩個拓撲空間之間的雙連續函式。如果兩個空間之間存在同胚,那麼這兩個空間就稱為同胚的。如果說拓撲空間是乙個幾何物體,同胚就是把物體連續延展和彎曲。如果兩個流形可以通過彎曲、延展和剪下(最終完全沿著當初剪開的縫隙再重新貼上起來)等操作把乙個轉為另外乙個,則認為兩者是同胚的。[1]
流形是區域性具有歐氏空間性質的拓撲結構,粗略地說,流形上每乙個點的附近和歐氏空間的乙個開集是同胚的,流形正是一塊塊歐氏空間粘起來的結果,歐氏空間是具有內積的線性空間,因此流形可以被多個線性空間拼接近似。[2]
rm-meda演算法就是對父代種群組成的形狀用多個(m-1)維線性空間進行擬合,再在多個線性空間中進行取樣產生子代。
流形學習可以概括為:在保持流形上點的某些幾何性質特徵的情況下,找出一組對應的內蘊座標(intrinsic coordinate),將流形盡量好的展開在低維平面上,這種低維表示也叫內蘊特徵(intrinsic feature),外圍空間的維數叫觀察維數,其表示叫自然座標。
主成分分析法(principal component analysis,pca)是目前應用最廣泛的線性降維方法,採用線性投影的方法進行資料降維,使資料在給定方向上的投影得到最大的投影方差,當流形是乙個線性流形時,pca得到的結果是最優的,pca無法有效處理非線性流形上的資料。[3]
由於rm-meda演算法將流形用多個線性空間近似,因此對於每個線性空間,使用pca來進行流形學習。
rm-meda演算法採用類似聚類的方法將父代個體分為k類,每類最終形成乙個線性空間。因為聚類是為類內線性擬合所準備的,因此聚類中距離不是按照該點到聚類中心的距離,而是按照該點到線性空間距離,該距離是該點到線性空間的垂直距離。聚類過程為首先隨機產生k個線性空間,然後對每個父代中的點,計算該店到每個線性空間的距離,距離最近則屬於該類,在所有點劃分完後對每類使用pca演算法計算新的線性空間,更新線性空間後重複該過程直到分類不再變化。
按照各截斷的線性空間體積佔總體積之比為新解在該截斷線性空間的概率。以此概率先選擇流形,再在流形上均勻取樣並加入噪音即得到乙個新解。重複該過程即可得到子代種群。
[2]劉宇輝, 曲安京. 流形概念的歷史演變[j]. 自然辯證法研究, 2015(5):78-82.
[3]
Session技術分析與理解
博主俗人的理解 伺服器端為了儲存某些資料,或實現某些必要的功能,當使用者訪問伺服器時,將資料臨時儲存在伺服器端以供完成伺服器端的其他某些功能。伺服器需要儲存的資料可以以cookie的方式儲存在客戶端,而session的功能就是將伺服器需要儲存的資料儲存在服務端。例如賬號登入記錄的功能,可以以sess...
C 泛型 理解與分析
在這篇文章中,我們將會討論如何在c 中用示例實現泛型。在這篇文章 中,我們將會討論以下幾個觀點 1 為什麼需要泛型?2 泛型是什麼?3 泛型的優勢或者說優點 4 如何實現泛型?5 如何使用泛型?一 為什麼需要泛型?我們用示例來說明一下為什麼需要泛型。我們建立乙個簡單的專案來檢查一下兩個整數是否相等。...
關於C 位元組對齊的分析與理解
一 為什麼要進行位元組對齊?簡單來說就是提高cpu對記憶體的訪問效率。為了訪問未對齊的記憶體,處理器需要作兩次記憶體訪問 然而,對齊的記憶體訪問僅需要一次訪問。不同的平台 cpu 和編譯器對位元組對齊的處理是不一樣的,但是原理上大同小異。一般來說是不需要太過關注位元組對齊的,因為編譯器會自動幫助我們...