天天看點

你應該知道的 10 種機器學習算法(進階篇)

你應該知道的 10 種機器學習算法(進階篇)
機器學習是一門多領域交叉學科,涉及機率論、統計學、逼近論、凸分析、算法複雜度理論等多門學科。專門研究計算機怎樣模拟或實作人類的學習行為,以擷取新的知識或技能,重新組織已有的知識結構使之不斷改善自身的性能。
你應該知道的 10 種機器學習算法(進階篇)

毫無疑問,機器學習/人工智能領域在将來是越來越受歡迎。由于大資料是目前科技行業最熱門的趨勢,機器學習非常強大,可以根據大量資料做出預測或計算建議。使用大量資料訓練的深度學習算法,建構出一個能夠了解人類語言并自動生成語言的模型。ChatGPT、文心一言等等,都是機器學習的偉大産物。

你應該知道的 10 種機器學習算法(進階篇)

機器學習中大模型那麼智能當然離不開偉大的機器學習算法,下面主要講一下常見機器學習算法的基礎知識。

機器學習算法可以分為三大類——監督學習、無監督學習和強化學習。 當某個屬性(标簽)可用于某個資料集(訓練集),但屬性(标簽)缺失且需要針對其他執行個體進行預測時,監督學習非常有用。當挑戰是發現給定未标記資料集中的隐式關系(項目未預先配置設定)時,無監督學習非常有用。強化學習介于這兩個極端之間——每個預測步驟或動作都有某種形式的回報,但沒有精确的标簽或錯誤消息。

你應該知道的 10 種機器學習算法(進階篇)

1. 主成分分析(PCA)/SVD

PCA 是一種無監督方法,用于了解由向量組成的資料集的全局屬性。此處分析資料點的協方差矩陣,以了解哪些次元(大多數)/資料點(有時)更重要(即它們之間的方差較高,但與其他次元的協方差較低)。考慮矩陣的頂級 PC 的一種方法是考慮具有最高特征值的特征向量。SVD 本質上也是一種計算有序分量的方法,但不需要擷取點的協方差矩陣即可獲得它。

你應該知道的 10 種機器學習算法(進階篇)

2.1.最小二乘法和多項式拟合

大學時學習的數值分析,曾經将直線和曲線拟合到點來得到方程。可以使用它們來拟合機器學習中低次元的小型資料集的曲線。(對于大資料或具有多個次元的資料集,可能最終會嚴重過度拟合,是以不必擔心)。OLS 具有封閉式解決方案,是以無需使用複雜的優化技術。

你應該知道的 10 種機器學習算法(進階篇)

顯而易見,使用該算法來拟合簡單曲線/回歸

2.2.限制線性回歸

最小二乘法可能會與資料中的異常值、雜散場和噪聲混淆。是以,我們需要限制來減少我們在資料集上拟合的線的方差。正确的方法是拟合線性回歸模型,這将確定權重不會出現異常行為。模型可以具有 L1 範數 (LASSO) 或 L2(嶺回歸)或兩者(彈性回歸)。均方損失已優化。

你應該知道的 10 種機器學習算法(進階篇)

使用這些算法來拟合帶有限制的回歸線,避免過度拟合并掩蓋模型中的噪聲次元。

3. K表示聚類

他是無監督聚類算法。給定一組向量形式的資料點,我們可以根據它們之間的距離來形成點簇。這是一種期望最大化算法,它疊代地移動聚類中心,然後将點與每個聚類中心結合在一起。算法采用的輸入是要生成的簇的數量以及它将嘗試收斂簇的疊代次數。

你應該知道的 10 種機器學習算法(進階篇)

從名稱中可以明顯看出,可以使用該算法在資料集中建立 K 個簇

4.邏輯回歸

Logistic 回歸是在應用權重後應用非線性(主要使用 sigmoid 函數,也可以使用 tanh)的限制線性回歸,是以将輸出限制為接近 +/- 類(在 sigmoid 情況下為 1 和 0)。交叉熵損失函數使用梯度下降進行優化。初學者注意:邏輯回歸用于分類,而不是回歸。還可以将邏輯回歸視為單層神經網絡。邏輯回歸使用梯度下降或 L-BFGS 等優化方法進行訓練。NLP 人們經常将其與最大熵分類器的名稱一起使用。

這就是 Sigmoid 的樣子:

你應該知道的 10 種機器學習算法(進階篇)

使用 LR 訓練簡單但非常強大的分類器。

5.SVM(支援向量機)

SVM 是一種常用的監督學習算法,是像線性/邏輯回歸一樣的線性模型,不同之處在于它的核心思想是将資料映射到高維特征空間,并在該空間中尋找一個最優的超平面來進行分類。超平面是一個 n-1 維的線性子空間,其中 n 是特征的維數。SVM 在特征空間中選擇具有最大間隔(Margin)的超平面作為最優分類邊界,以提高分類的魯棒性。

你應該知道的 10 種機器學習算法(進階篇)

SVM 适用于二分類和多分類問題。它通過最大化間隔來尋找最優分類超平面,并具有在高維空間中處理非線性問題的能力。在實踐中,選擇合适的核函數和參數設定對于 SVM 的性能至關重要。

