當前位置: 華文問答 > 數碼

本科學數學對從事電腦幫助到底有多大?

2016-01-18數碼

本科清華數學,碩士廈大電腦,博士ETHZ,來講講自己的感受。

數學是一種工具,就像單車、汽車、火車、飛機一樣,能夠讓你從一個地方(已知的條件)到達你的目的地(想要達成的結果)。能夠創造這種工具的人是數學家。而學習各種數學知識和技巧能夠讓我們熟練使用這些工具。能夠用的人不多,能夠熟練用的更是鳳毛麟角。舉個簡單的例子,最小平方,夠簡單吧,隨便翻開電腦圖形學的論文,很可能論文的本質就是求解一個最小平方擬合。但是怎麽把給定數據轉化為一個最小平方問題就見功力了。沒有多年科研經驗的菜鳥很可能都沒意識到給定的問題跟最小平方有啥聯系。

1)我的感覺是 只有合適的數學而沒有好的或者差的數學 。就像鄉間小道,就比較適合騎單車;高速公路就比較適合開汽車;如果是鐵軌,最好還是跑火車。這就是說, 問題本身決定了用什麽樣的數學 ,而不是強硬地加入高深復雜的數學內容。我剛開始做科研的時候,總想加入一些復雜一點的數學(好歹也是數學系畢業的啊)。但是後來我發現,復雜的數學不一定合適這個問題,就好象開著跑車在鄉間小道上晃悠一樣,還不如一輛單車來得自然。

2) 學習越多的數學可以讓你了解更多可能的解決方案 。如果你只有單車,那不管是鄉間小道還是高速公路,你都得騎單車。如果你不了解概率論,沒聽說過群,沒聽說過隨機過程,沒聽說過小波,不知道函數空間,給你一個電腦專業的問題,你就只能選擇「單車」,根本就不知道有高大上的「飛機」存在。數學本身就很大,線性代數,拓撲,微分幾何,概率論,數值方法……每一個子領域也都有數不清的理論和定理。只有逐步積累這些知識,一點一滴地積累,最終才會在遇到問題的時候找到合適數學工具。

3) 電腦科學是一個綜合性學科 ,也包含理論、套用、工程等多個方面。不同的分支所用到的數學也不一樣。以我所從事的影像處理為例, 曲率濾波

知乎專欄

)非常簡單, 只有簡單的加減乘除 ,似乎小學生都可以做,為什麽我要把它寫在博士論文裏面?我覺得,雖然它很簡單,但是針對最佳化曲率這個問題,這樣的數學是合適的。 針對特定問題,選取合適的數學工具來解決它 ,這才是最重要的。

4) 數學思維方式和電腦學科思維方式不同 。數學更強調邏輯性,如果從給定的條件一步步推導得到有用的結論。結論只有對或者錯,非常明確,跟理論電腦比較類似。但是電腦套用就有很多模糊的地方,並不是只有對錯。數學中的近似理論對於向電腦靠攏的同學來說在思維方式的轉變上有很多幫助。電腦中的很多問題都是:給定數據-】數學抽象(模型)-】公式推導-】求解-】結果解釋(返回原問題)。這其中涉及如何建模、求解(最佳化)、程式碼實作等等多個方面。

5) 數學系的學生一定要學編程,就像電腦系的學生一定要學數學一樣 。有一次把數學系的人釋出的程式碼改了兩行,效率提高了一百多倍!學數學的人寫程式碼只要求正確就可以,完全不考慮可讀性、效率、可延伸性、易用性等等。

6) 很多學電腦的同學的數學並不比數學系的學生差 ,因為cs的同學知道學數學可以用來幹嘛,而數學系的學生通常比較茫然,不知道所學的東西有什麽用。直接的結果就是cs的同學很努力地學數學,而數學系的學生雖然掌握了很多數學卻不知道自己所學可以解決哪些問題。很多cs的論文數學都非常高深。不過我個人對這些復雜的數學不太感冒。如果電腦論文中的公式特別復雜,我一般都會跳躍式閱讀。如果電腦論文中的公式特別簡單,我一般會花時間仔細看(作者很可能找到了合適的數學工具)。對於數學論文,我的閱讀方式恰恰相反,對於復雜的公式會特別留意。

7) 很多人覺得本科學數學對後來學習電腦幫助不大,也有很多人覺得幫助非常大 。這就好像問上大學對你的人生有沒有幫助一樣。不同的人會有不同的經歷和感悟。自強不息吧,不管你在哪裏或者哪一個領域。 因為不管在哪裏,你都還是你。正如歌詞所說,「我就是我,是顏色不一樣的煙火」。