機器學習及其他問題:機器學習 A-Z

王林
發布: 2024-07-26 17:42:34
原創
651 人瀏覽過

onths of Machine Learning and beyond: Machine Learning A-Z

介紹

在去年夏天我開始正確學習機器學習之前,我已經在 Udemy 上購買了幾門機器學習課程。這些課程中最基本的是機器學習 A-Z:AI、Python 和 R,因此,它成為了我的起點。本課程是對該領域的完美介紹,涵蓋了廣泛的經典機器學習技術和一些深度學習。

課程印象

通常,作為程式設計師,我們使用結構化資料。然而,世界本質上是混亂的。事實證明,機器學習是處理非結構化資訊的寶貴工具。這門課程給我留下了深刻的印象,因為它引入了一個全新的方法世界,感覺就像獲得了超能力。

課程內容

本課程逐步解釋機器學習過程。這個過程的初始關鍵階段是資料預處理,該階段甚至在應用任何演算法之前就發生。

資料預處理

預處理的最開始是資料分割。通常將資料集分為三個部分:訓練驗證測試集。 訓練集用於模型的訓練,驗證集幫助評估訓練過程中的過度擬合,測試集用於評估模型訓練後的表現訓練。

處理遺失的資料是另一個關鍵面向。根據情況和遺失的資料量,有兩個主要選項:

  • 根據其他資料點估算缺失值
  • 完全刪除遺失資料的行

此外,執行特徵縮放通常很重要,因為某些機器學習演算法對輸入資料的規模很敏感。例如,如果不調整資料來補償這一點,計算資料點之間距離的演算法(例如 K 最近鄰演算法 (K-NN))將偏向規模較大的變數。特徵縮放有助於確保自變數的範圍對分析有同等的貢獻。這可以透過標準化或標準化等方法來完成。歸一化將特徵重新調整到固定範圍,通常從 0 到 1。標準化將所有特徵調整為平均值 0 和標準差 1。

這些預處理步驟對於創建在現實場景中表現良好的強大機器學習模型是必要的。

經典機器學習模型

回歸

迴歸模型是一種統計工具,用於根據一個或多個輸入變數預測連續結果。它們對於預測和確定變數之間關係的強度至關重要。這些模型的工作原理是創建最適合觀測資料的方程式。我已經在迴歸模型方面有了一些經驗,尤其是從我幾年前參加的統計課程中獲得的線性迴歸

多項式迴歸透過增加冪大於一的項來擴展線性迴歸。這使得模型能夠適應更廣泛的資料形狀,捕捉變數之間更複雜的關係。然而,較高次數的多項式可能會導致過度擬合,即模型與訓練資料擬合得太緊密,並且在未見過的資料上表現不佳。發生這種情況是因為模型從訓練資料中學習噪聲,將其誤認為是實際關係。

接下來,課程介紹支持向量迴歸(SVR),這是一個強大的模型,可以封裝非線性關係,降低過度擬合的風險,並且可以建模指數關係。 SVR 的主要目標是建立一條盡可能接近地擬合大多數資料點的預測線,同時盡量保持該線盡可能平滑且平坦。換句話說,SVR 試圖在密切追蹤訓練資料和避免過於複雜的模型之間取得平衡,這些模型可能不適用於新的、未見過的資料。它透過允許較小的誤差範圍來實現這一點,在該誤差範圍內偏差是可以接受的。這使得 SVR 成為預測連續值的可靠選擇,尤其是當資料複雜或具有很大的變異性時。

之後引入了決策樹隨機森林。這些技術通常以分類而聞名,它們也適用於回歸設定。本課程解釋了這些模型如何根據從資料特徵推斷出的決策規則來預測輸出。 決策樹隨機森林根據資料集中的特徵建立基於一系列二元決策的模型。這種方法可以產生非常適合訓練數據的模型,但無法推廣到新數據,因為決策過程是任意的,而且不一定會捕捉變數之間的潛在數學關係。

另一方面,SVR多項式迴歸 等方法旨在識別資料中固有的數學關係。例如,SVR 嘗試在一定的誤差範圍內擬合最佳可能的曲線,而多項式迴歸可以對遵循多項式方程式的關係進行建模。如果變數之間的真實關係是數學上的,那麼這些方法可能會表現得更好,並且過度擬合的風險較小。這種發現和利用數學關係的能力使得SVR線性多項式迴歸在預測基礎資料關係強大且清晰的結果時更加穩健。

迴歸中的模型選擇

迴歸部分總結了選擇最佳模型的策略。仍然建議使用不同的方法進行實驗並評估其在測試數據上的性能,因為實驗仍然是選擇真正最佳模型的唯一方法。

