機器學習
對電腦系統用於在沒有明確指令的情況下執行任務的演算法與統計模型的科學研究 来自维基百科,自由的百科全书
機器學習(英語:machine learning)是人工智能的一個分支。機器學習理論主要是設計和分析一些讓電腦可以自動「學習」的演算法。機器學習演算法是一類從數據中自動分析獲得規律,並利用規律對未知數據進行預測的演算法。因為學習演算法中涉及了大量的統計學理論,機器學習與推論統計學聯絡尤為密切,也被稱為統計學習理論。演算法設計方面,機器學習理論關注可以實現的,行之有效的學習演算法(要防止錯誤累積)。很多推論問題屬於非程式化決策,所以部分的機器學習研究是開發容易處理的近似演算法。
![]() |
機器學習已廣泛應用於數據探勘、電腦視覺、自然語言處理、生物特徵辨識、搜尋引擎、醫學診斷、檢測信用卡詐騙、證券市場分析、DNA序列定序、語音和手寫辨識、遊戲和機械人等領域。機器學習在近30多年已發展為一門多領域科際整合,涉及概率論、統計學、逼近論、凸分析、計算複雜性理論、資訊理論等多門學科。
定義
機器學習有下面幾種定義:
- 機器學習是一門人工智能的科學,該領域的主要研究對象是人工智能,特別是如何在經驗學習中改善具體演算法的效能。
- 機器學習是對能通過經驗自動改進的計算機演算法的研究。
- 機器學習是用數據或以往的經驗,以此優化計算機程式的效能標準。
另外,電腦科學家湯姆·米切爾在其著作的Machine Learning一書中定義的機器學習為[1]:
A computer program is said to learn from experience E with respect to some class of tasks T and performance measure P, if its performance at tasks in T, as measured by P, improves with experience E.
——Tom Mitchell,Machine Learning
歷史
與其他領域的關係
作為一項科學事業,機器學習起源於人類對人工智能(Artificial Intelligence,簡稱AI)的探索。在AI作為學術領域早期階段,一些研究者希望能讓機器從數據中學習。他們嘗試通過多種符號方法(symbolic methods)來解決這個問題,同時也採用了當時稱為「神經網絡」(neural networks)的方法。這些神經網絡模型主要包括感知機(perceptrons)以及其他一些模型,後來發現這些模型實際上是統計學中廣義線性模型(generalized linear models)的重新發明。此外,當時研究者還廣泛使用概率推理(probabilistic reasoning)方法,尤其是在自動化醫學診斷領域。
然而,隨着學術界對邏輯和基於知識的(knowledge-based)方法日益強調,人工智能(AI)和機器學習之間逐漸產生了分歧。概率系統(probabilistic systems)也面臨着數據取得和數據表示方面的理論與實際問題。到1980年左右,專家系統(expert systems)開始在人工智能領域佔據主導地位,統計學方法逐漸被邊緣化。在AI領域內部,符號學習(symbolic learning)或知識學習(knowledge-based learning)的研究依然繼續,並催生了歸納邏輯編程(inductive logic programming,簡稱ILP)。而更為側重統計方法的研究,則逐漸被歸類到模式辨識(pattern recognition)和資訊檢索(information retrieval)等領域,不再屬於AI的核心研究方向。同時,神經網絡(neural networks)的研究也在AI和電腦科學(computer science)領域被逐漸放棄。這條研究路徑後來在AI和電腦科學之外繼續發展,形成了以「聯結主義」(connectionism)為代表的學派,由其他領域的研究者推動,如約翰·霍普菲爾德(John Hopfield)、大衛·魯梅爾哈特(David Rumelhart)和傑弗里·辛頓(Geoffrey Hinton)等人。他們的研究在1980年代中期取得了重要突破,其中以反向傳播演算法(backpropagation)的重新發現最為顯著。
機器學習(Machine Learning,簡稱ML)在1990年代被重新整合並確立為獨立的研究領域,並開始蓬勃發展。這一領域的目標也從最初追求實現人工智能(Artificial Intelligence,簡稱AI),轉變為解決實際中能夠被有效解決的問題。研究重心逐漸遠離了繼承自AI的符號方法(symbolic approaches),轉向了從統計學(statistics)、模糊邏輯(fuzzy logic)以及概率理論(probability theory)中借鑑的方法和模型。
理論
學習器(learner)的核心目標之一是從經驗中進行泛化(generalize)。在這一背景下,泛化指的是學習機器在經歷了訓練數據集(learning data set)之後,能夠在新出現的、未曾見過的樣本或任務上準確表現的能力。這些訓練樣本通常來自某個未知的概率分佈(probability distribution,這個概率分佈被認為能代表真實場景中事件的分佈空間),學習器需要基於這些數據構建出一個一般化的模型,從而能夠對新的情景或樣本做出足夠準確的預測。
對機器學習演算法及其效能進行的計算分析,是理論電腦科學(theoretical computer science)的一個分支,稱為計算學習理論(computational learning theory),通常通過概率近似正確學習模型(probably approximately correct learning,簡稱PAC Learning)實現。由於訓練集(training sets)是有限的,而未來又充滿不確定性,因此學習理論通常並不能絕對保證演算法的表現;取而代之的是,通常會給出演算法效能的概率性界限(probabilistic bounds)。偏差-方差分解(bias–variance decomposition)是一種用於量化泛化誤差(generalization error)的方法。
為了獲得最佳的泛化(generalization)效能,假設(hypothesis,也即模型)的複雜度應與數據背後的真實函數(function)的複雜度相匹配。如果假設的複雜度低於真實函數的複雜度,那麼模型就會出現欠擬合(underfitting)的現象;在這種情況下,適當增加模型的複雜度可以降低訓練誤差(training error)。然而,如果假設的複雜度過高,模型又會面臨過擬合(overfitting)問題,從而導致泛化能力下降。
除了研究效能界限(performance bounds)之外,學習理論的研究人員也關注學習的時間複雜度(time complexity)和可行性(feasibility)。在計算學習理論(computational learning theory)中,如果某個計算可以在多項式時間(polynomial time)內完成,那麼就被視為是可行的(feasible)。關於時間複雜度,有兩種類型的結果:
- 正面結果(Positive results) 表明某一類函數可以在多項式時間內被學習;
- 負面結果(Negative results) 表明某些函數類別無法在多項式時間內被學習。
分類

