天天看點

AI的背景知識及機器學習一、AI的前世今生二、AI的技術體系

約6千字,主要内容為機器學習的幾大分類及其基本内涵,後續我會補充關于AI的應用場景、相關技術領域(如計算機視覺、自然語言處理等)的總結。由于目前正在學習,比較嚴謹的部分我都用摘抄的形式并注明了來源。

一、AI的前世今生

1.AI的誕生

1936年,阿蘭圖靈發表《論數字計算在決斷難題中的應用》,提出一種抽象的計算模型——圖靈機,論文英文标題為《On Computable Numbers, with an Application to the Entscheidungsproblem》

1950年,圖靈發表論文《計算機器與智能》,提出著名的“圖靈測試”,不僅如此,其論文中提到的“機器學習”、“遺傳算法”、“強化學習”等理論,成為了日後人工智能領域的重要分支。

(圖靈的這兩篇文章都可以在網上找到原文,感興趣的可以去讀讀,對圖靈感興趣的推薦《圖靈的秘密:他的生平、思想及論文解讀》以及電影《模拟遊戲》。

關于圖靈測試,《科學的極緻:漫談人工智能》中給了一個非常有意思的描述。)

1956年達特茅斯會議:AI概念誕生,1956被稱為人工智能元年。參與會議的幾人如John McCarthy、Marvin Minsky,他們的研究對人工智能的發展有着深遠的影響。

AI的背景知識及機器學習一、AI的前世今生二、AI的技術體系

達特茅斯會議與會者50年後重聚

2.AI的三大門派

符号主義:計算機始于數理邏輯,使用符号的方式來研究智能推理。代表成果是1957年的數學定理證明程式LT(證明了38條數學定理),随後相繼出現了啟發式算法->專家系統->知識工程理論與技術。其中專家系統的成功開發與應用,為人工智能走向工程應用和實作理論聯系實際具有特别重要的意義。

連接配接主義:基于神經元網絡和深度學習,仿照人類的神經元,用計算機來呈現人的神經模型進而仿造智能,包括現在很火的神經網絡、深度學習。首先出現了以感覺機(perceptron)為代表的腦模型研究的短暫熱潮,随着多層網絡中的反向傳播算法(即BP算法)的提出,連接配接主義開始爆發,目前所經曆的這場AI熱潮正是連接配接主義的主場。

行為主義:核心是控制論,而控制論的核心是負回報調節,其認為可以通過不斷的回報-調整實作進化計算進而達到智能。早期的研究工作重點是模拟人在控制過程中的智能行為和作用,如自尋優、自适應、自鎮定、自組織和自學習等控制論系統,并進行“控制論動物”的研制。

3.AI的第一次發展熱潮(1956-1976)

關鍵詞:符号主義、早期推理系統、早期神經網絡(連接配接主義)、專家系統

這次浪潮的核心是符号主義,圖靈提出圖靈測試的概念後,數學證明系統、知識推理系統、專家系統相繼取得較大的突破,然而受限于計算機性能和算法理論,無法取得更大的突破。

連接配接主義Minsky發表了文章《K-lines: A Theory of Memory》基本上否定了神經網絡大規模學習的能力。在這篇文章影響下,符号主義和連接配接主義基本上陷入消沉。

4.AI的第二次熱潮(1976-2006)

關鍵詞:統計學派、機器學習、神經網絡

符号主義沒有再興起,連接配接主義重獲新生。幾個重要的進展:自組織網絡、感覺機(最簡單的神經元網絡)、反向傳播網絡(BackPropagation,即著名的BP網絡,可以說這次人工智能浪潮的奠基石)

AI的背景知識及機器學習一、AI的前世今生二、AI的技術體系

1986年提出的一個兩層神經元網絡(BP網絡)

5.AI的第三次熱潮

關鍵詞:大資料、深度學習、AlphaGo

連接配接主義盛行,資料、算法和算力多方面的進步,深度學習取得突破。第二次和第三次浪潮都是以連接配接主義為核心,差別是深度學習的成功。此外有兩個重要的因素——硬體的進步(CPU/GPU參考摩爾定律)、卷積神經網絡模型和參數調整技巧的進步(合适的參數與神經模型可以大大增大收斂速度,縮小模型訓練時間)。

6.AI的内涵

什麼是AI?很多書籍、很多名人大牛都給過他們的見解,我這幾摘抄幾句。

維基百科對AI的解釋:Artificial intelligence (AI, also machine intelligence, MI) is intelligence demonstrated by machines, in contrast to the natural intelligence(NI) displayed by humans and other animals.

AI的背景知識及機器學習一、AI的前世今生二、AI的技術體系

人工智能的定義

AI的不同層次:弱人工智能、強人工智能、超人工智能

AI的背景知識及機器學習一、AI的前世今生二、AI的技術體系

AI的不同層次

7.AI的社會影響

産業變革、失業和社會保障問題、貧富差距問題、地區發展不均衡問題、産業結構問題、服務業變革、教育、人機協同時代的個人成長。

二、AI的技術體系

1.數學基礎

關鍵詞:微積分、線性代數、機率論、資訊論、集合論和圖論、博弈論

相信很多人開始想學習AI,網上都會推薦吳恩達教授的機器學習視訊,看過視訊的會知道,其中涉及到的數學知識其實很有限,主要是線性代數的知識。

在上面解釋AI定義的一張圖中,展示了與AI相關聯的衆多學科,不過從産品的角度來說,并不是要求每一個領域都要精通,知其然即可,當然知識是多多益善啦。

2.計算機基礎

關鍵詞:計算機原理、程式設計語言、作業系統、分布式系統、算法原理

這部分屬于“産品經理需要懂的技術知識”,前面幾點不論是網際網路PM還是AI PM都應該有一定的了解。對于算法,AI PM可能需要有更深的了解,因為它的角色定位很不僅是産品的跟進管理等等,可能需要根據實際的目标效果去優化算法模型。不一定要會敲代碼去實作算法,但是要知道算法是如何運作的,比如CNN的幾個層分别起什麼作用、最大值池化和均值池化有什麼差別?

關于算法這部分,推薦幾本書,《終極算法》、《算法圖解》(介紹了比較常見的一些算法,語言主要是容易了解)、《算法神探》(用小說的口吻去介紹算法,略牽強,易了解)、《算法導論》(經典,看完需要毅力)

3.機器學習

提到機器學習,那麼肯定繞不過吳恩達教授的教學視訊,不多說,去看吧!(這個視訊不是必經之路,了解機器學習有很多其他途徑,隻是這個視訊覆寫算比較全,偏實際應用,适合初學者)

AI的背景知識及機器學習一、AI的前世今生二、AI的技術體系

機器學習是做什麼的

3.1 什麼是機器學習?

以下是機器學習幾個定義:

百度百科:專門研究計算機怎樣模拟或實作人類的學習行為,以擷取新的知識或技能,重新組織已有的知識結構使之不斷改善自身的性能。它是人工智能的核心,是使計算機具有智能的根本途徑,其應用遍及人工智能的各個領域,它主要使用歸納、綜合而不是演繹。

維基百科:Machine learning is a field of computer science that gives computer systems the ability to "learn" (i.e. progressively improve performance on a specific task) with data, without being explicitly programmed.——ArthurSamuel (1959)

通俗的說,機器學習就是讓機器自己去學習,通過學習到的知識來指導進一步的判斷。我們用大量的帶标簽的樣本資料來讓機器進行運算,并設計損失函數,通過不斷的疊代,計算機可以學會如何分類使得損失函數最小。這些學習到的分類可以用來進行預測,具體應用覆寫了從通用人工智能應用到專業人工智能應用的大多數領域。(極客研報)

我們常用的Exel中利用散點圖來進行回歸預測,這實際上就是一種機器學習。

AI的背景知識及機器學習一、AI的前世今生二、AI的技術體系

機器學習與人腦思考的對比,圖檔來自網絡

3.2 機器學習的分類

關于機器學習的分類,目前主流的幾類如下:

AI的背景知識及機器學習一、AI的前世今生二、AI的技術體系

機器學習分類

(1)監督學習(Supervised Learning)

從已标注的訓練資料集中學習出一個模型,輸入一組未标注的資料時,可以根據訓練好的模型預測結果。監督學習的訓練集要包括輸入和預期輸出,預期輸出由人手動通過标簽進行标注,也就是“監督”。

監督學習算法分為兩大類——回歸分析、分類。處理離散型數值時,選擇分類算法;處理連續性數值,則選擇回歸算法。

回歸分析任務(Regression Analysis)

回歸是一種統計學的資料分析方法,目的在于了解兩個或多個變量間是否相關、相關強度,并建立數學模型進行預測。回歸任務包括線性回歸、多項式回歸、嶺回歸等。

舉例說明,資料集二維平面上的一系列點,訓練得到數學模型Y=f(X),則函數Y即為資料的标簽,對于測試集内的資料,通過模型運算即可得到标簽Y。

分類學習(Classification)

輸入:一組已标注的訓練資料,标簽為這些資料所屬的類别(2個或多個)

輸出:根據訓練集資料,訓練出合适模型參數,學習出一個适合這些資料與對應分類的分類器,使用這個分類器即可對未知的資料進行類别判斷。

一般來說,我們要訓練一個機器學習模型前,首先要有一定量的已标注的資料,為了評估訓練模型的學習能力,資料集通常會分為兩個部分,訓練集和測試集。訓練集(training set)是用來訓練模型的已标注資料(随機抽選約70%),剩下的已标注資料作為測試集,用來評估模型的好壞。通常先隐藏标簽,把測試集資料傳給訓練好的模型進行分類,将分類的結果與真實标簽對比即可。

那麼,如何評價分類模型的成果呢?召回率(Recall)+準确率(Precision)。

下面這張圖,相信很多人看到過。解釋一下,矩形區域是樣本,有标注為正類和負類兩種資料,圓形區域為預測為正類的區域,顯然綠色區域是預測正确的,簡稱TP;紅色區域預測錯誤,簡稱FP;圓形外的區域即為預測為負類的資料,FN和TN也同理。

AI的背景知識及機器學習一、AI的前世今生二、AI的技術體系

召回率和準确率的概念

精确率,又稱查準率,是針對預測結果而言,表示預測為正的樣本中有多少是預測正确的。

精确率= TP/(TP+FP)

召回率,又稱查全率,是針對全部樣本而言,表示樣本中的正類有多少是預測正确的。

召回率= TP/(TP+FN)

(注意:預測為正類和預測正确容易混淆)

理想情況下。希望模型精确率和召回率均越高越好,但某些情況下這兩個數值時有沖突的。

是以實際還會需要參考一些其他的名額:F值(F-Measure)、ROC、AUC。感興趣的可以去查閱一下。點選跳轉

監督學習常用算法:K-近鄰算法(KNN,分類資料最簡單最有效的算法)、樸素貝葉斯算法(基于機率論的分類法)、支援向量機(SVM)、決策樹、人工神經網絡(ANN)

(2)無監督學習(Unsupervised Learning)

與監督學習相比,無監督學習最大的特點是訓練樣本是沒有标簽的(或者有着相同的标簽),機器需要自己發現資料集内在的結構性知識。無監督學習中常見的應用是聚類和降維,此外還有異常檢測和自編碼網絡(AutoEncoder)。

聚類(Clustering)

聚類指面對大量未标注的資料,根據其内在“相關性”把資料分為幾個不同的類别,目标是使類别内的相關性大,類别間的相關性小。度量其“相關性”常見的幾種标準:歐氏距離(空間中兩點的距離)、曼哈頓距離、馬氏距離、夾角餘弦。

衡量聚類算法優劣的标準(摘自知乎清華大學資料科學研究院):

1)處理大的資料集的能力;

2)處理任意形狀,包括有間隙的嵌套的資料的能力;

3)算法處理的結果與資料輸入的順序是否相關,也就是說算法是否獨立于資料輸入順序;

4)處理資料噪聲的能力;

5)是否需要預先知道聚類個數,是否需要使用者給出領域知識;

6)算法處理有很多屬性資料的能力,也就是對資料維數是否敏感。

無監督學習或者聚類算法有着廣泛的應用,它可以用于組織大型計算機叢集(識别适合協同工作的機器)、社交網絡的分析(自動給出朋友分組)、市場分割(把顧客劃分到不同的細分市場)、天文資料分析等等。

聚類算法有很多種,層次式聚類方法、劃分式聚類方法(K-means)、基于密度、基于網絡等等,關于具體實作,這裡不贅述。推薦一個python第三方庫sklearn,裡面包含了多種聚類算法的實作。

降維(DimensionReduction)

大家可能聽過一個名詞——維數災難(Curse of Dimensionality),即在涉及到向量的計算的問題中,随着維數的增加,計算量會呈指數倍增長。在機器學習中,一些多元信号的處理,若直接用于識别的計算,計算量極大。如圖像的處理,每個像素就是一個次元,直接計算難度極大,是以需要對資料進行降維處理。

AI的背景知識及機器學習一、AI的前世今生二、AI的技術體系

降維算法的分類

上圖所示的降維算法,像LDA是屬于監督學習的範疇,PCA、MDS等屬于非監督學習,其中PCA(主成分分析)應該是最著名的一個降維算法了。

降維和聚類并不是獨立分開的,對大量的資料進行聚類時,第一步常常是進行降維,然後進行後續的步驟。此外為了資料的可視化,常常也需要降維操作。

異常檢測(Anomaly Detection)

異常檢測主要用于無監督學習,用于發現可能不應該屬于一個已定義的組中的資料。(實際上,監督的異常檢測和半監督的異常檢測也是有的,可以看下這篇文章:點選跳轉)

常用異常檢測算法類型:基于模型的統計學方法、基于鄰近度的離群點檢測、基于密度的離群點檢測、基于聚類的技術。

異常檢測主要的難點或挑戰(參考文章):

1)難以定義一個涵蓋所有正常行為的規則

