
大數(shù)據(jù)的發(fā)展,伴隨的將是軟件工程師的漸退,算法工程師的崛起
大數(shù)據(jù)在人類歷史長河的各個(gè)時(shí)期一直存在著,只是要等到技術(shù)發(fā)展到一定階段,它才開始嶄露頭角。而它的未來又在哪里?來自 Intercom 的工程師 Cathal Horan 表達(dá)了他對(duì)大數(shù)據(jù)的看法,他認(rèn)為,未來屬于算法,而不是代碼。
“大數(shù)據(jù)時(shí)代”的稱號(hào)并不能為當(dāng)今世界所獨(dú)享,數(shù)據(jù)充斥著人類文明歷史長河的各個(gè)時(shí)期??v觀這些歷史時(shí)期,通過從離散到抽象的轉(zhuǎn)換,我們就會(huì)明白為什么算法比代碼重要。
說到大數(shù)據(jù)……
如果我們把整個(gè)人類歷史看成一天,那么我們只能從晚上 11 點(diǎn) 7 分開始說起。這是安靜的一天。但是在隨后的一丁點(diǎn)時(shí)間里,我們積攢了很多知識(shí)和故事,并打算將它們傳達(dá)給其他人。你可以想象最開始人類通過對(duì)話的形式將知識(shí)代代相傳,從父輩傳給子輩,從老師傳給學(xué)生。但是整個(gè)社會(huì)的知識(shí)量增長迅速,以至于最初的對(duì)話形式無法傳達(dá)這么多的信息。
我們需要將這些信息編撰成冊(cè)進(jìn)行保存和傳播。通過書寫的方式將知識(shí)編撰成冊(cè)代表著這些時(shí)期在技術(shù)上的重大轉(zhuǎn)變。事實(shí)上,蘇格拉底(柏拉圖“斐德羅篇”里的角色)認(rèn)為這種技術(shù)轉(zhuǎn)變比不上最初的對(duì)話形式,擔(dān)心它會(huì)降低我們開發(fā)智慧和知識(shí)的能力。所以很自然地,我不認(rèn)為蘇格拉底會(huì)喜歡電視。
問題的核心是,對(duì)話代表了一種離散的溝通手段。你知道你的交談對(duì)象是誰,而且參與對(duì)話的人通過論證和反證的方式進(jìn)行直接的互動(dòng)。反過來,書本是一種抽象的溝通手段,作者和讀者之間不存在直接的互動(dòng)。作者并不知道誰讀了他的書,也不知道有多少人、在什么時(shí)候、在哪里讀了他的書。有時(shí)候,我們可能知道潛在的讀者群體是誰,然后根據(jù)讀者群體進(jìn)行內(nèi)容裁剪。不過大多數(shù)時(shí)候,書本都只是一種抽象的傳播知識(shí)和學(xué)習(xí)新技能的手段。
等腰三角形的大數(shù)據(jù)
當(dāng)我們從簡單的計(jì)算形式轉(zhuǎn)變?yōu)橛啥ɡ?、符?hào)和算法組成的抽象形式(我們現(xiàn)在稱其為數(shù)學(xué)),就開啟了另一個(gè)大數(shù)據(jù)時(shí)代。第一批有記載的計(jì)算發(fā)生在公元前 2500 年的美索不達(dá)米亞。當(dāng)時(shí),美索不達(dá)米亞人需要計(jì)算出一谷倉的糧食能夠養(yǎng)活多少人。
美索不達(dá)米亞人有具體的問題關(guān)注點(diǎn),他們很清楚需要解決的問題是什么。他們的計(jì)算都是很離散的,因?yàn)槊恳淮斡?jì)算只能解決一個(gè)問題。這也就是為什么評(píng)論家們認(rèn)為它們不是數(shù)學(xué)。直到公元前 500 年的古希臘,畢達(dá)哥拉斯學(xué)者們(可以把他們認(rèn)為是早期的 Google 使用者,哈哈)開始針對(duì)三角形提出了一些奇怪的問題。比如,他們想知道等腰直角三角形的三個(gè)邊能否都是整數(shù)(這聽起來像不像一個(gè) Google 風(fēng)格的面試題?)。
如果你想通過離散的方式來解答這個(gè)問題,那么可以像美索不達(dá)米亞人那樣做。不過,隨著數(shù)字的增加,這種方式會(huì)顯得很笨重。要證明這個(gè)假設(shè),你需要進(jìn)行多少次計(jì)算(其實(shí)這個(gè)假設(shè)是錯(cuò)誤的,三個(gè)邊不可能都是整數(shù))?等腰三角形問題的不同之處在于,它不存在具體的關(guān)注點(diǎn)。我們不知道三角形的大小,也不知道它們的邊長,而且它們的大小可能是無限的。如果我們?cè)跀?shù)字上應(yīng)用推理,那么就進(jìn)入了數(shù)學(xué)領(lǐng)域,大數(shù)據(jù)也就接踵而至。畢達(dá)哥拉斯式的思維方式體現(xiàn)了數(shù)學(xué)的抽象特征,在今天,我們使用符號(hào)、規(guī)則和推理來解答這類抽象的問題。
或許你想知道人類歷史上的其他大數(shù)據(jù)時(shí)期,不過我想直接跳到 20 世紀(jì),看看代碼如何成為現(xiàn)代技術(shù)領(lǐng)域的重要組成部分(如果你有其他大數(shù)據(jù)時(shí)期的資料,可以聯(lián)系我 @cathalhoran,我相信它們會(huì)很有趣)。
代碼的崛起
1945 年,當(dāng) Grace Hopper 開始在 Harvard Mark I 計(jì)算機(jī)上工作時(shí),編碼(或者說編程,不過我們不打算在這里區(qū)分它們有什么不同)這項(xiàng)工作的重要性就開始凸顯出來。在這之前,電腦(如果可以這么叫它的話)充其量只是個(gè)計(jì)算工具。以二戰(zhàn)為例,當(dāng)時(shí)的大炮需要借助矩陣進(jìn)行輔助瞄準(zhǔn)。矩陣是一些方程式的計(jì)算結(jié)果,這些方程式使用數(shù)百種不同的計(jì)算因子,比如距離、海拔、風(fēng)速、溫度、濕度,等等。電腦(computer)這個(gè)名字的由來也是很偶然的,人們用它描述在二戰(zhàn)中操作計(jì)算機(jī)的女性,她們被稱為“computer”。操作員們必須使用打孔卡和曲柄來處理方程式。一個(gè)打孔卡需要 170 個(gè)人月才能完成。
這個(gè)與我們之前討論的事情有什么相似之處?美索不達(dá)米亞人使用黏土矩陣來進(jìn)行計(jì)算,而到了 20 世紀(jì),計(jì)算媒介變成了編碼。雖然已經(jīng)有了長足的進(jìn)步,不過編碼仍然是一種離散的操作,因?yàn)樗鼒?zhí)行的是具體的計(jì)算任務(wù),只是效率上有所提升而已。編碼解放了人工操作,讓我們可以處理更多的數(shù)據(jù)。
算法與代碼
算法:一系列用于描述一個(gè)問題解決方案的步驟,符合正確性和有限性的標(biāo)準(zhǔn)。是與具體實(shí)現(xiàn)相互獨(dú)立的抽象計(jì)算步驟。代碼:一系列計(jì)算機(jī)指令。它們是計(jì)算的具體實(shí)現(xiàn),使用一種特定的編程語言,運(yùn)行在一個(gè)特定的平臺(tái)上。
人們可以借助這種直接向計(jì)算機(jī)發(fā)送編碼指令的方式來實(shí)現(xiàn)更為復(fù)雜的指令序列,并以算法的形式呈現(xiàn)出來。算法比編碼的出現(xiàn)要早得多。穆斯林?jǐn)?shù)學(xué)家 Al-Khawarizm 早在公元 820 年就對(duì)解決線性方程和二次方程式的算法進(jìn)行了描述。算法一詞來源于這位數(shù)學(xué)家的拉丁文名字“Algoritmi”,而“algebra”則來源于“al-jabr”,Al-Khawarizm 用它來解決二次方程式問題。算法由一系列有限的計(jì)算或指令組成,并產(chǎn)生一個(gè)結(jié)果。正如我們所知道的那樣,代碼是向計(jì)算機(jī)發(fā)出指令的一種方式,很適合用于實(shí)現(xiàn)算法。它們只不過是一系列按照一定次序執(zhí)行的操作。
與早期的大數(shù)據(jù)時(shí)期一樣,我們這個(gè)時(shí)代的信息量也在增長。根據(jù)摩爾定律,我們?cè)诰幋a的設(shè)計(jì)和使用方面所作的改進(jìn)換來了性能的提升,從而能夠應(yīng)付不斷增長的數(shù)字化需求。你可以繼續(xù)編寫代碼從數(shù)據(jù)庫查詢相關(guān)的資源列表。這些操作的離散特征仍然被保留了下來,因?yàn)槿藗內(nèi)匀辉谕ㄟ^編寫代碼告訴硬件應(yīng)該做哪些事情。就算操作變得越來越復(fù)雜,它仍然只是人類的編碼指令。不過,算法已經(jīng)開始展露頭角,正在創(chuàng)造一個(gè)抽象的新時(shí)代。
算法的崛起
所以說,算法和代碼之間有很大的不同。代碼可以用來實(shí)現(xiàn)算法,而且代碼的實(shí)現(xiàn)方式會(huì)影響到性能。例如,如果你要從一個(gè)序列里找出最大或最小的元素,那么二叉堆的性能相比其他的數(shù)據(jù)結(jié)構(gòu)要好很多。不過,你已經(jīng)沒有必要通過編寫代碼來實(shí)現(xiàn)一個(gè)算法,就像沒有必要通過聽音樂來寫歌一樣。
雖然每個(gè)人都知道摩爾定律的魔力,驅(qū)動(dòng)數(shù)字經(jīng)濟(jì)發(fā)展的性能改進(jìn)遵循的就是摩爾定律,但鮮有人知道,在很多領(lǐng)域,算法所產(chǎn)生的性能改進(jìn)已經(jīng)超過了硬件所帶來的性能提升。實(shí)際上,2010 年的一份官方報(bào)告表明,算法已經(jīng)為很多領(lǐng)域帶來了顯著的性能提升,比如語音識(shí)別、神經(jīng)語言處理和物流。
“更加令人感到吃驚但同時(shí)又令人難以理解的是,在很多領(lǐng)域,算法為性能帶來的提升已經(jīng)遠(yuǎn)遠(yuǎn)超過了處理器速度提升所帶來的性能改進(jìn)?!薄嫦蚩偨y(tǒng)和國會(huì)的報(bào)告:設(shè)計(jì)數(shù)字的未來
抽象算法
我們現(xiàn)在擁有大量的數(shù)據(jù),這意味著我們不能再用離散的思維來思考問題。大數(shù)據(jù)促使我們轉(zhuǎn)變思維。它促使我們向后退一步,去尋找能夠處理數(shù)據(jù)洪流的方法。按照傳統(tǒng)的方式,你可能會(huì)根據(jù)一些指定的模式或參數(shù)編寫代碼來查詢數(shù)據(jù)。例如,你可能想從數(shù)據(jù)庫中查找在過去兩周買過 2 件商品并且支付超過 30 歐元的顧客,因?yàn)槟阆肼?lián)系到這些顧客,并向他們推薦一些優(yōu)惠活動(dòng)。你使用這個(gè)模式來查找匹配的數(shù)據(jù)。不過大數(shù)據(jù)卻正好相反,你先有了數(shù)據(jù),然后查找可以匹配這些數(shù)據(jù)的模式。
想想看,有這么多的數(shù)據(jù),但是我們卻找不到匹配的模式,所以我們要回退一步。我們通過集群、分類、機(jī)器學(xué)習(xí)和其他新的支撐技術(shù)來尋找模式,而能夠幫助我們做到這點(diǎn)的是算法,不是代碼。要找到隱藏在暗處的模式,跨出這一步是必需的。與光譜一樣,有一些波長的光線我們是看不到的,而超過一定數(shù)據(jù)量之后的模式我們也是看不到的,它就是大數(shù)據(jù)。
我們不僅可以從中搜索到模式,它還能夠生成做這些事情所需要的代碼。Pedro Domingos 在“The Master Algorithm”一書中描述了如何使用“學(xué)習(xí)者算法”來創(chuàng)建新的算法,這些算法可以反過來為我們編寫我們所需要的代碼,“通過機(jī)器學(xué)習(xí),計(jì)算機(jī)可以自己編程,我們就可以解放了”。為了實(shí)現(xiàn)這個(gè)目標(biāo),我們需要更好地理解這些算法的原理,以及如何讓它們與我們的需求相匹配。否則,我們就無法向抽象轉(zhuǎn)變。
“工業(yè)的發(fā)展讓手工勞動(dòng)自動(dòng)化,信息的發(fā)展讓腦力勞動(dòng)自動(dòng)化,而機(jī)器學(xué)習(xí)則讓它自己自動(dòng)化。如果沒有機(jī)器學(xué)習(xí),程序員就會(huì)成為發(fā)展瓶頸。而有了機(jī)器學(xué)習(xí),發(fā)展的速度就會(huì)加快?!薄狿edro Domingos,“The Master Algorithm”
思考算法
不過,不管如何從離散轉(zhuǎn)變成抽象,我們?nèi)匀恍枰绦騿T,但這不是重點(diǎn)。并不是說代碼已經(jīng)變得不重要了,也不是說代碼就不會(huì)再帶來任何改進(jìn)。重點(diǎn)在于,我們要開始思考算法,這不僅僅是數(shù)學(xué)家或?qū)W者的事情。我們周邊充斥著各種算法,以致于我們不需要知道如何編寫代碼來使用它們,或者理解它們。現(xiàn)在,有一些人通過新的算法對(duì)不同的領(lǐng)域進(jìn)行優(yōu)化和改進(jìn),他們使用了遺傳編程(genetic programming)和大數(shù)據(jù)技術(shù)。人們甚至創(chuàng)造了更好的優(yōu)化技術(shù),他們觀察金屬的冷卻過程,并通過算法對(duì)其進(jìn)行建模(被稱為模擬退火算法,這就是我們應(yīng)該從算法角度開始考慮問題的一個(gè)最好的例子)。
編碼作為新數(shù)字經(jīng)濟(jì)的關(guān)鍵技能,就像學(xué)習(xí)如何閱讀一樣,已經(jīng)模糊了我們對(duì)算法的理解。算法正逐漸成為我們生活的組成部分,從電影推薦到新聞過濾和尋找合作伙伴。我們要更好地理解它們,這樣才能更好地理解和掌控我們的未來。
數(shù)據(jù)分析咨詢請(qǐng)掃描二維碼
若不方便掃碼,搜微信號(hào):CDAshujufenxi
AI 浪潮下的生存與進(jìn)階: CDA數(shù)據(jù)分析師—開啟新時(shí)代職業(yè)生涯的鑰匙(深度研究報(bào)告、發(fā)展指導(dǎo)白皮書) 發(fā)布機(jī)構(gòu):CDA數(shù)據(jù)科 ...
2025-07-13LSTM 模型輸入長度選擇技巧:提升序列建模效能的關(guān)鍵? 在循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)家族中,長短期記憶網(wǎng)絡(luò)(LSTM)憑借其解決長序列 ...
2025-07-11CDA 數(shù)據(jù)分析師報(bào)考條件詳解與準(zhǔn)備指南? ? 在數(shù)據(jù)驅(qū)動(dòng)決策的時(shí)代浪潮下,CDA 數(shù)據(jù)分析師認(rèn)證愈發(fā)受到矚目,成為眾多有志投身數(shù) ...
2025-07-11數(shù)據(jù)透視表中兩列相乘合計(jì)的實(shí)用指南? 在數(shù)據(jù)分析的日常工作中,數(shù)據(jù)透視表憑借其強(qiáng)大的數(shù)據(jù)匯總和分析功能,成為了 Excel 用戶 ...
2025-07-11尊敬的考生: 您好! 我們誠摯通知您,CDA Level I和 Level II考試大綱將于 2025年7月25日 實(shí)施重大更新。 此次更新旨在確保認(rèn) ...
2025-07-10BI 大數(shù)據(jù)分析師:連接數(shù)據(jù)與業(yè)務(wù)的價(jià)值轉(zhuǎn)化者? ? 在大數(shù)據(jù)與商業(yè)智能(Business Intelligence,簡稱 BI)深度融合的時(shí)代,BI ...
2025-07-10SQL 在預(yù)測(cè)分析中的應(yīng)用:從數(shù)據(jù)查詢到趨勢(shì)預(yù)判? ? 在數(shù)據(jù)驅(qū)動(dòng)決策的時(shí)代,預(yù)測(cè)分析作為挖掘數(shù)據(jù)潛在價(jià)值的核心手段,正被廣泛 ...
2025-07-10數(shù)據(jù)查詢結(jié)束后:分析師的收尾工作與價(jià)值深化? ? 在數(shù)據(jù)分析的全流程中,“query end”(查詢結(jié)束)并非工作的終點(diǎn),而是將數(shù) ...
2025-07-10CDA 數(shù)據(jù)分析師考試:從報(bào)考到取證的全攻略? 在數(shù)字經(jīng)濟(jì)蓬勃發(fā)展的今天,數(shù)據(jù)分析師已成為各行業(yè)爭搶的核心人才,而 CDA(Certi ...
2025-07-09【CDA干貨】單樣本趨勢(shì)性檢驗(yàn):捕捉數(shù)據(jù)背后的時(shí)間軌跡? 在數(shù)據(jù)分析的版圖中,單樣本趨勢(shì)性檢驗(yàn)如同一位耐心的偵探,專注于從單 ...
2025-07-09year_month數(shù)據(jù)類型:時(shí)間維度的精準(zhǔn)切片? ? 在數(shù)據(jù)的世界里,時(shí)間是最不可或缺的維度之一,而year_month數(shù)據(jù)類型就像一把精準(zhǔn) ...
2025-07-09CDA 備考干貨:Python 在數(shù)據(jù)分析中的核心應(yīng)用與實(shí)戰(zhàn)技巧? ? 在 CDA 數(shù)據(jù)分析師認(rèn)證考試中,Python 作為數(shù)據(jù)處理與分析的核心 ...
2025-07-08SPSS 中的 Mann-Kendall 檢驗(yàn):數(shù)據(jù)趨勢(shì)與突變分析的有力工具? ? ? 在數(shù)據(jù)分析的廣袤領(lǐng)域中,準(zhǔn)確捕捉數(shù)據(jù)的趨勢(shì)變化以及識(shí)別 ...
2025-07-08備戰(zhàn) CDA 數(shù)據(jù)分析師考試:需要多久?如何規(guī)劃? CDA(Certified Data Analyst)數(shù)據(jù)分析師認(rèn)證作為國內(nèi)權(quán)威的數(shù)據(jù)分析能力認(rèn)證 ...
2025-07-08LSTM 輸出不確定的成因、影響與應(yīng)對(duì)策略? 長短期記憶網(wǎng)絡(luò)(LSTM)作為循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)的一種變體,憑借獨(dú)特的門控機(jī)制,在 ...
2025-07-07統(tǒng)計(jì)學(xué)方法在市場調(diào)研數(shù)據(jù)中的深度應(yīng)用? 市場調(diào)研是企業(yè)洞察市場動(dòng)態(tài)、了解消費(fèi)者需求的重要途徑,而統(tǒng)計(jì)學(xué)方法則是市場調(diào)研數(shù) ...
2025-07-07CDA數(shù)據(jù)分析師證書考試全攻略? 在數(shù)字化浪潮席卷全球的當(dāng)下,數(shù)據(jù)已成為企業(yè)決策、行業(yè)發(fā)展的核心驅(qū)動(dòng)力,數(shù)據(jù)分析師也因此成為 ...
2025-07-07剖析 CDA 數(shù)據(jù)分析師考試題型:解鎖高效備考與答題策略? CDA(Certified Data Analyst)數(shù)據(jù)分析師考試作為衡量數(shù)據(jù)專業(yè)能力的 ...
2025-07-04SQL Server 字符串截取轉(zhuǎn)日期:解鎖數(shù)據(jù)處理的關(guān)鍵技能? 在數(shù)據(jù)處理與分析工作中,數(shù)據(jù)格式的規(guī)范性是保證后續(xù)分析準(zhǔn)確性的基礎(chǔ) ...
2025-07-04CDA 數(shù)據(jù)分析師視角:從數(shù)據(jù)迷霧中探尋商業(yè)真相? 在數(shù)字化浪潮席卷全球的今天,數(shù)據(jù)已成為企業(yè)決策的核心驅(qū)動(dòng)力,CDA(Certifie ...
2025-07-04