終于有人把數據科學、機器學習和人工智能講明白了
01 什么是數據科學?數據科學是做什么的?
首先從數據科學領域的討論開始。 讓我們從定義數據科學以及數據科學家的角色和責任開始討論,這兩個角色描述了人工智能和機器學習的領域和執行其計劃所需要的技能(請注意,很多專業角色越來越普遍,如機器學習工程師)。
盡管數據科學家通常有許多不同的教育背景和工作經驗,但大多數人應該在四個基本領域(理想情況下是專家)都很強,我稱之為數據科學專業知識的四大支柱。數據科學家應該具備下述這些領域(沒有特別的順序)的專業知識:
- 商業或相關的商業領域
- 數學(包括統計和概率)
- 計算機科學(包括軟件編程)
- 書面和口頭交流
還非常需要其他的一些技能和專業知識,但在我看來,主要是上述四項。
實際上,人們通常在四個支柱中的一個或兩個方面很強大,但很少在四個方面都強大。如果碰巧遇到一個在四個方面都很強大的數據科學家,那么他是真正的專家,您就發現了一個常被稱為獨角獸的人。在四個支柱中都擁有相當程度專業知識和能力的人很難找到的,嚴重缺乏。
因此,許多公司已經開始圍繞數據科學的特定支柱設置專門的角色,當把這些人集合在一起時,就相當于擁有了數據科學家。
例如組建一個三人團隊,其中一個人有MBA背景,一個是統計學家,另一個是機器學習或軟件工程師,當然團隊還可以包括數據工程師。這個團隊就可以同時執行多個任務,每個人在任何給定時間都專注于計劃的某個方面。
基于這些支柱,數據科學家應該能夠利用現有數據源,根據需要創建新數據源,以提取有意義的信息、產生深入可操作的洞見、支持數據驅動的決策、以及構建人工智能解決方案。
這需要業務領域的專業知識、有效的溝通和結果解讀,以及利用所有相關的統計技術、編程語言、軟件包、庫和數據基礎設施。簡而言之,這就是數據科學所要做的事情。
02 機器學習的定義及其關鍵特點
機器學習經常被認為是人工智能的子集。我們先討論機器學習。
記住我們對人工智能的簡單定義,即機器展示的智能。這基本上描述了機器從信息中學習并應用所學知識做事以及繼續從經驗中學習的能力。
在許多人工智能應用中,機器學習是人工智能應用過程中用于學習的一組技術。一些具體技術可以被視為人工智能和機器學習的子集,通常包括神經網絡和深度學習,如圖4-1所示:

