机器学习笔记(十二)计算学习理论
12.計算學習理論
12.1基礎知識
計算學習理論(computationallearning theory)研究的是關于通過計算來進行學習的理論,即關于機器學習的理論基礎,其目的是分析學習任務的困難本質,為學習算法提供理論保證,并根據分析結果指導算法設計。理論是共性的、抽象的,是基于眾多個體總結出來的規律,反過來可以作為個體的理論依據。
12.2PAC學習
計算學習理論中最基本的是概率近似正確(probably approximately correct,pac)學習理論。
令c表示概念(concept),是從樣本空間X到標記空間Y的映射,它決定示例x的真實標記y,若對任何樣例(x,y)有c(x)=y成立,則稱c為目標概念;所有學得的目標概念所構成的集合稱為概念類(concept class),用C表示。
給定學習算法A,其所考慮的所有可能概念的集合稱為假設空間(hypothesis space),用符號H表示。學習算法事先并不知道概念類的真實存在,因此H和C通常是不同的。學習算法會把自認為可能的目標概念集中起來構成H,對h∈H,由于并不能確定它是否真是目標概念,因此成為假設(hypothesis)。假設h也是從樣本空間X到標記空間Y的映射。
若目標概念c∈H,則H中存在假設能將所有示例按與真實標記一致的方式完全分開,稱該問題對學習算法A是可分的(separable),也稱為一致性(consistent);若c?H,則H中不存在任何假設能將所有示例完全正確分開,稱該問題對學習算法A是不可分的(non-separable),也稱不一致性(non-consistent)。
給定訓練集D,期望基于學習算法A學得的模型所對應的假設h盡可能接近目標概念c。由于機器學習過程受到眾多因素制約,包括樣本數量的有限性、采樣的偶然性,因此只能接近目標概念,而不能精確,希望以比較大的把握學得比較好的模型,也就是說,以較大的概率學得誤差滿足預設上限的模型,也就是PAC定義的來由,使概率上近似正確。
如上,PAC學習給出了一個抽象地刻畫機器學習能力的框架,基于這個框架能對很多重要問題進行理論探討,如研究某任務在什么樣的條件下可學得較好的模型?某算法在什么樣條件下可進行有效的學習?需多少訓練樣例才能獲得較好的模型?
PAC學習中一個關鍵因素是假設空間H的復雜度。H包含了學習算法A所有可能輸出的假設,若在PAC學習中假設空間與概念類完全相同,即H=C,稱為恰PAC可學習(properly PAC Learnable);直觀上理解,意味著學習算法的能力與學習任務恰好匹配。然后,這種讓所有候選假設都來自概念類的要求并不切實際,因為現實中對概念類C通常是一無所知。因此,重要的研究假設空間與概念類不同的情形,即H≠C。一般而言,H越大,其包含任意目標概念的可能性越大,但從中找到某個具體目標概念的難度也越大。|H|有限時,稱H為有限假設空間,否則稱為無限假設空間。
12.3有限假設空間
1)可分情形
可分情形是說目標概念c屬于假設空間H,即c∈H。給定包含m個樣例的訓練集D,如何找出滿足誤差參數的假設呢?
既然D中樣例標記都是由目標概念c賦予的,并且c存在于假設空間H中,那么任何在訓練集D上出現標記錯誤的假設肯定不是目標概念c。如此,只需保留與D一致的假設,剔除與D不一致的假設即可。
如訓練集D足夠大,則可不斷借助D中的樣例剔除不一致的假設,直到H中僅剩下一個假設為止,這個假設就是目標概念c。通常情形下,由于訓練集規模有限,假設空間H中可能存在不止一個與D一致的等效假設,對這些等效假設,無法根據D來對它們的優劣進行進一步區分。
?
12.4VC維
現實學習任務所面臨的通常是無限假設空間,例如實數域中的所有區間、Rd空間中的所有線性超平面。要對這類學習任務的可學習性進行研究,通過考慮假設空間的VC(Vapnik-Chervonenkis dimension)維來度量假設空間的復雜度。先引入增長函數(growth function)、對分(dichotomy)和打散(shattering)。
?
12.5Rademacher復雜度
上文推出基于VC維的泛化誤差界是分布無關、數據獨立的,即對任何數據分布都成立,使基于VC維的可學習性分析結果具有一定的普適性;但從另一方面來說,由于沒有考慮數據自身,基于VC維得到的泛化誤差界通常比較松,尤其是與學習問題相差甚遠的不好分布。
Rademacher復雜度(Rademachercomplexity)是另一種刻畫假設空間復雜度的途徑。和VC維不同的是,它在一定程度上考慮了數據分布。
?
12.6穩定性
基于VC維和Rademacher復雜度來推導泛化誤差界,所得結果與具體算法無關,對所有學習算法適用,是通用性算法可學習性的刻畫。學習理論的意義就在于從個體中總結出一般規律,從而應用于實際。與算法無關的學習理論,固然可以脫離具體學習算法設計而考慮學習問題本身的性質,但若要獲得與算法有關的分析結果,則需另辟蹊徑;穩定性(stability)分析就是分析算法相關的。
算法的穩定性考察的是算法在輸入發生變化時,輸出是否也隨之發生變化。學習算法的輸入是訓練集,先定義兩種訓練集的變化。
給定D={ z1=(x1,y1),z2= (x2,y2),…, zm= (xm,ym)},xi∈X是來自分布D的獨立同分布示例,yi∈{-1,+1}。對假設空間H:X->{-1,+1}和學習算法A,令AD∈H表示基于訓練集D從假設空間H中學得的假設,考慮下面兩種變化:
1)D\i表示移除D中第i個樣例得到的集合D\i={z1, z2,…, zi-1, zi+1,…, zm};
2)Di表示替換D中第i個樣例得到的集合Di={z1, z2,…, zi-1, z*i ,zi+1,…,zm};
其中z*i={x*i, y*i},x*i服從分布D并獨立于訓練集。
損失函數Loss(AD(x),y):YxY->R+刻畫了假設AD的預測標記AD(x)與真實標記y之間的差別,記為Loss(AD,z)。下面定義關于假設AD的幾種損失:
1)泛化損失:Loss(A,D)=E x ∈X,z=(x,y)[ Loss(A D,z)]。
總結
以上是生活随笔為你收集整理的机器学习笔记(十二)计算学习理论的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【正一专栏】王者的尊严和荣耀
- 下一篇: Greenplum数据库(GPDB)初识