【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的學習系列是整理自網上很大牛和機
【NLP】Python例項:基於文字相似度對申報專案進行查重設計
作者:白寧超 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 摘要:最早接觸馬爾可夫模型的定義源於吳軍先生《數學之美》一書,起初覺得深奧難懂且無什麼用場。直到學習自然語言處理時,才真正使用到隱馬爾可夫模型,並體會到此模型的妙用之處。馬爾可夫模型在處理序列分類時具體強大的功能,諸如解決:詞類標註、語音識別、句