2019年11月26日 星期二

香蕉谷:如何思考 Rosenbrock 函數的阻礙性質?

同步刊載於 Medium


Rosenbrock (羅森柏克) 函數是一種數學函數。

是專門用來作為優化演算法的測試函數,測試你優化的理論成本。

這個函數有個特性,在最小值附近呈現一個 (1) 扁平(2) 狹長狀

Rosenbrock 函數在二維形式是長這樣:

f(x,y)=(1-x)^{2}+100(y-x^{2})^{2}.\quad  


由於中間那個低谷(白色部分),很像是香蕉,所以也被稱作 香蕉谷


這個香蕉谷,有個特性,你在優化的時候,會前進的非常非常緩慢。

除此之外,因為這個香蕉谷是「彎的」,所以優化過程會呈現「 Z 」字形前進。

無形間就增加了 2-5 倍優化的成本,讓我們來看:






Rosenbrock 函數有哪些阻礙性質?

 這邊我們先來思考,Rosenbrock 有哪些阻礙性質:

每一個阻礙性質都很重要,我們都要瞭解他會造成什麼阻礙效果!

1. 谷狀(狹長型)

谷狀最大的問題,是在收斂到接近最小值之前,你幾乎只能垂直切入谷底。

這邊是假設你不知道會不會遇到谷狀的阻礙,使用優先往更低方向走的普通優化法。

這代表你在接近到最小值的範圍過程之前,你可能沒有太多機會接近最小值。

也就是說:

 
  

2. 平谷底 

谷底也是有很多種,有些谷底是細溝型,有些谷底是崎嶇型

香蕉谷的谷底是平的,雖然拍腦袋想這樣可能也讓事情單純一點

但是問題是平谷底也代表你陷進去的時候也沒有額外資訊可以參考

而且因為極度的平緩,會使得前進速度非常非常得緩慢。

 


3. 彎曲的分布

在香蕉谷得這個設計中,因為是彎的,變成你直線前進怎麼走都不對

怎麼走都會超過或不足,造成你在優化的時候會以「 Z 字鋸齒狀」前進

更加的浪費時間成本,一步走不遠,還要來回踱步




 Rosenbrock 函數的阻礙性質哪來的?

前面兩段你在網路上可以找到很多文章介紹

但是問題是,你有沒有瞭解到底是什麼可能造成這些阻礙性質的出現

你要瞭解這些,才會知道當你遇到這些阻礙性質時,他可能會是什麼原因

而不是在那邊想怎麼克服,這樣只是治標不治本阿!

我不是在這邊瞎掰,是現在的人分析的太工具導向,優化理論的專業文章都會講



1.什麼情形會出現【谷狀】的阻礙性質?


這種狹長型的情況,最常發生在 物理系統 中。

相較於交易這種處理金融上很噪音的資料,比較不容易遇到谷狀阻礙。

金融上的一些優化,或是比較抽象決策上的優化,遇到谷狀都是準備過擬合了。

過擬合的谷狀,和一般優化的谷狀不太容易分,過擬合的谷狀通常只有一條。

你可以灑很多參數同步優化,你會發現最後陷入同一個谷,那就可能是過擬合。


但是在物理系統,會出現谷狀主要是因為參數之間存在明顯【交互作用】

例如說,一個物理系統同時要優化濕度和金屬導熱速度,得到穩定狀態。

結果可能因為金屬材質的關係,環境濕度和金屬導熱可能存在某種交互關係。

導致在優化的時候,快速收斂到這個【交互關係】上面。


因為這個交互關係太強大,使得其他方面的優化可能無足輕重。

但是也因為這個交互作用,可能會造成無法達到我們期待的目標穩定狀態。

或是要非常非常久的優化,才能找到一組穩定的溼度和導熱的參數。


也因為這個交互關係可能很多種組合和變化,

所以這種物理系統 放到比較大的尺度範圍,會發現有多條谷狀!

這就和處理過擬合陷入的谷狀是不同的。


2.什麼情形會出現【平谷底】的阻礙性質?


在谷底條件之下,什麼情況會出現平谷底?

這也是一個區分物理系統和其他優化問題的一個關鍵,通常在擬真系統

會遇到所謂的【不良尺度 Badly Scaled 】

不只物理系統,通常大多數擬真的系統都會,反而抽象系統不容易

因為尺度關係,可能造成前面提到的【交互關係在些微情況無足輕重】



例如濕度 30.0001% 變成 30.0002% 可能和濕度變成 30.9999% 沒有太大差別

因為在 30% +/-1% 可能這個交互關係就很強了,對優化無明顯影響

但是如果是 33% ,那就影響劇烈!

所以優化過程就會受制於交互關係,在 30.0001% 到 30.0002% 在那邊打轉、慢慢前進。



平谷底還有一種變體,就是 半平谷底,因為在物理系統也容易發生

就是在明顯的交互關係上面存在某種程度的限制,導致平谷底只有一半

另外一半可能是一個斷裂的情況,不是平滑的情況

這可能是一個工程系統,是先這個工程系統就有處理到這個交互關係

進而產生了某種限制條件限制下去


 3. 什麼情形會出現【彎曲的分布】的阻礙性質?


通常出現彎曲的谷狀阻礙,代表參數可能太多,有多組參數產生交互作用。

可能是線性、也可能是非線性,但是因為太多參數糾結再一起,呈現非線性交互作用。

 這種彎曲的可能是如同香蕉谷的「J型」,也可能是「S型」 或「Y」型

通常這種彎曲的分布,會特別強調是 一種錐形(Cone)的家族

也就是他的交互關係會在達到一個程度開始渙散掉或收縮,或是分岔、轉彎

這些在過擬合中就容易觀察到




結論:

所以,透過這樣就可以理解,我們是不是應該掌握這些阻礙性質

當你在優化參數的時候,無論你是搞 ML/RL/AI 什麼鬼東西

你是不是應該要去掌握這背後可能造成這樣的系統根源是什麼



當然你海量數據要去輾壓我沒意見,但是你仔細想,你短時間能有貢獻的點

真的能靠這樣海量的數據輾壓嗎?這就是一個很值得所有優化人仔細思考的事情

沒有留言:

張貼留言