▲圖4-1 人工智能,機器學習,神經網絡和深度學習之間的關系
我非常喜歡這個簡潔的機器學習定義,這是我在谷歌設計博客文章中讀到的:“機器學習是一門根據模式和關系進行預測的科學,這些模式和關系是從數據中自動發現的。”
我對機器學習通常的非技術定義是:機器學習是不需要顯性編程,從數據中自動學習的過程,而且具有根據經驗擴展知識的能力。
機器學習與基于規則技術的關鍵區別在于不需要顯性編程,特別是在特定領域、行業和業務功能方面。諸如深度學習之類的高級技術可能根本不需要領域的專門知識,而在其他情況下,領域的專門知識是以選擇或設計訓練模型特征的形式提供的(在非機器學習應用程序中,稱為變量、數據字段或數據屬性)。
在這兩種情況下,不需要顯性編程絕對關鍵,而且實際上是機器學習要理解的最為重要的方面。讓我們通過下面的案例來解釋。
在機器學習出道之前,假設您是負責創建預測模型的程序員,該模型能夠預測某類貸款的申請人是否會拖欠,因此決定是否應該批準該筆貸款。為此您可能編寫一個很長的專門針對金融行業的軟件程序,輸入個人的FICO分數、信用記錄和貸款申請類型等信息。
代碼包含許多非常明確的編程語句(例如條件語句和循環語句)。偽代碼看上去(用普通英語編寫的代碼)可能像下面這樣:
- If the persons FICO score is above 800, then they will likely not default
- and should be approved
- Else if the persons FICO score is between 700 and 800
- If the person has never defaulted on any loan, they will likely not
- default and should be approved
- Else the will likely default and should not be approved
- Else if the persons FICO score is less than 700
- ...
這是一個非常顯性的編程(基于規則預測的模型)案例,它包含以代碼形式表達的貸款行業特定領域的專業知識。該程序屬于硬編碼,只能做一件事。它需要領域及行業的專業知識來確定規則(場景)。
該程序非常死板,不一定代表所有可能導致潛在貸款違約的因素。對于貸款行業出現的各種新變化,還必須通過手動輸入來更新程序。
看得出來這種方式不是特別有效或最優,也不會產生可能的最佳預測模型。另一方面,機器學習使用正確的數據卻可以做到這一點,而且無需任何顯性編程,特別是包含貸款行業專業知識的代碼。
這里對機器學習做出了有些過于簡單的解釋,機器學習能夠在不知道相關數據或領域的情況下以數據集作為輸入,經過同樣不知道相關數據或領域的機器學習算法處理生成預測模型,該模型擁有專業知識并了解如何將輸入映射到輸出,使最準確的預測成為可能。
如果能理解這一點,大概就在高層次上理解了機器學習的目的。
值得一提的是,雖然機器學習算法本身能夠在不需要顯性編程的情況下學習,但是在構思、構建和測試基于機器學習的人工智能解決方案的整個過程中,仍然非常需要人的參與。
03 機器學習的方式
機器通過各種不同的技術從數據中學習,其中最主要的包括有監督、無監督、半監督、強化和轉移學習。用于訓練和優化機器學習模型的數據通常被分為有標簽和無標簽兩類,如圖4-2所示。

▲圖4-2 有標簽與無標簽數據
有標簽數據有目標變量或值,對于給定的特征值組合(也稱為變量、屬性、字段),可以對目標變量或值進行預測。預測建模(機器學習的應用)在有標簽數據集上訓練模型,然后預測新特征值組合的目標值。因為數據集中存在目標數據所以稱為有標簽數據。
另一方面,無標簽數據也有特征值,但沒有特定的目標數據或標簽。這使得無標簽數據特別適合于分組(即聚類和分割)及異常檢測。
值得注意的是,很不幸,可能很難獲得足夠數量的有標簽數據,而且產生這些數據可能會花費大量的金錢和時間。可以把標簽自動添加到數據記錄中,也可能需要人工添加(數據記錄也稱為樣本,可以想象為電子表格中的一行)。
有監督學習是指使用有標簽數據的機器學習,而無監督學習使用無標簽數據。半監督學習使用有標簽和無標簽的混合數據。
讓我們從高層次簡要討論不同的學習類型。有監督學習有許多潛在的應用,如預測、個性化推薦系統和模式識別。
有監督學習又被進一步細分為回歸和分類兩類應用。這兩種方法都被用來做預測。回歸主要用于預測單個離散或實數值,而分類則用于將一個或多個類分配給某組輸入數據(例如電子郵件中的垃圾或非垃圾郵件)。
無監督學習最常見的應用是聚類和異常檢測,一般來說,無監督學習主要聚焦在模式識別。其他應用包括主成份分析(PCA)和奇異值分解(SVD)的降維(減少數據變量的數量,簡化模型的復雜性)。
盡管基礎數據無標簽,但是當標簽、特征或配置通過無監督學習過程本身以外的過程應用于集群(分組)發現時,無監督學習技術就可以應用到有用的預測中。
無監督學習的挑戰之一是沒有特別好的方法來確定無監督學習生成模型的性能。輸出全憑您對它的理解,沒有正確或錯誤。這是因為數據中沒有標簽或目標變量,因此沒有可用于比較模型結果的數據。盡管存在這種局限性,無監督學習仍然非常強大,并且有許多實際應用。
當無標簽數據很豐富,而有標簽數據不多時,半監督學習可以是一種非常有用的方法。
在涉及有標簽和無標簽數據的機器學習任務中,該過程接受數據輸入并將其映射到某種類型的輸出。大多數機器學習模型的輸出非常簡單,要么是一個數字(連續的或離散的,例如3.1415),要么是一個或多個類別(即類;例如“垃圾郵件”,“熱狗”),要么是概率(例如35%的可能性)。
在更高級的人工智能案例中,輸出可能是結構化的預測(即一組預測值而非單個值),預測的一系列字符和單詞(例如短語、句子),或最近芝加哥小熊隊比賽的人工生成簡要報道(加油小熊!)
04 人工智能的定義和概念
前面給出了人工智能的簡單定義,即機器展示的智能,其中包括機器學習和諸如深度學習之類的特定技術子集。在進一步明確人工智能的定義之前,我們先定義普通智能的概念。智能的定義是:
學習、理解和應用所學的知識來實現一個或多個目標。
因此,智能基本上是利用所學知識實現目標和執行任務的過程(對人類來說,例子包括決策、交談和做事)。現在已經定義了普通智能,很容易看出人工智能只是機器展示的智能。
更具體地說,人工智能描述的是:當一臺機器能夠從信息(數據)中學習,產生某種程度的理解,然后利用所學知識去做一些事情。
人工智能領域涉及并從一些科學中吸取經驗,包括神經科學、心理學、哲學、數學、統計學、計算機科學、計算機程序設計等。因為人工智能的基礎及其與認知關系,它有時也被稱為機器智能或認知計算;也就是說與形成知識和理解有關的心理過程。
更具體地說,認知和更廣泛的認知科學領域是用來描述大腦的過程、功能和其他機制的術語,這些機制使收集、處理、存儲和使用信息生成智能和驅動行為成為可能。認知過程包括注意力、知覺、記憶、推理、理解、思考、語言、記憶等等。其他相關的、更深層次的哲學概念包括思想、感覺、感受和意識。
那么是什么力量推動智能呢?對于人工智能應用,答案是以數據形式提供的信息。對于人類和動物來說,通過五官從經驗和周圍環境中不斷收集新信息。然后把這些信息傳遞給大腦的認知過程和功能。
令人驚訝的是,人類還可以通過運用已有的信息和知識來理解和形成有關其他事物的知識,以及形成人們對新話題的想法和看法,例如,從大腦中學習已有的信息和知識。有多少次思考過一些已經理解了的信息,然后一個“啊哈!”導致對其他事物有了全新理解的時刻?
經驗因素也嚴重影響人工智能。人工智能是通過利用給定任務的相關數據進行訓練和優化過程實現的。隨著新數據的出現,人工智能應用可以不斷地更新和改進,這是人工智能從經驗中學習的一面。
能夠不斷地從新數據中學習很重要,其原因很多。首先,世界及人類在不斷地變化。新技術潮來潮往,創新不斷出現,舊產業被顛覆。
例如今天網上購物的數據可能與您明天或幾年后的完全不同。汽車制造商可能會開始問,什么因素對購買飛行車輛的貢獻最大,或許不是目前正在日益普及和廣泛使用的電動汽車。
最終,數據和從中訓練出來的模型會過時,該現象被稱為模型漂移。因此,通過不斷學習新數據繼續獲得經驗和知識,更新任何人工智能應用至關重要。
05 數據推動人工智能
人工智能、機器學習、大數據、物聯網和任何其他形式的分析驅動的解決方案都有一個共同點:數據。事實上,數據為數字技術的各個方面提供了動力。
1. 大數據
世界從未像今天這樣收集或存儲過如此之多的數據。此外,數據的多樣性、容量和生成速率正在以驚人的速度增長。
大數據領域是關于如何高效地從那些龐大、多樣和快速移動的數據集中,有效地獲取、集成、準備和分析信息。但是,由于硬件及計算條件的限制,從數據集中處理和提取數值可能不具備可行性或不可實現。
為了應對這些挑戰,需要創新硬件工具、軟件工具和分析技術。大數據是用來描述數據集、相關技術和訂制工具組合的術語。
此外,如果沒有某種形式的伴隨性分析(除非數據是貨幣化的),任何類型的數據基本上都沒有用途。除了前面給出的描述之外,人們還用大數據來描述在非常大的數據集上進行的分析,這可能包括諸如人工智能和機器學習之類的先進分析技術。
可以把數據從高層次分為結構化、非結構化和半結構化三類,如圖4-4所示。