機器學習方法傳統上被劃分為以下幾類,對應不同的學習範式(learning paradigms),具體取決於學習系統可獲得的「訊號」或「反饋」的類型:
模型
機器學習模型是一種數學模型,在經過某個數據集的「訓練」之後,可以用於對新數據進行預測或分類。在訓練過程中,學習演算法會通過迭代不斷調整模型的內部參數,以儘可能減少預測誤差。廣義上,「模型」一詞可以指代不同層級的內容:既可以是某一類模型及其對應的學習演算法,也可以是所有內部參數都已經調整完畢、訓練完成的具體模型。
在機器學習系統中,已經研究和應用了多種類型的模型。為特定任務選擇最合適的模型的過程被稱為模型選擇(model selection)**。
具體的機器學習模型有:

類神經網絡(Artificial Neural Networks,簡稱ANNs),又稱聯結主義系統(connectionist systems),是一類受動物大腦中生物神經網絡啟發而構建的計算系統。這類系統通過學習樣本來完成任務,而通常不依賴於任何針對特定任務的預設規則。換句話說,它們是通過觀察大量範例,逐步「學會」如何解決問題的。
類神經網絡(ANN)是一種由多個相互連接的單元或節點構成的模型,這些節點被稱為「類神經元」,其靈感來源於生物大腦中的神經元。在類神經網絡中,每個連接類似於生物大腦中的突觸,可以在類神經元之間遞移資訊,也就是「訊號」。
一個接收到訊號的類神經元可以對其進行處理,並將處理後的訊號遞移給與其連接的其他類神經元。在常見的ANN實現中,神經元之間連接所遞移的訊號是一個實數,而每個類神經元的輸出是其所有輸入的加權和經過某種非線性函數轉換後的結果。
神經元之間的連接稱為「邊」(edges)。類神經元和連接邊通常都帶有一個權重,這個權重會隨着學習過程的進行而調整。權重決定了訊號遞移的強度,權重越大,訊號越強。有些類神經元還設有閾值:只有當接收到的總訊號超過該閾值時,才會遞移輸出訊號。
通常,類神經元會被組織成不同的層(layers)。不同的層可能對輸入執行不同類型的轉換。訊號從第一層(輸入層)開始,一直遞移到最後一層(輸出層),過程中可能會多次經過中間的隱藏層。
類神經網絡(ANN)最初的目標是模擬人腦的工作方式來解決問題。然而,隨着時間的推移,研究重點逐漸轉向如何高效地完成特定任務,這也導致了神經網絡的發展逐漸偏離了生物學上的真實神經結構。
儘管如此,類神經網絡已經在眾多領域得到了廣泛應用,包括:
- 電腦視覺(computer vision)
- 語音辨識(speech recognition)
- 機器翻譯(machine translation)
- 社交網絡內容過濾(social network filtering)
- 棋類與電子遊戲(playing board and video games)
- 醫學診斷(medical diagnosis)
這些成功應用證明了神經網絡在解決複雜、非線性問題方面的強大能力。
深度學習(Deep Learning)是指在類神經網絡中引入多個隱藏層(hidden layers)的一種方法。這種方法試圖模擬人腦將光和聲音轉化為視覺和聽覺的處理方式。深度學習在多個領域取得了顯著成果,其中電腦視覺(computer vision)和語音辨識(speech recognition)是其最成功的應用之一。

