作者znmkhxrw (QQ)
看板Math
标题[机统] 讯号(影像/声音)可不用随机建模?
时间Fri Nov 11 03:13:35 2022
各位好, 之前在
#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://webptt.com/cn.aspx?n=bbs/Math/M.1668107617.A.9B7.html
1F:推 deathcustom : 我建议你到comm_and_RF板求问会比较专门 11/11 09:59
好~谢谢资讯, 只是我从好几年前到业界时, 就很难找到适合的人选问...
数学的同学或是教授偏理论, 我必须把工程上的问题翻译跟定义完才能跟他们讨论
问题就在於这些问题本身就是定义跟历史问题, 也可以说是我翻译完那就没问题了...
而问业界的同事, 他们不在意理论怎样, 反正电脑跑起来ok就ok
尤其深度学习很容易理论一套、实作一套
而又碍於理论是用统计做假设, 所以
实作(抽样)不符合理论也没有矛盾
综合以上两点, 理论如果不重要又不能检验(只能某个信心水准), 那这个理论用处在?
我是不相信理论不重要啦, 只是目前没找到说法, 因此才来问
2F:推 deathcustom : 就做信号的人来说,你应该对杂讯跟干扰很熟才对 11/11 10:13
3F:→ deathcustom : 问题是在一个causal system中,你永远没办法预知 11/11 10:13
4F:→ deathcustom : 杂讯跟干扰,然後你假设一旦错了就掰惹 11/11 10:14
这个我理解, 所以就需要假设
问题在於我假设杂讯符合某个分布 vs 假设杂讯符合某个分析条件
我还是不清楚有何差别, 细节就是本文的那些思考方向(
【问题】)
5F:→ recorriendo : 当然可以 只是那样数学比较难 实务效果也未必较好 11/11 14:00
6F:→ recorriendo : 所以现在很少人弄也是当然 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
8F:→ recorriendo : 分析和统计 都是以给定的前提作为充分条件啊 11/11 17:24
9F:→ recorriendo : 结论不成立 本来就不能否决其充分条件 除非你证明 11/11 17:25
10F:→ recorriendo : 是充要条件 11/11 17:25
11F:→ recorriendo : 说错 否定後件则知充分条件之一不成立 这是一样的 11/11 17:27
12F:→ recorriendo : time average = ensemble average 这是ergoticity 11/11 17:29
13F:→ recorriendo : 假设 本来就是条件之一 11/11 17:29
14F:→ recorriendo : 统计信号处理一般都假设WSS 大部分结果这都是条件 11/11 17:32
15F:→ recorriendo : 之一 只是大多人已经接受了 就不会再特地提它 11/11 17:32
意思是说在统计假设WSS与ergodic的情况下
并且假设所
选用的moving average会等於time average
则所有抽样的x_n都会符合理论推导
换言之, 如果
某个抽样x_n不符合理论推导结果, 就是下列至少存在一种情况发生:
(1) 选用的moving average不够好
(2) 不是WSS
(3) 不是ergodic
r大是这个意思吗?
16F:→ recorriendo : ergodic单纯是time average = ensemble average假设 11/11 20:51
17F:→ recorriendo : 其他结果不一定需要它 但大部分统计信号处理都有WSS 11/11 20:52
18F:→ recorriendo : 的假设 11/11 20:52
19F:→ recorriendo : 这里说"其他结果" 通常是用ensemble average下去推 11/11 20:58
20F:→ recorriendo : 导 但是当然现实世界中能观察到的是time average甚 11/11 20:59
21F:→ recorriendo : 至近似的moving average 因此"理论结果"和实际观察 11/11 21:00
22F:→ recorriendo : 若要相合就大表已预期它是ergodic 11/11 21:01
了解~谢谢r大回应
23F:推 PPguest : 看到"用随机过程建模...某个x_n出来的结果是错误", 11/11 21:39
24F:→ PPguest : "某个抽样x_n不符合理论推导结果",有点好奇什麽是 11/11 21:40
25F:→ PPguest : "结果错误"和"不符合理论推导结果" 11/11 21:41
26F:→ PPguest : 是我後面想到简单例子的这种吗?公平骰子的期望值是 11/11 21:43
27F:→ PPguest : 3.5,每次抽样10个,把x_1~x_10做平均,结果发现结果常 11/11 21:45
28F:→ 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之类的...
结果论只能说我比较喜欢分析学的假设方式
29F:→ recorriendo : 简单说 "理论结果"通常是WSS假设下针对ensemble a 11/12 11:46
30F:→ recorriendo : verage或其他ensemble统计量的描述 11/12 11:46
31F:→ recorriendo : 至於能观察到的通常是time average 11/12 11:47
32F:→ recorriendo : 所以你列的三个确实都是造成不一致的可能 我只是再 11/12 11:50
33F:→ recorriendo : 区分各自造成出错的环节 11/12 11:50
理解~这样听起来确实统计假设跟分析假设都是满足假设下去做推论
矛盾时就一定会否定掉某个假设
只是我说不上来一个具体的形容, 觉得分析假设
比较明确
阿, 应该说:
(1) 统计假设: 对X_n(w)做假设, 对x_n实作
(2) 分析假设: 对x_n做假设, 对同样的x_n实作
或许是因为这样我才觉得(2)比较明确...
34F:推 PPguest : 个人是觉得碰到有随机性或不确定性的问题时, 11/13 16:03
35F:→ PPguest : 用机率来建模是可以理解的。 11/13 16:03
36F:→ PPguest : 用随机过程建模,想出的一个(例如)denoise的方法, 11/13 16:03
37F:→ PPguest : 如果有人问为什麽这个方法可以denoise, 11/13 16:03
38F:→ PPguest : 通常都至少有一定程度可以说明。 11/13 16:03
39F:→ PPguest : 如果不要用到机率统计,只对x_n做实数列假设, 11/13 16:04
40F:→ PPguest : 我会好奇那是怎麽对问题做建模的? 11/13 16:05
41F:→ PPguest : 杂讯在模型中是什麽?能解释为什麽方法能denoise吗 11/13 16:05
42F:→ PPguest : 题外话,用实数列来看待,感觉也是很新奇有趣 11/13 16:12
43F:推 PPguest : 好奇问一下,方法的理论是不是都没有讲实作的表现能 11/13 16:21
44F:→ PPguest : 多好,或者其他跟实作表现有关的任何资讯? 11/13 16:22
45F:→ 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那些性质可以用
-------------------------------------------------------
以上分享, 谢谢
46F:推 PPguest : 对於原po说的分析方向或者实数列看待, 11/14 23:50
47F:→ PPguest : 感觉好像既知道却同时又不知道到底是在做什麽, 11/14 23:51
48F:→ PPguest : 从Wiener filter的例子只看到在理论推导的部分。 11/14 23:51
49F:→ PPguest : 想知道原po的实数列看待到底是什麽, 11/14 23:51
50F:→ PPguest : 是否能用下面这个更简单的例子来说明呢? 11/14 23:51
51F:→ PPguest : 以下不严谨、用词不精确、很简略警告! 11/14 23:51
52F:→ PPguest : 假设讯号 w_k = s_k + n_k, n_k 是杂讯,是 0 mean 11/14 23:52
53F:→ PPguest : 的 Gaussian noise, 有iid。 11/14 23:52
54F:→ PPguest : denoise的方法很简单,除了边边要另外处理, 11/14 23:52
55F:→ PPguest : 中间的部分 x_k=1/4*[w_(k-1)+2*w_k+w_(k+1)] 11/14 23:52
56F:→ PPguest : 用机率很容易可以说明为什麽这个方法可以denoise。 11/14 23:53
57F:→ PPguest : 若用Fourier & Spectral Analysis来看同一个程式码 11/14 23:53
58F:→ PPguest : 可以看成卷积,然後发现其实是某种low pass filter 11/14 23:53
59F:→ PPguest : 杂讯大概是某种高频的讯号,因此可以denoise。 11/14 23:54
60F:→ 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
这种感觉蛮主观的, 可能叙述的有点乱, 不好意思~
61F:推 ManOfSteel : 纯推,以後再看 11/15 00:46
62F:→ PPguest : 看起来我让你搞错了,不是用Wiener filter来denoise 11/15 20:07
63F:→ PPguest : 是用 x_k=1/4*[w_(k-1)+2*w_k+w_(k+1)] 这个方法 11/15 20:07
64F:→ PPguest : 名词的话应该是 averaging filter 这一类的 11/15 20:23
65F:→ PPguest : 我写的w,s,n,我是这麽看:对每个k,n_k是随机变数 11/15 20:56
66F:→ PPguest : s是"图片"(我不知道一维的该怎麽称呼),s_k是第k个 11/15 20:58
67F:→ PPguest : "像素".整个s在想像中是理想没有被干扰的"图片" 11/15 21:00
68F:→ PPguest : "图片"本身没随机性,把它看成"那个"图片"发生的机率 11/15 21:04
69F:→ PPguest : 是100%",所以s_k也看成是随机变数,w_k也一样 11/15 21:06
70F:→ PPguest : X_n(w)/X(w_n)/X(n)的部分,原本我以为只是符号的问 11/15 21:15
71F:→ PPguest : 题,搞清楚是指什麽就好。不过我刚刚才知道随机过程 11/15 21:24
72F:→ PPguest : 有分离散时间和连续时间。所以……我不知道 11/15 21:24
73F:→ 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
74F:推 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)的结果加入了统计假设
我只能很主观的说出,
纯分析/线代假设下的结果我可以复证跟检验并且找实际例子说明
但是统计假设我不知怎麽的觉得无法检验, 只能被其
语言上的描述带过去
75F:推 PPguest : 所以原po的分析学假设,我可以理解成之後会连接到 11/16 19:20
76F:→ 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来当明确的例子,
不用统计假设会怎样吗? 对实作有区别吗?
77F:推 PPguest : 我问得明确一点,相对於统计假设,原po的分析学假设 11/17 09:52
78F:→ 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