看板 Math 關於我們 聯絡資訊
想了很久如何下標題...因為問題範圍有點廣 不好意思, 先把常常寫在結尾的部分放到前面, 因為這些問題敘述起來比較沒有規則, 就是這幾年的工作遇到的困難跟經驗談 我身邊的朋友要馬就是純工程出身, 要馬就是純數繼續在學界, 或是學界轉業界後就不在乎這些事情了 因此我才會懷疑是否在工程上在乎跟理解這些事情是不需要的? (可是又覺得不太可能如此, 如果不理解, 那怎麼知道什麼時候要採用/避免? 該不會又回到了"先加再說", 效果好再解釋?) 文末分享一個讓我PO這篇文的最後一根稻草...頻譜洩漏 或許板友們也可以分享如果是你遇到這個問題, 怎樣叫做理解了這個問題 或是說知道這個問題的答案是什麼(我就是查不到formal math definition...) 想聽聽看各位板友的看法, 謝謝! ====================================================================== 大體來說, 我用以前在學界的"理解了"的標準來看待我工作上用到的名詞與數學 從一年多的深度學習到現在三年的訊號處理, 不論是paper/工程的書/網路資料 我覺得...好累...累到懷疑是不是我錯了 不該拿以前那套邏輯思維套用在實務上的討論 累的點完全不是在難, 而是在定義不清/不一致, 很多都是語言敘述或是舉例 導致花一堆時間在猜東西/定義以及自我給定義 然後逐個在猜測的定義下做推導, 看結果有沒有矛盾 很大的可能是跟例子A一致, 但是又跟例子B牴觸, 於是又修正定義, 一直loop 這些年有問過不少人的看法, 工程上的朋友給出的說法大致是: 1.本來就不會寫清楚, 之後被質疑才有解釋的空間 (這個好像蠻常遇到的, 明明傅立葉轉換家族的定義跟假設不一樣然後彼此互相幫忙, 數學上對於這個家族間的關係其實都要有嚴格的假設才能相同or逼近的) 2.實務上很多是try出有結果後才去補數學式 3.本來就沒有嚴格/一致定義 4.審paper的人不會驗證數學式, 敘述邏輯跟結果合理就好 ...etc 這些說法每個都讓我大開眼界... 【工程paper】 舉工程paper的格式來說, 大致上是: (1)介紹 (2)理論 (3)實作 (4)數據 (5)結論 數學paper只是少掉(3)跟(4)而已 接著以我的邏輯思維來說:((4),(5)不提了) (1) 介紹: 問題是什麼, 以前的模型有什麼問題, 這篇解決了什麼 (2) 理論: 對這個問題的數學建模是什麼, 推導出什麼結果 (3) 實作: 用什麼方式達到理論數學式 以我看過的工程paper來說, (1)的內容多半是語言敘述, 這部分只要在(2)中 給了明確的數學定義, 那就沒問題, 但是有些給有些不給, 所以這裡就要猜了 再來猜最兇的就是(3)的部分, 幾乎沒有證明(2)跟(3)的關係, 僅口述說(3)實作(2) 所以我就在猜到底是: (a) 確實(3)是在實作(2), 只是證明trivial (b) 確實(3)是在實作(2), 只是證明很難 (c) 確實(3)是在實作(2), 只是他多假設了一些無法證明的東西 (比如期望值用移動平均實作, 假設這個方式可以逼近理論期望值) (d) 當初是先有(3)發現效果好, 再去補(2)來發paper 然後前面(a)~(c)的猜測, 就要花我一堆時間, 涉及: (i) 把實作部分還原成數學式 (ii) 把還原後的數學式跟理論數學式做比較(99%不相同) (iii) 自己猜條件&假設, 盡量把(ii)控制在某個誤差範圍內 最後就不了了之, 因為原作者不在旁邊, 所有的一切只能自己猜跟驗證 【我認為的討論邏輯/何謂理解了某個東西】 今天要討論某個議題, 所有關於這個議題的辭彙都要有共識的定義, 才不會導致問題發散以及各說各話, 毫無交集 以數學例子來說, 要討論傅立葉轉換的話, 就必須涉及: (1) 積分假設是什麼? 黎曼或是勒貝格 (2) 函數假設是什麼? 黎曼或是L^p (3) 是否為等價定義? 若不L^p怎麼辦? 詳細可參考L大的 https://www.ptt.cc/bbs/Math/M.1641311400.A.DB4.html 也就是說, 以上每個詞彙都有定義, 只差有沒有時間自己證一次而已 我長年就是習慣這樣的思維(在學界跟教授與學生互動的經驗也支持這樣是對的) 所以如果這個議題有定義, 那就先確認彼此定義是什麼 如果沒有定義, 那我們先一起把它定義出來 以工程例子來說, 要討論取樣定理的話, 就必須涉及: (1) 訊號假設? (2) 何謂完美還原? 還原到誰? everywhere or almost everywhere? (3) 雙向無窮級數的定義? 是採用左右對稱還是各自跑? 是否等價? (4) 極限交換? 還是假設這函數很好, 在哪都可以交換? 而把這邏輯套到工程paper來說, 我就會先去抓該paper如何對問題做數學建模(數學目標式) 然後再看實作是如何逼近數學目標式 我要求的只有這樣 但是很多就是看不到或是加很多沒證明的因素 比如回聲消除(AEC)的數學建模是假設傳輸路徑是LTI系統, 並且是係數是有限長的(FIR) 然後實作(演算法)就是要幫忙算出這些係數 數學來說單純是做 f(w):= |Aw-b|^2 的梯度下降法而已 但是看了很多在做AEC的paper確實都用同一套理論建模 但是實作上卻各自加了很多因素, 聲稱可以幫助達到理論係數或是加速, (block處理, 加入統計量動態改變學習率...但沒證明這樣能達到什麼效果) 但是要馬沒給證明, 要馬就是證明的內容跟實作不符 這時候我又花了不少時間在驗證上... 而且, 常常會發生語言敘述矛盾的地方 以AEC的論文為例, 常在介紹中提到"若在雙講情況時沒停止學習率更新, 係數會發散掉" 然後我用最純的梯度下降(沒加任何變因)做實驗時根本沒有發散掉, 只是收斂速度慢而已 然後我就卡住了, 不知道如何解決這個矛盾 這又是我另外一個不舒服的地方...因為工程paper的理論往往使用隨機過程建模 不是單純的"令x_n為定義在整數上的實數函數", 所以很容易覺得理論跟實作差很多 只能相信他的實作在逼近理論, 也因此遇到像上述實驗上的矛盾也無從檢驗 (因為任何的實驗只是一次隨機過程的取樣而已) 最後就覺得, 如果這些矛盾沒有釐清, 這篇paper到底帶給我什麼知識? 【何謂頻譜洩漏(Spectral leakage), 為何加特殊窗可以減少頻譜洩漏】 我這幾天去查相關資料, 9成都是用sine舉例的方式解釋, 參考wiki的第一張圖 https://en.wikipedia.org/wiki/Spectral_leakage (有藍紅線的那張) 然後我到處都查不到formal definition 可是接著想, 如果沒有定義, 那怎麼回答自己或是別人何謂頻譜洩漏... 如果有定義, 那我就可以驗證那些舉例是否符合定義, 以及加特殊窗是否會減少洩漏 (記得當線代助教時, 大一生在寫關於方陣AB=I則BA=I的證明時, 不少人就寫: 令A=I, B=I, 則因為AB=I, 所以BA=I...邏輯錯到傻住XD 舉例不能當作全部) 這邊題外話一下, 工程上的詞彙很容易遇到沒有正式定義, 但是可以瘋狂舉例 而在意定義的人, 只能從海量的例子去自我定義出一個說服自己的定義... 這個問題以我所謂"理解了"的標準, 就要涉及: (縮寫: FT=連續傅立葉轉換, FS=傅立葉級數, DTFT=離散時間傅立葉轉換, DFT=離散傅立葉轉換) (1) 訊號假設? 是定義在整數x_n還是在實數x(t)? 是當作週期函數還是非週期函數? 非週期的話是假設有緊緻支撐還是沒有? (2) 何謂頻譜? 是採用FT/DTFT/FS/DFT? 如果用FT, 如果不是L^1的話要採用分布理論? (3) 何謂洩漏? 何謂降低洩漏? (4) 何謂特殊窗函數?(以例子來看是那些頭尾遞減到0的緊緻支撐函數) 當以上都well defined後, 就要能證明加特殊窗函數後就能降低洩漏 當然啦, 我完全查不到(1)~(3)的定義, 查越多只是更多的舉例, 更遑論證明 因此我就試著自己定義這些東西, 參考wiki那張圖, 我馬上就卡住了, 涉及: (a) wiki那張圖是對週期函數sine做FT, 這個用L^1的FT是不收斂的, 如果我要定義 就要針對不同函數空間的FT做定義? (b) 洩漏如果定義在"頻譜"無法還原跟FT的結果一樣, 那所有函數都會洩漏 (c) 如果不是sine/cosine呢? 任何函數做週期延拓都是週期函數阿 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 59.102.225.191 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Math/M.1652296038.A.2F9.html ※ 編輯: znmkhxrw (59.102.225.191 臺灣), 05/12/2022 03:07:39
Vulpix : 那你對於「訊號」的圖像又是什麼呢?是嚴格的週期函05/12 18:19
Vulpix : 數,是只在產生後、終止前有support,還是在support05/12 18:21
Vulpix : 邊緣迅速增減,又或者是在"support"外很小卻又無法05/12 18:22
Vulpix : 歸零(一絲擾動都沒有)的函數?05/12 18:22
Vulpix : 以一般的應用來說,雖然理論可以推到很外面,但他想05/12 18:24
Vulpix : 應用的範圍,可能就只有很小的一部分函數?如果要向05/12 18:24
Vulpix : 外推展就應該是去延拓吧。 05/12 18:25
嗨V大~你的這些問號也是我的問號 我就是覺得今天任何一份"頻譜洩漏"的資料 他就要先給你那些問號是什麼, 也就是假設 可是我卻花很多時間一個一個測試他的敘述到底是基於哪些問號 就像是給一堆"x^n"的微分是"n*x^(n-1)"但是一直沒給微分的定義 然後我就要花時間自己去猜出微分的定義...這不合理吧
Vulpix : (a) 此時FT不要用積分定義,用pv積分或延拓來做。05/12 18:27
Vulpix : 而不管你怎麼定義的,都相容於原本的積分定義。05/12 18:29
Vulpix : 定義早就已經不是那個積分了,所以不用管積分收05/12 18:29
Vulpix : 不收斂。05/12 18:30
如果wiki講明"頻譜我們採取FT, 而且是採用定義在分布理論上的FT" 或是你講的用PV, 我都可以接受並且後續再驗證
Vulpix : (b) 這沒什麼疑問,是這樣沒錯。所以可以在頻譜之間05/12 18:31
Vulpix : 度量其差異,至於要不要用metric或甚至要用哪個05/12 18:32
Vulpix : metric也還可以討論。05/12 18:32
Vulpix : (c) 這有什麼問題嗎?05/12 18:33
就是因為他用sine舉例才"看起來"有洩漏的感覺 那其他週期函數如果有洩漏是怎樣呢? 這個問題也就是因為沒有定義洩漏 -------------------------------------------------------------------- V大針對你回的這些我想問一下, 為什麼歷史上這些詞彙就不能像 數學定義那樣寫成:(以下有加一些猜的東西) <Definition> We say a function x:R→R has spectral leakeage if: (1) x is periodic with period p > 0 (2) F{x}(f) (FT defined by distribution theory) exists (3) by x_n:= f(nT), n = 0~N-1, T = p/N X_k:= FFT{x_n} we have X_k != F{x}(k*N*T) 就是類似寫成這樣, 那我就可以驗證是否加入窗函數就會降低洩漏 但是工程上的詞彙我很少看到這種寫法, 所以我就會花一堆時間在猜定義 原因就是目前根本沒有一致定義嗎?
Vulpix : 我覺得洩漏本質就是window「不好」的程度。05/12 22:04
Vulpix : 那要給一個度量方法的話,我會覺得算window的標準差05/12 22:06
Vulpix : 就好。也就是∫(x-μ)^2 w(x)dx/∫w(x)dx,其中μ=05/12 22:08
Vulpix : ∫x w(x)dx/∫w(x)dx。但這只是一種度量方法,根據05/12 22:09
Vulpix : 情況也或許有其他更合適的作法。回頭說一下那個度量05/12 22:10
Vulpix : :這應該理解成w(x)有多好。所以數字越小就代表w(x) 05/12 22:11
Vulpix : 會造成越嚴重的洩漏。05/12 22:12
Vulpix : 至於為什麼大家總是只拿sin來說明。這是因為FT就告05/12 22:14
Vulpix : 訴你所有你有興趣的函數都可以用sin和cos這些函數疊05/12 22:15
Vulpix : 出來。那要說頻率外洩的時候就先拿函數的一個小成份05/12 22:15
Vulpix : 出來談就好。剩下的只要加上來,函數的行為也就可以05/12 22:17
Vulpix : 刻劃完畢了。05/12 22:17
Vulpix : 前面寫的度量方法,可能有人會不同意,覺得w也要平 05/12 22:21
Vulpix : 方一下才行,這也是一種常見的歧見。05/12 22:22
V大你意思是說, 如果加窗函數y(t)=x(t)*w(t), 如果w(t)是恆為1的常數函數 那y(t)就恆等於x(t), 因此x跟y的FT會一樣, 就毫無洩漏 但是如果今天w(t)不是常數函數, 假設是有緊緻支撐的函數 那自然x跟y的FT會不一樣, 這就是所謂的洩漏 如果我沒有誤會你的意思的話, 直接你寫的標準差當定義, 馬上就遇到問題: x(t)如果是週期函數, FT就是一個泛函, 這樣標準差定義也會well-defined? 即便這個問題解決了, 這也就是我所謂"猜"的一種方式 更何況像是wiki的圖畫出了FT, DTFT, DFT來解釋頻譜洩漏 不僅僅只用了FT 感覺就是每個人對於頻譜洩漏可能有各自的定義 但是直覺上好像都在表達一個無法有一致定義的自然現象?
PPguest : 幫Z大QQ05/12 22:34
PPguest : spectral leakage在wiki上看起來就只是用文字敘述來05/12 22:40
PPguest : 定義,多少也會覺得有種不夠明確的感覺,但好像這樣就05/12 22:43
PPguest : 夠了,大概知道在表達什麼.看wiki的圖,感覺好像不一05/12 22:45
PPguest : 定一定要造一個度量方式才能說明,像wiki下面的圖用 05/12 22:49
PPguest : 圖片呈現的方式就很清楚.剛想到也許可以先研究一下05/12 22:51
PPguest : 這領域的人一般都用什麼方式來呈現結果或說明好壞,05/12 22:53
PPguest : 搞不好真的不需要用到嚴謹的定義或數學也能達到目標 05/12 22:55
嗨P大~對 我就是覺得不可能這幾百年只有我遇到這種數學與工程的銜接問題 所以都是以 "應該是對的 只是我證不出來/證錯" 繼續花時間找資料 但是幾年來做這些事 覺得好像越來越不是這樣 好像我在學界在乎跟使用的那套分析事務的邏輯在工程上不適用 但是上網查也沒有相關的討論... 於是才想說不再浪費時間了 問看看各位板友的意見
recorriendo : leakage是一個現象 無限長和有限長頻譜就會有差05/12 23:06
recorriendo : 不管訊號是哪一個class都會有 另外也不能化約成一05/12 23:07
recorriendo : 個數字 必須在side lobe寬度 noise floor強度之間做05/12 23:08
recorriendo : 取捨 有一好沒有兩好05/12 23:09
recorriendo : leakage可以理解成PSD的smoothing 重點是leakage會05/12 23:12
recorriendo : 不會smooth到達不到需要的解析度05/12 23:13
PPguest : 工程paper的部分,個人覺得看它如何宣稱實作有好結果05/12 23:16
PPguest : 要用數學嚴格證明實作方式真的能達到目標可能在簡單05/12 23:19
recorriendo : 更正 是 main lobe寬度 VS side lobe強度05/12 23:19
PPguest : 的問題上比較能做到;複雜的問題如果無法用某種證明05/12 23:21
PPguest : 方式來證明,那可能就退而求其次,用其他方式來說服你 05/12 23:24
PPguest : 這個實作方式是好的,例如說某個方法無法證明在任意05/12 23:25
PPguest : 函數上都行得通,但在那些經典的(在領域上重要的)函05/12 23:27
PPguest : 數上都有好的結果,這樣至少會有一定程度的信心 05/12 23:32
了解~舉例來說, 今天我在某個模型加入了一層f(x) = x^3, 然後實用效果變好了 paper中要寫到這一點時, 如果我能有一套完整的定義跟數學證明去說明, 那我就寫 如果沒有的話, 我就會寫我"認為"他在做什麼物理現象, 但是沒有定義跟證明 但是我遇到的敘述通常是:(舉例) f(x)=x^3強化了訊號奇數頻的頻率, 因此辨識度變高 接著附上一些說明數學式子 然後我就非常不舒服 因為你有附數學式, 我就認為你這些式子100%在定義/說明你的敘述 因此我就從數學式或是敘述開始猜定義: (1) 既然說奇數頻, 所以對方是用FS或是DFT, 就不是用FT或是DTFT了? (2) 何謂強化? 增加Gain? (3) 何謂辨識度變高? 諸如此類的猜測, paper沒寫, 我就從數學式撈 撈不到我就上網找 然後就導致這串葡萄越來越大串, 越來越模糊
recorriendo : 上面我講的還是需要修正... 重新講好了 05/12 23:42
recorriendo : 你window的main lobe寬度和side lobe強度決定了理想05/12 23:43
recorriendo : (無限信號)的PSD會怎麼被smoothed成有限信號估計出 05/12 23:45
recorriendo : 來的PSD 看應用決定這是否符合你對PSD的需要 05/12 23:48
recorriendo : 舉例 我需要解析兩個很靠近的頻率 那麼main lobe必 05/12 23:56
recorriendo : 需愈窄愈好 但是若我收的有很多雜訊那side lobe也不05/12 23:57
Kevintsaitsa: 我什麼都看不懂 但我大受震撼05/12 23:57
recorriendo : 能太強 main lobe太寬或side lobe太高 都會導致靠05/12 23:57
recorriendo : 近的兩個spectral peaks被smoothed一個 結論: 如何05/12 23:58
recorriendo : 選取window必須是你的應用 收到的SNR 以及noise性質05/12 23:59
recorriendo : 而定 (像Hamming window刻意壓低第一side lobe 但你05/13 00:00
recorriendo : 的雜訊根本不在第一side lobe 那就沒用 反而其他sid05/13 00:01
recorriendo : e lobe被Hamming提高了)05/13 00:02
recorriendo : 因為工程往往是要在各種目的與代價間權衡 所以實務05/13 00:15
recorriendo : 上當然不像數學的定義-定理證明那麼直接簡潔05/13 00:16
嗨r大, 就是依據不同的假設去選用不同的window就是了 當然假設錯誤就很可能導致效果不好 此時再換假設與window 這些我都可以接受 我在意的點是, 如果你上面這段推文放在paper中, 並且他有附數學推導 我就認為他有義務先講清楚這些專有名詞所選用的定義, 諸如: (1) 訊號離散或是連續? 訊號週期嗎? (2) 採用FT/DTFT/FS/DFT? 不收斂怎麼辦? 假設只討論收斂的訊號? (3) main lobe, side lobe, PSD, smoothed, SNR... 以上這些的數學定義陳述要給出來我才能學習跟檢驗他有沒有證錯 但是大多數沒有附, 我就上網找, 而我這幾年的經驗也知道這些名詞 很多時候在不同假設下有不同版本 比如光是SNR就有一堆版本了, 離散/連續/隨機變數...PSD也是 而如果你這段推文只是在描述某個沒有一致定義的大概, 我完全接受, 腦中也有圖形 如果作者本人都沒寫數學式了, 我也不想花時間去研究上述(1)~(3)是什麼情況 也就是說, 我認為當作者用數學式在佐證自己的物理論述時 就有義務要給出明確定義 不過這個"認為"也是在學界養成的習慣, 如果在工程上不是這樣我也接受了 ※ 編輯: znmkhxrw (59.102.225.191 臺灣), 05/13/2022 01:34:07
recorriendo : 這裡嚴格的假設確實不重要呀 用到的就是 F(xw) =05/13 03:01
recorriendo : F(x)*F(w) 這對幾乎全部class都成立05/13 03:04
recorriendo : 應該說工程上最大的假設就是實際上會遇到的信號都會05/13 03:05
recorriendo : 讓此等號成立 數學的好處是萬一真的有天發現不成立05/13 03:06
recorriendo : 回頭找可能違反的條件時可幫助縮限範圍 而不是拿來05/13 03:07
recorriendo : 綁手綁腳05/13 03:09
recorriendo : 另外 有些東西對工程來說是基礎科目的東西 paper當05/13 03:10
recorriendo : 然不會再花篇幅定義 因為他們認為要嚴謹的東西去翻05/13 03:12
recorriendo : 教科書就有 就像數學paper不會定義L0,黎曼積分一樣05/13 03:13
recorriendo : 這我應該在你以前的發文裡講過了05/13 03:14
r大你的意思是說, 比如我在查頻譜洩漏他寫了x_n但是沒寫條件, 我就假設不管x_n是隨 機過程/實數列/週期/緊緻支撐, 都會符合接下來的敘述 而只要寫到頻譜, 則不管是FT, DTFT, FS, DFT都會對(而DFT後相乘再做反DFT會變成循環 conv, 這個如果下面都沒提, 就當作線性或是循環conv都對?) 而像是我遇到週期函數的FT不收斂, 要用泛函來看他, 也就假設作者當他是泛函 如果是這樣的話, 不就變成留下模糊的空間隨時可以解釋了... 舉例如果我在某篇文章說絕對值的微分是階梯函數, 沒特別講0點怎麼處理, 讀者就要自 行假設我可能採用別的微分定義, 或是我只在乎almost everywhere, 或是我加個local的 mollifier 總之經驗論來說, 從我的分析跟邏輯方式在被高微奠基後, 遇到什麼問題先問定義, 一半 以上的模糊就是因為定義問題才導致的, 然後這套方法不論跟教授/學生/板友討論數學都 沒問題, 甚至之前跟聖容教授聊碩論時, 我講題目後她馬上問我定義...但是這套應對換 到工程上的數學就讓我處處碰壁...
recorriendo : 數學:假設x,w是某某class則可推F(xw)=F(x)*F(w) 05/13 14:06
recorriendo : 工程:假設F(xw)=F(x)*F(w) 這代表真實看到的PSD上 05/13 14:11
recorriendo : 會出現什麼效果 05/13 14:11
recorriendo : 當然F,*的定義在FT, FS, DTFT, DFT不一樣 但也沒 05/13 14:33
recorriendo : 差那麼多 結論也都一樣就是頻率成分被分散了 況且 05/13 14:33
recorriendo : 真實世界裡的信號 你假設它無限長 或是假設compac 05/13 14:33
recorriendo : tly support但support很長 都可以 數學上有差別但 05/13 14:33
recorriendo : 是物理世界裡無法區分 所以固定一個定義是不必要的 05/13 14:33
recorriendo : 反而可讓讀者選擇自己習慣的定義解讀 05/13 14:33
recorriendo : 我昨晚說無限長因為那是我習慣的解讀方式 總之 這 05/13 15:11
recorriendo : 問題探討就是長信號被剪成短信號 頻譜會有什麼後果 05/13 15:11
recorriendo : *被windowed成 05/13 15:15
嗨r大, 了解你的意思了, 就是工程上會默認一個大概念比如你說的F(xw)=F(x)*F(w) 但是這個式子的成立以及性質, 確實會隨著假設不同而有異同 不過不重要, 因為實務設計上有這個概念就足夠了 反而定義的嚴格沒有操作空間反而失去了彈性(? ※ 編輯: znmkhxrw (1.164.120.161 臺灣), 05/13/2022 15:36:41