決策樹學習(Decision Tree Learning)是一種使用決策樹作為預測模型的方法,通過對一個物件的觀察(表示在樹的分支上),推導出該物件的目標值(表示在葉子節點上)。它是統計學、數據探勘和機器學習中常用的一種預測建模方法。
- 當目標變量是離散值(例如分類標籤)時,所構建的樹被稱為分類樹(Classification Tree)。在這類樹結構中,葉子節點代表類別標籤,分支則代表導致這些標籤的特徵組合。
- 當目標變量是連續值(通常是實數)時,該樹稱為迴歸樹(Regression Tree)。
在決策分析(Decision Analysis)中,決策樹可以被用來直觀、明確地表示決策過程及其可能結果。而在數據探勘(Data Mining)中,決策樹不僅可以用來描述數據本身,其生成的分類樹還可以作為後續決策的依據。
總結來說,決策樹是一種結構清晰、解釋性強的模型,適合處理既有分類又有迴歸問題。
隨機森林迴歸(Random forest regression, RFR)屬於基於決策樹的模型範疇。RFR 是一種整合學習方法(ensemble learning method),它通過構建多個決策樹並對其預測結果進行平均,從而提高預測的準確性並有效避免過擬合。
在構建決策樹的過程中,RFR 採用自助採樣法(bootstrapped sampling),也就是說,每棵決策樹都是在訓練集中隨機抽取的一部分數據上進行訓練的。這種訓練方式的「隨機性」有助於減少模型的偏差,使預測結果更加準確。
RFR 會生成相互獨立的多個決策樹,它既可以用於單一輸出變量的迴歸問題,也可以用於多迴歸任務(multiple regressor task)。這種靈活性使得 RFR 能夠被廣泛應用於各種實際場景中。
支持向量機(SVM),也稱為支持向量網絡(Support-Vector Networks),是一組用於分類(classification)和迴歸(regression)的監督學習方法。在給定一組訓練樣本的前提下,其中每個樣本都被標註為屬於兩個類別之一,SVM 的訓練演算法會構建一個模型,用來預測新的樣本屬於哪個類別。SVM 是一種非概率性的二分類線性分類器,雖然也有像 Platt scaling 這樣的擴充方法,可以使其應用於概率分類任務。
除了進行線性分類,SVM 還可以藉助所謂的核技巧(kernel trick),高效地實現非線性分類。這種方法通過隱式地將輸入對映到高維特徵空間,使得在原本線性不可分的問題中,也能找到一個可分的超平面,從而實現更複雜的分類效果。
迴歸分析(Regression analysis)是一個涵蓋廣泛的統計方法集合,主要用於估計輸入變量與其相關特徵之間的關係。其中最常見的形式是線性迴歸(Linear Regression),通過一條直線來最佳地擬合給定數據,這條線通常依據某種數學準則(如最小平方法,Ordinary Least Squares)確定。
為了減輕過擬合(overfitting)和偏差(bias)的問題,線性迴歸往往會結合正則化方法(regularization methods)進行擴充,例如嶺迴歸(Ridge Regression)。
在面對非線性問題時,常用的替代模型包括:
- 多項式迴歸(Polynomial Regression):如 Microsoft Excel 中用於趨勢線擬合的工具;
- 邏輯迴歸(Logistic Regression):廣泛用於統計分類任務;
- 核迴歸(Kernel Regression):利用核技巧(kernel trick)將輸入變量隱式對映到更高維空間,從而引入非線性。
這些模型能夠更靈活地擬合和預測現實中複雜的數據關係。
多元線性迴歸(Multivariate Linear Regression)是在傳統線性迴歸的基礎上擴充而來的,用於同時處理多個應變量(輸出變量)的情況。這種方法通過擬合一個多維線性模型,來估計一組輸入變量與多個輸出變量之間的關係。
多元線性迴歸特別適用於以下場景:
- 輸出變量之間存在相互依賴關係;
- 多個輸出共用某種潛在的模式或結構。
例如:
- 同時預測多個經濟指標;
- 重建圖像數據(圖像本身是多維結構)。
這種方法在處理複雜、關聯性強的多輸出問題時,能提供更全面和準確的建模能力。

