機器學習從零開始系列連載(1)——基本概念

本周內容:

1. 一些基本概念

1.1 生成式模型與判別式模型

1.2 參數學習與非參學習

1.2.1 參數學習

1.2.2 非參學習

1.3 監督學習、非監督學習與強化學習

1.3.1 監督學習

1.3.2 非監督學習

1.3.3 強化學習

2. 建模方法回顧

2.0 偏差與方差

2.1 線性回歸-Linear Regression

2.1.1 模型原理

2.1.2 損失函數

2.2 支持向量機-Support Vector Machine

2.2.1 模型原理

2.2.2 損失函數

2.2.3 核方法

2.3 邏輯回歸-Logistic Regression

2.3.1 模型原理

2.3.2 損失函數

2.4 Bagging and Boosting框架

2.4.1 Bagging框架

2.4.2 Boosting框架

2.5 Additive Tree 模型

2.5.1 Random Forests

2.5.2 AdaBoost with trees

2.5.3 Gradient Boosting Decision Tree

2.5.4 簡單的例子

2.6 人工神經網絡-Neural Network

2.6.1 神經元

2.6.2 神經網絡的常用結構

2.6.3 一個簡單的神經網絡例子

01

生成式模型與判別式模型

從概率分佈的角度看待模型。給個例子感覺一下: 如果我想知道一個人A說的是哪個國家的語言,我應該怎麼辦呢?

生成式模型

我把每個國家的語言都學一遍,這樣我就能很容易知道A說的是哪國語言,並且C、D說的是哪國的我也可以知道,進一步我還能自己講不同國家語言。

判別式模型

我只需要學習語言之間的差別是什麼,學到了這個界限自然就能區分不同語言,我能說出不同語言的區別,但我哦可能不會講。

如果我有輸入數據x,並且想通過標註y去區分不同數據屬於哪一類,生成式模型是在學習樣本和標註的聯合概率分佈p(x, y)而判別式模型是在學習條件概率p(x|y)。

生成式模型p(x, y)可以通過貝葉斯公式轉化為p(x|y)=p(x, y)/p(x),並用於分類,而聯合概率p(x, y)分佈也可用於其他目的,比如用來生成樣本對(x, y)。

判別式模型的主要任務是找到一個或一系列超平面,利用它(們)劃分給定樣本x到給定分類y,這也能直白的體現出「判別」模型這個名稱。

最後給一個很簡單的例子說明一下:

假如我有以下獨立同分佈的若干樣本(x, y),其中x為特徵,y∈{0, 1}為標註,(x, y)∈{(2, -1), (2, -1), (3, -1), (3, 1), (3, 1)}

常見生成式模型

Naive Bayes

Gaussians

Mixtures of Gaussians

Mixtures of Experts

Mixtures of Multinomials

HMM

Markov random fields

Sigmoidal belief networks

Bayesian networks

常見判別式模型

Linear regression

Logistic regression

SVM

Perceptron

Traditional Neural networks

Nearest neighbor

Conditional random fields

02

參數學習與非參學習

參數學習

參數學習的特點是:

1、選擇某種形式的函數並通過機器學習用一系列固定個數的參數儘可能表徵這些數據的某種模式;

2、不管數據量有多大,函數參數的個數是固定的,即參數個數不隨着樣本量的增大而增加,從關係上說它們相互獨立;

3、往往對數據有較強的假設,如分佈的假設,空間的假設等。

4、常用參數學習的模型有:

Logistic Regression

Linear Regression

Polynomial regression

Linear Discriminant Analysis

Perceptron

Naive Bayes

Simple Neural Networks

使用線性核的SVM

Mixture models

K-means

Hidden Markov models

Factor analysis / pPCA / PMF

非參學習

注意不要被名字誤導,非參不等於無參

1、數據決定了函數形式,函數參數個數不固定;

2、隨着數據量的增加,參數個數一般也會隨之增長;

3、對數據本身做較少的先驗假設。

4、一些常用的非參學習模型:

k-Nearest Neighbors

Decision Trees like CART and C4.5

使用非線性核的SVM

Gradient Boosted Decision Trees

Gaussian processes for regression

Dirichlet process mixtures

infinite HMMs

infinite latent factor models

03

監督學習、非監督學習與強化學習

監督學習

對於每一個樣本都會提供一個明確的學習目標(標註),有自變量也有因變量,學習機接收樣本進行學習並通過對該樣本預測後的結果和事先給定的目標比較後修正學習過程,這裡的每一個樣本都是標註好的,所以好處是歧義較低,壞處是萬一有一定量樣本標錯了或者沒標會對最終應用效果影響較大。通常監督學習過程如下:

非監督學習

對於每個樣本不提供明確的學習目標(標註),有自變量但無因變量,學習機接收樣本後會按事先指定的必要參數,依據某種相似度衡量方式自動學習樣本內部的分佈模式,好處是沒有過多先驗假設,能夠體現數據內在模式並應用,壞處是有「盲目」性,並會混在噪聲數據。比如:常用LDA做主題聚類,但如果使用場景不是降維而是想得到可輸出的主題詞,基本上沒有人肉的干預無法直接使用(雖然整體上看感覺可能不錯)。

強化學習

我認為強化學習是最接近人類學習過程的,很多情況下我們無法直接表達什麼是正確的什麼是錯誤的(比如:我正在爬山,邁了一大步,又邁了一小步,那麼沒法兒說我邁了大步正確還是錯誤),但是可以通過懲罰不好的結果或者獎勵好的結果來強化學習的效果(我邁了個大步,導致沒有站穩,那麼對邁大步做懲罰,然後接下來我會邁小一點)。

所以強化學習是一個序列的決策過程,學習機的學習目標是通過在給定狀態下選擇某種動作,尋找合適動作的策略序列使得它可以獲得某種最優結果的過程。

強化學習的幾個要素,體現其序列、交互性:

環境(environment):

強化學習所處的上下文;

學習器(agent):

與環境的交互並學習的對象,

具有主動性;

動作(action):

處於環境下的可行動作集合;

反饋(feedback):

對動作的回報或懲罰;

策略(policy):

學習到的策略鏈。

經典的訓練狗的實驗就是一種強化學習的過程: