大資料、人工智慧、機器學習與深度學習都是什麼?有什麼關係?

資料工程師陳晨發表於2019-04-15

大資料、人工智慧是目前大家談論比較多的話題,它們的應用也越來越廣泛、與我們的生活關係也越來越密切,影響也越來越深遠,其中很多已進入尋常百姓家,如無人機、網約車、自動導航、智慧家電、電商推薦、人機對話機器人等等。

大資料是人工智慧的基礎,而使大資料轉變為知識或生產力,離不開機器學習(Machine Learning),可以說機器學習是人工智慧的核心,是使機器具有類似人的智慧的根本途徑。

網際網路科技發展蓬勃興起,人工智慧時代來臨,抓住下一個風口。為幫助那些往想網際網路方向轉行想學習,卻因為時間不夠,資源不足而放棄的人。我自己整理的一份最新的大資料進階資料和高階開發教程,大資料學習群: 740041381就可以找到組織學習  歡迎進階中和進想深入大資料的小夥伴加入

本文主要介紹機器有關概念、與大資料、人工智慧間的關係、機器學習常用架構及演算法等,具體如下:

機器學習的定義
大資料與機器學習
機器學習與人工智慧及深度學習
機器學習的基本任務
如何選擇合適演算法
Spark在機器學習方面的優勢

01 機器學習的定義

機器學習是什麼?是否有統一或標準定義?目前好像沒有,即使在機器學習的專業人士,也好像沒有一個被廣泛認可的定義。在維基百科上對機器學習有以下幾種定義:

“機器學習是一門人工智慧的科學,該領域的主要研究物件是人工智慧,特別是如何在經驗學習中改善具體演算法的效能”。
“機器學習是對能通過經驗自動改進的計算機演算法的研究”。
“機器學習是用資料或以往的經驗,以此優化計算機程式的效能標準。”

一種經常引用的英文定義是:A computer program is said to learn from experience (E) with respect to some class of tasks(T) and performance(P) measure , if its performance at tasks in T, as measured by P, improves with experience E。

可以看出機器學習強調三個關鍵詞:演算法、經驗、效能,其處理過程如圖所示。

▲機器學習處理流程

上圖表明機器學習是使資料通過演算法構建出模型,然後對模型效能進行評估,評估後的指標,如果達到要求就用這個模型測試新資料,如果達不到要求就要調整演算法重新建立模型,再次進行評估,如此迴圈往復,最終獲得滿意結果。

02 大資料與機器學習

我們已進入大資料時代,產生資料的能力空前高漲,如網際網路、移動網、物聯網、成千上萬的感測器、穿戴裝置、GPS等等,儲存資料、處理資料等能力也得到了幾何級數的提升,如Hadoop、Spark技術為我們儲存、處理大資料提供有效方法。

資料就是資訊、就是依據,其背後隱含了大量不易被我們感官識別的資訊、知識、規律等等,如何揭示這些資訊、規則、趨勢,正成為當下給企業帶來高回報的熱點。

而機器學習的任務,就是要在基於大資料量的基礎上,發掘其中蘊含並且有用的資訊。其處理的資料越多,機器學習就越能體現出優勢,以前很多用機器學習解決不了或處理不好的問題,通過提供大資料得到很好解決或效能的大幅提升,如語言識別、影像設別、天氣預測等等。

03 機器學習、人工智慧及深度學習

人工智慧和機器學習這兩個科技術語如今已經廣為流傳,已成為當下的熱詞,然而,他們間有何區別?又有哪些相同或相似的地方?雖然人工智慧和機器學習高度相關,但卻並不盡相同。

人工智慧是電腦科學的一個分支,目的是開發一種擁有智慧行為的機器,目前很多大公司都在努力開發這種機器學習技術。他們都在努力讓電腦學會人類的行為模式,以便推動很多人眼中的下一場技術革命——讓機器像人類一樣“思考”。

過去10年,機器學習已經為我們帶來了無人駕駛汽車、實用的語音識別、有效的網路搜尋等等。接下來人工智慧將如何改變我們的生活?在哪些領域最先發力?我們拭目以待。

對很多機器學習來說,特徵提取不是一件簡單的事情。在一些複雜問題上,要想通過人工的方式設計有效的特徵集合,往往要花費很多的時間和精力。

深度學習解決的核心問題之一就是自動地將簡單的特徵組合成更加複雜的特徵,並利用這些組合特徵解決問題。深度學習是機器學習的一個分支,它除了可以學習特徵和任務之間的關聯以外,還能自動從簡單特徵中提取更加複雜的特徵。下圖展示了深度學習和傳統機器學習在流程上的差異。如圖所示,深度學習演算法可以從資料中學習更加複雜的特徵表達,使得最後一步權重學習變得更加簡單且有效。

