目錄

20200718 想法源起 20200719 我們在做什麼(一) 20200722 我們在做什麼(二) 20200725 竟然成為數學家(一) 20200729 竟然成為數學家(二) 20200801 竟然成為數學家(三) 20200805 不同職級(一) 20200808 不同職級(二) 20200812 趕客系列(一)為什麼讀大學? 20200815 趕客系列(二)不同大學學位跟工作的關係 20200819 趕客系列(三)大學的目的 20200822 趕客系列(四)大學為什麼要有主修 20200826 趕客系列(五)要挑選一個什麼樣的主修 20200829 沒有無緣無故的恨(一) 20200831 科普系列 - 數學與電影動畫製作(一) 20200902 沒有無緣無故的恨(二) 20200905 沒有無緣無故的恨(三) 20200907 科普系列 - 數學與電影動畫製作(二) 20200909 終身職位的評核 20200912 學術界吸引人的地方 20200914 科普系列 - 數學與電影動畫製作 (三) 20200916 學術界辛苦的地方(一) 20200919 學術界辛苦的地方(二) 20200921 科普系列 - 數學與電影動畫製作 (四) 20200923 大學的讀書成績有多重要 20200926 本科生研究機會 20200928 科普系列 - 數學與圖像修復(一) 20200930 用創新的方法去教育科學 20201003 參加研討會的重要 20201005 科普系列 - 數學與圖像修復(二) 20201007 教授與教學 20201010 研究是什麼(一) 20201012 科普系列 - 數學與圖像修復(三) 20201014 研究是什麼(二) 20201017 研究是什麼(三) 20201019 科普系列 - 數學與圖像修復(四) 20201021 如何閱讀研究論文 20201024 研究生應該修什麼課 20201026 科普系列 - 數學與圖像修復(五) 20201029 本科生的多主修多副修 20201102 科普系列 - 數學與數獨(一) 20201105 幾位教授(一) 20201109 科普系列 - 數學與數獨(二) 20201112 幾位教授(二) 20201116 科普系列 - 數學與數獨(三) 20201119 幾位教授(三) 20...

科普系列 - 數學與圖像修復(五)



上面提到,這個函數f所定義的並不是找出一個最接近這個數值集的數字。如果我們真的想找出距離,我們就必須要把每一個項目裏面的平方拿走。可是,拿走後如何可以保持距離都是正數的特性呢?簡單的方法,就是取絕對值。所以我們可以去定義一個新的函數

\[ g(x)=|a(1)-x|+ |a(2)-x|+…+ |a(m)-x| \]

要優化這個函數,我們就沒有辦法使用微積分的方式。主要是由於絕對值這個函數在x=0的地方「起了角」(這裏不是數學課,所以容許我只簡單地用直覺的方式講解一下就算),所以他並不是一個可微分的函數。雖然如此,要優化這個函數,我們有一個更簡單的辦法。舉一個簡單的例子,假設我們只有五個已知數(m=5),而且他們是按着由小自大的排列,a(1) < a(2) < … < a(5)。根據這個函數知的定義,g所輸出的值就是等於5段線段長度的和。所以去解決上面那個優化問題,我們就只需要不斷改變函數g的輸入值,然後看看5段線段的總長度,再找出一個輸入值令到總長度最短。



我們說現在考慮兩個給予g不同的輸入值,一個在a(1)的左手邊(假設這點叫y),另一個等於a(1)。我們可以發現

g(y) = |a(1)-y| + |a(2)-y|+ … + |a(5)-y|

= |a(1)-y|+ |a(2)-a(1)| + |a(1)-y| + … + |a(5)-a(1)| + |a(1)-y|

= g(a(1)) + 5|a(1)-y|

> g(a(1))

所以我們可以發現,如果我們將函數的輸入值從a(1)左手邊向a(1)移動,函數的書出席就會相對減少。如果你不喜歡這個代數的證明,另外一個可以看見這現象的方法,可以直接從數線上看到。我們可以看見當輸入值從a(1)左手邊移動到a(1),線的總長度會少了五小段。同樣道理,我們可以發現如果輸入值從a(1)往右面移動到a(2), 線的總長度可以再少了三小段。當我們把輸入點逐漸往a(3)靠近,我們會發現線段總長度還是會一直減少。可是,一直到輸入點超越了a(3),我們就會發現線段的總長度會慢慢又開始增加起來。從這個方法,我們就很簡單地找到一個決定函數g最小值的答案,就是當我們的輸入值是等於a(3)的時候, 5段線段的總長度就會是最短。聰明的讀者就會發現,要優化這個函數g,我們就只需要將輸入值調校到這五個數目字的中位數。


上面我們討論過的兩個函數,一個是取相差的平方(就是絕對值的2次方),另外一個是取相差的絕對值(也就是絕對值的1次方)。第三個我們要討論的函數,有些奇怪,我們是取相差的零次方(絕對值的0次方)。零次方這個函數有點奇怪,尤其是在我們這個討論裏面,函數的輸入值有可能令到我們需要計算零的零次方。而這個計算的定義實在有點模糊。所以仔細一點,容許我定義

\[ {|x|}^0=\lim_{\varepsilon\rightarrow0^+}{{|x|}^\varepsilon} \]

當x越來越接近(趨向 approach to)0時,我們就會得到零。如果當x不等於0時,這個值就等於1。有了這個奇怪的定義,我們就可以考慮以下的優化問題。首先,我們定於一個用零次方做的函數

\[ h(x) = |a(1)-x|^0 + |a(2)-x|^0 + … + |a(m)-x|^0 \]

這個函數一共有m項,無論這個函數h的輸入值是什麼,函數的每一個項目要不是給我0就是給我1。所以,如果我們想找到這個函數的最小值,我就希望越多的數項給我數值0越好。那如何可以得到更多項的數值是零呢?我就需要將x調到在所有的已知數值裏面出現最多次的一個。那這個答案是什麼呢?沒有錯,這就是所有已知數裏面的眾數。


所以綜合上面的討論,統計學裏面眾數、中位數和平均值三個找出一個數目集代表的方法,其實可以把問題化成優化問題處理。


返回一些比較複雜的圖像修復問題。如果我們現在有一片區域需要修復,而又希望運用一個比較像眾數或是中位數的修復方法,我們就可以將那些非線性的方程組,寫成一個高維的函數,裏面是很多項的和,而每一項都是與相鄰差異絕對值的0或者1次方。然後修復的圖像就可以用來優化這個函數。


有趣的是,當我們要修復的區域越來越大,這些相鄰差異的計算,其實跟數值分析裏面用有限差分法(Finite Difference Method)找導數的近似值非常相似。我們甚至可以將他變成一個泛函數(Functional)的優化問題。上面所講的函數,輸入的都是一個數值。所謂泛函數,就是說我們的輸入即是一個函數。如果我們使用絕對值的1次方去定義這個泛函數,我們可以得到


\[ \min_{u} \int_{\Omega} \| \nabla u \|^1 \]


這個要優化的泛函數,是叫做函數u的總變差(Total Variation, 簡稱TV)。在圖像處理裏面是一個很重要的概念。其中一個最重要的原因,是因為這個計算跟中位數的修復方式有關。而中位數修復方式可以保持修復出來的影像清晰,而不會好像平均值一樣得到一張蒙蒙朧朧的照片。而且,相比起零次方(就是眾數)的解決方法,解決TV優化直問題的方法已經非常成熟。你可以在Google Scholar上面找一下,Total Variation這個關鍵字可以很簡單給你超過5百萬篇學術文章。


留言