1. 程式人生 > >一、你瞭解機器學習技術體系嗎

一、你瞭解機器學習技術體系嗎

1.初識人工智慧

  人工智慧(Artificial Intelligence),英文縮寫為AI。它是研究、開發用於模擬、延伸和擴充套件人的智慧的理論、方法、技術及應用系統的一門新的技術科學。其屬於一門邊沿學科,屬於自然科學、社會科學、技術科學三向交叉學科。

  應用領域:機器視覺,指紋識別,人臉識別,視網膜識別,虹膜識別,掌紋識別,專家系統,自動規劃,智慧搜尋,定理證明,博弈,自動程式設計,智慧控制,機器人學,語言和影象理解,遺傳程式設計等。

  研究範疇:自然語言處理,知識表現,智慧搜尋,推理,規劃,機器學習,知識獲取,組合排程問題,感知問題,模式識別,邏輯程式設計軟計算,不精確和不確定的管理,人工生命,神經網路,複雜系統,遺傳演算法等。

  關注公眾號“程式設計師清辭”,獲取更多內容

  綜上可知,人工智慧是一項跨多種學科的領域,所涉及到的知識面非常廣泛。就其本質而言,是對人的思維的資訊過程的模擬,及通過複雜的邏輯去判斷事物所處的狀態,讓機器具有“獨立思考”的能力。本文將結合自身多年開發經驗和對人工智慧的認識,帶領大家對人工智慧領域的一個小分支--機器學習進行深入研究,深度理解機器學習中的常用演算法。雖然機器學習是人工智慧中的一小部分內容,但是確實人工智慧中的核心部分。

思考:那什麼又是機器學習呢?

2.初識機器學習

機器學習是一門多學科交叉專業,涵蓋概率論知識,統計學知識,近似理論知識和複雜演算法知識,使用計算機作為工具並致力於真實實時的模擬人類學習方式, 並將現有內容進行知識結構劃分來有效提高學習效率。

它是人工智慧的核心,是使計算機具有智慧的根本途徑。

3.機器學習的分類

監督學習(supervised learning):是指從標註的資料中學習預測模型的機器學習問題。標註資料表示輸入輸出的對應關係,預測模型對給定的輸入產生相對應的輸出。監督學習的本質是學習輸入到輸出的對映的統計規律,其研究的的方式多是分類和迴歸問題。

半監督學習(semi-supervised learning):是指從混合了少部分標註的資料的未標註資料中預測模型的機器學習問題。簡而言之,就是給定的資料集中小部分被標註,大部分沒有標註。這樣做的好處是節約了標註資料所花費的人工、時間等成本。其目的旨在利用未標註資料中的資訊,輔助標註資料進行監督學習,以較低的成本達到較好的學習效果。

無監督學習(unsupervised learning):是指從無標註資料中學習預測模型的機器學習問題。無標註資料是自然得到的資料,預測模型表示資料的類別、轉換或概率。無監督學習的本質是學習資料中的統計規律或潛在結構,其研究的方式多是聚類問題,即如何將特徵相似的資料進行歸類。

強化學習(reinforcement learning):是指智慧系統在與環境的連續互動中學習最優行為策略的機器學習問題。以環境反慣(獎/懲訊號)作為輸入,以統計和動態規劃技術為指導的一種學習方法。

4.常見機器學習演算法

4.1 K鄰近 – k-nearest neighbors | KNN

K鄰近演算法背後的原理是找到距離新點最近的預定義數量的訓練樣本,並從中預測標籤。樣本數可以是使用者定義的常數(k近鄰學習),也可以基於點的區域性密度而變化(基於半徑的鄰居學習)。距離通常可以是任何度量標準:標準歐幾里德距離是最常見的選擇。

4.2 線性迴歸 – Linear regression

線性迴歸是利用數理統計中迴歸分析,來確定兩種或兩種以上變數間相互依賴的定量關係的一種統計分析方法,運用十分廣泛。線性迴歸是一種非常簡單的迴歸分析方法,一般都是通過測試資料集確定變數之間的函式關係,通過這個函式關係預測結果集。

4.3 多項式迴歸 - Polynomial regression

多項式迴歸是對線性迴歸的擴充套件,分析的變數一般在兩個或兩個以上。同線性迴歸一樣,只是變數之間的關係變得更加複雜,多項式的最高次冪也不再侷限,一般都大於等於二次冪。

4.4 邏輯迴歸 – Logistic regression

邏輯迴歸雖被稱為迴歸,但其主要解決二分類問題,用來表示某件事情發生的可能性。常常被用來利用已知的自變數來預測一個離散型因變數的值。

4.5 樸素貝葉斯 – Naive Bayes classifier | NBC

樸素貝葉斯演算法是一種分類演算法。它不是單一演算法,而是一系列演算法,它們都有一個共同的原則,即被分類的每個特徵都與任何其他特徵的值無關。樸素貝葉斯分類器認為這些“特徵”中的每一個都獨立地貢獻概率,而不管特徵之間的任何相關性。然而,特徵並不總是獨立的,這通常被視為樸素貝葉斯演算法的缺點。簡而言之,樸素貝葉斯演算法允許我們使用概率給出一組特徵來預測一個類。與其他常見的分類方法相比,樸素貝葉斯演算法需要的訓練很少。在進行預測之前必須完成的唯一工作是找到特徵的個體概率分佈的引數,這通常可以快速且確定地完成。這意味著即使對於高維資料點或大量資料點,樸素貝葉斯分類器也可以表現良好。

4.6 支援向量機 – Support Vector Machine | SVM

基本思想可概括如下:首先,要利用一種變換將空間高維化,當然這種變換是非線性的,然後,在新的複雜空間取最優線性分類表面。由此種方式獲得的分類函式在形式上類似於神經網路演算法。支援向量機是統計學習領域中一個代表性演算法,但它與傳統方式的思維方法很不同,輸入空間、提高維度從而將問題簡短化,使問題歸結為線性可分的經典解問題。支援向量機應用於垃圾郵件識別,人臉識別等多種分類問題。

4.7 決策樹 – Decision tree

決策樹及其變種是一類將輸入空間分成不同的區域,每個區域有獨立引數的演算法。決策樹演算法充分利用了樹形模型,根節點到一個葉子節點是一條分類的路徑規則,每個葉子節點象徵一個判斷類別。先將樣本分成不同的子集,再進行分割遞推,直至每個子集得到同類型的樣本,從根節點開始測試,到子樹再到葉子節點,即可得出預測類別。此方法的特點是結構簡單、處理資料效率較高。

4.8 隨機森林 – Random forest

控制資料樹生成的方式有多種,根據前人的經驗,大多數時候更傾向選擇分裂屬性和剪枝,但這並不能解決所有問題,偶爾會遇到噪聲或分裂屬性過多的問題。基於這種情況,總結每次的結果可以得到袋外資料的估計誤差,將它和測試樣本的估計誤差相結合可以評估組合樹學習器的擬合及預測精度。此方法的優點有很多,可以產生高精度的分類器,並能夠處理大量的變數,也可以平衡分類資料集之間的誤差。

4.9 Boosting與Bagging演算法

Boosting是種通用的增強基礎演算法效能的迴歸分析演算法。不需構造一個高精度的迴歸分析,只需一個粗糙的基礎演算法即可,再反覆調整基礎演算法就可以得到較好的組合迴歸模型。它可以將弱學習演算法提高為強學習演算法,可以應用到其它基礎迴歸演算法,如線性迴歸、神經網路等,來提高精度。Bagging和前一種演算法大體相似但又略有差別,主要想法是給出已知的弱學習演算法和訓練集,它需要經過多輪的計算,才可以得到預測函式列,最後採用投票方式對示例進行判別。

4.10 整合學習 - Ensemble Learning

整合學習歸屬於機器學習,是一種訓練機器學習模型的思路,並不是某種具體的方法或者演算法。整合學習的核心思路就是對多種演算法進行融合,找出組合中最優的演算法組合,從而提升整體演算法的可靠性。在整合學習中並不會產生新的演算法,更多的是各個演算法的搭配作出調整。

5.機器學習分類

關注公眾號“程式設計師清辭”,獲取更多內容

6.前期準備及說明

前期準備:

(1)熟悉python3的基本語法。

(2)熟悉PyCharm 、 Jupyter 等開發工具,能夠下載安裝所依賴的庫。

(3)接觸過高等數學,目前數學水平至少在初中以上。

說明:

(1)本文並不準備針對零基礎程式設計的同學,面向群眾需滿足上面三種條件。

(2)本文中涉及到高等數學知識時,會進行部分講解及推導過程。

(3)本文中所使用的python庫不再單一講解,會提供學習地址。

&n