1. 程式人生 > >整理:卷積的直觀理解、物理意義與本質(二)

整理:卷積的直觀理解、物理意義與本質(二)

資料探勘中有時需要卷積這一數學工具(例如計算個體適應度、物件間距離,以及干預效果等等),昨天又有同學問到相關問題,借用最近在網上的滾燙的詞彙集 { 輻射,服碘,補鹽,空襲 },對卷積做了一個直觀的解釋。反饋還算滿意,又在過去講課的PPT中取些素材,改寫成了這篇博文。
  
  幼童背古詩文的感覺,來自數學系的同學覺得卷積是小菜一碟,隨手就寫出卷積定義

       F(t)= ∫ f(τ)g(t-τ)dτ  (積分限從-∞ 到+∞)
  並指出這是含參積分,t是引數,覺得淺而又顯,無須解釋。而部分(例如來自工科和醫學專業的)選修資料探勘的學生,還是覺得稍有點難,說:相關公式能默寫、能推導、能通過考試,自己還是覺得不踏實,覺得沒有真正理解;發明者是怎樣想出來的?有何直觀背景?用在哪些場合?
  一言以蔽之,在邏輯上認可,而直觀上迷茫。好像很小的時候背誦古詩文那種感覺。
  鑑於數學老師已經講解過理論推導,作為一種補充,這裡用生活例項做一些直觀解釋,給出一個大框架和物理直觀,為敘述簡單,忽略一些細節。需要說明,直觀的解釋僅用於輔助理解,不能取代嚴格的描述和證明。
  幾個時髦(但可能不很貼切)的例子.
  輻射:設某核電站事故中,某工作人員每天到搶險現場工作T分鐘,接受一定劑量的輻射,輻射會自然地衰減,如此工作N天,總的輻射量用什麼計算工具來(粗略地)估計?回答:可以用卷積。
  服碘:某人為了防輻射,自己找來碘片,每天口服若干,體內碘殘量會隨人體代謝衰減,N天后體內積累的碘殘量如何(粗略地)估計?還是卷積;(後面科普部分將給出簡單的推導過程);
  補鹽:某人為了反輻射,搶購來碘鹽,每餐口服若干,體內鹽殘量會隨人體代謝衰減。N天后體內積累的鹽量和碘殘量如何(粗略地)估計?可以用卷積;
  空襲:某多國部隊每隔N小時對桀驁不馴的某地區或國家實行間歇性空中打擊,每次打擊後,其物理破壞和心理震懾作用會隨時間衰減(例如,被打方會組織搶修,心裡承受度增加等等),如此進行M天后,累積的打擊總效果如何(粗略地)估計?還是可以用卷積。
  還有其他例子,如長期服藥的血藥濃度,長期吸入汙染物在人體內的積累,吸菸或喝咖啡的積累效應,多次噴灑農藥的殘留量,等等,也可以用卷積來估計。
  上面的有些例子可能不很貼切,有幾個原因:,
  (a)卷積是積分運算,處理物件要求是可以積分的函式,在工程中,一般對應於連續現象而不是離散物件;把離散物件當做連續的現象處理,只能粗略估計。
  (b)社會問題,政治問題比較複雜,即使加上很多假定,也只是框架性的估算。
  但是,有計算、有依據的估計總比算命先生的神仙數字可信。
  
  難懂之因
