NSGAIII中的normalization objectives

最近爲了找一些如何搞reference point,老闆讓我去看下NSGAIII的paper。老闆說上課的時候講過的,搞得我很慚愧,我當時沒好好聽。並且看了老闆的PPT和論文上說的差別有點大啊。纔拿到這個paper,發現第一塊就不明白了,我打算每看懂一部分就做個記錄,一則加深我的理解,二則在複述的過程中可能會有更多的新發現。

首先NSGAIII面臨的算法就是normalization objectives。其實當看懂這部分之後, 它做的工作的確是normalization的工作。這塊是我在結合了JMetal對應的代碼之後,我纔看懂算法的。並且在IEEE上檢索的到這篇論文其實不如作者主頁提供的那個版本, 在作者提供的版本上有那個ASF的具體的公司,在IEEE提供的版本上面是沒有ASF公式的,肯定是看不懂的。

1:首先是計算在每個目標維度i 上的最小值,在論文的描述中是用自開始迭代到迭代至今的全部的個體中來找目標i 上的最小值的。但是在算法中只是從當次迭代的個體中去找的,仔細想來也對,因爲在non-dominate sorting的過程不能讓目標值最小的解已經被拋棄掉了(我們默認討論的就是尋求最小值的優化過程)。在JMetal的實現過程中,更是絕,直接從front1中的個體中來找,其實道理是一樣的,最小值只可能出現在front1中的solution中啊。假定在第i個目標上對應的最小值是zi 。然後依次讓每個目標值都減去對應維度上最小值,得到fi=fizi 。這個zi 在文中成爲idea points。想一下的確是很完美,因爲在最小化問題中找最小值的嘛,這個就是最小值。

2:此時可以用一個目標爲2的例子來思考下,就是讓點靠上座標軸,因爲比如在DTLZ1 3目標的問題中,知道TF在三個座標軸上的交點的截距是0.5,但是在未達到收斂之前,可能TF的範圍都還很小,都還沒靠上座標軸,這樣已減去最小值,就可以讓靠上座標軸了。

3:靠上座標軸之後,就要找到這些靠上座標軸的點了,也就是文中算法說的extreme points。文中使用了ASF來找,是分別從每個維度上對f 來計算的,比如當前固定的是一個維度,然後對於f 先從第一個維度上開始計算,此時ASF(x,w)=maxi=1:mfi(x)/wi ,也就是說如果當前是判斷第一個維度的話w1=1 ,否則其餘的wi=0 for i1 。然後這個維度上判斷完之後,就找最小的那個值,這樣就可以找到這種extreme point了,其實想想也很容易理解,先說固定維度情況下找ASF 的情況,它是在固定維度下,判斷這個目標的全部維度值哪個最大,如果是extreme point,不在對應爲度上的值是0,除以什麼數還是0。而對於全部的目標值來說,只有extreme point這種點出來的值纔是最小的,因爲它的分母比起其它來說要稍微大一點。

4:找到這種extreme point之後,接下來就找對應座標軸上的截距,其實這個截距就是這個extreme point在對應座標軸上的座標值。我們記錄爲ai

5:接下來就是歸一化了,也就是fi/(aizi) ,注意到fi=fizi 的,這下就清楚多了吧,步驟1,2,3,4就是在找ai 的。

此時完成了objectives 的normalization了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章