1. 程式人生 > >【NLP】驀然回首:談談學習模型的評估系列文章(一)

【NLP】驀然回首:談談學習模型的評估系列文章(一)

作者:白寧超

2016年7月18日17:18:43

摘要:寫本文的初衷源於基於HMM模型序列標註的一個實驗,實驗完成之後,迫切想知道採用的序列標註模型的好壞,有哪些指標可以度量。於是,就產生了對這一專題進度學習總結,這樣也便於其他人蔘考,節約大家的時間。本文依舊旨在簡明扼要梳理出模型評估核心指標,重點達到實用。本文佈局如下:第一章採用統計學習角度介紹什麼是學習模型以及如何選擇,因為現今的自然語言處理方面大都採用概率統計完成的,事實證明這也比規則的方法好。第二章採用基於資料探勘的角度探討模型評估指標和選擇。第三章採用統計自然語言處理的方法看看模型評價方法。第四章以R語言為例項,進行實戰操作,更深入瞭解模型的相關問題。(本文原創,轉載請註明出處

統計角度窺視模型概念。)

目錄

【自然語言處理:談談學習模型的評估(一)】:

【自然語言處理:談談學習模型的評估(三)】:

【自然語言處理:談談學習模型的評估(四)】:

1 什麼是模型?

1.1  概念簡述

李航《統計學習方法》一書:統計學習方法是由模型、策略和演算法構成的,即統計學習方法的三要素構成,簡化:方法=模型+策略+演算法

維基百科對數學模型描述:數學模型是對所描述的物件用數學語言所作出的描述和處理。

百度百科對策略描述:策略是學習是一項複雜的智慧活動,學習過程與推理過程是緊密相連的,按照學習中使用推理的多少,機器學習所採用的策略大體上可分為4種——機械學習、通過傳授學習、類比學習和通過事例學習。學習中所用的推理越多,系統的能力越強。

單純定義看,不免讓人一頭霧水,究竟何為模型?還是沒有明確的概念,下文將以數學描述+形式化闡述這個問題。首先解決了什麼是模型,咱們才能進行模型好壞指標的評價,進而選擇適合的學習模型。

模型:所有學習的條件概率分佈或者決策函式。

模型的假設空間:包含所有有可能的條件概率分佈或者決策函式。

1.2 例項解析

假設決策函式是輸入變數的線性函式,模型的假設空間就是這些線性函式構成的函式集合,假設空間中的模型一般為無窮多個。【現實應用:假設解決序列詞性標註的的函式模型M,模型的假設空間的由不同引數構成的M模型。(不是很嚴謹,輔助理解。)】

形式化表示:假設空間F表示,假設空間可以為決策函式的集合:

    

x,y在輸入空間X和輸出空間Y上的變數,這時F通常由一個引數向量決定的函式族:

 

引數向量θ取值於n維歐氏空間 ,稱為引數空間。

假設空間也可以定義為條件概率集合:

 

其中x和y是定義在輸入空間X和Y上的隨機變數,這時F通常是一個引數向量的決定的條件概率分佈族:

 

引數向量θ取值於n維歐氏空間,稱為引數空間。

 注意:由決策函式表示的模型為非概率模型(如上述F函式),由條件概率表示的模型為概率模型(如上述y=f(x)函式)。

2 如何進行模型評估和模型選擇?

2.1  訓練誤差和測試誤差

好的模型的特徵:對已知資料和未知資料都有很好的預測能力。

學習方法評估標準:基於損失函式的模型的訓練誤差測試誤差指標

假設學習到的模型  ,訓練誤差是模型 關於訓練資料集的平均損失:

 

其中N是訓練樣本容量。

測試誤差是模型 關於測試資料集的平均損失:

 

其中N’是訓練樣本容量。

2.2 例項

若損失函式是0-1損失時候(0-1損失參考具體相關知識),測試誤差就變成了常見的測試資料集上的誤差率。

,這裡的I是指示函式,即 時為1,否則為0。

相應的,常見的測試資料集上的準確率是:

,這裡的I是指示函式,即 時為1,否則為0。

顯然:  

2.3 例項解析

根據誤差率和準確率可知,測試誤差反映了學習方法對未知情況的測試資料集的預測能力,測試誤差小的方法具有很好的預測能力,更有效的預測。通常將學習方法對未知資料的預測能力稱為泛化能力。

