人工智能程序員入門算法學習大合集

人工智能這麼火,算法是核心要義,應該從哪些開始學習入門呢?

有監督學習

機器學習的常用方法,主要分為有監督學習(supervised learning)和無監督學習(unsupervised learning)。監督學習,就是人們常說的分類,通過已有的訓練樣本(即已知數據以及其對應的輸出)去訓練得到一個最優模型(這個模型屬於某個函數的集合,最優則表示在某個評價準則下是最佳的),再利用這個模型將所有的輸入映射為相應的輸出,對輸出進行簡單的判斷從而實現分類的目的,也就具有了對未知數據進行分類的能力。在人對事物的認識中,我們從孩子開始就被大人們教授這是鳥啊、那是豬啊、那是房子啊,等等。我們所見到的景物就是輸入數據,而大人們對這些景物的判斷結果(是房子還是鳥啊)就是相應的輸出。當我們見識多了以後,腦子裡就慢慢地得到了一些泛化的模型,這就是訓練得到的那個(或者那些)函數,從而不需要大人在旁邊指點的時候,我們也能分辨的出來哪些是房子,哪些是鳥。

算法一:決策樹

決策樹是一種樹形結構,為人們提供決策依據,決策樹可以用來回答yes和no問題,它通過樹形結構將各種情況組合都表示出來,每個分支表示一次選擇(選擇yes還是no),直到所有選擇都進行完畢,最終給出正確答案。

人工智能程序員入門算法學習大合集

算法二:樸素貝葉斯分類器

樸素貝葉斯分類器基於貝葉斯理論及其假設(即特徵之間是獨立的,是不相互影響的),P(A|B) 是後驗概率, P(B|A) 是似然,P(A)為先驗概率,P(B) 為我們要預測的值。   具體應用有:垃圾郵件檢測、文章分類、情感分類、人臉識別等。

人工智能程序員入門算法學習大合集

算法三:最小二乘法

如果你對統計學有所瞭解,那麼你必定聽說過線性迴歸。最小均方就是用來求線性迴歸的。如下圖所示,平面內會有一系列點,然後我們求取一條線,使得這條線儘可能擬合這些點分佈,這就是線性迴歸。這條線有多種找法,最小二乘法就是其中一種。最小二乘法其原理如下,找到一條線使得平面內的所有點到這條線的歐式距離和最小。這條線就是我們要求取得線。

人工智能程序員入門算法學習大合集

線性指的是用一條線對數據進行擬合,距離代表的是數據誤差,最小二乘法可以看做是誤差最小化。

算法四:邏輯迴歸

邏輯迴歸模型是一個二分類模型,它選取不同的特徵與權重來對樣本進行概率分類,用一各log函數計算樣本屬於某一類的概率。即一個樣本會有一定的概率屬於一個類,會有一定的概率屬於另一類,概率大的類即為樣本所屬類。具體應用有:信用評級、營銷活動成功概率、產品銷售預測、某天是否將會地震發生。

人工智能程序員入門算法學習大合集

算法五:支持向量機(SVM)

支持向量機是一個二分類算法,它可以在N維空間找到一個(N-1)維的超平面,這個超平面可以將這些點分為兩類。也就是說,平面內如果存在線性可分的兩類點,SVM可以找到一條最優的直線將這些點分開。SVM應用範圍很廣。具體應用有:廣告展示、性別檢測、大規模圖像識別等。

人工智能程序員入門算法學習大合集

算法六:集成學習

集成學習就是將很多分類器集成在一起,每個分類器有不同的權重,將這些分類器的分類結果合併在一起,作為最終的分類結果。最初集成方法為貝葉斯決策,現在多采用error-correcting output coding, bagging, and boosting等方法進行集成。

人工智能程序員入門算法學習大合集

無監督學習

無監督學習(也有人叫非監督學習,反正都差不多)則是另一種研究的比較多的學習方法,它與監督學習的不同之處,在於我們事先沒有任何訓練樣本,而需要直接對數據進行建模。這聽起來似乎有點不可思議,但是在我們自身認識世界的過程中很多處都用到了無監督學習。比如我們去參觀一個畫展,我們完全對藝術一無所知,但是欣賞完多幅作品之後,我們也能把它們分成不同的派別(比如哪些更朦朧一點,哪些更寫實一些,即使我們不知道什麼叫做朦朧派,什麼叫做寫實派,但是至少我們能把他們分為兩個類)。無監督學習裡典型的例子就是聚類了。聚類的目的在於把相似的東西聚在一起,而我們並不關心這一類是什麼。

算法七:聚類算法

聚類算法就是將一堆數據進行處理,根據它們的相似性對數據進行聚類。聚類算法有很多種,具體如下:中心聚類、關聯聚類、密度聚類、概率聚類、降維、神經網絡/深度學習。

人工智能程序員入門算法學習大合集

算法八:主成分分析(PCA)

主成分分析是利用正交變換將一些列可能相關數據轉換為線性無關數據,從而找到主成分。PCA主要用於簡單學習與可視化中數據壓縮、簡化。但是PCA有一定的侷限性,它需要你擁有特定領域的相關知識。對噪音比較多的數據並不適用。

人工智能程序員入門算法學習大合集

算法九:SVD矩陣分解

SVD矩陣是一個複雜的實復負數矩陣,給定一個m 行、n列的矩陣M,那麼M矩陣可以分解為M = UΣV。U和V是酉矩陣,Σ為對角陣。PCA實際上就是一個簡化版本的SVD分解。在計算機視覺領域,第一個臉部識別算法就是基於PCA與SVD的,用特徵對臉部進行特徵表示,然後降維、最後進行面部匹配。儘管現在面部識別方法複雜,但是基本原理還是類似的。

人工智能程序員入門算法學習大合集

算法十:獨立成分分析(ICA)

ICA是一門統計技術,用於發現存在於隨機變量下的隱性因素。ICA為給觀測數據定義了一個生成模型。在這個模型中,其認為數據變量是由隱性變量,經一個混合系統線性混合而成,這個混合系統未知。並且假設潛在因素屬於非高斯分佈、並且相互獨立,稱之為可觀測數據的獨立成分。ICA與PCA相關,但它在發現潛在因素方面效果良好。它可以應用在數字圖像、檔文數據庫、經濟指標、心裡測量等。

人工智能程序員入門算法學習大合集

那麼,什麼時候應該採用監督學習,什麼時候應該採用非監督學習呢?一種非常簡單的回答就是從定義入手,如果我們在分類的過程中有訓練樣本(training data),則可以考慮用監督學習的方法;如果沒有訓練樣本,則不可能用監督學習的方法。但是事實上,我們在針對一個現實問題進行解答的過程中,即使我們沒有現成的訓練樣本,我們也能夠憑藉自己的雙眼,從待分類的數據中人工標註一些樣本,並把他們作為訓練樣本,這樣的話就可以把條件改善,用監督學習的方法來做。當然不得不說的是有時候數據表達的會非常隱蔽,也就是說我們手頭的信息不是抽象的形式,而是具體的一大堆數字,這樣我們很難憑藉人本身對它們簡單地進行分類。

相關推薦

推薦中...