最數學的計算機科學方向有哪些?
雖然研究計算機科學都需要數學功底,那哪個方向對數學要求最高?
說幾個知道的。
1. ML Theory 以及背後的 Statistical Learning Theory。標配的起碼是矩陣分析還有多元統計分析。以及現在有人用代數幾何處理singular的情況了。
2. Graphics。絕大多數情況會用到局部微分幾何,一些fancy的情況會用到整體微分幾何(似乎曲面三角網格剖分是Yau的學生搞出來的, 評論中有知友指出是這位: http://www3.cs.stonybrook.edu/~gu/)。還有人用群論來討論計算對稱性。
3. Quantum Computing。
比如說HSP和群表示論,估計 Jones Polynomial(DQC1-Complete Poblem, Jones Polynomial算的是拓撲不變數), 計算複雜性里各種概率分析,PLT裡面的Categorical Quantum Mechanics,好多地方都在用的Haar Measure(應該算實分析裡面比較基礎的東西吧)。
還有用代數幾何討論量子糾纏的工作(量子信息這邊的姑且也算上),還有量子信息的數學框架,C*-Algebra。
量子密碼學一般折騰的都是Lattice(Group Theory)上的,因為絕大多數問題都是NP-Hard。
BTW,聽說剛給出 Graph Isomorphism Problem(著名的可能的NP-Intermediate問題)的偽多項式時間演算法的那位UChicago的老先生用到了單群分類的結論。
當然,我一直覺得Graphics那群人就是搞應用數學的。以及我覺得還是物理系那幫人學數學的方式比較科學…f(x)=x+1
到底是等號的左邊更數學還是右邊更數學?
若是左邊那就有,複雜度,可計算性,自動機理論,元數學,lambda計算,recursion theory,關係代數,邏輯之類
若是右邊,則有演算法,密碼學,graphics,數值計算,量子計算,等等
還有演算法實現過程中,使用的結構有離散數學和組合數學。
若問個人觀點,附上心中神作
Kleene 元數學導論
http://www.amazon.cn/Introduction-to-Metamathematics-Kleene-Stephen-Cole/dp/0923891579/ref=sr_1_1?ie=UTF8qid=1457396560sr=8-1keywords=introduction+to+metamathematics
「Metamathematics is mathematics used to study mathematics.」
開個腦洞
以「數學」作為0,以「元」作為successor function,便有了一個無盡的數學之塔:數學,元數學,元元數學,……
少年,想攀登這無盡的數學之塔么?來送你一卦 下兌上坎 水澤節。以有涯隨無涯殆已
參見理論計算機科學
TL;DR: 短的回答就是Theory,TCS(計算機理論/Theorectical Computer Science)以用數學多而出名。TCS包含的太多,數學學科本身也很大很廣,跟題主想像的恐怕不符。若做計算機方向的研究還是只去研讀相關的數學比較有效。
長答案:
首先,對「數學要求最高」其實是一個太過籠統的概念。沒有本科數學專業就做不來的事情很少,工程師甚至data scientists大多都不是數學專業出身,但也會用很多很高深的數學上的成果(不是很懂好像也沒有關係)。
密碼學crypto沒有多「純」,也絕對不是唯一跟數學密切相關的計算機學科。另一方面,學習computer vision所要求的數學,就跟密碼學所要求的數學不一樣。而這些都還只是學習。
研究上,多學數學這一學科而非課題相關數學,最好的結果也只是是剛好用牛刀殺了雞,那還算是幸運的(恰好可以用上這個理論而且還蠻合適)。數學學科之大,泛學之也不一定對你研究的課題有很大幫助。
儘管如此,已經有很好數學基礎的人,在研究課題的時候更容易做出新鮮的學科交叉的突破。但為了計算機研究而企圖「泛讀」數學,實在是得不償失。
若不是數學本科生,與其補課高等數學、抽象代數、偏微分方程、拓撲學,不如好好想想怎麼寫證明題,這才是研究中最需要的: rigor。在此之上,應該學習應用數學中用的多的數學學科:離散,線代,統計,隨機,演算法,科學計算(scientific computing),數值分析等。
最後,要是我可以用一個同樣籠統的概念來談需要數學的計算機科學方向,我想應該是Theory了,包括演算法研究,並行計算,數據結構,密碼學,機器學習,計算數論,還有很多很多我中文猜了一會兒還不知道怎麼說的東西。The field of theoretical computer science is interpreted broadly so as to include algorithms, data structures, computational complexity theory, distributed computation, parallel computation, VLSI, machine learning, computational biology, computational geometry, information theory, cryptography, quantum computation, computational number theory and algebra, program semantics and verification, automata theory, and the study of randomness. Work in this field is often distinguished by its emphasis on mathematical technique and rigor.
來源:SIGACT describing its mission as the promotion of theoretical computer science and notes
TCS, 能發annals of math
看到機器學習我不忍提一句,現在弄ML的人魚龍混雜,而且大部分人是根本沒有能力做這個的,在這群「機器學習愛好者」中,最懂數學的應該是做optimization的這部分人。
其實本來覺得TCS已經夠數學了,這學期學了PLT以後才覺得好像就是在研究數學lol,比如說將type視為超越集合的關係存在,把遞歸函數視為一個普通函數的極限,各種研究church numeral,證明皮亞諾公理的相容性,按照Bob自己的說法是,math is just a subset of computation theory.
就醬吧,希望題主能有所借鑒不同領域需要的數學科目也不同……
光研究演算法的話也可以研究得很深,比如可以看看G·波利亞(感謝張藝瀚糾正,是Ronald L.Graham / Oren Patashnik / Donald E.Knuth寫的)的《具體數學 (豆瓣)》一書。
絕對是計算理論啊……演算法複雜度,演算法博弈論,圖論和各種理論的結合等等……以前辦公室大部分PhD都根本是數學出生啊……基本不會(也不用)碼代碼啊……每天都在證明證明證明啊……
這個方面根本就是數學,跟通常想像的編程啊,軟體啊都沒什麼關係。
一不小心半隻腳踩進來根本就是作死……
最近Deep Learning里的一篇提出SELU的論文附了好多頁的公式,你們感受一下
密碼學應該是最純數學的,除此之外各種計算機演算法或多或少都是很應用數學的,比如machine learning里的regression,svm,graphics and computer vision,還有系統的real time scheduling啥的,前沿研究的東西都是非常數學的
我了解的很多美國大學的phd們,數學系的都在狂選統計的課,統計又拚命跟計算機扯關係,而計算機系的phd很多被老闆逼著去數學繫上課,可見現在這三門學科之間的聯繫是變得越來越緊密了
您看np hard算嗎?
說兩個個人體會比較多的。
ml,經典的方法,大多有著濃郁的多元統計分析的味道,其餘的都攜帶有少量的資訊理論,貝葉斯理論,還有凸優化。
你說解線性方程?解李雅普諾夫方程?抱歉,我碰巧在學數值分析和數值代數的時候都學了足夠我目前用的解方程的數值方法。當然說這些東西是比較專業性的數學也毫不為過。
第二個就是密碼學。
卧槽你確定我買的不是一本代數課本!
另外,年少無知的我高考報名報了應用數學,結果大學被計算數學騎臉了四年……
但是這並不能阻擋我既沒有好好學計算數學,也沒有好好學數理統計,更沒有學很多基礎的計算機課程……
人生苦短,莫讓子代選信息與計算科學(沒錯,我就是這個逗比數學專業的……搞演算法吧
說好的PLT呢!深深紮根在數理邏輯和抽象代數裡面反過來造福人類這麼多的一個方向難道就這麼被人給遺忘了?
演算法密碼學什麼的太偏應用,已經沒那麼Theoretical了。計算複雜性感覺又有種跨學科的樣子,所以跟數學結合的如此緊密還偏研究向的非PLT莫屬啊。補充一個很多人都沒有提到的,Robotics,機器人的幾大領域,包括motion planning,SLAM,control,inference等幾大部分,都是基於數學和統計方法的
我學的是信息與計算科學(Information and Computing Science),典型的數學與計算機交叉學科,個人感覺「最數學」的應該算是計算機圖形學,這個學科要求掌握數學分析、高等代數(注意不是高數和線代,這個差別還是蠻大的)數值分析、常微分偏微分、編程語言及數據結構等等,每一門都被稱之為「掛科神器」,尤其是剛接觸數學分析時沒有接受過公式化訓練的人(比如我)看到那些公式比背所有的文言文都痛苦。。。
當然是數值分析,然後可能是自動控制、數字圖像處理和密碼學
密碼學,可計算性理論,圖像處理,
很多啊,比如說
演算法(algorithm),需要很紮實的離散數學(discrete mathematics),其中包括圖論(graph theory),樹(tree)等等
密碼學(cryptography),需要很深刻的概率論基礎(probability theory)
圖像處理(digital imaging)要求更多了,線性代數(linear algebra), 傅里葉變換(fourier transform), 離散數學等等
資料庫(DBMS)要求關係代數(relational algebra)
這是我現在學的一些感受,,
推薦閱讀:
※Kaggle如何入門?
※常用的機器學習演算法比較?
※不同激活函數(activation function)的神經網路的表達能力是否一致?
※實驗室原型到產品,距離、差距有多遠?
※基於深度學習的自然語言處理在 2016 年有哪些值得期待的發展?