由此我們可以應用到現實想NLP模型中,諸如分類模型,當測試誤差更小的時候,分類更加準確。聚類模型中,當測試誤差較小時候,聚類效果更好等等。那麼,在追去測試誤差較小時候,就要在訓練上下功夫。一味苛求訓練效果好,訓練誤差小,以至於所選擇的模型複雜度非常高,這樣的低訓練誤差,能換回好的預測?其實這就容易出現過擬合,如何避免過擬合選擇更好的模型?下節繼續。

3   過擬合與模型選擇

3.1 何時進行模型選擇?

當假設空間含有不同的複雜度(如,不同的引數個數)的模型時,就要面臨模型選擇問題,以期我們所表達的模型與真實的模型(引數個數)相同或相近。

過擬合:一味追求提高對訓練資料的預測能力,所選擇模型的複雜度往往比真實模型高,此現象就是過擬合。

過擬合指學習時選擇的模型包含的引數過多,以至於出現模型對已經資料預測的好,但是對未知資料預測能力較差。模型選擇準則是避免過擬合併且去提高模型預測的能力。

3.2 例項

給出一個訓練資料集  和一個M次多項式的模型

 

完成下面10個數據點的擬合。

 

是輸入序列集x的觀察值

是輸出序列集y的觀察值

M 次項式是解決問題的模型

W為引數

解決如上問題按照經驗風險最小化策略求解引數即可,即數學表達:

 

損失函式為平方損失,1/2是便於計算。然後將模型公式和訓練資料代入風險最小化公式:

,最後採用最小二乘法(過程略)求解。

3.3 例項分析

如上圖給出M=0,1,3,9的多項式函式的擬合情況,當M=0時,多項式為一個常數,資料擬合很差,當M=1時,多項式曲線為一條直線,擬合依舊差;當M=9時,多項式通過每一個點,訓練誤差0,從訓練資料擬合角度分析,效果最好,但是訓練資料本身很多噪音,對未來資料預測能力差,達不到預期的效果。這就是過擬合,雖然訓練資料好但是未知資料差。當M=3時,多項式曲線對訓練資料擬合效果比較好,對未知資料擬合也很好,其模型也簡單,可以選擇。總結:模型選擇時,不僅僅考慮對已知資料的預測能力,還有考慮對未知資料的預測能力。

訓練誤差和測試誤差與模型複雜度的關係如下圖:

 

可知,當模型複雜度增大時候,訓練誤差會逐漸減少趨近於0,而測試誤差會先減小到最小值後又增大。當選擇模型複雜度過大時,過擬合問題就會出現。

3.4 補充

NLP序列句子識別標註例項更好理解本節。(以下例項便於理解假設的,不是特別嚴謹)

訓練資料集T={(南 B),(海 I),(是 I), (中 I),(國 I),(領 I), (土 I),(。 O) }未知資料P={(不 B), (容 I),(爭I),( 議 I),(。 O)}採用BIO標註,B代表句子開始,I代表中間連續詞,O代表句子。結束。假設採用模型M識別, M次多項式的模型

 

完成下面句子識別。 

結果分析:

M=0時候,模型一個常數效果很差,識別如下:

M=1時候,模型一條直線效果很差,識別如下:

M=3時候,模型曲線擬合基本合理,且未知資料預測較好,識別如下:

M=9時候,模型一條直線效果很差,識別如下:

訓練資料集:

實驗可知:左側為訓練模型的資料,右側為測試模型的資料。當M=0時,訓練誤差和測試誤差都很大;當M=1時,訓練誤差和測試誤差較大;當M=3時,訓練誤差比M=9的訓練誤差大,總體訓練誤差還好,但是,預測誤差卻小於M=9時的預測誤差。綜合比較,選擇M=3的模型效果會更好。綜上,旨在讓大家更好理解概念理論知識。

4 參考文獻

【1】 資料探勘概念與技術(364--386) 韓家煒

【2】 資料探勘:R語言實戰(274--292) 黃文、王正林

【3】 統計自然語言處理基礎 (166—169) 宛春法等譯

【4】 統計學習方法(10---13) 李航

5 自然語言相關係列文章

【自然語言處理:馬爾可夫模型(一)】:

宣告:關於此文各個篇章,本人採取梳理扼要,順暢通明的寫作手法。系統閱讀相關書目和資料總結梳理而成,旨在技術分享,知識沉澱。在此感謝原著無私的將其匯聚成書,才得以引薦學習之用。其次,本人水平有限,權作知識理解積累之用,難免主觀理解不當,造成讀者不便,基於此類情況,望讀者留言反饋,便於及時更正。本文原創,轉載請註明出處談談學習器模型的評估指標。

相關推薦

NLP驀然回首談談學習模型評估系列文章

作者:白寧超 2016年7月19日19:04:51 摘要:寫本文的初衷源於基於HMM模型序列標註的一個實驗,實驗完成之後,迫切想知道採用的序列標註模型的好壞,有哪些指標可以度量。於是,就產生了對這一專題進度學習總結,這樣也便於其他人蔘考,節約大家的時間。本文依舊旨在簡明扼要梳理出模型評估核心指標,

NLP驀然回首談談學習模型評估系列文章

作者:白寧超 2016年7月19日10:24:24 摘要:寫本文的初衷源於基於HMM模型序列標註的一個實驗,實驗完成之後,迫切想知道採用的序列標註模型的好壞,有哪些指標可以度量。於是,就產生了對這一專題進度學習總結,這樣也便於其他人蔘考,節約大家的時間。本文依舊旨在簡明扼要梳理出模型評估核心指標,

NLP驀然回首談談學習模型評估系列文章

作者:白寧超 2016年7月18日17:18:43 摘要:寫本文的初衷源於基於HMM模型序列標註的一個實驗,實驗完成之後,迫切想知道採用的序列標註模型的好壞,有哪些指標可以度量。於是,就產生了對這一專題進度學習總結,這樣也便於其他人蔘考,節約大家的時間。本文依舊旨在簡明扼要梳理出模型評估核心指標,

pykafka爬蟲篇python使用python連線kafka介紹

本人菜雞,最近還更新python的爬蟲系列,有什麼錯誤,還望大家批評指出! 該系列暫時總共有4篇文章,連線如下: 【python】爬蟲篇:python連線postgresql(一):https://blog.csdn.net/lsr40/article/details/83311860

python爬蟲篇python使用psycopg2批量插入資料

本人菜雞,有什麼錯誤,還望大家批評指出,最近在更新python的爬蟲系列,○( ^皿^)っHiahiahia… 該系列暫時總共有3篇文章,連線如下 【python】爬蟲篇:python連線postgresql(一):https://blog.csdn.net/lsr40/article/de

python爬蟲篇python對於html頁面的解析

我,菜雞,有什麼錯誤,還望大家批評指出!! 前言: 根據自己寫的上一篇文章,我繼續更第二部分的內容,詳情請點選如下連結 【python】爬蟲篇:python連線postgresql(一):https://blog.csdn.net/lsr40/article/details/833118

NLP揭祕馬爾可夫模型神祕面紗系列文章

作者:白寧超 2016年7月10日20:34:20 摘要:最早接觸馬爾可夫模型的定義源於吳軍先生《數學之美》一書,起初覺得深奧難懂且無什麼用場。直到學習自然語言處理時,才真正使用到隱馬爾可夫模型,並體會到此模型的妙用之處。馬爾可夫模型在處理序列分類時具體強大的功能,諸如解決:詞類標註、語音識別、句

MySQL通過Binary Log簡單實現數據回滾

pre mage 用途 top IT cal 時間 excel var 一、前言 對,沒錯,我又水了好一陣子,深刻反思寄幾。前段時間,工作項目上出於對excel等批量操作可能出現誤操作的問題,要求提供一個能夠根據操作批次進行數據回滾的能力。在開發的過程中接觸到了MySQL的

Java模擬Sping,實現其IOC和AOP核心

