1. 程式人生 > >機器學習筆記(十二)計算學習理論

機器學習筆記(十二)計算學習理論

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)=Ex∈X,z=(x,y)[ Loss(AD,z)]。




相關推薦

機器學習筆記()計算學習理論

12.計算學習理論 12.1基礎知識 計算學習理論(computationallearning theory)研究的是關於通過計算來進行學習的理論,即關於機器學習的理論基礎,其目的是分析學習任務的困難本質,為學習演算法提供理論保證,並根據分析結果指導演算法設計。理論是共性的

CSDN機器學習筆記 k-近鄰演算法實現手寫識別系統

本文主要內容來自《機器學習實戰》 示例:手寫識別系統 為了簡單起見,這裡構造的系統只能識別數字0到9。需要識別的數字要使用圖形處理軟體,處理成具有相同的色彩和大小:32*32 黑白影象。為了方便理解,這裡將影象轉換成文字格式。 1. 流程 收集

odoo10學習筆記:web controller

gpo 原始的 -s 系列 http 上下文環境 boolean quest 指向 原文地址:http://www.cnblogs.com/ygj0930/p/7151551.html 一:路由 odoo.http.route(route=None, **kw) 裝飾器可以

python學習筆記()-網絡編程

ade install 二進制格式 port div .cn files 服務 返回 本文結束使用 Requests 發送網絡請求。requests是一個很實用的Python HTTP客戶端庫,編寫爬蟲和測試服務器響應數據時經常會用到。可以說,Requests 完全滿足如今

Linux學習筆記周一次課(4月23日)

lnmp linux nginx mysql php 12.1 LNMP架構介紹12.2 MySQL安裝進入下載目錄cd /usr/local/src查看已下載的文件ls查看進程是否運行ps aux | grep mysql刪除安裝目錄rm -rf /usr/local/mysql刪除服務

Linux學習筆記周三次課 (4月25日)

nginx 訪問日誌 日誌切割 靜態文件 12.10 Nginx訪問日誌vim /usr/local/nginx/conf/nginx.conf //搜索log_format$remote_addr //客戶端P(公網IP)$http_x_forwarded_for //代理服務器的IP$ti

Linux學習筆記周四次課(4月26日)

nginx防盜鏈 nginx訪問控制 Nginx解析php相關配置 Nginx代理 12.13 Nginx防盜鏈防盜鏈,就是禁止其他網址鏈接到本網站圖片文本等資源;vim /usr/local/nginx/conf/vhost/test.com.conf //server中添加以下信息----

Linux學習筆記周五次課(4月27日)

Nginx負載均衡 ssl原理 生成ssl密鑰對 Nginx配置ssl 12.17 Nginx負載均衡代理服務器代理多個WEB即為均衡,dig命令可以查看域名對應IP地址,安裝dig命令為#yum install -y bind-utils例如#dig qq.comvim /usr/local

IOS開發學習筆記 實現一個簡單的答題器

效果圖:專案地址 專案新增素材,新增plist檔案,並新增plist裡面的字典資料對應的model物件 module標頭檔案: #import <Foundation/Foundation.h> @interface CZQuestion :

webservice學習筆記():js與jquery利用ajax獲取webservice返回值

1.webservice服務端程式碼如圖(ps:只是一個簡單的sayHello的demo):   -服務端是基於spring的,具體beans.xml配置如下: <?xml version="1.0" encoding="UTF-8"?> <bea

設計模式學習筆記------組合模式

目錄 本文的結構如下: 引言 什麼是組合模式 模式的結構 典型程式碼 程式碼示例 優點和缺點 適用環境 模式應用 一、引言 樹形結構是很常見的,比如目錄系統,隨便點開一個資料夾,資料夾下面可能有檔案,也有子資料夾,子資料夾中還有子子資料夾和檔案……

Zookeeper學習筆記之 網路配置與叢集配置

網路配置 這些配置引數可以限制伺服器和客戶端之間的通訊 zookeeper.globalOutstandingLimit: ZooKeeper中待處理請求的最大值,ZooKeeper客戶端提交請求比ZooKeeper伺服器處理請求要快很多,服務端將會對接收到的請求佇列化

ReactiveCocoa 學習筆記(RACEvent)

RACEvent RACEvent 是 ReactiveCocoa 框架中用來表示訊號流所傳送的事件資訊的類,同三種訊號量相對應,該類可以分為三種。 typedef NS_ENUM(NSUInteger

C學習筆記)-理論

C學習筆記(二)-理論 理論選擇易錯題 本部落格用來記錄理論易錯題及一些重點概念。 如存在問題,歡迎指出。 理論選擇易錯題 What is the output of this C code? #include <stdio

Go語言學習筆記()之Map型別

17.Map型別 Map 是一種無序的鍵值對的集合。Map 最重要的一點是通過 key 來快速檢索資料,key 類似於索引,指向資料的值。 Map 是一種集合,所以我們可以像迭代陣列和切片那樣迭代它。不過,Map 是無序的,我們無法決定它的返回順序,這是因為 Map 是使用 hash 表來實現的。

機器學習筆記(五)規則學習

15.規則學習 15.1基本概念 機器學習中的規則(rule)通常是指語義明確、能描述資料分佈所隱含的客觀規律或領域概念、可寫成若…則…形式的邏輯規則。規則學習(rulelearning)是從訓練資料中學習出一組能用於對未見示例進行判別的規則。 顯然,規則集合中的每天

EF6學習筆記:Update操作、批量數據操作

ima 調用 關系 https rod 解決辦法 onf 默認值 view 要專業系統地學習EF前往《你必須掌握的Entity Framework 6.x與Core 2.0》這本書的作者(汪鵬,Jeffcky)的博客:https://www.cnblogs.com/Crea

Python學習筆記()—Python3中pip包管理工具的安裝

1、什麼是pip? 簡單來說pip就是Python的一個包管理工具,可以對第三方的包進行管理操作,例如,安裝、解除安裝、檢查更新、檢視包資訊等等。 2、安裝pip 安裝pip之前,首先要保證已經安裝了Python開發環境。還是老規矩,仍

Java學習筆記()--idea配置的jdk是1.8,依舊報錯Diamond types are not supported at this language level

    使用的開發工具是idea,jdk的版本是1.8,jdk1.7提供了菱形語法,在jdk1.7之後,宣告一個泛型不需要寫尖括號中的型別,否則顯得多餘。   之前的寫法:List<String> strList = new ArrayList<String

組合語言學習筆記()-浮點指令

浮點數如何儲存 浮點數的運算完全不同於整數,從暫存器到指令,都有一套獨特的處理流程,浮點單元也稱作x87 FPU。 現在看浮點數的表示方式,我們所知道的,計算機使用二進位制儲存資料,所表示的數字都具有確定性,那是如何表示浮點這種具有近似效果的資料呢,答案是通過科學計數