貝葉斯網絡(Bayesian Network),又稱信念網絡(Belief Network)或有向無環圖模型(Directed Acyclic Graphical Model),是一種概率圖模型(probabilistic graphical model),它通過一個有向無環圖(Directed Acyclic Graph,DAG)來表示一組隨機變量之間的條件獨立性關係。
例如,一張貝葉斯網絡可以用於表示疾病與症狀之間的概率關係。當給定一些症狀時,可以利用該網絡計算出不同疾病出現的概率,從而輔助判斷可能的病因。
貝葉斯網絡配有高效的推理與學習演算法,能夠處理複雜的概率推斷任務。
進一步擴充:
- 如果貝葉斯網絡用於表示變量序列(如語音訊號、蛋白質序列等),這樣的模型稱為動態貝葉斯網絡(Dynamic Bayesian Networks)。
- 能夠在不確定性下表示並解決決策問題的貝葉斯網絡模型,稱為影響圖(Influence Diagrams)。
這些圖模型在醫學診斷、語音辨識、機械人決策等領域都有重要應用。
高斯過程(Gaussian Processes)是一種隨機過程(stochastic process),其特點是:在該過程中,任意有限數量的隨機變量都服從一個多元正態分佈(multivariate normal distribution)。高斯過程依賴於一個預定義的協方差函數(covariance function)或稱核函數(kernel),用於建模不同點之間的關係,這種關係取決於它們在空間中的位置。
在給定一組已觀測的數據點(即輸入-輸出樣本)後,我們可以通過這些已知點之間的協方差,以及它們與某個新的、未觀測點之間的協方差,直接計算該新點的輸出值的概率分佈,這是高斯過程的核心能力之一。
高斯過程在貝葉斯最佳化(Bayesian Optimization)中非常受歡迎,常被用作替代模型(surrogate model),特別適合用於超參數最佳化(hyperparameter optimization)等任務。
軟件
包含各種機器學習演算法的軟件套裝包括:
- Caffe
- Deeplearning4j
- DeepSpeed
- ELKI
- JAX
- Infer.NET
- Keras
- Kubeflow
- LightGBM
- Mahout
- Mallet
- Microsoft Cognitive Toolkit
- ML.NET
- mlpack
- MXNet
- OpenNN
- Orange
- pandas (software)
- ROOT (TMVA with ROOT)
- scikit-learn
- Shogun
- Spark MLlib
- SystemML
- TensorFlow
- Torch / PyTorch
- Weka / MOA
- XGBoost
- Yooreeka
參考文獻
參見
Wikiwand - on
Seamless Wikipedia browsing. On steroids.