在這裡我要實現的是Spring的IOC和AOP的核心,而且有關IOC的實現,註解+XML能混合使用! 參考資料: IOC:控制反轉(Inversion of Control,縮寫為IoC),是面向物件程式設計中的一種設計原則,可以用來減低計算機程式碼之間的耦合度。其中最常見的方式叫做依賴注入(D

原始碼C++實現嚴蔚敏資料結構所有演算法線性表-順序表

日常說明:首先博主也是菜鳥一枚,有錯誤歡迎大家指正。另外本部落格所有的程式碼博主編寫後均除錯 通過。重要提醒!!!!博主使用的是VS2017,如果有低版本的小夥伴 最好新建空專案將此程式碼複製上去。 附加說明:最初的程式碼我沒有嚴格的按照專案規範來分離,希望

深度學習模型壓縮方法綜述

前言 目前在深度學習領域分類兩個派別,一派為學院派,研究強大、複雜的模型網路和實驗方法,為了追求更高的效能;另一派為工程派,旨在將演算法更穩定、高效的落地在硬體平臺上,效率是其追求的目標。複雜的模型固然具有更好的效能,但是高額的儲存空間、計算資源消耗是使其難以有

Git系列文章Git簡介

Git:一個開源的分散式版本控制系統,可以有效的高速的控制管理各種從小到大的專案版本。他的作者就是大名鼎鼎的Linux系統創始人Linus。 git命令教程:https://www.yiibai.com/git   常用的幾個命令: git init 初始化版本倉庫 git

Deep Learning深度學習學習筆記整理系列

Deep Learning(深度學習)學習筆記整理系列 作者:Zouxy version 1.0  2013-04-08 宣告: 1)該Deep Learning的學習系列是整理自網上很大牛和機

NLPPython例項基於文字相似度對申報專案進行查重設計

作者:白寧超 2017年5月18日17:51:37 摘要:關於查重系統很多人並不陌生,無論本科還是碩博畢業都不可避免涉及論文查重問題,這也對學術不正之風起到一定糾正作用。單位主要針對科技專案申報稽核,傳統的方式人力物力比較大,且伴隨季度性的繁重工作,效率不高。基於此,單位覺得開發一款可以達到實用的

NLP前戲一起走進條件隨機場

作者:白寧超 2016年8月2日13:59:46 【摘要】:條件隨機場用於序列標註,資料分割等自然語言處理中,表現出很好的效果。在中文分詞、中文人名識別和歧義消解等任務中都有應用。本文源於筆者做語句識別序列標註過程中,對條件隨機場的瞭解,逐步研究基於自然語言處理方面的應用。成文主要源於自然語言處理

網路程式設計基礎林老師版簡單的 套接字通訊

一、服務端程式碼  import socket #1、買手機 phone=socket.socket(socket.AF_INET,socket.SOCK_STREAM) # print(phone) #2、繫結手機卡 phone.bind(('127.0.0.1',8081)) #0-

NLP揭祕馬爾可夫模型神祕面紗系列文章

作者:白寧超 2016年7月11日15:31:11 摘要:最早接觸馬爾可夫模型的定義源於吳軍先生《數學之美》一書,起初覺得深奧難懂且無什麼用場。直到學習自然語言處理時,才真正使用到隱馬爾可夫模型,並體會到此模型的妙用之處。馬爾可夫模型在處理序列分類時具體強大的功能,諸如解決:詞類標註、語音識別、句

NLP揭祕馬爾可夫模型神祕面紗系列文章

作者:白寧超 2016年7月11日22:54:57 摘要:最早接觸馬爾可夫模型的定義源於吳軍先生《數學之美》一書,起初覺得深奧難懂且無什麼用場。直到學習自然語言處理時,才真正使用到隱馬爾可夫模型,並體會到此模型的妙用之處。馬爾可夫模型在處理序列分類時具體強大的功能,諸如解決:詞類標註、語音識別、句

NLP揭祕馬爾可夫模型神祕面紗系列文章

作者:白寧超 2016年7月12日14:28:10 摘要:最早接觸馬爾可夫模型的定義源於吳軍先生《數學之美》一書,起初覺得深奧難懂且無什麼用場。直到學習自然語言處理時,才真正使用到隱馬爾可夫模型,並體會到此模型的妙用之處。馬爾可夫模型在處理序列分類時具體強大的功能,諸如解決:詞類標註、語音識別、句

NLP揭祕馬爾可夫模型神祕面紗系列文章

作者:白寧超 2016年7月12日14:08:28 摘要:最早接觸馬爾可夫模型的定義源於吳軍先生《數學之美》一書,起初覺得深奧難懂且無什麼用場。直到學習自然語言處理時,才真正使用到隱馬爾可夫模型,並體會到此模型的妙用之處。馬爾可夫模型在處理序列分類時具體強大的功能,諸如解決:詞類標註、語音識別、句