看板 Math 關於我們 聯絡資訊
各位好, 之前在 #1XF2064M 有詢問過"為何訊號處理要用隨機過程"相關問題 當時討論方向傾向於"工程Paper寫的不嚴謹"的相關討論 而最近我又再碰一些訊號處理的paper又遇到一堆隨機過程 因此想要用實際簡單的例子來詢問為什麼要用隨機過程/隨機變數對訊號建模 P.S. 文末有提如果內容眾多或是在意知識產權, 樂意付費求解 【問題】 (1) 為什麼要用隨機過程建模? 我有聽到一個說法是"因為你永遠不知道下一個/串訊號x_n是什麼", 但對於這個說法 把他當作需要的理由我覺得很怪, 我直接像分析學假設訊號x_n符合某個條件不就好了? 比如x_n€l^p, p=1 or 2..., 也就是說, 目前有兩個approach: (a) 統計方向: 假設x_n是符合某些條件的隨機過程X_n(w)的取樣 (某些條件如stationary, ergodic, 滿足某個機率分布...) (b) 分析方向: 假設x_n是符合某些條件的實數列 (某些條件如l^p) 會發現(a),(b)這兩種假設方式也都是"不知道下一串訊號x_n是什麼而做的假設" 所以我才覺得這句話並不足以說服我為何要用隨機過程建模 況且電腦就是根據確定的input去產生output 今天我的算法的accuracy是某個資料庫的N筆資料的正確率的話 這N筆資料就是確定的固定值, 我就是要這N筆的正確率越高越好 因此何來不知道下一串x_n是什麼的疑慮 而且隨機過程建模的話很容易讓論文的符號有一堆模棱兩可跟猜測的空間, 舉例來說, 一個實數列x_n迄今我就看到有三種版本詮釋他: (A) x_n = X_n(w) for some w€Ω, 其中Ω是樣本空間, X_n(w)是隨機過程 (B) x_n = X(w_n) for a sequence w_n€Ω, 其中Ω是樣本空間, X是隨機變數 (C) x_n = X(n) for n€Z, 其中整數Z是樣本空間, X(n)是隨機過程 而不管猜測/選擇哪個版本, 只要條件加的夠多, 好像三個就能得到一樣的結果 然後再套入一些說法如"樣本空間不重要, 重要的是pdf", 變成說具體是(A),(B),(C) 哪一個也不重要了, 反正不說死x_n是什麼, 理論推導時寫E[x_n], 這個E是期望值 還是ensemble average也不重要, 反正條件夠好值都一樣 如果真是如此的話, 那我直接用(b)假設x_n是符合某個條件的實數列就好了啊 看起來(a)並沒有帶給我任何好處反而還有一堆模稜兩可的地方 甚至我把所有有E[x_n]的推導過程的E[x_n]都定義為ensemble average 等式幾乎都可以過去, 況且電腦實作上對於E[x_n]也都是用moving average做 因此我才覺得假設符合條件的實數列x_n並且考慮 E[x_n]:=lim_{n→∞}( (1/n) *Σ_{k=-n~n} x_k) (E[x_n]只是舉例, 像是特殊型MMSE是考慮E[|e_n|^2], e_n是error sequence) 最後一提的是, 用隨機過程建模的話, 某個x_n出來的結果是錯誤的話 你並不能去說他公式推導或是假設錯誤, 因為照理論來說這個x_n只是抽樣 抽樣的結果不對不代表什麼, 因為都有機率性的 有鑑於此, 讓我疑惑的三點就在於: ‧不管採取統計方向跟分析方向的假設, 電腦實作都是同一套 那採取哪種假設根本沒差 ‧採用統計假設就有一個好處:理論推導錯誤也沒差 即便任意有限N筆資料錯, 也都不能去說作者推導有錯 因為有限抽樣的結果不能否定掉機率分布, 頂多只能說倒楣一直抽到不好的data ‧不能檢驗的理論(統計假設)為何重要? 因為在統計的假設下, 任何輸入x_n只是抽樣 他結果對與錯並不能撼動假設, 不像反證法可以由結果錯可以說假設錯 (2) 如果只是對x_n做實數列假設會怎樣嗎? 這部分跟(1)就有很多重複的地方不贅述, 特別想問的是幾乎所有機器學習, 深度學習 訊號處理的參考資料跟論文都會引入期望值, 然後不說死E[x_n]的x_n是什麼 如果我寫論文不採用隨機過程建模, 直接用分析學的方式去假設訊號x_n符合某些條件 會直接被打槍嗎? 如果會的話, 那就回到(1)了, 我想知道到底是有什麼理由跟好處... 抑或是從今以後我閱讀任何有E[]的論文時, 都把他當成數列的ensemble average一切就 天下太平? 不用管什麼統計假設了, 反正電腦實作時不論x_n是不是滿足什麼統計假設也 是算一樣的東西... 【舉例】 我想以Wiener filter去比較使用分析假設與統計假設的差別 (嚴格來說統計的理論是實變, 實變是分析學, 因此我此處的分析學是指 沒用到樣本空間/隨機過程那些的分析學) 參考 https://en.wikipedia.org/wiki/Wiener_filter"Finite impulse response Wiener filter for discrete series"段落 大體說來(符號跟wiki一致), w_n跟s_n是兩串已知數列, {a_i│i=0~N}是N+1個待定係數 令a := (a_0,...,a_N)€R^(N+1) x_n := Σ_{i=0~N} a_i*w_(n-i) e_n := x_n - s_n 求最小誤差問題 min E[|e_n|^2] a€R^(N+1) 接著就可以考慮幾種case: (一) 採用統計假設, 並不說死E[]中擺的數列是怎麼來的(X_n(w)/X(w_n)/X(n)) 則就像wiki那樣一路推下去, 也得出結果 我想問的是嚴格來說wiki裡面的E[]到底是什麼? X_n(w)/X(w_n)/X(n)隨便都可以嗎? 如果是的話, 是依據哪個定理所以隨便都可以? 如果真的隨便都可以, 那就照(二)當成數列的ensemble average就好啦? (二) 採用分析學假設, 這些數列單純是數列而已 定義E[|e_n|^2] := lim_{n→∞}( (1/n) * Σ_{k=-n~n} |e_k|^2) 會發現wiki所有的推導都過的去, 只要假設極限表現良好 也就是說, 所有的推導都只是實數列的推導, 無關任何統計假設 這樣不能嗎? 有何缺點? (三) 採用分析學假設, 去嚴格化(二) 觀察(二)會發現不一定有解a使得cost function達到minimum, 甚至下面這個空間S 根本不一定是向量空間 S:={x_n:Z→R│E[|x_n|^2] exists} 會用特別指出他不是向量空間是為了跟下面這個確定的結果做對比 (即是我在 #1ZPWF7qZ 的問題-(4)的結論) 令l^2:={x_n:Z→R│Σ_{k=-∞~∞} |x_k|^2 < ∞} 則l^2不僅是向量空間更是Hilbert space, <x,y> := Σ_{k=-∞~∞} x_k*y_k 這裡會發現S跟l^2的差別就只是有沒有除以n, 正是這個除以n破壞了向量空間 在l^2中, 正項級數隨著加的項數越多值遞增, 因此遞增有上界就能收斂 但是S中多了除以n, 導致分子加的項數越多值遞增但是分母也在遞增, 無法確定收斂性 因此我接下來的推導只會在l^2(在S目前我覺得不會有好結果) 額外一提, 如果單純考慮有限維空間的最佳近似解問題(符號混用, 過了這段就無視) min |Ax-b|^2 x€R^n 其中A=(a_i_j)€M_mxn(R), b€R^m 則定義 e_n:= (Σ_{k=1~n} a_n_k * x_k) - b_n 的話 原問題就可以寫成 min (Σ_{k=1~m}|e_k|^2) x€R^n 此時會發現不管有沒有除以m, 解得的x都會是一樣的 這例子帶給人一種l^2跟S會有差別是因為無限維的問題, 若有限維就一樣了 接著回到l^2, 把Wiener filter的最佳化問題與條件假設羅列如下: 令w_n€l^1, s_n€l^2為兩數列 a := (a_0,...,a_N)€R^(N+1) to be determined x_n := Σ_{i=0~N} a_i*w_(n-i) e_n := x_n - s_n ║v║:= (<v,v>)^0.5 , for v€l^2, 即l^2的norm 求最小誤差問題 min Σ_{k=-∞~∞} |e_k|^2 a€R^(N+1) 可以發現這個最佳化問題等價於 min║w*A-s║ ---(●) A€C 其中C:={A_n:Z→R│A_n = 0 for n not in {0,...,N}}為l^2中的(N+1)維子空間 (也就是說, 數列A_n只是把a_n左右無限補0而已) 會發現先前l^1, l^2的設定只是為了讓(●)well-defined(l^1*C會屬於l^2) 而藉由Hilbert space的投影定理(因為A處於有限維空間C, 所以摺積算子的值域R_w (R_w:={w*A│A€C}) 也會是有限維, 因此closed), 會存在唯一的垂足p€R_w 使得 s-p€R_w^⊥, 接著只要任何滿足 w*A = p的A都是最佳化問題的解A 順帶一提, 如果在l^2空間考慮最佳化問題 min E[|e_k|^2] a€R^(N+1) 結果會很慘, 因為l^2的級數和是有限的, 會讓無窮大的分母使得整體收斂到0 因此會變成所有的a€R^(N+1)都是解, 毫無意義 以上就是我用分析學假設去嚴格化(二)的陳述 為什麼歷史演進下來的Wiener filter不是這樣的假設與推導? 我是在猜測一些可能性: ‧l^1, l^2這些假設太嚴格了, 不除以項數的話很容易發散, 非常不實用 ‧l^2空間去除以項數會得到無意義結果 ‧考慮較寬廣的集合S, S又沒有辦法嚴格化成向量空間/Hilbert space... 就是這些因素讓應用數學家放棄用分析學方式建模 ----------------------------------------------------------- 以上就是我的問題跟猜測, 我盡量用線性脈絡去陳述我遇到的問題 但是因為牽涉到"為什麼要這樣令、有什麼好處、理論歷史發展"之類的問題 問起來難免有點雜 不好意思 再請有涉獵的板友幫忙了, 謝謝! 另外如果有板友可以完全回答這些疑惑, 但是又覺得是自己整理的知識產權 非常樂意可以來信討論付費講解 我這幾天邊整理這些邊逛tutor版、google家教(高等數學/統計/工作的數學)...等 都沒有找到相關的資源...(有時候覺得是不是自己google能力很差...這些問題我網路 都找不到類似的人問, 當然就沒有答案) 因為本身在業界了, 自己想這個的時間沒有很多, 付費換得高效率得到答案的方式 對我來說是非常可行的 再次謝謝幫忙~ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 59.102.225.191 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Math/M.1668107617.A.9B7.html
deathcustom : 我建議你到comm_and_RF板求問會比較專門 11/11 09:59
好~謝謝資訊, 只是我從好幾年前到業界時, 就很難找到適合的人選問... 數學的同學或是教授偏理論, 我必須把工程上的問題翻譯跟定義完才能跟他們討論 問題就在於這些問題本身就是定義跟歷史問題, 也可以說是我翻譯完那就沒問題了... 而問業界的同事, 他們不在意理論怎樣, 反正電腦跑起來ok就ok 尤其深度學習很容易理論一套、實作一套 而又礙於理論是用統計做假設, 所以實作(抽樣)不符合理論也沒有矛盾 綜合以上兩點, 理論如果不重要又不能檢驗(只能某個信心水準), 那這個理論用處在? 我是不相信理論不重要啦, 只是目前沒找到說法, 因此才來問
deathcustom : 就做信號的人來說,你應該對雜訊跟干擾很熟才對 11/11 10:13
deathcustom : 問題是在一個causal system中,你永遠沒辦法預知 11/11 10:13
deathcustom : 雜訊跟干擾,然後你假設一旦錯了就掰惹 11/11 10:14
這個我理解, 所以就需要假設 問題在於我假設雜訊符合某個分布 vs 假設雜訊符合某個分析條件 我還是不清楚有何差別, 細節就是本文的那些思考方向(【問題】)
recorriendo : 當然可以 只是那樣數學比較難 實務效果也未必較好 11/11 14:00
recorriendo : 所以現在很少人弄也是當然 11/11 14:00
recorriendo : https://doi.org/10.1137/1.9780898717877 11/11 14:00
嗨r大, 謝謝reference 另外請問一下, 你說"當然可以", 那我下面這個疑惑對你而言是疑惑嗎? 不管假設x_n是 (1)符合某個隨機分布的抽樣, X_n(w)/X(w_n)/X(n)哪一個隨便 或 (2)符合某個分析學的數列假設 電腦實作E[x_n]時都是用moving average來宣稱達到期望值E[] (其中E[]是expected value還是ensemble average根本不管, 實作都用moving average) 也就是說, 不管x_n是怎麼假設來的, 我的實作都是同一套程式碼的話 那假設不就變得沒有意義了? 這是我的疑惑 舉一個我所謂有意義的假設, 拿Wiener filter的(三)分析當例子 只要條件滿足羅列的所有假設, 結論一定會成立 反之如果結論不成立, 一定w不是l^1 或是 s不是l^2 或是blabla 也就是說, 分析學的假設只要你能滿足條件, 結果一定成立 反之如果結果不成立, 假設一定有地方出錯 但是統計學的假設下, 即便抽樣的數列跑出來的結果不成立, 也不能否定掉統計假設 我覺得我就是這裡不舒服跟覺得怪怪的 還是說要用統計學來建模的話, 就是要讓自己接受這些觀點? 而剛好歷史上在訊號處理大家都用這一套來建模, 接受就好了 如果理由確實如此的話我是可以接受 ※ 編輯: znmkhxrw (114.25.106.213 臺灣), 11/11/2022 15:37:51
recorriendo : 分析和統計 都是以給定的前提作為充分條件啊 11/11 17:24
recorriendo : 結論不成立 本來就不能否決其充分條件 除非你證明 11/11 17:25
recorriendo : 是充要條件 11/11 17:25
recorriendo : 說錯 否定後件則知充分條件之一不成立 這是一樣的 11/11 17:27
recorriendo : time average = ensemble average 這是ergoticity 11/11 17:29
recorriendo : 假設 本來就是條件之一 11/11 17:29
recorriendo : 統計信號處理一般都假設WSS 大部分結果這都是條件 11/11 17:32
recorriendo : 之一 只是大多人已經接受了 就不會再特地提它 11/11 17:32
意思是說在統計假設WSS與ergodic的情況下 並且假設所選用的moving average會等於time average 則所有抽樣的x_n都會符合理論推導 換言之, 如果某個抽樣x_n不符合理論推導結果, 就是下列至少存在一種情況發生: (1) 選用的moving average不夠好 (2) 不是WSS (3) 不是ergodic r大是這個意思嗎?
recorriendo : ergodic單純是time average = ensemble average假設 11/11 20:51
recorriendo : 其他結果不一定需要它 但大部分統計信號處理都有WSS 11/11 20:52
recorriendo : 的假設 11/11 20:52
recorriendo : 這裡說"其他結果" 通常是用ensemble average下去推 11/11 20:58
recorriendo : 導 但是當然現實世界中能觀察到的是time average甚 11/11 20:59
recorriendo : 至近似的moving average 因此"理論結果"和實際觀察 11/11 21:00
recorriendo : 若要相合就大表已預期它是ergodic 11/11 21:01
了解~謝謝r大回應
PPguest : 看到"用隨機過程建模...某個x_n出來的結果是錯誤", 11/11 21:39
PPguest : "某個抽樣x_n不符合理論推導結果",有點好奇什麼是 11/11 21:40
PPguest : "結果錯誤"和"不符合理論推導結果" 11/11 21:41
PPguest : 是我後面想到簡單例子的這種嗎?公平骰子的期望值是 11/11 21:43
PPguest : 3.5,每次抽樣10個,把x_1~x_10做平均,結果發現結果常 11/11 21:45
PPguest : 常不是理論值的3.5 11/11 21:46
是, 這算是一個例子 以訊號來說, 比如某雜訊音檔s_n是從N(0,1)的分布中的取樣 但是你對s_n做mean跟variance很高機率不是0跟1 那假如(舉例而已)原理論推導中得到最佳參數 p = (mean+1)/variance, mean跟var是母體, 因此對於N(0,1)的分布來說, 最佳參數就是 p = 1/1 = 1 但是實作上會發生兩個情形: (1) 因為你假定s_n是N(0,1)的取樣, 所以p還是設1/1 = 1 但有可能s_n是很差的取樣, 所以p=1時會讓模型的效果很差 (2) mean採用樣本的mean, var採用樣本的var 所以你等於用moving average的方式去跑樣本s_n的mean跟var得到一直變動的p 如果p逼近1且模型表現好, 那一切大致符合 如果p逼近1但模型表現不好你也不能說矛盾, 因為s_n只是取樣, 理論是對母體陳述 如果p遠離1但模型表現好, 那只能說剛好而已 如果p遠離1且模型表現不好你也不能說矛盾, 因為s_n只是取樣, 理論是對母體陳述 總之就是理論是根據母體/分布做陳述, 但是實際上被計算的都是樣本 那樣本表現的不好能不能推翻理論, 就看你的一堆假設了, 比如WSS那些 表現不好就說他不是WSS之類的... 結果論只能說我比較喜歡分析學的假設方式
recorriendo : 簡單說 "理論結果"通常是WSS假設下針對ensemble a 11/12 11:46
recorriendo : verage或其他ensemble統計量的描述 11/12 11:46
recorriendo : 至於能觀察到的通常是time average 11/12 11:47
recorriendo : 所以你列的三個確實都是造成不一致的可能 我只是再 11/12 11:50
recorriendo : 區分各自造成出錯的環節 11/12 11:50
理解~這樣聽起來確實統計假設跟分析假設都是滿足假設下去做推論 矛盾時就一定會否定掉某個假設 只是我說不上來一個具體的形容, 覺得分析假設比較明確 阿, 應該說: (1) 統計假設: 對X_n(w)做假設, 對x_n實作 (2) 分析假設: 對x_n做假設, 對同樣的x_n實作 或許是因為這樣我才覺得(2)比較明確...
PPguest : 個人是覺得碰到有隨機性或不確定性的問題時, 11/13 16:03
PPguest : 用機率來建模是可以理解的。 11/13 16:03
PPguest : 用隨機過程建模,想出的一個(例如)denoise的方法, 11/13 16:03
PPguest : 如果有人問為什麼這個方法可以denoise, 11/13 16:03
PPguest : 通常都至少有一定程度可以說明。 11/13 16:03
PPguest : 如果不要用到機率統計,只對x_n做實數列假設, 11/13 16:04
PPguest : 我會好奇那是怎麼對問題做建模的? 11/13 16:05
PPguest : 雜訊在模型中是什麼?能解釋為什麼方法能denoise嗎 11/13 16:05
PPguest : 題外話,用實數列來看待,感覺也是很新奇有趣 11/13 16:12
PPguest : 好奇問一下,方法的理論是不是都沒有講實作的表現能 11/13 16:21
PPguest : 多好,或者其他跟實作表現有關的任何資訊? 11/13 16:22
PPguest : 什麼都沒有的話感覺很頭痛,不知道能不能自己估計? 11/13 16:27
嗨P大, 我先敘述我個人習慣再回應你的問號 不管是純數的定理還是應用的理論建模, 我有兩個approach: (一) 先假設最少的條件 發現推不下去後, 再去多加一些合理又感覺不太刻意的條件, 這些非常主觀 舉denoise來說, 因為電腦處理的資料確實就是一串數列, 所以輸入跟輸出都是實數列 因此輸入條件先只有假設實數列對我來說就是最寬鬆的假設, 如果能得到好用的結論 當然是最好的, 不過通常越少的假設能得到的性質越少 因此只有實數列在分析上的結果非常少, 諸如: (1) 數列不一定收斂 (2) 向量空間不可賦距 (3) 向量空間不可賦予內積 ... 少了這些性質根本做不下去 因此我下一步就是增加條件, 而在增加的過程必須主觀的相信這對實際應用沒什麼影響 比如我增加的條件是恆號, 那我就覺得這個條件太刻意, 因為輸入訊號很難保證會恆號 比如我增加的條件是l^2, 那我就覺得這個條件應該還好, 至少有限項的訊號都是l^p的 然後一路推理下去, 哪裡卡住就再加條件, 或是事後去優化條件 (二) 先不論條件, 假設well-behaved everywhere 這個approach像是碰到極限交換, adjoint存在性, 投影定理...之類的 原本都需要符合某些嚴格條件, 但是就先當作成立, 一路推到主觀覺得簡潔又好的結果時 再去做實驗說這個結果能不能用 這方向比較偏快跟實用性, 不過後續要嚴格化理論的話還是要回到(一)去一個一個篩選 條件, 找出最佳條件讓所有等式嚴格成立 ------------------------------------------- 以上是我的習慣, 但是如同我之前在 #1YV0bcBv 詢問有關閱讀工程的論文時 常常他前面章節的理論推導跟後面的實作完全對不起來 要馬是理論推導時省下一堆條件沒說要讀者自行猜測(甚至他就是當all well-behaved) 要馬就我看不出來他的實作是在實作理論講的那些東西 舉個之前提過的實際例子來說, 深度學習模型GAN在問世時有篇2014年的論文 他理論推導時說期望值會是1/2, 結果不僅理論推導有個問題是他對不同維度的R^n空間 做雙向可微的變數變換來導公式(不同維度不可能存在diffeomorphism), 實作上根本不會 有期望值1/2這個結果, 並且這個模型非常容易隨著亂樹種子影響, 接著長達好多年去 穩定這個模型 但是只要這個模型有好的幾次, 就不太用去在乎他的理論導對還是導錯 因為我在業界了所以我可以接受這個說法, 但是前提是不要讓讀者花時間猜跟驗證 如果你先標明說這個程式碼實作跟理論推導我還沒證明是有關的, 我就可以不用浪費時間 去驗證彼此的相關性 也就是說今天我照順序閱讀下來, 當作你的理論是對的, 然後跟著實作去做 如果我做出來的結果效果不好或是跟理論推導不一樣, 我就能直接懷疑是我實作錯誤 但是如果理論都不一定對了甚至不知道實作到底有沒有在實作理論 那我要猜的東西就一堆了...是這次倒楣取樣不好? 還是我code寫錯? 還是他理論錯? 還是他實作錯? 最後說一下, 用實數列看待算是我在學界分析學的習慣, 所以在看訊號/AI方面的論文發現大部分用統計模型看待時, 我就很好奇用統計假設 到底有什麼好處? 因為用實數列看待我可以完美的檢驗定理以及實作的契合度 但是用統計模型看待的話, 在效果不好時, 只能說取樣剛好不夠好, 或是實際情況 不符合假設 當然一定有人習慣統計假設了, 反而用實數列假設會覺得怪或是不實用之類的 因此我才想知道說熟悉這兩種假設的人, 他對於這兩種假設方式有什麼經驗可以分享 諸如我文中說的 (1) 如果不管採用什麼假設, 程式碼都是同一套, 這樣採取怎樣的假設有區別的意義嗎? (2) 哪種假設比較"好", 有關於好的標準嗎? 主觀/客觀皆歡迎 (3) 我習慣的分析學的假設方式, 在訊號的建模上幾乎看不到, 是因為? 如果其中一個原因是因為訊號的不穩定, 我也可以把我分析學的假設設的寬一點啊 只是可能就沒有投影定理/Hilber space那些性質可以用 ------------------------------------------------------- 以上分享, 謝謝
PPguest : 對於原po說的分析方向或者實數列看待, 11/14 23:50
PPguest : 感覺好像既知道卻同時又不知道到底是在做什麼, 11/14 23:51
PPguest : 從Wiener filter的例子只看到在理論推導的部分。 11/14 23:51
PPguest : 想知道原po的實數列看待到底是什麼, 11/14 23:51
PPguest : 是否能用下面這個更簡單的例子來說明呢? 11/14 23:51
PPguest : 以下不嚴謹、用詞不精確、很簡略警告! 11/14 23:51
PPguest : 假設訊號 w_k = s_k + n_k, n_k 是雜訊,是 0 mean 11/14 23:52
PPguest : 的 Gaussian noise, 有iid。 11/14 23:52
PPguest : denoise的方法很簡單,除了邊邊要另外處理, 11/14 23:52
PPguest : 中間的部分 x_k=1/4*[w_(k-1)+2*w_k+w_(k+1)] 11/14 23:52
PPguest : 用機率很容易可以說明為什麼這個方法可以denoise。 11/14 23:53
PPguest : 若用Fourier & Spectral Analysis來看同一個程式碼 11/14 23:53
PPguest : 可以看成捲積,然後發現其實是某種low pass filter 11/14 23:53
PPguest : 雜訊大概是某種高頻的訊號,因此可以denoise。 11/14 23:54
PPguest : 感謝 11/14 23:54
嗨P大, 你這個例子正好可以討論 首先我說的以實數列看待Wiener filter的話就是如文中所說, 複製如下灰色: -------------------------------------------------------------------- 令w_n€l^1, s_n€l^2為兩數列 a := (a_0,...,a_N)€R^(N+1) to be determined x_n := Σ_{i=0~N} a_i*w_(n-i) e_n := x_n - s_n ║v║:= (<v,v>)^0.5 , for v€l^2, 即l^2的norm 求最小誤差問題 min Σ_{k=-∞~∞} |e_k|^2 a€R^(N+1) 可以發現這個最佳化問題等價於 min║w*A-s║ ---(●) A€C 其中C:={A_n:Z→R│A_n = 0 for n not in {0,...,N}}為l^2中的(N+1)維子空間 (也就是說, 數列A_n只是把a_n左右無限補0而已) -------------------------------------------------------------------- 也就是說, 對我而言w_n, s_n只是兩串確定的實數列而已 而Wiener filter只是要找到A使得 w*A 與 s 的2-norm最接近 以上是我所謂用實數列看待(即分析學很常用的假設, 如對函數/空間做限制) 接著你的例子應該是使用Wiener filter來denoise 所以以我的分析學假設的話, 即是把既有的假設更加入了: (1) w_n = s_n + N_n (我這裡的N_n是你的n_k, N代表Noise) (2) N_n is independent of s_n (這裡independnet的定義是 N_n€{s*A│A€C}^⊥ 即噪音數列N_n落在子空間{s*A│A€C}的垂直空間上) 然後分析學就做不下去了, 因為我查兩個數列是獨立的定義時, 都定義在隨機變數/過程 當然我們也可以單純定義independent為s跟N在l^2這個向量空間中線性獨立 或是定義為s與N內積為0 或是blabla 只是目前我沒查到關於分析學定義兩數列獨立的通用定義 而即便我採取隨便一種定義, 會遇到很嚴重的實作問題是, 實務上只會拿到w, 拿不到s 而如果拿到s, 那也不用做denoise了... 再來看統計假設, 幾乎就是你寫的那樣假設w = s + N, N符合某個pdf(此為Gauss) 每每我論文看到這種語言形容時, 我就在猜w,s,N到底是X_n(w)/X(w_n)/X(n)哪一種假設 然後先不管的話, 接著你推文所寫的x_k = (1/4)*...這個我雖然沒看過 但是應該跟 https://code-highlights.blogspot.com/2012/06/ 是類似的事情? 即是在隨機變數的獨立假設下, 推出transfer function(Wiener filter的頻域轉換) 是只跟SNR有關的函數 統計假設一樣會遇到拿不到s的問題, 因此上面那個網址就說 what the fuck? Do I need to know clear signal to obtain clear signal? 這也是我幾年前最初看Wiener時就有的疑惑 只是就如裡面說的假設autocorrelation of s可以事先被其他沒有noise的影像估計 總之, 分析學的假設固然有其難操作的地方, 我也不是不能接受統計假設 只是每每遇到使用統計假設的訊號處理資料時, 下面兩件事情讓我不舒服而已 (1) 要猜測裡面寫的x_n是屬於X_n(w)/X(w_n)/X(n)哪一種 (2) 如果某個testing data/signal表現結果很糟, 只能說: (a) 取樣倒楣 or(b) moving average選取不好 or(c) 不是WSS 這種感覺蠻主觀的, 可能敘述的有點亂, 不好意思~
ManOfSteel : 純推,以後再看 11/15 00:46
PPguest : 看起來我讓你搞錯了,不是用Wiener filter來denoise 11/15 20:07
PPguest : 是用 x_k=1/4*[w_(k-1)+2*w_k+w_(k+1)] 這個方法 11/15 20:07
PPguest : 名詞的話應該是 averaging filter 這一類的 11/15 20:23
PPguest : 我寫的w,s,n,我是這麼看:對每個k,n_k是隨機變數 11/15 20:56
PPguest : s是"圖片"(我不知道一維的該怎麼稱呼),s_k是第k個 11/15 20:58
PPguest : "像素".整個s在想像中是理想沒有被干擾的"圖片" 11/15 21:00
PPguest : "圖片"本身沒隨機性,把它看成"那個"圖片"發生的機率 11/15 21:04
PPguest : 是100%",所以s_k也看成是隨機變數,w_k也一樣 11/15 21:06
PPguest : X_n(w)/X(w_n)/X(n)的部分,原本我以為只是符號的問 11/15 21:15
PPguest : 題,搞清楚是指什麼就好。不過我剛剛才知道隨機過程 11/15 21:24
PPguest : 有分離散時間和連續時間。所以……我不知道 11/15 21:24
PPguest : 啊,本文有講,還請原po幫我刪掉22:17的推文 11/15 22:42
嗨P大, 22:17已刪 另外回覆您這段說的: (1) 我想說你符號用我的w,x才想說你是在講同一件事情, 那我誤會了 (2) 承(1), 單純是x_k=1/4*[w_(k-1)+2*w_k+w_(k+1)]的話, 在我接觸的訊號處理中 只是固定的FIR濾波器, 也就是說x = w*h, 只是h不是causal也不是anti-causal (h_0 = 1/2, h_(-1) = 1/4, h_1 = 1/4, h_n = 0 else) 跟Wiener filter那種是"找到濾波器A去最小化cost function"是完全不同的情況 因此這種固定濾波器的case我完全不會用隨機性去看他 單純就只是一個固定的LTI系統, 輸入w, 輸出x而已 不過要說有關也可以啦...因為"濾波器A去最小化cost function"得到的A就是固定了 (不考慮real-time training, 就是pre-trained好的) 而這濾波器A長怎樣跟統計假設推出來的公式以及training的data有關 因此也可以說這個濾波器A是參考了眾多抽樣的訊號後所得出來的平均值 而每個抽樣輸入w, 經過A輸出x
recorriendo : 可了解一下RLS vs LMS filter 11/16 07:40
嗨r大, 幾年前第一次看到adaptive filter相關的名詞時, 就知道有 Wiener, LMS系列(BLMS, RLS, APA, NLMS, MDF...)...這些使用統計假設的算法 對我而言: (1) Wiener <-> 線代最佳近似解closed form的解 min_{x€R^n} |Ax-b| (2) LMS <-> 使用梯度下降法去逼近 closed form的解 min_{x€R^n} |Ax-b| 而梯度下降法涉及學習率μ, 所以有各種假設跟衍伸算法去討論μ的選取 對我來說, 在線代的角度, 有明確的結果: (a) 若矩陣A一對一 則解x唯一並且 x = (A^*A)^-1 A^* b (b) 若在任何一個初始值x_0 則存在r>0使得 |Ax-b| < |Ax_0-b|, where x = x_0 - μA^*(Ax_0 -b) for all 0<μ<=r (c) 若在任何一個初始值x_0 使得 |Ax-b| < |Ax_0-b|, where x = x_0 - μA^+(Ax_0 -b) for all 0<μ<=1 這些就是研究方陣A^*A的固有值以及A^+得到的結果而已 但是Wiener跟LMS所給出的結果很類似, 就是把以上(a)~(c)的結果加入了統計假設 我只能很主觀的說出, 純分析/線代假設下的結果我可以復證跟檢驗並且找實際例子說明 但是統計假設我不知怎麼的覺得無法檢驗, 只能被其語言上的描述帶過去
PPguest : 所以原po的分析學假設,我可以理解成之後會連接到 11/16 19:20
PPguest : FIR濾波器的理論嗎? 11/16 19:22
嗨P大, 就我接觸的經驗, 濾波器是h, 被濾訊號是x, 濾出結果就是 y = h*x 然後就會研究DTFT, Z-transform,...這些東西來尋找怎樣的h才能得到想要的y 這個approach下都不會涉及隨機過程建模, 訊號只是數列(離散)或是函數(連續) 的分析學假設而已 會有統計假設的層面大部分都是在需要訓練濾波器係數的adaptive filter中才會引入 像是Wiener, LMS系列(NLMS, RLS, APA...)...需要pre/real-time trained或是統計假設 的關鍵字主題才會引入統計假設 因此我這篇才以Wiener來當明確的例子, 不用統計假設會怎樣嗎? 對實作有區別嗎?
PPguest : 我問得明確一點,相對於統計假設,原po的分析學假設 11/17 09:52
PPguest : 我是否可以理解成一樣也是用頻率的角度來解釋事情? 11/17 09:53
都可以阿, DTFT跟Z轉換都能對數列x_n(分析學假設)與隨機過成X_n(w)(統計學假設)做 反而是在adaptive filter(幾乎都是統計假設)不太會去分析頻率耶... ※ 編輯: znmkhxrw (59.102.225.191 臺灣), 11/17/2022 12:51:07