一、你了解機器學習技術體系嗎
人工智能(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庫不再單一講解,會提供學習地址。