▲機器學習與深度學習流程對比

前面我們分別介紹了機器學習、人工智慧及深度學習,它們間的關係如何?

▲人工智慧、機器學習與深度學習間的關係

人工智慧、機器學習和深度學習是非常相關的幾個領域。上圖說明了它們之間大致關係。人工智慧是一類非常廣泛的問題,機器學習是解決這類問題的一個重要手段,深度學習則是機器學習的一個分支。在很多人工智慧問題上,深度學習的方法突破了傳統機器學習方法的瓶頸,推動了人工智慧領域的快速發展。

04 機器學習的基本任務

機器學習基於資料,並以此獲取新知識、新技能。它的任務有很多,分類是其基本任務之一。分類就是將新資料劃分到合適的類別中,一般用於類別型的目標特徵,如果目標特徵為連續型,則往往採用迴歸方法。迴歸是對新目標特徵進行預測,是機器學習中使用非常廣泛的方法之一。

分類和迴歸,都是先根據標籤值或目標值建立模型或規則,然後利用這些帶有目標值的資料形成的模型或規則,對新資料進行識別或預測。這兩種方法都屬於監督學習。與監督學習相對是無監督學習,無監督學習不指定目標值或預先無法知道目標值,它可以將把相似或相近的資料劃分到相同的組裡,聚類就是解決這一類問題的方法之一。

除了監督學習、無監督學習這兩種最常見的方法外,還有半監督學習、強化學習等方法,這裡我們就不展開了,下圖展示了這些基本任務間的關係。

▲機器學習基本任務的關係

05 如何選擇合適演算法

當我們接到一個資料分析或挖掘的任務或需求時,如果希望用機器學習來處理,首要任務是根據任務或需求選擇合適演算法,選擇哪種演算法較合適?分析的一般步驟為:

▲選擇演算法的一般步驟

充分了解資料及其特性,有助於我們更有效地選擇機器學習演算法。採用以上步驟在一定程度上可以縮小演算法的選擇範圍,使我們少走些彎路,但在具體選擇哪種演算法方面,一般並不存在最好的演算法或者可以給出最好結果的演算法,在實際做專案的過程中,這個過程往往需要多次嘗試,有時還要嘗試不同演算法。不過先用一種簡單熟悉的方法,然後,在這個基礎上不斷優化,時常能收穫意想不到的效果。

06 Spark在機器學習方面的優勢

在大資料上進行機器學習,需要處理全量資料並進行大量的迭代計算,這要求機器學習平臺具備強大的處理能力。Spark與Hadoop相容,它立足於記憶體計算,天然的適應於迭代式計算,Spark是一個大資料計算平臺,在這個平臺上,有我們大家熟悉的SQL式操作元件Spark SQL;功能強大、效能優良的機器學習庫Spark MLlib;還有影像處理的Spark Graphx及用於流式處理的Spark Streaming等,具體有以下優勢:
網際網路科技發展蓬勃興起,人工智慧時代來臨,抓住下一個風口。為幫助那些往想網際網路方向轉行想學習,卻因為時間不夠,資源不足而放棄的人。群裡是最新的大資料進階資料和高階開發教程,大資料學習qun:6O6“和,八五九,再就是7O5* 歡迎進階中和進想深入大資料的小夥伴。

完整的大資料生態系統:我們大家熟悉的SQL式操作元件Spark SQL,還有功能強大、效能優良的機器學習庫Spark MLlib、影像計算的SparkGraphx及用於流式處理的SparkStreaming等。
高效能的大資料計算平臺:因為資料被載入到叢集主機的分散式記憶體中。資料可以被快速的轉換迭代,並快取後續的頻繁訪問需求。基於記憶體運算,Spark可以比Hadoop快100倍,在磁碟中運算也比hadoop快10倍左右。
與Hadoop、Hive、HBase等無縫連線:Spark可以直接訪問Hadoop、Hive、Hbase等的資料,同時也可使用Hadoop的資源管理器。
易用、通用、好用:Spark程式設計非常高效、簡潔,支援多種語言的API,如Scala、Java、Python、R、SQL等,同時提供類似於shell的互動式開發環境REPL。

07 小結

本文簡單介紹了機器學習與大資料,與人工智慧的關係。同時也介紹了機器學習的一些基本任務和如何選擇合適演算法等問題,在選擇機器學習平臺時,這裡我們介紹了Spark這樣一個大資料平臺的集大成者,它有很多優勢,而且也得到越來越多企業的青睞。

相關文章