《統計學習方法》代碼全解析——第十二部分監督學習方法總結

1 適用問題

監督學習可以認爲是學習一個模型,使它能對給定的輸入預測相應的輸出。監督學習包括分類、標註、迴歸。本篇主要考慮前兩者的學習方法。

分類問題是從實例的特徵向量到類標記的預測問題;標註問題是從觀測序列到標記序列(或狀態序列)的預測問題。可以認爲分類問題是標註問題的特殊情況。 分類問題中可能的預測結果是二類或多類;而標註問題中可能的預測結果是所有的標記序列,其數目是指數級的。

感知機、𝑘k近鄰法、樸素貝葉斯法、決策樹是簡單的分類方法,具有模型直觀、方法簡單、實現容易等特點;

邏輯斯諦迴歸與最大熵模型、支持向量機、提升方法是更復雜但更有效的分類方法,往往分類準確率更高;

隱馬爾可夫模型、條件隨機場是主要的標註方法。通常條件隨機場的標註準確率更事高。

2 模型

分類問題與標註問題的預測模型都可以認爲是表示從輸入空間到輸出空間的映射.它們可以寫成條件概率分佈𝑃(𝑌|𝑋)或決策函數𝑌=𝑓(𝑋)的形式。前者表示給定輸入條件下輸出的概率模型,後者表示輸入到輸出的非概率模型。

樸素貝葉斯法、隱馬爾可夫模型是概率模型;感知機、𝑘k近鄰法、支持向量機、提升方法是非概率模型;而決策樹、邏輯斯諦迴歸與最大熵模型、條件隨機場既可以看作是概率模型,又可以看作是非概率模型。

直接學習條件概率分佈𝑃(𝑌|𝑋)或決策函數𝑌=𝑓(𝑋)的方法爲判別方法,對應的模型是判別模型:感知機、𝑘k近鄰法、決策樹、邏輯斯諦迴歸與最大熵模型、支持向量機、提升方法、條件隨機場是判別方法。

首先學習聯合概率分佈𝑃(𝑋,𝑌),從而求得條件概率分佈𝑃(𝑌|𝑋)的方法是生成方法,對應的模型是生成模型:樸素貝葉斯法、隱馬爾可夫模型是生成方法。

決策樹是定義在一般的特徵空間上的,可以含有連續變量或離散變量。感知機、支持向量機、k近鄰法的特徵空間是歐氏空間(更一般地,是希爾伯特空間)。提升方法的模型是弱分類器的線性組合,弱分類器的特徵空間就是提升方法模型的特徵空間。

感知機模型是線性模型;而邏輯斯諦迴歸與最大熵模型、條件隨機場是對數線性模型;𝑘k近鄰法、決策樹、支持向量機(包含核函數)、提升方法使用的是非線性模型。

3 學習策略

在二類分類的監督學習中,支持向量機、邏輯斯諦迴歸與最大熵模型、提升方法各自使用合頁損失函數、邏輯斯諦損失函數、指數損失函數,分別寫爲:

這3種損失函數都是0-1損失函數的上界,具有相似的形狀。(見下圖,由代碼生成)

import numpy as np
import math
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
plt.figure(figsize=(10,8))
x = np.linspace(start=-1, stop=2, num=1001, dtype=np.float)
logi = np.log(1 + np.exp(-x)) / math.log(2)
boost = np.exp(-x)
y_01 = x < 0
y_hinge = 1.0 - x
y_hinge[y_hinge < 0] = 0

plt.plot(x, y_01, 'g-', mec='k', label='(0/1損失)0/1 Loss', lw=2)
plt.plot(x, y_hinge, 'b-', mec='k', label='(合頁損失)Hinge Loss', lw=2)
plt.plot(x, boost, 'm--', mec='k', label='(指數損失)Adaboost Loss', lw=2)
plt.plot(x, logi, 'r-', mec='k', label='(邏輯斯諦損失)Logistic Loss', lw=2)
plt.grid(True, ls='--')
plt.legend(loc='upper right',fontsize=15)
plt.xlabel('函數間隔:$yf(x)$',fontsize=20)
plt.title('損失函數',fontsize=20)
plt.show()

可以認爲支持向量機、邏輯斯諦迴歸與最大熵模型、提升方法使用不同的代理損失函數(surrogateloas Punotion)表示分類的損失,定義經驗風險或結構風險函數,實現二類分類學習任務。學習的策略是優化以下結構風險函數,

第1項爲經驗風險(經驗損失),第2項爲正則化項, 𝐿(𝑦,𝑓(𝑥)) 爲損失函數, 𝐽(𝑓) 爲模型的複雜度, 𝜆≥0  爲係數。
支持向量機用 𝐿 2 L2 範數表示模型的複雜度。原始的邏輯斯諦迴歸與最大熵模型沒有正則化項,可以給它們加上 𝐿 2 範數正則化項。提升方法沒有顯式的正則化項,通常通過早停止(early stopping)的方法達到正則化的效果。
概率模型的學習可以形式化爲極大似然估計或貝葉斯估計的極大後驗概率估計。學習的策略是極小化對數似然損失或極小化正則化的對數似然損失。對數似然損失可以寫成: −𝑙𝑜𝑔𝑃(𝑦|𝑥)

極大後驗概率估計時,正則化項是先驗概率的負對數。
決策樹學習的策略是正則化的極大似然估計,損失函數是對數似然損失,正則化項是決策樹的複雜度。
邏輯斯諦迴歸與最大熵模型、條件隨機場的學習策略既可以看成是極大似然估計(或正則化的極大似然估計),又可以看成是極小化邏輯斯諦損失(或正則化的邏輯斯諦損失)。
樸素貝葉斯模型、隱馬爾可夫模型的非監督學習也是極大似然估計或極大後驗概率估計,但這時模型含有隱變量。

4 學習算法

統計學習的問題有了具體的形式以後,就變成了最優化問題。

樸素貝葉斯法與隱馬爾可夫模型的監督學習,最優解即極大似然估計值,可以由概率計算公式直接計算。

感知機、邏輯斯諦迴歸與最大熵模型、條件隨機場的學習利用梯度下降法、擬牛頓法等一般的無約束最優化問題的解法。 支持向量機學習,可以解凸二次規劃的對偶問題。有序列最小最優化算法等方法。

決策樹學習是基於啓發式算法的典型例子。可以認爲特徵選擇、生成、剪枝是啓發式地進行正則化的極大似然估計。

提升方法利用學習的模型是加法模型、損失函數是指數損失函數的特點,啓發式地從前向後逐步學習模型,以達到逼近優化目標函數的目的。

EM算法是一種迭代的求解含隱變量概率模型參數的方法,它的收斂性可以保證,但是不能保證收斂到全局最優。

支持向量機學習、邏輯斯諦迴歸與最大熵模型學習、條件隨機場學習是凸優化問題,全局最優解保證存在。而其他學習問題則不是凸優化問題。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章