▲圖4-4 數據類型
2. 特定的數據源
有許多特定類型的數據源,任何大型公司都有許多數據源在同時使用。某些類型的數據可以用于自動化和優化面向客戶的產品和服務,而其他類型的數據更適合于優化內部應用。以下是一份可能的數據源清單,我們將逐一討論:
- 客戶
- 銷售和營銷運營
- 活動和交易
- 物聯網
- 非結構化
- 第三方
- 公共
大多數公司都在使用客戶關系管理工具(客戶關系管理系統)。這些工具用來管理現有和潛在的客戶、供應商和服務提供商之間的互動關系。
此外,許多客戶關系管理系統工具可以采用本地部署或集成的方式來管理多種渠道的客戶營銷、通信、目標定位和個性化。因此,客戶關系管理系統工具對于以客戶為中心的人工智能應用來說是非常重要的數據源。
盡管許多公司使用客戶關系管理系統工具作為其主要的客戶數據庫,但客戶數據平臺(CDP)工具(如Agilone),通過整合客戶行為、參與度和銷售方面的數據源,創建單一、統一的客戶數據庫。類似于數據倉庫,客戶數據平臺(CDP)工具旨在供非技術人員使用,用于推動高效分析、洞見收集和目標營銷。
銷售數據即使不是公司最重要的數據,也應該是比較重要的數據。典型的數據源包括那些有實體營業網點的銷售點數據、在線購物應用的電子商務數據以及服務銷售的應收賬款數據。許多實體公司也在網上銷售產品,因此能夠同時使用這兩種數據源。
市場營銷部門通過多個渠道向客戶傳達和提供報價,并生成相應的基于特定渠道的數據。常見的營銷數據源包括電子郵件、社交、付費搜索、程序廣告、數字媒體參與(如博客、白皮書、網絡研討會、信息圖表)和移動應用通知推送。
運營數據以業務功能和流程為中心。示例包括與客戶服務、供應鏈、庫存、訂購、IT(如網絡、日志、服務器)、制造、物流和會計相關的數據。運營數據通常最適合用于深入了解公司的內部運營,改進甚至自動化流程,以實現諸如提高運營效率和降低運營成本等目標。
像軟件即服務(SaaS)和移動應用這些主要圍繞數字產品的公司,通常會生成和收集大量基于事件和事務的數據。
值得注意的是,盡管單個銷售的數據可以被認為屬于交易性質,但并非所有銷售數據都與交易有關。事件和事務數據可以包括銀行轉賬、提交應用、放棄在線購物車、用戶交互和參與數據(如點擊數流)以及由谷歌分析等應用收集的數據。
研究表明,隨著物聯網革命的全面展開,2025年將通過全球超過750億臺連接設備創造高達11萬億美元的經濟價值。毋庸諱言,連接的設備和傳感器所產生的數據量越來越大。這些數據對人工智能應用非常有價值。
公司還擁有大量非常有價值的非結構化數據,這些數據通常大都未被使用。前面討論過的非結構化數據可以包括圖像、視頻、音頻和文本。源于產品或服務的客戶評論、反饋和調查結果等文本數據對于自然語言處理應用特別有用。
最后,公司通常會使用多個第三方的軟件工具,這些工具可能沒有在本節中提到。許多軟件工具允許數據與其他工具集成,也可以導出以便于分析和轉移。在許多情況下,可以購買第三方的數據。
最后,隨著互聯網的爆炸式增長和開放源碼運動的開展,還可以使用大量免費、可用和非常有價值的公開數據。