問題:在mopcon演講中,你有提到病態曲率是有機會可以克服的,是否代表只要優化演算法的參數選擇正確,就可以減少這樣的情況出現?
基本上大多數的病態曲率會發生,代表你的:
1. 參數空間太大
2. 或是維度太高
3. 或是可以理解成資料高頻雜訊太高
最重要的事情是, 你必須充分的先把現實中可以擬真的條件都先考慮進來
考慮到你的計算成本太高了,再考慮優化
這是我們所謂的【啟發式搜索的四步驟】,這四步驟是:
1. 我們首先對我們定義的問題,採用精確的研究方法
如果過於複雜到我們無法找到精確方法,就進入第二步
2. 對目前問題採用啟發式演算法
假如在過程中無法得到好的穩健性、泛化能力的話,進入第三步
3. 對問題進行簡化,並採用精確方法
假設對問題進行了某種程度的簡化,排除了一些輸入參數組合
排除了一些控制因素,但如果精確方法還是無法,就進入第四步
4. 對簡化的問題,採用啟發式演算法
如果還是無法,回到第三步,不斷循環直到可以為止
這每一步,你都要有充足的證據和判斷依據,才能 簡化→搜索→簡化.
如果你有看我的 MAE MFE 的影片,你會發現我有一段就再講
你優化 SL/TP 去卡到參數空間太裡面,就會很危險
這些就是你事先對問題的真正情況的掌握程度,然後讓你對參數先做一點限制
所以你講的參數選擇是沒錯,這部分有很多種作法
例如我可以把很多組參數先做某種程度的函數綁定
例如 A=2 那 B=4.005,也就是 A 的平方加減上一個隨機小值
基本上這可以先把各種參數先分群處理,接著在考慮優化過程
通常的做法就是你不應該一次優化一個點,而是應該一次優化一群
然後在一群中去把整群的移動方向和分布情況做更新
這樣基本上陷入病態曲率的,就可以選擇放生,不拖垮整群
這部分在優化過程中,我們可以設計(黏著牆、反彈牆、環狀牆)
也就是當參數跑到某一個危險範圍內,或是他優化到一個情況的時候,
妳可以讓這組參數往優化方向的相反方向調整(反彈)
或是降低調整力道(黏著)
或是讓他某一個參數跳到相反情況(環狀牆)
關於這些,都是屬於啟發式搜索的部分,你可以往這方面了解
就會掌握到很多當代優化的黑科技
但是關鍵!還是在於你把真實世界的問題掌握到多深
其次才是優化,通常病態就是你不想考慮現實情況
這也是我對目前 ML/AI 這些東西 applied 到金融持保守的態度
太多先烈死在沙灘上了(不是說不行,而是你要如何考慮,就是我提到的原創力!)
沒有留言:
張貼留言