丨導讀程序員應該怎么數(shù)學_第1頁
丨導讀程序員應該怎么數(shù)學_第2頁
丨導讀程序員應該怎么數(shù)學_第3頁
丨導讀程序員應該怎么數(shù)學_第4頁
丨導讀程序員應該怎么數(shù)學_第5頁
已閱讀5頁,還剩12頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

劉超程序員是否需要學好數(shù)學?原本學數(shù)學分析、概率論、線性代數(shù)的時候,我也沒想到數(shù)學和寫程序有啥關系,但是隨著研究的開源軟件越來越多,我發(fā)現(xiàn)很多技術深入下去,本質就是數(shù)學。程序員應該怎么學習數(shù)學呢?我不建議你將大學的數(shù)學書拿出來啃一遍,一來耗費大量時間,二來和實際應用結合不起來,往往該看的忽略了,不該看的費了半天勁用不上,過一陣又忘了。我們了解一個新技術有三個階段,第一階段是,怎么使用;第二階段是,如何實現(xiàn),原理是什么;第三階段是,為什么這樣實現(xiàn)。學數(shù)學和學一門新技術一樣,也有這樣三個階段,先用起來,了解原理,然后了解為什么。|bothub.ai創(chuàng)始人:“先廣度,再深度隨著過去幾年深度學習成為程序員界的顯學,不少程序員開始回頭復習微積分、概率論和線性代數(shù)這樣的基礎數(shù)學課,乃至開始學習最優(yōu)化、博弈論這樣的應用數(shù)學課。則是因為從2010年一頭扎入了計算的大坑之后,重新開始學習數(shù)學??梢哉f,這次重新學習數(shù)學,為推開了程序世界中另一扇門,使得我在埋頭具體寫代碼之外,有機會重新從另一個角度,去認識和理解“程序”和“問題的解決方案”這兩件事情。譬如說,過去幾年來的深度學習,以及之前沒那么火,但是實際上早早就在搜索、這些領域,應用的機器學習和推薦算法。這里面其實就是結合了微積分、線性代數(shù)、概率論之后的最優(yōu)化問題。事實上,大部分應用領域的解決方案,都是把應用領域的問題,形式化為一個個數(shù)學問題。在找到數(shù)學問題的“解法”之后,用寫程序的方式翻譯成實際應用的“算法”。而能夠應用“數(shù)學”的方式來解決問題,是從一個只能套用現(xiàn)成方案的“碼農(nóng)”,向能夠將新問題很多問題當你知道如何用數(shù)學來解決的時候常常會有醍醐灌頂?shù)母杏X。譬如當我第一次搞明白,中的競價問題,居然能夠變成一個博弈論中“尋找上策均衡”的問題,并且能夠通過簡簡單單的表示出來的時候,我是很有滿足感的。此外,一旦熟悉了機器學習中用到的數(shù)學知識,很多想要解決的系統(tǒng)問題,都能通過定義更好的數(shù)學優(yōu)化目標,變成一個能夠找到最優(yōu)解的程序算法,最后通過寫個程序,翻譯成數(shù)學問題來解決,這個過程帶給我巨大的身心愉悅。從工作相關的領域開始,是讓自己一是能有實際用得上學到的知識的機會,二是日常工作中容易耳濡目染,相當于常常在復習。而先有廣度,是讓自己在心中有一個問題到解決方法的“地圖”,遇到具體的問題能夠對得上,容易獲得正反饋;然后再有深度,具體去對一個特定的學習應用。當開始深入學一個特定問題的時候,最好的方式是,追一門課程,譬如Coursera、這是因為,課程有明確的節(jié)奏,通常還會提供作業(yè)和測驗。通過作業(yè)和測驗,讓自己對自己的學習有一個聯(lián)系和反饋的過程。即使實踐中沒有足夠的應用,過一段時間有些知識沒有那么熟悉了,但是也容易建立自己很快可以“撿”回來的信心,降低“復習”的啟動成本。跟隨課程的節(jié)奏,可以有效避免“三天打漁兩天曬網(wǎng)”的惡習,讓學習有始有終。最后,給你介紹一個有程序員特色的學習方法,針對學習的內(nèi)容寫一點程序。把正在學習的問題的解法,寫一個算法實現(xiàn)出來。這是一個非常有效的練習方式。譬如學習線性代數(shù),理解仿射,反復讀書的效率對我來說,就不如找來CoingTheMarix,通過寫程序,讓學習、理解變得更深入。|40講》專欄作者:“數(shù)學是工具而在數(shù)學的學習中,首要的問題是明確需求。作為非數(shù)學專業(yè)出身的“外行”,我們使用數(shù)學的目的不是頂天,而是立地;不是上下求索艱深的理論問題,而是將生活中的具體問題抽象化,進而加以解決。因此,對于我們這些票友來說,學習數(shù)學的基礎在于經(jīng)驗而非哲學,比較實際的思路是秉持功利主義的原則,用多少學多少。掌握基本的線性代數(shù)與矩陣論、概率論與數(shù)理統(tǒng)計知識足以應付日常的使用,盲目地好高騖遠通常有害無益。理論化和公理化這些比較深邃的嘗試固然讓人著迷,但它們可能并沒有肉眼可見的實用性,對于絕大部分計算機從業(yè)者恐怕過于陽春白雪。其次,在學習時還要理解數(shù)學的本質。數(shù)學是工具而非問題,是而非目的。探索世界正因如此,在數(shù)學中存在著各種各樣在現(xiàn)實中不可能出現(xiàn)的理想化模型(比如無窮小和極限的誕生),也存在著對同一個物理過程不同的建模方式(比如矩陣力學和波動力學)。充分出發(fā)點,也就是所謂的數(shù)學思想與數(shù)學邏輯。任何一個工具都不是平白無故地設計出來的,它必然要解決某個特定的問題,比如線性代數(shù)與矩陣論是對具體對象的抽象表示與運算,比如概率論和數(shù)理統(tǒng)計是對不確定性及其定型定量表示的建模。因此,在掌握每一種數(shù)學工具的微觀技巧之前,理解它們的宏觀目標是更加重要的。只有掌握了工具誕生的背景與目的,才有可能有效地使用它們。在這里還要多說一句,數(shù)學絕不僅僅是算術,把主要精力放在計算上未免因小失大。在經(jīng)典科幻《系漫游指南》中,超級計算機告訴人們,世界的終極答案是“42”——這更像是對數(shù)字主義者善意嘲諷的一個梗。但對算術的過度強調并不鮮見,在相當數(shù)量的現(xiàn)行數(shù)學中,講解線性代數(shù)時開篇便給出行列式的計算方法,這種編排著實讓人費解。具體到數(shù)學每個子學科的學習方法上,相關的經(jīng)驗教訓已然汗牛充棟,很多內(nèi)容都無需在此贅言。但在我看來,學習時值得突出強調的一點是舉一反三的能力。同一種工具及其背后的思想可以出現(xiàn)在不同的場景下,解決不同的問題,但是一旦深入到本質層面,就會發(fā)現(xiàn)它們實際上是相通的。如何透過現(xiàn)象看本質,將不同場景融會貫通,才是值得鍛煉的高級能力。特征向量計算的是系統(tǒng)的不動點,在數(shù)據(jù)降維中有舉足輕重的作用,但如果熟悉電子通信的話你就會知道,對線性時不變系統(tǒng)的分析(也就是各種變換)都是基于特征向量展開的;在圖像處理中,類間方差最大化原理給出的就是圖像分割中的Otsu方法??偨Y起來,我對數(shù)學學習的幾點拙見是:把握數(shù)學的工具屬性,學習具體方法時先溯因再求果,勤于思考解決相同問題的不同方法,與解決不同問題的相同方法之間的聯(lián)系與區(qū)別。希望這幾條建議能夠在數(shù)學的學習中助你。因此,我在這里繪制了一張“程序員的數(shù)學應用地圖”,里面包含四個部分,分別是數(shù)據(jù)結構、編程語句、基礎算法,以及機器學習算法。首先我們來看最常用的數(shù)據(jù)結構和編程語句,你對它們應該非常熟悉。在我眼里,這些基礎的內(nèi)容,同樣富含了數(shù)學思維。例如,數(shù)組和鏈表就體現(xiàn)了迭代和遞歸的思想,判斷語句就是使用了邏輯(布爾)代數(shù)。對于架構在這些數(shù)據(jù)結構和編程語句之上的算法(為了將這些算法和機器學習的算法區(qū)分,我稱其為通用算法),除了迭代和遞歸,也體現(xiàn)了排列、組合和動態(tài)規(guī)劃等思想。整個專欄我基本上都是從數(shù)學的角度出發(fā),逐步推進到這些知識在計算機中的應用。不過在繪制這張應用地圖的時候,我特意反其道而行之,從計算機編程的角度出發(fā),為你展示程序員應該如何看待編程中的數(shù)學知識。我覺得在開始學習之前,這個地圖會給你一個大體的認識,告訴你計算機領域常用的數(shù)學思想有哪些。這時,你也許會產(chǎn)生一些疑惑,同時你可以帶著自己的思考和問題去逐篇學習。等你學完整個專欄之后,再回頭來看看這個地圖,應該會有更深的感觸。我希望這種雙向打通,能夠進一步加強你的學習體驗。 不得售賣。頁面已增加防盜

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論