2)某些異常行為為了不被發現常常表現得和正常行為很像

3)在許多領域正常行為也是不斷變化的,現在的正常行為不代表以後也是正常的

4)用于訓練的标記資料的可用性是一個重要因素

5)資料異常難以檢測和區分

異常檢測這部分我沒有仔細去了解,先留下兩篇文章供參考:

Stanford機器學習---第十一講.異常檢測

機器學習之異常檢測

生成對抗網絡(Generative Adversarial Networks)

大概16年7月份的時候,一款國外的app火便了全世界——Prisma。Prisma可以按照你提供的圖檔内容和指定的風格,生成一副指定風格的照片,其背後的技術就是GAN。

AI的背景知識及機器學習一、AI的前世今生二、AI的技術體系

Prisma app轉換圖像風格

GAN是無監督中最有前景的發展之一,目前多應用在圖像生成領域,關于它的應用前景,可參考這個知乎問題:生成式對抗網絡GAN有哪些最新的發展

(3)半監督學習(Semi-supervised Learning)

半監督學習,顧名思義就是在監督學習和無監督學習之間的領域,其目标是解決監督學習中未标注資料和無監督學習中已标注資料的使用問題,使資料最大化被利用。

前面說到在監督學習中,需要大量帶人工标注的資料,無标注的資料是不可用的。但是在很多實際問題中,隻有少量資料是帶标簽的,對剩餘的資料進行标注往往成本太高。不過未标注和已标注的資料都是從同樣的資料源獨立分布采樣而來,可以首先對資料做一個假設,聚類假設或流形假設。

聚類假設(Cluster Assumption)

聚類假設是指處在相同聚類中的示例有較大的可能擁有相同的标記。根據該假設,決策邊界就應該盡量通過資料較為稀疏的地方,進而避免把稠密的聚類中的資料點分到決策邊界兩側。在這一假設下,大量未标記示例的作用就是幫助探明示例空間中資料分布的稠密和稀疏區域,進而指導學習算法對利用有标記示例學習到的決策邊界進行調整,使其盡量通過資料分布的稀疏區域。

流形假設(Manifold Assumption)

流形假設是指處于一個很小的局部鄰域内的示例具有相似的性質,是以,其标記也應該相似。這一假設反映了決策函數的局部平滑性。和聚類假設着眼整體特性不同,流形假設主要考慮模型的局部特性。在該假設下,大量未标記示例的作用就是讓資料空間變得更加稠密,進而有助于更加準确地刻畫局部區域的特性,使得決策函數能夠更好地進行資料拟合

相關閱讀:淺談流行假設

(4)強化學習(Reinforcement Learning)

從Alpha Go到Alpha Zero,其核心就是深度學習和強化學習,強化學習在控制和遊戲領域應用十分廣泛。

強化學習就是程式或智能體(agent)通過與環境不斷地進行互動學習一 個從環境到動作的映射,學習的目标就是使累計回報最大化。(關于智能Agent的描述,強烈推薦閱讀《人工智能:一種現代方法》第三版,後續我也會總結一篇文章)強化學習、監督和半監督的差別

監督學習可以學習從輸入到輸出之間的一個映射,學習資料之間的結構關系,非監督學習學習的是從輸入到輸出的模式。強化學習同樣是學習從輸入到輸出的映射,不同的是強化學習模型輸出的是獎勵函數(reward function),判斷這個行為是優是劣。需要注意的是,獎勵函數是一種強化信号,強化信号是對機器行為的好壞的一種評價,而不是告訴強化學習系統如何去産生正确的動作。

基本原理:如果Agent的某個行為政策導緻環境正的獎賞(強化信号),那麼Agent以後産生這個行為政策的趨勢便會加強。Agent的目标是在每個離散狀态發現最優政策以使期望的折扣獎賞和最大。

常用算法:馬爾可夫決策過程(Markov Decision Process) 、蒙特卡洛強化學習、Q-learning算法

更多内容可以閱讀這篇文章:一文了解強化學習

(5)深度學習(Deep Learning)

深度學習的概念源于人工神經網絡的研究。含多隐層的多層感覺機是一種深度學習結構。深度學習通過組合低層特征形成更加抽象的高層表示屬性類别或特征,以發現資料的分布式特征表示。

AI的背景知識及機器學習一、AI的前世今生二、AI的技術體系

一個簡單的神經網絡模型

深度學習的幾個基本概念:激活函數、卷積、pooling、dropout、BP神經網絡、CNN、RNN、LSTM、前饋神經網絡、正則化、最大似然估計和貝葉斯統計、過拟合、KNN和SVM

關于深度學習如CNN和RNN,這裡先不較長的描述,後續會結合具體的應用技術再詳細介紹,如人臉識别中CNN的應用。