分類

分類涉及根據輸入變數預測分類反應。

邏輯迴歸,儘管它的名字如此,它是一種基本的分類技術,非常適合二元分類問題。它用於預測具有兩種可能狀態的結果,例如是/否、真/假。它的工作原理是對預設類別的機率(通常標記為 1)建模為輸入特徵的函數。 邏輯迴歸將邏輯函數應用於線性方程式的輸出,產生 0 到 1 之間的機率分數。此模型對於二元分類問題來說穩健、簡單且有效率。

課程中的下一個模型是K-最近鄰(K-NN)。它根據鄰居的分類方式對資料點進行分類,能夠處理多類問題和更複雜的決策邊界。

課程也涵蓋支援向量機(SVM)進行分類,說明如何使用不同的內核來處理線性和非線性分類。 支援向量機在多維空間中建構一個超平面來分隔不同的類別。 SVM 在高維度空間中表現良好。它具有通用性,因為它能夠使用不同的核函數來使超平面更適應資料。例如,線性核非常適合線性可分數據,而徑向基底函數 (RBF) 核可以映射非線性關係。

聚類

分類和聚類都是組織資料的方法,但用途不同。分類是一種監督學習方法,其中模型根據標記資料進行訓練。這意味著模型從已經分配類別或類別的範例中學習。它的任務是根據所學到的知識來預測新資料的類別。例如,分類模型可以根據對相應標記的電子郵件資料集進行訓練來確定電子郵件是否是垃圾郵件。

另一方面,聚類是一種無監督學習技術,它涉及對一組物件進行分組,使得同一組中的物件彼此比其他群組中的物件更相似。當我們沒有預先定義資料標籤時使用它。模型本身會發現資料中固有的分組。聚類的一個範例可能是根據購買行為將客戶分為幾組,而無需事先了解不同的客戶類型。

這兩種方法都是資料分析的基礎:

  • 分類使用標記資料進行預測建模。
  • 聚類有助於發現資料中隱藏的模式。

聚類技術

K-Means 是一種流行的聚類技術,它根據資料的特徵將資料劃分為 K 個不同的、不重疊的聚類。該過程涉及隨機初始化 K 個點作為聚類中心,並根據歐氏距離將每個資料點分配到最近的聚類。然後將聚類中心重新計算為指定點的平均值,重複此過程直到質心穩定並且不再顯著移動。該方法對於大型資料集特別有效,並且由於其簡單和高效而被廣泛使用。 K 平均值 最適合簇為球形且大小均勻的數據,而對於複雜的簇形狀則效果較差。

層次聚類K-Means不同,不需要事先指定簇的數量。它透過分裂方法或凝聚方法建構集群的層次結構。

凝聚方法中,每個資料點都以自己的群集開始,並且隨著層次結構的向上移動,成對的群集會被合併。這個過程持續進行,直到所有點都合併到層次結構頂部的單一簇中。該方法有利於識別數據點之間的相似程度,並使用樹狀圖直觀地表示,這可以透過將樹狀圖切割到合適的水平來幫助確定簇的數量。

層次聚類的劃分方法,也稱為自頂向下聚類,從單一聚類中的所有觀察開始,並逐漸將聚類分割成更小的聚類。這種方法從層次結構的頂部開始,一直向下進行,使其在概念上變得簡單:每次拆分都旨在在每個劃分層級創建盡可能獨特和連貫的集群。

在實踐中,分裂方法涉及在每一步檢查群集並選擇最佳點來分裂它。這涉及測量聚類內觀察值之間的距離並將最大距離確定為要劃分的點。這個過程遞歸地繼續,分割每個後續簇,直到每個觀察值都是其自己的簇或達到指定數量的簇。它通常比凝聚方法計算量更大,因為它需要在每次分割時對資料進行全域視圖,因此在非常大的資料集中不太常用。

層次聚類對於較小的資料集或需要仔細檢查資料點之間的關係時特別有用,例如在生物科學中或對歷史資料進行聚類時。

深度學習模型

深度學習是機器學習的子集,它採用多層神經網路。它與經典的機器學習技術有顯著不同。經典機器學習著重於通常手動選擇和設計的特徵,而深度學習則旨在訓練神經網路來學習特徵。這些模型透過從簡單的模式建立複雜的模式來自動提取特徵。這使得深度學習對於影像和語音辨識等任務異常強大,這些任務的輸入資料是高維的,資料內的關係也很複雜。然而,訓練深度學習模型需要大量資訊。

人工神經網絡

