機器學習

機器學習（machine learning）是人工智能的一個分支。機器學習理論主要是設計和分析一些讓計算機可以自動“學習”的算法。機器學習算法是一類從數據中自動分析獲得規律，並利用規律對未知數據進行預測的算法。因為學習算法中涉及了大量的統計學理論，機器學習與推斷統計學聯繫尤為密切，也被稱為統計學習理論。算法設計方面，機器學習理論關注可以實現的，行之有效的學習算法（要防止錯誤累積）。很多推論問題屬於非程序化決策，所以部分的機器學習研究是開發容易處理的近似算法。
機器學習已廣泛應用於數據挖掘、計算機視覺、自然語言處理、生物特徵識別、搜索引擎、醫學診斷、檢測信用卡詐騙、證券市場分析、DNA序列測序、語音和手寫識別、遊戲和機器人等領域。機器學習在近30多年已發展為一門多領域科際整合，涉及概率論、統計學、逼近論、凸分析、計算複雜性理論、資訊理論等多門學科。

**定義**
機器學習有下面幾種定義：
*機器學習是一門人工智能的科學，該領域的主要研究對象是人工智能，特別是如何在經驗學習中改善具體算法的性能。
*機器學習是對能通過經驗自動改進的計算機算法的研究。
*機器學習是用數據或以往的經驗，以此優化計算機程序的性能標準。
另外，電腦科學家湯姆·米切爾在其著作的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） 表明某些函數類別無法在多項式時間內被學習。

**分類**
在監督學習（supervised learning）中，訓練數據帶有預期的輸出標籤，模型的任務是學習輸入與輸出之間的映射關係；而在無監督學習（unsupervised learning）中，數據是未標註的，模型需要在沒有明確答案的情況下，自主發現其中的模式或結構。
機器學習方法傳統上被劃分為以下幾類，對應不同的學習範式（learning paradigms），具體取決於學習系統可獲得的“信號”或“反饋”的類型：- 監督學習：從給定的訓練數據集中學習出一個函數，當新的數據到來時，可以根據這個函數預測結果。監督學習的訓練集要求是包括輸入和輸出，也可以說是特徵和目標。訓練集中的目標是由人標註的。常見的監督學習算法包括迴歸分析和統計分類。監督學習和非監督學習的差別就是訓練集目標是否有人為標註。他們都有訓練集 且都有輸入和輸出- 無監督學習：與監督學習相比，訓練集沒有人為標註的結果。常見的無監督學習算法有生成對抗網絡（GAN）、聚類。-  半監督學習：介於監督學習與無監督學習之間。- 強化學習：機器為了達成目標，隨著環境的變動，而逐步調整其行為，並評估每一個行動之後所到的回饋是正向的或負向的。

**模型**
機器學習模型是一種數學模型，在經過某個數據集的“訓練”之後，可以用於對新數據進行預測或分類。在訓練過程中，學習算法會通過迭代不斷調整模型的內部參數，以儘可能減少預測誤差。廣義上，“模型”一詞可以指代不同層級的內容：既可以是某一類模型及其對應的學習算法，也可以是所有內部參數都已經調整完畢、訓練完成的具體模型。
在機器學習系統中，已經研究和應用了多種類型的模型。為特定任務選擇最合適的模型的過程被稱為模型選擇（model selection）**。
具體的機器學習模型有：- 構造間隔理論分佈：聚類分析和模式識別
** 人工神經網絡
** 決策樹
** 感知器
** 支援向量機
** 集成學習AdaBoost
** 降維與度量學習
** 聚類
** 貝葉斯分類器- 構造條件概率：迴歸分析和統計分類
**高斯過程迴歸
**線性判別分析
**最近鄰居法
**徑向基函數核
*通過再生模型構造概率密度函數：
**最大期望算法
**概率圖模型：包括貝氏網路和Markov隨機場 
**Generative Topographic Mapping
*近似推斷技術：
**馬爾可夫鏈
**蒙特卡羅方法
**變分法
*最優化：大多數以上方法，直接或者間接使用最優化算法。
*量子機器學習

**人工神經網絡**
深度學習
人工神經網絡（Artificial Neural Network，簡稱ANN）是由多個節點（node）相互連接構成的結構，類似於大腦中由神經元（neurons）組成的龐大網絡。在這個網絡中，每一個圓形節點代表一個人工神經元（artificial neuron），而箭頭表示從一個神經元的輸出傳遞到另一個神經元輸入的連接。
人工神經網絡（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）是其最成功的應用之一。

**決策樹**
這是一棵用於展示泰坦尼克號（Titanic）乘客生存概率的決策樹（Decision Tree）。它通過一系列的“如果...那麼...”的決策規則，對數據進行分裂，最終預測結果。在泰坦尼克號的例子中，決策樹可能會根據以下特徵進行分裂，例如：乘客的性別（gender）、年齡（Age）、是否有家庭成員同行（SibSp）等。
決策樹學習（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）是在傳統線性迴歸的基礎上擴展而來的，用於同時處理多個因變量（輸出變量）的情況。這種方法通過擬合一個多維線性模型，來估計一組輸入變量與多個輸出變量之間的關係。
多元線性迴歸特別適用於以下場景：- 輸出變量之間存在相互依賴關係；- 多個輸出共享某種潛在的模式或結構。
例如：- 同時預測多個經濟指標；- 重建圖像數據（圖像本身是多維結構）。
這種方法在處理複雜、關聯性強的多輸出問題時，能提供更全面和準確的建模能力。

**貝葉斯網絡**
這是一個簡單的貝葉斯網絡示例：下雨（Rain）會影響灑水器（Sprinkler）是否啟動；而下雨和灑水器的狀態共同決定草地是否溼（Grass Wet）
貝葉斯網絡（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

**Python軟件庫及框架**

**參考文獻**

**引用**

**來源**
 書籍- Bishop, C. M. (1995). 《模式識別神經網絡》，牛津大學出版社. ISBN 0-19-853864-2.- Bishop, C. M. (2006). 《模式識別與機器學習》，Springer. ISBN 978-0-387-31073-2.- Richard O. Duda, Peter E. Hart, David G. Stork (2001). 《模式分類》（第2版）, New York: Wiley. ISBN 0-471-05669-3.- MacKay, D. J. C. (2003).  《信息理論、推理和學習算法》 date=20150206001819 ，劍橋大學出版社. ISBN 0-521-64298-1- Mitchel.l, T. (1997). 《機器學習》, McGraw Hill. ISBN 0-07-042807-7- Sholom Weiss, Casimir Kulikowski (1991). Computer Systems That Learn, Morgan Kaufmann. ISBN 1-55860-065-5.

**參見**
 人工智能- 生成式人工智能- 深度學習- 遷移學習- 微調 (深度學習)- 強化學習- 貝葉斯學習- 隨機森林- 決策樹- 計算學習理論- 提示工程- 計算智能- 數據挖掘- 模式識別- 自主控制機器人- 歸納邏輯編程- 神經網絡- 最近鄰居法- 機器學習控制- 量子機器學習