機器學習是一門多領域交叉學科,涉及概率論、統計學、逼近論、凸分析、算法復雜度理論等多門學科。專門研究計算機怎樣模擬或實現人類的學習行為,以獲取新的知識或技能,重新組織已有的知識結構使之不斷改善自身的性能。
毫無疑問,機器學習/人工智能領域在將來是越來越受歡迎。由于大數據是目前科技行業最熱門的趨勢,機器學習非常強大,可以根據大量數據做出預測或計算建議。使用大量數據訓練的深度學習算法,構建出一個能夠理解人類語言并自動生成語言的模型。ChatGPT、文心一言等等,都是機器學習的偉大產物。
機器學習中大模型那么智能當然離不開偉大的機器學習算法,下面主要講一下常見機器學習算法的基礎知識。
機器學習算法可以分為三大類——監督學習、無監督學習和強化學習。 當某個屬性(標簽)可用于某個數據集(訓練集),但屬性(標簽)缺失且需要針對其他實例進行預測時,監督學習非常有用。當挑戰是發現給定未標記數據集中的隱式關系(項目未預先分配)時,無監督學習非常有用。強化學習介于這兩個極端之間——每個預測步驟或動作都有某種形式的反饋,但沒有精確的標簽或錯誤消息。
1、主成分分析(PCA)/SVD
PCA 是一種無監督方法,用于了解由向量組成的數據集的全局屬性。此處分析數據點的協方差矩陣,以了解哪些維度(大多數)/數據點(有時)更重要(即它們之間的方差較高,但與其他維度的協方差較低)。考慮矩陣的頂級 PC 的一種方法是考慮具有最高特征值的特征向量。SVD 本質上也是一種計算有序分量的方法,但不需要獲取點的協方差矩陣即可獲得它。
2、最小二乘法和多項式擬合
大學時學習的數值分析,曾經將直線和曲線擬合到點來得到方程。可以使用它們來擬合機器學習中低維度的小型數據集的曲線。(對于大數據或具有多個維度的數據集,可能最終會嚴重過度擬合,所以不必擔心)。OLS%20具有封閉式解決方案,因此無需使用復雜的優化技術。
顯而易見,使用該算法來擬合簡單曲線/回歸
約束線性回歸
最小二乘法可能會與數據中的異常值、雜散場和噪聲混淆。因此,我們需要約束來減少我們在數據集上擬合的線的方差。正確的方法是擬合線性回歸模型,這將確保權重不會出現異常行為。模型可以具有%20L1%20范數%20(LASSO)%20或%20L2(嶺回歸)或兩者(彈性回歸)。均方損失已優化。
使用這些算法來擬合帶有約束的回歸線,避免過度擬合并掩蓋模型中的噪聲維度。
3、K表示聚類
他是無監督聚類算法。給定一組向量形式的數據點,我們可以根據它們之間的距離來形成點簇。這是一種期望最大化算法,它迭代地移動聚類中心,然后將點與每個聚類中心結合在一起。算法采用的輸入是要生成的簇的數量以及它將嘗試收斂簇的迭代次數。
從名稱中可以明顯看出,可以使用該算法在數據集中創建%20K%20個簇
4、邏輯回歸
Logistic%20回歸是在應用權重后應用非線性(主要使用%20sigmoid%20函數,也可以使用%20tanh)的約束線性回歸,因此將輸出限制為接近%20+/-%20類(在%20sigmoid%20情況下為%201%20和%200)。交叉熵損失函數使用梯度下降進行優化。初學者注意:邏輯回歸用于分類,而不是回歸。還可以將邏輯回歸視為單層神經網絡。邏輯回歸使用梯度下降或%20L-BFGS%20等優化方法進行訓練。NLP%20人們經常將其與最大熵分類器的名稱一起使用。
這就是%20Sigmoid%20的樣子:
使用 LR 訓練簡單但非常強大的分類器。
5、SVM(支持向量機)
SVM是一種常用的監督學習算法,是像線性/邏輯回歸一樣的線性模型,不同之處在于它的核心思想是將數據映射到高維特征空間,并在該空間中尋找一個最優的超平面來進行分類。超平面是一個 n-1 維的線性子空間,其中 n 是特征的維數。SVM 在特征空間中選擇具有最大間隔(Margin)的超平面作為最優分類邊界,以提高分類的魯棒性。
SVM適用于二分類和多分類問題。它通過最大化間隔來尋找最優分類超平面,并具有在高維空間中處理非線性問題的能力。在實踐中,選擇合適的核函數和參數設置對于 SVM 的性能至關重要。
6、前饋神經網絡
這些基本上是多層邏輯回歸分類器。由非線性(sigmoid、tanh、relu + softmax 和很酷的新 selu)分隔的許多權重層。它們的另一個流行名稱是多層感知器。FFNN 可作為自動編碼器用于分類和無監督特征學習。
FFNN 可用于訓練分類器或提取特征作為自動編碼器
7、卷積神經網絡(Convnets)
當今世界上幾乎所有最先進的基于視覺的機器學習結果都是使用卷積神經網絡實現的。它們可用于圖像分類、對象檢測甚至圖像分割。卷積網絡由 Yann Lecun 在 80 年代末至 90 年代初發明,其特征是卷積層充當分層特征提取器。也可以在文本(甚至圖表)中使用它們。
使用卷積網絡進行最先進的圖像和文本分類、對象檢測、圖像分割。
8、循環神經網絡(RNN):
RNN%20通過在時間%20t%20的聚合器狀態和時間%20t%20的輸入上遞歸應用同一組權重來對序列進行建模(假設序列在時間%200..t..T%20具有輸入,并且在每個時間%20t%20有一個隱藏狀態)這是%20RNN%20t-1%20步驟的輸出)。純%20RNN%20現在很少使用,但其對應的%20LSTM%20和%20GRU%20在大多數序列建模任務中都是最先進的。
RNN(如果這里是一個密集連接的單元和一個非線性,那么現在 f 通常是 LSTM 或 GRU)。LSTM 單元用于代替純 RNN 中的普通密集層。
將 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 種機器學習算法,先作為入門的一些了解,心里有大模型算法這個概念。后面會針對每種算法進行深入分析研究。