看板 Math 關於我們 聯絡資訊
※ 引述《Frobenius (▽.(▽×▽φ)=0)》之銘言: ※ 引述《igawa (井穿腸 (3A))》之銘言: : 就是我有一組數據 : du/dt = 10 @ t=0 : du/dt = 22 @ t=1 : du/dt = 73 @ t=2 : du/dt = 68 @ t=3 : du/dt = 17 @ t=4 : du/dt = 11 @ t=5 : . : . : . : 想請問版上先進,可以用哪些方法,把u(t)這個函數解出來 : 謝謝~~! 回一下這篇和 Frobenius 大大的問題 --- 一般來說這個算是 estimation 的問題 也就是給你一堆數據 要如何找出這些數據的 "model" 是啥 不過要 exactly 找出這個 model 幾乎是不可能 所以我們自己假設一些可能 based on 這些假設之下,找出我們認為最合理的 solution 或是退而求其次 我們根據已知數據來 "predict" 新的 data 有何變化 例如 predict 在 t=6 時, du/dt=? ---- 以 Machine Learning 的角度來看這問題 給你 input data {0,1,2,3,4,5}^T 和 target vectors {10,22,73,68,17,11}^T 我們可以假設一 base vector ψ(x) = { 1, x, x^2, ..., x^N}^T 想找到一 weighted vector W = { w0, w1, ..., wN}^T 使得 input value 和 target value 滿足以下關係: t_n = <w,ψ(x_n)> , 其中 t_n € (n+1)th element of input data x_n € (n+1)th element of target vectors 我們就可以用 y = <w,ψ(x)> 來 model 這個 system 這個方法稱做 polynomial curve fitting 通常會自己假設拿到的數據有被 noise 影響 (沒有假設也ok) 所以我們會考慮一個 performance (cost) function 希望找到的 model , 會使得該 cost function 越小越好 N 2 例如 w = arg min Σ[t_n - <w,ψ(x_n)>] n=0 N 2 或 w = arg min Σ[t_n - <w,ψ(x_n)>] + λ<w,w> ... etc. n=0 ---- 要用 polynomial curve fitting 來估計 我們會先把已知 data 拆成兩部分 分別叫 training set 和 generalization set 然後分三部分做: <1> [model selection] 可以利用一些方法,估出適合 data 的 dimension 大致為何 以這裡來說,估出合適的 N (degree of freedom) <2> [training] 利用 trainging set,根據 cost function E(w) 找出 w <3> [generalization] 根據 y = <w,ψ(x)> , 把 generalization set 套進去 算出估計值和真實值差多少 ( <w,ψ(x_n)> v.s. t_n ) 一般會看 RMS 或 SNR (驗證估計出來的 model 合不合理) 最直接的做法是假設 model 為 N=1 , N=2 , N=3, .... 然後都做一次 stage <2> and <3> 比較 RMS 或 SNR 在哪個 model 下是最小 那該 model 就是吾人認為還不錯的 polynomial curve ---- 要注意的是若 model 所選取的 dimension (或 degree of freedom) 過高 雖然可以有辦法 perfect match 已知 data ( 例如 給你4個點 (x,y) , 我們用三次多項式 來 fit 這四個點 ) 但就是因為選取的 dimension 過高 使得你 induce 多餘不必要的 dimension 來輕易地 fit 已知 data 這很容易造成在新的 data 進來的時候 其 理論值 和 估計值 會差很大 這稱做 over-fitting problem 這也是為何不一次把 data 都做 training 而要分兩堆,有一堆要做 generalization 的原因在此 至於 s-fold cross validation 這個方法 只是把 data 分成 s 堆,然後做 s次 的 training/genealization 來估計選取的 model 合不合適 不過這個方法計算量很大 有很多更好的方法可以估計 model 的選取 只是這方面我還是初學 >_< 看有沒有其他大大們願意分享其它方法 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.211.136 ※ 編輯: doom8199 來自: 140.113.211.136 (04/03 21:51)
Frobenius :感謝回答,這方面我比較不熟悉XD 04/03 21:52