當前位置:
首頁 > 最新 > 區塊鏈和大數據都無法離開的最基本的多樣性演算法

區塊鏈和大數據都無法離開的最基本的多樣性演算法

密布式演算法

區塊鏈和大數據的本源:演算法與代碼

演算法:一系列用於描述一個問題解決方案的步驟,符合正確性和有限性的標準。是與具體實現相互獨立的抽象計算步驟。

代碼:一系列計算機指令。它們是計算的具體實現,使用一種特定的編程語言,運行在一個特定的平台上。

人們可以藉助這種直接向計算機發送編碼指令的方式來實現更為複雜的指令序列,並以演算法的形式呈現出來。演算法比編碼的出現要早得多。穆斯林數學家 Al-Khawarizm 早在公元 820 年就對解決線性方程和二次方程式的演算法進行了描述。演算法一詞來源於這位數學家的拉丁文名字「Algoritmi」,而「algebra」則來源於「al-jabr」,Al-Khawarizm 用它來解決二次方程式問題。演算法由一系列有限的計算或指令組成,併產生一個結果。正如我們所知道的那樣,代碼是向計算機發出指令的一種方式,很適合用於實現演算法。它們只不過是一系列按照一定次序執行的操作。

與早期的大數據時期一樣,我們這個時代的信息量也在增長。根據摩爾定律,我們在編碼的設計和使用方面所作的改進換來了性能的提升,從而能夠應付不斷增長的數字化需求。你可以繼續編寫代碼從資料庫查詢相關的資源列表。這些操作的離散特徵仍然被保留了下來,因為人們仍然在通過編寫代碼告訴硬體應該做哪些事情。就算操作變得越來越複雜,它仍然只是人類的編碼指令。不過,演算法已經開始展露頭角,正在創造一個抽象的新時代。

演算法的崛起

所以說,演算法和代碼之間有很大的不同。代碼可以用來實現演算法,而且代碼的實現方式會影響到性能。例如,如果你要從一個序列里找出最大或最小的元素,那麼二叉堆的性能相比其他的數據結構要好很多。不過,你已經沒有必要通過編寫代碼來實現一個演算法,就像沒有必要通過聽音樂來寫歌一樣。

雖然每個人都知道摩爾定律的魔力,驅動數字經濟發展的性能改進遵循的就是摩爾定律,但鮮有人知道,在很多領域,演算法所產生的性能改進已經超過了硬體所帶來的性能提升。實際上,2010 年的一份官方報告表明,演算法已經為很多領域帶來了顯著的性能提升,比如語音識別、神經語言處理和物流。

「更加令人感到吃驚但同時又令人難以理解的是,在很多領域,演算法為性能帶來的提升已經遠遠超過了處理器速度提升所帶來的性能改進。」——面向總統和國會的報告:設計數字的未來

抽象演算法

我們現在擁有大量的數據,這意味著我們不能再用離散的思維來思考問題。大數據促使我們轉變思維。它促使我們向後退一步,去尋找能夠處理數據洪流的方法。按照傳統的方式,你可能會根據一些指定的模式或參數編寫代碼來查詢數據。例如,你可能想從資料庫中查找在過去兩周買過 2 件商品並且支付超過 30 歐元的顧客,因為你想聯繫到這些顧客,並向他們推薦一些優惠活動。你使用這個模式來查找匹配的數據。不過大數據卻正好相反,你先有了數據,然後查找可以匹配這些數據的模式。

想想看,有這麼多的數據,但是我們卻找不到匹配的模式,所以我們要回退一步。我們通過集群、分類、機器學習和其他新的支撐技術來尋找模式,而能夠幫助我們做到這點的是演算法,不是代碼。要找到隱藏在暗處的模式,跨出這一步是必需的。與光譜一樣,有一些波長的光線我們是看不到的,而超過一定數據量之後的模式我們也是看不到的,它就是大數據。

我們不僅可以從中搜索到模式,它還能夠生成做這些事情所需要的代碼。Pedro Domingos 在「The Master Algorithm」一書中描述了如何使用「學習者演算法」來創建新的演算法,這些演算法可以反過來為我們編寫我們所需要的代碼,「通過機器學習,計算機可以自己編程,我們就可以解放了」。為了實現這個目標,我們需要更好地理解這些演算法的原理,以及如何讓它們與我們的需求相匹配。否則,我們就無法向抽象轉變。

「工業的發展讓手工勞動自動化,信息的發展讓腦力勞動自動化,而機器學習則讓它自己自動化。如果沒有機器學習,程序員就會成為發展瓶頸。而有了機器學習,發展的速度就會加快。」——Pedro Domingos,「The Master Algorithm」

思考演算法

不過,不管如何從離散轉變成抽象,我們仍然需要程序員,但這不是重點。並不是說代碼已經變得不重要了,也不是說代碼就不會再帶來任何改進。重點在於,我們要開始思考演算法,這不僅僅是數學家或學者的事情。我們周邊充斥著各種演算法,以致於我們不需要知道如何編寫代碼來使用它們,或者理解它們。現在,有一些人通過新的演算法對不同的領域進行優化和改進,他們使用了遺傳編程(genetic programming)和大數據技術。人們甚至創造了更好的優化技術,他們觀察金屬的冷卻過程,並通過演算法對其進行建模(被稱為模擬退火演算法,這就是我們應該從演算法角度開始考慮問題的一個最好的例子)。

編碼作為新數字經濟的關鍵技能,就像學習如何閱讀一樣,已經模糊了我們對演算法的理解。演算法正逐漸成為我們生活的組成部分,從電影推薦到新聞過濾和尋找合作夥伴。我們要更好地理解它們,這樣才能更好地理解和掌控我們的未來。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 深度數據挖掘 的精彩文章:

演算法是區塊鏈構成的根本,演算法和持續性決定數據導向

TAG:深度數據挖掘 |