包含兩個部分相減的目標函數有什麼好的方法讓其中一個部分優先得到優化?
情況是這樣的:
定義的損失函數包括兩個對距離的度量,其中一個想讓其距離越小越好(趨近於0),記為A。另一個想讓其距離越大越好(趨近於無窮大),記為B。
最直觀的目標函數可以寫成「A-B」,然後用梯度下降去優化。剛開始A確實在向0移動,而B也確實逐漸在增大。但是隨著epoch在增加,B越來越大,但同時A也會開始變大,只不過增加的幅度沒有B的幅度大(因為目標函數是A-B,所以只要A-B越來越趨向於負無窮,訓練就一直在進行)
不知道這個現象是否在優化理論中有所研究?謝謝
謝邀。
@wangyang 說的有點問題,A,B都是關於參數的函數,那梯度下降讓A,B分別收斂到什麼和A-B收斂到什麼是沒有必然聯繫的。而且在優化後期題主說A,B都在同時變大。
題主說A,B都是度量函數,這倆是凸的么?如果是最小二乘之類凸的話可以了解下D.C.(difference of convex functions) programming,也可以試試ADMM (alternating direction method of multipliers)。
不過看標籤有深度學習,那就改下loss確認給A-B一個下界,然後大概率還是梯度下降之類的最好使。
另外好奇下應用本身,A-B略粗暴了。。
主要問題是A-B是發散的(0-∞→-∞),不收斂。要換個有下界的凸函數就好多了,比如A+w/B或者exp(A) + w exp(-B)一類的。
可以看看這篇論文: Algorithms for solving a class of nonconvex optimization problems: Methods of subgradient.
像其他幾位說的一樣,可以類似a + lambda* 1/b 這種形式,然後再做優化。
如果喜歡用基於梯度的方法,就上FISTA。
還可以嘗試用ADMM,在我的方向,用ADMM的人已經比用FISTA的人多了。ADMM里每一步都是closed form solution,收斂的會很快。
前面一個回答 @wangyang 說的很對,換個目標函數,把 換成 ,其中 為平衡因子,然後重新設計形如 的目標函數
不知道欸,但是看描述一下子就想到了EM演算法,前排坐等。。
我是文科的,這個問題我覺得要請教數學老師吧
推薦閱讀:
※平均值為什麼被叫做期望值?
※智商和學習成績之間的關係,有沒有相關的數據模型?
※為什麼有的孩子「一誇就落後,一批評就進步」?
※怎樣判斷一個分布的正態性?
※試驗設計Design of Experiment的精髓是什麼?若能結合實例來說明更好。
TAG:統計學 | 機器學習 | 凸優化 | 最優化 | 深度學習DeepLearning |