終于有人把大數據、機器學習、數據科學講明白了
數據的爆炸式增長及其可用性推動了人工智能(AI)的發(fā)展。你給人工神經網絡提供的信息越多,它學習的速度就越快,能力也就越強。
在啟動人工智能項目之前,需要考慮數據在該項目中所起的作用以及如何使用這些數據,例如,你必須決定是只想分析數據以獲得洞察力,還是希望利用機器學習技術處理數據并進行預測。要做出這些決策你需要了解一些關鍵概念,包括大數據、數據科學和數據挖掘。
本文闡明了數據在人工智能項目中所起的作用,并幫助你在如何應用人工智能上做出明智決策,充分利用當前可以使用的大量數據以及將來可以獲得的、不斷增長的數據。
01 理解大數據的基本概念
大數據一般指可以被計算機分析以揭示模式、趨勢和關聯(lián)關系的巨大數據集。但是如果你閱讀最初出現大數據這個詞的報告,會發(fā)現作者并沒有把“大數據”當作一個術語。他們用它來描述一個問題,比如“我們有一個大的數據(BIG data)問題”,而不是“我們有一個大數據(BIG-DATA)問題”。
我們在存儲和處理大量生成的數據時會遇到很多困難。在一家公司升級其內部數據倉庫后不久,數據量很可能就超過了該數據倉庫的容量。數據倉庫無法跟上流入它的數據量和種類,或者沒有足夠的處理能力從這些數據中生成報告。
現在許多公司在一天結束時運行報告生成程序,所以報告將在第二天上午或下午完成。在另外一些公司,許多員工同時查詢數據,他們必須等待數小時才能得到結果,如果系統(tǒng)因處理能力不足而崩潰或凍結,他們必須重新開始。其中許多業(yè)務(如證券交易所)依靠實時報告來保持競爭力。
問題會越來越多。據估計,在未來十年內,全世界將有超過1500億個聯(lián)網傳感器,每個傳感器每年365天7×24小時地生成數據。想象一下人類一天之內在Facebook、Twitter、Google、在線購物網站、在線游戲網站等網站上生成的所有數據,你就知道數據量有多大!
我們覺得,大數據既是一個問題,也是一個機遇。大數據是一個問題,因為你需要確定是處理大量數據集,還是處理更適中的數據。也許你只需要使用更小的數據集來監(jiān)控和分析網站的使用情況,或者衡量營銷策略的有效性。
然而,如果需要分析大量的數據集(例如,為了找到治愈感冒的方法),你需要規(guī)劃你的存儲和處理技術。但大數據也是一個機遇,如果沒有大數據,人工智能就無法利用海量數據來構建精確的模型用于識別模式、進行預測。
02 與數據科學家合作
如果你正在開發(fā)一個需要大數據的人工智能應用,最好與數據科學家合作,或者至少咨詢一下。數據科學家接受各種學科的培訓,包括編程、數據管理和統(tǒng)計,通過了解如何收集、分析和解釋數據來達到幫助業(yè)務進行決策的目的。
機器學習不是數據科學家的必須工作技能。例如,數據科學家可能會問一些你從未想過要問的問題,以幫助你更清楚地了解試圖從數據中提取的知識,這可能是一個問題的答案、一個難題的解決方案,或是對可能引發(fā)系統(tǒng)故障的各種因素的洞察。
為了實現這一目標,數據科學家可以使用或推薦工具來收集、分析和解釋數據。數據科學家可能會發(fā)現你真的不知道自己在這些數據中尋找什么,并幫助你開發(fā)一個機器學習系統(tǒng)來識別數據中可能存在的模式,這種模式有可能提供你從未想過的某種洞察力。
簡言之,數據科學家可以幫助你評估數據并分析需求、提供解決方案,讓你最大限度地利用數據。
03 機器學習與數據挖掘的區(qū)別
在處理數據時(不管數據集的大小),可能會遇到大量術語。兩個經常被混淆的術語是數據挖掘和機器學習(見圖5.1)。
- 數據挖掘是從數據中提取有用信息或見解的任何數據處理方法。(請注意,你并不是在挖掘數據,而是從這些數據中挖掘信息和見解。)
- 機器學習是一門讓計算機去做它們沒有被設定好怎么去做某項事情(即不是死板地、程式化地去做事情)的科學。
數據挖掘可以使用機器學習從數據中提取有用的信息或見解,但不一定非要使用機器學習技術。
機器學習和數據挖掘的另一個關鍵區(qū)別是它們所使用的技術。使用機器學習,首先要訓練一個模型,然后使用一個用Python、R或其他一些計算機語言編寫的機器學習框架。
數據挖掘通常使用更廣泛的工具集,包括可視化和商業(yè)智能工具,其中許多工具的功能單一,只以類似但比電子表格應用程序更復雜的方式提取、排序、匯總和呈現數據。
04 從數據挖掘到機器學習的飛躍
從數據挖掘到機器學習的飛躍并不像一開始看起來那么具有挑戰(zhàn)性。如果你已經在處理大數據并從中提取有價值的見解,那么已經具備了管理這些數據的專業(yè)技能。你可以找到大量的軟件能夠創(chuàng)建報告和可視化你的數據。機器學習只是從數據中提取價值的工具。
很有可能你已經有了一個數據管理團隊,并且團隊中的人習慣于使用大型數據集。他們可能熟悉下載Python語言編寫的框架來操作這些數據集。要使用機器學習,他們只需要以不同的方式利用這些數據就可以了。他們需要訓練神經網絡等機器學習模型,并從數據中尋找有價值的模式,而不是直接從數據中挖掘有價值的信息。
我曾為幾家公司工作過,這些公司多年來一直致力于開發(fā)大型數據項目。他們認為向機器學習的飛躍和向大數據的飛躍一樣困難。事實上,利用機器學習技術更容易一些,因為這些團隊已經很了解Python和R,并且熟悉使用大型數據集。
最大的挑戰(zhàn)是讓團隊以不同的方式思考數據。他們需要創(chuàng)建訓練集并重新調整人工神經網絡中神經元(節(jié)點)的權重,這與他們習慣于使用大數據工具與數據直接交互的工作模式是不同的。
給大家一個警告:如果你的組織正在處理大數據,請記住,你有一把閃亮的新錘子并不意味著一切都是釘子。擁有大數據的企業(yè)往往容易被機器學習的價值所誤導,但機器學習并不總是最佳選擇。較小的人工智能項目可以通過符號方法更好地實現。不要以為你有數據,機器學習永遠是最好的選擇。
05 采用正確的方法
當你規(guī)劃一個涉及數據的項目時,也許最好的方法是忽略術語以及數據科學、數據挖掘和機器學習之間的區(qū)別。而不是將注意力放在試圖回答或解決的問題上,與數據科學家合作或者咨詢他們,盡快確定最佳的方法。以下是一些一般準則:
- 如果你需要從數據中提取有價值的信息,并且對希望獲得的信息(例如特定時間段內訪問網站的人數)有清晰的認識,那么數據庫(或數據倉庫)配合基本的商業(yè)智能軟件可能就足夠了。
- 如果你面對的是大數據,對回答某個疑問或解決某個特定問題沒有特別的思路(甚至可能沒有問題,或者心中也沒什么困惑,一片茫然),那么你可能需要使用某種(監(jiān)督或無監(jiān)督)機器學習技術。比如使用無監(jiān)督學習,可以將所有數據輸入機器學習模型,并查看它會產生什么結果。
我們來考慮這樣一個問題:假設你管理一家醫(yī)院,需要確定成功治療患者的方法??梢詮膸讉€不同的角度來應對這個挑戰(zhàn)(見圖5.2)。
一種選擇是組建自己的數據科學團隊,找出需要分析的數據類型。例如,團隊中的一個成員可能會問:“哪些醫(yī)生的成功率最高?”或“哪個病人的隨訪計劃產生最少的回訪次數?”……基于這些問題,數據科學團隊將選擇相關的數據集,分析數據、生成報告并討論他們的發(fā)現。這些報告可能導致更多需要進一步分析的問題。整個過程將需要進行密集的交流與討論。
另一種方法是在人工神經網絡上使用無監(jiān)督的機器學習技術。你把所有的數據輸入人工神經網絡,希望它能識別出有用的模式。有了這些模式,就要由你和你的團隊來確定這些模式的相關性,并找出相關模式背后的原因。
這些方法各有優(yōu)缺點。數據科學團隊可能會對見解背后的數據有更多的了解。他們會對數據有一種直觀的感覺,并開始問更多有趣的問題?;谌斯ど窠浘W絡的機器學習方法可能識別出不一樣的模式,因為它跟人類處理數據的方式是不一樣的,它還可以找到不可解釋的模式,這種模式對機器或許有意義,但人類可能無法理解。
使用人工神經網絡的一大缺點是它無法解釋某些模式背后的原因。例如,人工神經網絡可能顯示醫(yī)院使用的一種抗生素治療某些感染的成功率高于其他抗生素,但它不能解釋原因。原因可能是之所以它的效果更好,是因為副作用更少,病人更可能繼續(xù)服用。
另一種情況是,機器輸出結果,但是任何查看結果的人都無法解釋結果的含義。換句話說,結果對機器有意義,但對人沒有意義。因此,我們可以進行逆向工程,試圖了解為什么網絡是這樣工作的。然而,由于“規(guī)則”是不可解釋的,我們可能不知道為什么網絡產生了這樣的結果。
數據科學團隊可能會對數據有更好的感覺。他們會提出問題,利用自身的學習和理解從數據中發(fā)現關鍵的線索。他們不會考慮無限的可能性,而是將思考范圍縮小到最有可能的因素,如醫(yī)生、藥物或成功率最高的程序等。