推 Frobenius :感謝回答,這方面我比較不熟悉XD 04/03 21:52
※ 引述《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)