:為了數學美,拆卸了腳手架。
 教科書書常用“定義—定理”的體系,先給出數學定義,然後給出若干性質, 從公式 到 公式,逐步推導。有的教科書採用用訊號“反褶、平移、相乘、積分”給出幾何解釋,屬於用數學解釋數學,提問者不滿足這種解釋。
  這不是當年發明卷積的大師們的“需求–猜想—發現—證明—應用”的路徑,大師們建設好“卷積”大廈後,為了數學美,拆卸了腳手架,現在人們看到的是煉成的鋼鐵,看不出鋼鐵是怎樣煉成的。造成了部分非數學專業學生的一個難點。
  一次輸液引出的班門弄斧 一次偶感風寒,服藥未愈,轉作靜脈滴注,無聊地望著那藥液慢騰騰地滴,忽然靈感一閃:
  (1)這是一個可離散觀察的連續過程。透明玻璃管構成了視覺化的介面,能離散地對藥滴計數,而下面是相對穩定的液柱高度,保證了藥液連續(有點脈動)地注入靜脈,比較適合積分處理;(口服和注射,就相對離散,結果就更粗略一些)。
  (2)藥動學有個術語血藥濃度,怎樣來保證血藥濃度在安全閾值之下,又在有效閾值之上呢?
  立刻在草稿本上寫劃,哇噻,原來可以用卷積!而且只需要簡單的積分知識。於是,對此常問難點,有了一個易懂的直觀解釋。正是:小恙滴注,焉知非福?
  下面將敘述這次雙重的(數學與醫學)的班門弄斧,疏漏之處,請專家指正。
  
  靜脈滴注與體內藥物濃度
 為簡單又不失一般性,給出下列符號和假定:
  從t=0開始,每隔τ秒,輸入藥物一次(離散化是為了簡單);藥量隨時間變化, 在時刻t時的那次給藥量為f(t),關注的時刻點為 t=0, τ,2τ,3τ,…
  
  一滴藥液的在體內衰減規律 藥物以多種方式代謝(衰減),按假設,在τ1時的那滴藥液含藥量f(τ1),當時間流逝到t時刻,假設那一滴藥物在體內的殘量是f(τ1)* g(tτ1),其中g(tτ1)稱為衰減因子函式,怎麼找出衰減因子的具體結構呢? 藥動學中有兩種衰減方式 :
   (a)零級動力學消除,即恆速消除,如乙醇血濃>0.05 mg/ml時,較簡單;  (b)一級動力學消除,即恆比消除,消除速度與血藥濃度成正比,如乙醇血濃<0.05 mg/ml時的衰減規律,這也類似於簡單熱傳導中散熱速度與溫差成正比。  設在τ時刻 ,輸入一滴藥,藥量為f(τ) 根據一級動力學消除,建立最簡單的微分方程 ;       dg/dt =-kg  考慮t=τ時不衰減的初始條件,容易求得 g=e-k(t-τ)     為下面方便,把衰減因子改寫為  g(t-τ)= e-k(t-τ)        於是,在τ>0,給藥一次,藥量為f(τ)      t2τ時,血藥濃度降到 f(τ)*g(t-τ)= f(τ)*g(τ)= f(τ)(1/ek )                當t3τ時,血藥濃度降到  f(τ)*g(t-τ) = f(τ)*g(2τ)= f(τ)(1/e2k )                當t4τ時,血藥濃度降到  f(τ)*g(t-τ) = f(τ)*g(3τ)= f(τ)(1/e3k )     可見,只給藥一滴,血藥濃度衰減很快,難以治療那種要與病毒或細菌打持久戰的疾病。     多次密集給藥 或連續給藥    τ置換讓上面的T,讓τ動起來,令τ依次取τ1, τ2,….. τn ,則N多次密集給藥後,當時間流逝到t時的血藥濃度是  j f(τj)*g(t-τj)              ( 對 j=1,2,….. n  求和) 前面說過,靜脈滴注是一個可離散觀察的連續過程。,所以,上面的和式可寫為積分形式,即卷積 F(t)=  f(τ)g(t-τ)dτ      曲線光滑工具 當f(τ)是脈衝函式時(例如考察一滴藥引發的血藥濃度),曲線顯得不夠光滑,而卷積F(t)是多次脈衝的(平均)累積效應,或可視為是一種加權平均,所以,F(t)的曲線就光滑一些,所以,醫生要考察N小時的滴注效果,而不察幾分鐘或一滴藥的效果。選擇適當的g(t-τ)函式,(例如,3/2次方衰減型、平方衰減性、指數衰減型、週期兼指數衰減型,...),可用卷積作為突出不同加權方式的曲線光滑工具。     比較光滑、不是陡升陡降的血藥濃度曲線表明,靜脈滴注能較好地控制血藥濃度;這大概也是有些醫生和病人喜歡它的原因;當然,如果過分依賴靜脈滴注,則減少了免疫系統的鍛鍊機會,所以很多醫生主張,如果服藥能解決問題,就不要滴注     更多的應用例項  卷積的結果可輔助人們定量地協調脈動式輸入 f(τ) 和 衰減g(t-τ) 這一對矛盾,使得累積效應F(t)= ∫ f(τ)g(t-τ)dτ 在控制範圍內。     例如,研究干預規則,(例如,葉酸干預新生兒腦畸形缺陷),干預為f(τ),複雜的衰減g(t-τ),總的干預效果可否用卷積來粗略描述?
  再例如,制定正確的給藥劑量和週期,例如照醫囑攝入碘或鹽;
  又例如,制定空中打擊方案的強度和頻度,常識告訴人們,足夠的強度和密度才能有效打擊。卷積作為工具,或許可定量計算出最經濟打擊強度和密度。而被打擊的一方,可計算出足夠的衰減因子,使得能在被轟炸後有效恢復;戰爭是鐵血與智慧的較量,當雙方的鐵與血差不多時,如《孫子.計篇》所說,“多算勝,少算不勝”,而卷積只不過在眾多的計算方法基礎上,增加了一個演算法,僅此而已,
    最近,在這個不平靜的世界上,有一場空襲和反空襲的較量,不知持續多久?10天,100天,還是200天?研究軍事的專家或許可用卷積做個模型。      武俠小說中,有時候看見一方逐步投入兵力,使用添油戰術,好像是多次服藥,每次都沒有服夠量,血藥濃度低於有效門限。被逐次殲滅。      卷積並不神祕,它有其退化版,例如水池一面進水,一面放水,求瞬時水量。當進水勻速且放水速度服從零級或一級動力學消除規律時,偶爾也作為中小學生的數學奧賽題,基礎好的聰明學生能用初等方法計算。但當進水是1+sin(t)這樣的脈動函式,或更復雜的函式時,就只能用卷積了。      卷積是一個老技術,對某些專業的學生是一個難點,“老技術+新講法+直觀解釋”使其容易被初學者接受。這裡要強調,直觀解釋不能取代嚴格的數學推理,這裡的班門弄斧。不能取代數學老師的正規訓練。。