計算語言學之預備知識
0.寫在前面
這一講,我們主要是來複習一下我們將要用到的一些數學概念,這裡主要包含3大部分,第一部分是概率論的相關知識,第二部分是資訊理論的相關知識,第三部分則是支援向量機的相關知識。我們這一講,主要圍繞這三個問題進行講解。
1.概率論相關知識
1.1. 概率的定義
概率論的第一個問題,就是什麼是概率:概率是從隨機試驗中的事件到實數域的對映函式,用以表示事件發生的可能性。
準確來講,我們個人是沒有辦法對一個事物得到其概率的真實值,尤其是在教科書裡,更是把極大似然估計看作是概率的估計,約等於概率。這種想法,對於初學者來講,會使得概率變得有血有肉,但對於極大似然估計的理解,就增加了難度,很多人搞不清楚什麼是極大似然估計的原因,就是因為極大似然估計的位置讓概率所佔有了,所以你很難再去找一個合適的定義來定義極大似然估計。
事實上,兩者之間的的關係是這樣的:
如果
當N越來越大是對頻率
1.2.條件概率與聯合概率
這兩個可能有點像,不過不應該搞混掉。
1.2.1.條件概率與聯合概率
條件概率如果A和B是樣本空間Ω上的兩個時間,P(B)>0,那麼,在給定B時A的條件概率P(A|B)為
這種是條件概率,這種值得是在事件B的條件下,事件A的概率。
而聯合概率就是分子上的那個P(A∩B)。
1.2.2. 條件概率分佈與聯合概率分佈
既然提到了分佈,那和概率還是有一點區別,也是有一點聯絡的。
假設
而條件概率分佈是長這樣的:
而其分母,其實是邊緣概率分佈,大家看一下表格就知道了。
其中藍色的部分為P(X1)的邊緣概率分佈,黃色部分為P(X2)的邊緣概率分佈。
1.3.貝葉斯法則與貝葉斯決策理論
1.3.1. 貝葉斯法則
貝葉斯法則被我們多次提及,這是一項非常重要的法則,在概率論中被廣為使用。主要用來對於問題的兩個不同方面可以進行概率的相互轉化的時候用到。其基本公式為:
推廣來講,假設A為樣本空間Ω的事件,
這才是最重要的式子,一定要牢記。
1.3.2. 貝葉斯決策理論
一旦知道了貝葉斯法則,那麼貝葉斯決策理論就應運而生了。貝葉斯決策理論是統計方法處理模式分類問題的基本理論之一。只需要把公式裡的變數賦予相應的物理意義:
其中
簡單來講,非洲多為黑種人,而歐洲多為白種人,如果你遇到一個人,這個人是黑種人,那麼你肯定猜測他來自非洲的可能性比較大,如果你遇到的是白種人,那麼你肯定猜測他來自歐洲的可能性比較大。這就是貝葉斯決策理論在我們日常生活中的應用,你可能已經不知不覺就學會了這個理論。
1.4.隨機變數和分佈
對於我們一個問題的所有不確定性因素都可以成為隨機變數,而這些隨機變數都會遵循的某些分佈,這些分佈可能是簡單的,也可能是複雜的。在正常處理問題的過程中,我們多半會用高斯分佈來模擬噪聲分佈,而且收到了比較好的效果,另外二項式分佈也經常被使用。當然,像LDA模型裡的Dirichlet分佈,也是一個對於主題模型很好效果的模擬,儘管我們並不知道真實的主題分佈是什麼樣子。
1.5.顯著性檢驗
另外對於顯著性檢驗,也是我們對於模型假設的一個有效性的評估。顯著性檢驗就是事先對總體(隨機變數)的引數或總體分佈形式做出一個假設,然後利用樣本資訊來判斷這個假設(備擇假設)是否合理,即判斷總體的真實情況與原假設是否有顯著性差異。
或者說,顯著性檢驗要判斷樣本與我們對總體所做的假設之間的差異是純屬機會變異,還是由我們所做的假設與總體真實情況之間不一致所引起的。 顯著性檢驗是針對我們對總體所做的假設做檢驗,其原理就是“小概率事件實際不可能性原理”來接受或否定假設。
其中“小概率事件實際不可能性原理”指的是小概率事件在一次試驗中是幾乎不可能發生的,假若在一次試驗中小概率事件事實上發生了。那隻能認為該事件不是來自我們假設的總體,也就是認為我們對總體所做的假設不正確。
這個部分,我們在概率論與數理統計中學到過,就不在深入解讀,大家知道大概即可,通常顯著性測驗的數值P的閾值是1%、5%、10%、20%等,其檢驗方式也有很多包括T檢驗、U檢驗、方差分析等。
2.資訊理論相關知識
提到資訊理論,不得不提到夏農和熵,作為資訊理論的核心,夏農使用熵這個來自於物理理論的術語很好的刻畫了資訊世界的內在混亂程度。而且正是由於資訊世界的2進位制基礎單位,使得我們對於熵有了一個更為直觀的認識,這也就是夏農提出熵的背景——資訊編碼長度問題。
2.1. 熵的定義
熵的本質為系統的內在混亂程度,也就是說,如果事物內部越混亂,則其熵越大,其內部越統一,則熵越小。用在資訊理論中,這是指資訊可編碼程度越複雜,也就是資訊內部各部分之間區分度非常大,則其熵越大,而如果資訊可編碼程度越簡單,則熵越小。其定義式為:
其中X是一個離散型隨機變數,其概率分佈為p(x)=P(X=x)。
熵又稱為是自資訊,這時和後面的互資訊相區別的。所謂的自資訊,就是指描述一個隨機變數自身的不確定性,如果熵越大,它的不確定性越大,正確估計其值的可能性就越小。
就上一講討論的漢語是否是最難的學的語言,在熵的衡量標準中就可以確切體現。一般來講,英語的熵為4.02,而漢語高達9.71。這也就是為什麼外國人總是覺得漢語難學了,因為所需要的編碼程度是英語的2倍還多。
2.2.聯合熵和條件熵
2.2.1.聯合熵
如果X,Y是一對離散型隨機變數,X,Y~p(x,y),X,Y的聯合熵H(X,Y)定義為:
聯合熵實際上描述的是一對隨機變數平均所需要的資訊量。
2.2.2. 條件熵
在給定X的情況下,Y的條件熵定義為:
可能看起來不是太清楚,沒關係,經過變換後,我們可以把聯合熵和條件上進行相互轉換,其中間人就是自資訊:
講到這,是不是想起條件概率和聯合概率了?
2.2.3.自資訊與互資訊
自資訊在我們上面講過了,就是熵。那麼互資訊的定義為:
這個I(X;Y)反應的是再知道了Y的值以後X的不確定性減少量,可以理解為Y的值透露了多少關於X的資訊量。
互資訊體現的是兩個變數之間的依賴程度,如果I(X;Y)>>0,則表明X和Y是高度相關的。如果I(X;Y)=0,則表明X和Y是相互獨立的。當然如果互資訊是負的,通常不出現。
互資訊在詞彙聚類、漢語自動分詞、詞義消歧等問題的研究中具有重要用途,不過在漢語自動分詞與歧義消解中,通常使用雙字耦合度來替代互資訊,以便於更精確的表示兩字之間的依賴程度。
2.2.4.相對熵和交叉熵
2.2.4.1. 相對熵
相對熵又稱為KL距離,是衡量相同事件空間裡兩個概率分佈相對差距的測度。對兩個分佈p(x)和q(x),相對熵的定義為:
當兩個隨機分佈完全相同時,其相對熵為0,而當兩個隨機分佈的差別增加時,其相對熵的期望也越大。
2.2.4.2. 交叉熵
交叉熵主要用來衡量的是估計模型與真實概率分佈之間差異情況的。
隨機變數X和模型q之間的交叉熵為:
模型的交叉熵越小,則表示模型的表現越好。而在自然語言中,我們通常使用困惑度來替代交叉熵。
3.支援向量機相關知識
支援向量機理應不該在這裡描述,但是考慮到在將來有可能用到,因此在這簡要說明,等真正用到的時候,我們會做詳細講解。
首先,支援向量機與我們之前所講的感知器模型十分的相似,但是更為複雜。
3.1. 線性可分
針對於線性可分的樣本集,基本上和感知器模型大致相同,通常是二分類問題。但是與感知器不相同的是它的決策函式為:
以最大間隔分開資料的超平面稱為最優超平面。
而對於多分類問題,則是給每個類關聯一個超平面,然後把新點賦予超平面距離最遠的一類空間。
3.2. 線性不可分
通常來講,線性可分的資料集少之又少,通常都是線性不可分的。即使是線性可分的資料集,通常我們也沒有辦法去證明它是線性可分的,只好假定為線性不可分的資料集。
針對線性不可分的資料集,支援向量機有自己的絕招,那就是核函式。所謂的核函式,就是可以把樣本對映到某個高位特徵空間,這樣的話,我們就能在高維空間裡線性可分了。
但是高維的空間也就意味著更大的時間複雜度,但是支援向量機可以使用一種對映變化,使得其高維的點與點的內積可以轉換為低維的內積,這樣就可以大大減少計算量。
而如何構造核函式,則是研究支援向量機的一個重要方向,目前主要有多項式核函式,徑向基核函式,多層感知機,動態核函式等。我們將會在後面的支援向量機的專題中,進行相關解答。
4.小結
我們這次講解了3個部分,分別是概率論、資訊理論以及支援向量機的一些初級知識,為了給下面的學習做鋪墊,歡迎隨時回來複習。
相關文章
- 知識增強的預訓練語言模型系列之ERNIE:如何為預訓練語言模型注入知識模型
- RMAN預備知識
- Java預備知識Java
- go語言學習-基礎知識Go
- 【筆記】動手學深度學習-預備知識筆記深度學習
- Go語言小知識之map遍歷Go
- 計算機網路知識備筆記計算機網路筆記
- 課程-計算機語言學計算機
- 熱修復預備知識
- Go語言小知識之append()函式GoAPP函式
- 計算機網路基礎知識(面試準備)計算機網路面試
- R語言學習筆記:基礎知識R語言筆記
- C語言void指標的運算操作[小知識]C語言指標
- Java函數語言程式設計知識分享!Java函數程式設計
- C語言知識彙總 | 00-C語言知識彙總目錄C語言
- c語言基礎知識C語言
- C語言瑣碎知識C語言
- EasyNLP釋出融合語言學和事實知識的中文預訓練模型CKBERT模型
- Go語言核心36講(Go語言基礎知識一)--學習筆記Go筆記
- Go語言核心36講(Go語言基礎知識二)--學習筆記Go筆記
- Go語言核心36講(Go語言基礎知識三)--學習筆記Go筆記
- Go語言核心36講(Go語言基礎知識四)--學習筆記Go筆記
- Go語言核心36講(Go語言基礎知識五)--學習筆記Go筆記
- Go語言核心36講(Go語言基礎知識六)--學習筆記Go筆記
- 【雲端計算】雲端計算四個必學知識看這裡!
- 雲端計算教程學習入門影片:雲端計算學習的必學知識
- 軟體設計師:程式設計語言基礎知識程式設計
- 知識增廣的預訓練語言模型K-BERT:將知識圖譜作為訓練語料模型
- 機器學習之必備知識篇機器學習
- flutter【1】-dart語言--基本知識FlutterDart
- 【技術性】OO語言知識
- 組合語言-基礎知識組合語言
- C語言指標基本知識C語言指標
- c語言基礎知識3C語言
- C 語言複雜知識點
- FutureTask原始碼解析(1)——預備知識原始碼
- 資料探勘比賽預備知識
- 那些主流程式語言的知識,C語言(Ⅰ)C語言