Re: [問題] Conjugate Gradient Method in optim

看板R_Language作者 (casperxdd)時間7年前 (2016/11/15 11:54), 7年前編輯推噓5(5017)
留言22則, 3人參與, 最新討論串2/2 (看更多)
※ 引述《wheado (principal component QQ)》之銘言: : [程式範例]: : http://ideone.com/xCSQ8s : [環境敘述]: : R version 3.3.2 (2016-10-31) : [關鍵字]: : nonlinear conjugate gradient for minimization : 感謝大家的指導跟建議 : 這真的好困難QQ 我目前測出來的結果是...應該是演算法本身的問題 那篇教學裡有說非線性的conjugate gradient只有在起始點接近local minima時才會收斂 我在[-4,4]^2裡用你的code跑了10,000個起始點, 黑色的點代表以該點為起始點有收斂到正確的極值 f(x)=-1 http://i.imgur.com/74MDxkO.png
看得出來只有在 (pi/2, -pi/2) modulo pi 的附近才會收斂到正確的點 其他地方只能聽天由命 也可能是程式裡有bug 但我看了半天還是看不出來 不是numDeriv的問題, 換成analytical solution也是一樣 P.S. 你忘記update i=i+1 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 68.52.13.65 ※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1479182086.A.A4D.html ※ 編輯: abc2090614 (68.52.13.65), 11/15/2016 12:08:52

11/15 13:08, , 1F
謝謝神人大哥開導
11/15 13:08, 1F

11/15 13:08, , 2F
我想請問optim裡面的cg到底跟我的差別在哪,為何optim可以
11/15 13:08, 2F

11/15 13:09, , 3F
找到最小可是我的不行....看套件說明的detail都是用同樣的
11/15 13:09, 3F

11/15 13:09, , 4F
方法
11/15 13:09, 4F

11/15 14:03, , 5F
我覺得有可能是浮點數的問題 在算hessian時以你的函數
11/15 14:03, 5F

11/15 14:03, , 6F
off-diagonal的應該是0 但用numDeriv會有一點誤差
11/15 14:03, 6F

11/15 14:08, , 7F
也就是說要去了解optim是如何自己算出gradient 跟 hessian
11/15 14:08, 7F

11/15 14:08, , 8F
...
11/15 14:08, 8F

11/15 14:08, , 9F
在一般問題最佳化的時候,根本就找不到函數偏微分,其他更
11/15 14:08, 9F

11/15 14:08, , 10F
不用說了....
11/15 14:08, 10F

11/15 14:11, , 11F
也有可能是那篇文章裡的作法有誤 我過兩天再研究一下
11/15 14:11, 11F

11/15 14:19, , 12F
好的,謝謝大哥,我也會繼續試試看
11/15 14:19, 12F

11/15 15:18, , 13F
發現自己不知道在講啥= = 應該不是浮點數問題
11/15 15:18, 13F

11/15 16:13, , 14F
哪到底是~好混亂啊
11/15 16:13, 14F

11/16 02:22, , 15F
除非convex 否則演算法不保證能找到最佳解
11/16 02:22, 15F

11/16 02:22, , 16F
optim用的演算法都是許多人試過好用的
11/16 02:22, 16F

11/16 02:22, , 17F
區區一篇paper的方法要打敗這些被公認的好方法不容易
11/16 02:22, 17F

11/16 08:04, , 18F
恩……所以是演算法的問題嗎?那我在去看看optim 裡面的CG
11/16 08:04, 18F

11/16 08:04, , 19F
到底是怎麽跑的……
11/16 08:04, 19F

11/16 08:07, , 20F
但是我並沒有要global min 而是希望可以跑到local min 但
11/16 08:07, 20F

11/16 08:07, , 21F
是希望可以避開saddle point 目前的情況似乎是我的會掉到s
11/16 08:07, 21F

11/16 08:07, , 22F
addle poont 可是……optim可以掉到local min……
11/16 08:07, 22F
文章代碼(AID): #1OAeS6fD (R_Language)
文章代碼(AID): #1OAeS6fD (R_Language)