深度學習的基本要素是前向密集連接神經網絡,或人工神經網絡(ANN)。在這些網路中,神經元按層排列,第一層取得輸入數據,最後一層產生輸出。一層中的每個神經元都連接到下一層中的每個神經元,使網路「密集連接」。這些神經元的權重和偏差會隨著網路在訓練過程中從資料中學習而進行調整。每個神經元的輸出由非線性激活函數計算,從而引入了捕獲數據中非線性關係的能力。

ANN 中的神經元層可以用由權重和偏差組成的向量來表示。數據使用矩陣乘法通過這些層向前傳播。透過將輸入資料乘以權重矩陣,然後添加偏差項來計算每層的輸出。然後,該輸出在發送到下一層之前先經過激活函數。

激活函數至關重要,因為它將非線性引入模型,使網路能夠學習和建模資料中複雜的非線性關係。如果沒有非線性激活函數,網路無論其深度如何,仍然會表現得像單層感知器,只能學習線性邊界。

卷積神經網絡

基本人工神經網路的替代方案是卷積神經網路(CNN)。與每個輸入都連接到每個神經元的密集連接網絡不同,CNN 對像素量進行操作,並使用過濾器創建特徵圖,總結輸入中檢測到的特徵的存在,例如圖像中的邊緣。這使得 CNN 對於涉及空間層次結構的任務非常高效,因為它們減少了所需參數的數量,從而減輕了計算負擔。

卷積神經網路是一種特殊的神經網絡,用於處理具有網格狀拓撲的數據,例如影像。 CNN 使用過濾器,當過濾器在輸入上滑動時執行卷積運算,以建立特徵圖,該特徵圖總結了輸入中檢測到的特徵的存在。這使得它們在執行影像相關任務時異常有效率。

CNN 利用卷積的數學運算,這是數位訊號處理的基本技術。在 DSP 環境中,卷積用於通過濾波器改變訊號,提取重要特徵。類似地,在 CNN 中,卷積涉及在影像上應用濾波器以產生特徵圖。這個過程有效地允許網路檢測影像中與濾鏡相對應的相似性或特定特徵。例如,濾鏡可能會學習偵測邊緣或特定形狀。

隨著輸入影像透過連續的捲積層處理,CNN 在每一層使用多個濾鏡來搜尋日益複雜的模式。第一層可以偵測簡單的邊緣或紋理,而更深的層可以識別更複雜的特徵,例如物件的一部分或整個物件。

梯度下降和訓練神經網絡

梯度下降是用於訓練神經網路和其他機器學習模型的基本最佳化演算法。它的工作原理是迭代調整模型的參數以最小化損失函數,該函數衡量模型的預測與實際數據的匹配程度。在每一步中,演算法都會計算損失函數相對於模型參數的梯度,並向減少損失的方向移動參數。

反向傳播是用於在神經網路中有效計算這些梯度的技術。它分為兩個階段:

  • 前向傳遞,輸入資料透過網路傳遞以產生預測。
  • 向後傳遞,其中損失函數的梯度是根據預測計算的。隨後它通過網絡傳播回來以更新權重。

這個過程利用微積分的鍊式法則來估計梯度,確保每個權重根據其對總體誤差的貢獻按比例進行調整。 梯度下降反向傳播一起使神經網路能夠透過迭代提高其準確性來從數據中學習。

損失函數

損失函數在指導訓練過程中發揮關鍵作用。它也稱為成本函數或誤差函數。它量化網路的預測輸出與實際目標值之間的差異。此指標提供了網路效能的具體衡量標準。訓練的目標是最小化這種損失,從而優化模型的參數。

人工神經網路中常用的損失函數依特定任務類型而有所不同:

  • 對於目標是預測連續值的迴歸任務,經常使用均方誤差(MSE)損失。 MSE 計算預測值和實際值之間差異的平方平均值,對較大的誤差進行更嚴厲的懲罰。
  • 對於分類任務,輸出是類別標籤,通常採用交叉熵損失。此損失函數衡量真實標籤分佈與模型提供的預測之間的差異。

梯度消失問題和 ReLu

建構深度神經網路時的一個重大挑戰是梯度消失問題。訓練過程中使用的梯度可能會變得太小,從而阻止權重改變其值,從而阻止網路充分更新參數。

這個問題在 sigmoid 或 tanh 活化函數中特別突出。為了緩解這個問題,深度學習採用了整流線性單元(ReLu)激活函數。 ReLu 定義為 ReLU(x)=max(0,x),其中 x 表示神經元的輸入。此函數有助於在訓練過程中保持更強的梯度,從而使更深的網路能夠有效地學習而不會導致梯度消失。這種在不影響梯度規模的情況下促進非線性的簡單性和效率使得 ReLu 成為深度學習架構中的流行選擇。