6.前饋神經網絡

這些基本上是多層邏輯回歸分類器。由非線性(sigmoid、tanh、relu + softmax 和很酷的新 selu)分隔的許多權重層。它們的另一個流行名稱是多層感覺器。FFNN 可作為自動編碼器用于分類和無監督特征學習。

你應該知道的 10 種機器學習算法(進階篇)

多層感覺器

你應該知道的 10 種機器學習算法(進階篇)

FFNN 作為自動編碼器

FFNN 可用于訓練分類器或提取特征作為自動編碼器

7. 卷積神經網絡(Convnets)

當今世界上幾乎所有最先進的基于視覺的機器學習結果都是使用卷積神經網絡實作的。它們可用于圖像分類、對象檢測甚至圖像分割。卷積網絡由 Yann Lecun 在 80 年代末至 90 年代初發明,其特征是卷積層充當分層特征提取器。也可以在文本(甚至圖表)中使用它們。

你應該知道的 10 種機器學習算法(進階篇)

使用卷積網絡進行最先進的圖像和文本分類、對象檢測、圖像分割。

8. 循環神經網絡(RNN):

RNN 通過在時間 t 的聚合器狀态和時間 t 的輸入上遞歸應用同一組權重來對序列進行模組化(假設序列在時間 0..t..T 具有輸入,并且在每個時間 t 有一個隐藏狀态)這是 RNN t-1 步驟的輸出)。純 RNN 現在很少使用,但其對應的 LSTM 和 GRU 在大多數序列模組化任務中都是最先進的。

你應該知道的 10 種機器學習算法(進階篇)

RNN(如果這裡是一個密集連接配接的單元和一個非線性,那麼現在 f 通常是 LSTM 或 GRU)。LSTM 單元用于代替純 RNN 中的普通密集層。

你應該知道的 10 種機器學習算法(進階篇)

将 RNN 用于任何序列模組化任務,特别是文本分類、機器翻譯、語言模組化

9. 條件随機場(CRF)

CRF 可能是機率圖模型 (PGM) 系列中最常用的模型。它們用于像 RNN 一樣的序列模組化,也可以與 RNN 結合使用。在神經機器翻譯系統出現之前,條件随機場是最先進的,在許多小資料集的序列标記任務中,它們仍然比需要大量資料才能泛化的 RNN 學得更好。它們還可以用于其他結構化預測任務,例如圖像分割等。CRF 對序列的每個元素(例如句子)進行模組化,以便鄰居影響序列中元件的标簽,而不是所有标簽彼此獨立。

使用 CRF 來标記序列(文本、圖像、時間序列、DNA 等)

10.決策樹

它是一種基于樹結構的分類和回歸算法。它通過對特征進行分割來建構一個樹形模型,每個内部節點表示一個特征,每個葉節點表示一個類别或一個數值。決策樹通過對特征進行逐層的判斷和分割,以最終得到一個預測結果。

舉一個簡單的例子來解釋決策樹的工作原理。假設我們有一個二分類問題,要根據一個人的性别、年齡和教育水準來預測他們是否購買某個産品。首先,我們從根節點開始,選擇一個特征進行分割,比如選擇性别作為第一個分割點。我們可以根據性别将資料分為男性和女性兩個分支。然後,我們進一步選擇一個特征進行分割,比如選擇年齡。在男性分支中,我們可以将資料分為年齡小于等于30歲和大于30歲的兩個子分支;在女性分支中,我們也可以進行類似的分割。接着,我們再選擇一個特征進行分割,比如選擇教育水準。在每個年齡分支中,我們可以将資料進一步分為高教育水準和低教育水準兩個子分支。

這樣不斷進行特征的選擇和分割,直到滿足停止條件。停止條件可以是達到預定的樹的深度、節點中的樣本數小于某個門檻值或不再有可分割的特征。

最終,我們得到了一棵決策樹,每個葉節點表示一個類别。對于新的未知樣本,我們可以沿着樹的分支進行判斷,最終到達一個葉節點,并根據葉節點的類别進行預測

目前使用的兩種常見決策樹算法是随機森林(Random Forests)和提升樹(Boosting trees),前者在屬性的随機子集上建構不同的分類器,并将它們組合起來進行輸出。

決策樹可用于對資料點進行分類(甚至回歸)

TD 算法(時間差分法)

如果仍然想知道上述方法如何解決像 DeepMind 那樣擊敗圍棋世界冠軍這樣的任務,那麼它們不能。上面讨論的所有 10 種算法都是模式識别,而不是政策學習器。為了學習解決多步驟問題的政策,例如阿爾法GO赢得一場國際象棋比賽、ChatGPT語音機器人。這種類型的機器學習稱為強化學習。該領域最近取得的許多(不是全部)成功都是将卷積網絡或 LSTM 的感覺能力與一組稱為時間差分學習的算法相結合的結果。其中包括 Q-Learning、SARSA 、DQN等等其他一些變體。

總結

這些是 10 種機器學習算法,先作為入門的一些了解,心裡有大模型算法這個概念。後面會針對每種算法進行深入分析研究。

你應該知道的 10 種機器學習算法(進階篇)

繼續閱讀