專業機器學習技術

本課程逐漸發展到各種更專業的機器學習技術,每種技術都針對特定應用和領域量身定制。

自然語言處理

自然語言處理 (NLP) 涉及應用計算技術來分析和合成自然語言和語音。將機器學習用於 NLP 的主要挑戰之一是文字資料本質上是非結構化且高維的。文字必須轉換為機器學習演算法可以處理的數字格式,這項任務因語法、語義和上下文等語言的細微差別而變得複雜。

字袋

詞袋 (BoW) 模型透過計算每個單字在文件中出現的頻率,將文字轉換為固定長度的向量來解決這個問題,忽略單字的順序和上下文。此方法簡化了文字數據,使其易於基本機器學習模型的管理,並可作為文字分類任務(例如垃圾郵件偵測或情緒分析)的基礎技術。然而,BoW 模型的簡單性、它對詞序和語義上下文的忽略限制了它在更複雜的語言任務中的有效性。

使用 UCB 和 Thompson 採樣進行強化學習

強化學習 (RL) 是一種機器學習,其中代理透過與環境互動來學習做出決策。它與監督學習不同,因為永遠不會呈現正確的輸入/輸出對,也不會明確修正次優動作。這種策略透過在決策過程中平衡探索、嘗試新事物和利用已知資訊而演變。

代理根據策略採取行動,透過獎勵或懲罰接收回饋,並更新其策略以最大化長期獎勵。 RL 中有助於解決探索-利用困境的兩個值得注意的策略是 置信上限 (UCB)湯普森採樣

UCB 是一種演算法,它透過選擇具有高回報或不經常嘗試的操作來優先考慮探索。這個想法是為了平衡已知的獎勵和在較少嘗試的行動中找到更高獎勵的潛力。 UCB 透過圍繞動作獎勵的估計來建立置信界限並選擇具有最高置信上限的動作來實現這一點。隨著時間的推移,這種方法可以系統地減少不確定性並改善決策。

湯普森取樣採用貝葉斯方法來解決探索-利用問題。它涉及從每個動作的獎勵的後驗分佈中進行取樣,並選擇樣本最高的動作。此方法允許基於已知的動作表現進行更具機率的探索,在探索新動作和基於獎勵機率分佈利用已知動作之間動態平衡。

UCBThompson 採樣 在代理最初未知學習環境的情況下都是強大的技術,允許根據從代理收到的反饋進行系統探索和優化學習環境。這些方法在 A/B 測試或網路路由等即時決策場景中特別有用。

降維技術

PCA 是一種統計技術,用於降維,同時保留盡可能多的變異數。它的工作原理是識別所謂的主成分——最大化資料方差的方向。它透過將原始變數轉換為一組新的正交變數來降低資料的維度。正交性允許這個新變數盡可能不相關,並考慮資料中的最大變異數。這對於減少資料中的變數數量同時保持對其變異數貢獻最大的關係特別有用。透過將資料轉換為一組降低複雜性的新維度,PCA 有助於可視化高維度資料、加速學習演算法並消除雜訊。

另一方面,

LDA也是一種降維技術,但更著重於最大化已知類別之間的可分離性。它試圖對資料類別之間的差異進行建模。 LDA 透過尋找分隔類別的特徵的線性組合來實現這一點。所得的組合可以用作線性分類器或用於後續分類之前的降維。

PCALDA 的用途略有不同:

  • PCA 是無監督的,專注於資料的變異數。
  • LDA 受到監督,專注於最大化類可分離性。

現代模型選擇與增強技術

課程的後半部探討進階模型選擇策略並介紹提升Boosting 的工作原理是將多個弱學習器依序組合成一個更強的模型。序列中的每個學習器都專注於前一個學習器所犯的錯誤,逐漸提高模型的準確性。學習器通常是像決策樹這樣的簡單模型,每個模型都對最終決策逐步做出貢獻,使得整體比任何單獨的模型都更強大。

極端梯度提升

該技術最受歡迎的實現之一是極端梯度提升 (XGBoost),它因其在各種預測建模任務中的效率和有效性而脫穎而出。

結論

「機器學習 A-Z:AI、Python 和 R」課程對於任何對機器學習感興趣的人來說都是一個很好的起點。它涵蓋了許多重要主題並提供了廣泛的概述,但這只是一個開始。

完成本課程並不會讓您立即成為專門從事機器學習工作的專家。相反,請將其視為第一步。它可以幫助您了解基礎知識,並向您展示機器學習的哪些部分可能是您最感興趣的。

以上是機器學習及其他問題:機器學習 A-Z的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:dev.to
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!