概率與統計及相關概念是整個機器學習的基礎。其與空間幾何、線性代數一起構成了深度學習的理論基石。很多機器學習的理論描述都是基于概率的。而概率本身也是理工學科的基礎性工具,廣泛地應用于工程的各個領域。掌握好概率論是深入學習機器學習的基礎,可以幫助我們進行相關公式的推演以及系統的描述。
這種概率化描述系統的過程比我們前面确定性的描述過程(空間曲面)更加抽象與難以理解。很多機器學習工作者在這裡會遇到學習過程中的一個很大的障礙—很多機器學習系統是通過概率來進行描述的,這種不确定性通常與我們的直覺相悖。
本書在編寫過程中盡量使用兩種方式來描述系統,即函數式描述以及概率式描述,方便對概率論不甚了解的讀者閱讀本書。如果讀者對概率概念較為熟悉,則可跳過本章進行後續學習。本章将對概率與統計領域的基本概念進行闡述,需要着重理解什麼是建模以及最大似然估計。
2.1 概率基礎概念機器學習非常依賴于概率以及相關的數學工具。因此在深度學習中與概率相關的概念的出現頻率非常高。我們習慣了使用确定性的思維來描述事物,這種确定性的思維在一定程度上類似于函數。
(2.1)
也就是說,我們給定一個
就會有一個确定的
。但這種描述方式存在缺陷。因為環境本身可能存在噪聲,這使我們給定
的時候輸出的值與
之間可能出現偏差,或者由于我們的模型本身複雜度不足以描述數據導緻
與
之間可能出現偏差。回顧第1章所列舉的超定方程的例子。我們在用直線拟合4個數據點的過程中由于直線形式較為簡單,因此并不能完美地穿過所有的數據點,而隻能近似。這種近似就是模型本身複雜度不足所引起的偏差。因此為了描述真實世界,引入概率是必要的。列舉一個簡單的例子:抛硬币。這是一個簡單的随機事件,随機事件就是在重複試驗中有規律地出現的事件。抛硬币隻有兩種情況{正面,反面},這種由全體樣本點組成的集合,稱為樣本空間,可以用大寫字母表示。由于在抛硬币的過程中彼此之間并不影響,出現正面和反面的概率均是0.5,因此我們稱樣本是獨立同分布的(Independent and Identically Distributed, IID)。
概率與頻率
抛硬币過程中假設做了1 000次試驗,出現了501次正面,那麼此時出現正面的頻率就是。而概率就是樣本無窮大時的頻率,代表了随機事件的特征。通常用p來表示概率—
在這個過程中我們并未獲取任何知識,因為抛硬币試驗本身就是一個等概率分布。從另外一個角度來講,我們更加深入地研究了抛硬币的過程,獲取了更多的特征,這裡的特征指的是我們觀測到抛硬币試驗中抛硬币的高度、使用力氣的大小、風速等一系列觀測參數。此時我們再計算硬币正面的概率就是在這些條件下所得到的概率。
p(正面|高度, 力度, 風速,⋯) (2.2)
實際上式 (2.2) 就是一個條件概率,它代表了在我們觀察到外界的情況下對抛硬币事件的預測。更加通用的條件概率書寫形式如下。
(2.3)
如果此時概率依然是0.5,那麼代表我們實際上沒有獲取任何知識。如果我們通過一系列統計将預測硬币概率為0.9,那麼代表我們是可以通過外界的觀察而對随機事件進行有效預測的。這就是說我們從數據中發現了可用的知識,這是一個典型的機器學習過程。機器學習就是通過對觀測數據進行分析,從而獲取有用的知識。
如果抛硬币試驗的樣本空間是離散的,則隻有兩種情況。而對于其他情況,比如說某一電視機第一次損壞的時間,這個時間是連續的,這種稱為連續型随機變量。離散型随機變量與連續型随機變量對應于機器學習的兩個基本問題—分類問題與回歸問題。連續型随機變量的概率僅在積分條件下有意義。
(2.4)
對于電視機損壞的問題而言,這代表從a時刻開始到b時刻之間損壞的概率。
稱為概率密度函數。概率密度函數符合下面的約束條件。
(1)
,概率不存在負值。
(2)
,所有可能情況之和為1。離散類型随機變量需将積分改為求和。
如果有多個随機變量,則概率可以寫為如下形式。
(2.5)
此時稱為聯合概率分布,其代表了
同時發生的概率。舉一個簡單的例子,我們有兩枚硬币A和B,硬币是不均勻的,A出現正面概率是0.6,B出現正面概率是0.7。那麼可以将兩枚硬币的聯合概率寫成如表2.1所示的形式。
表2.1 兩枚硬币試驗中條件概率與邊緣概率
由表2.1可以看到,對于獨立試驗而言,其概率是直接相乘的。抛硬币A、B這種獨立試驗假設也是樸素貝葉斯算法的基本假設。
(2.6)
其中涉及了新的概念—邊緣概率。邊緣概率就是根據概率的聯合分布獲取某一随機變量的分布。其形式如下。
(2.7)
對于條件概率和聯合概率有如下公式。
(2.8)
從另一個角度來講,條件概率給定了某些事件的依賴關系,比如濕度過高會直接導緻下雨,而下雨又與降溫有直接關系,但溫度降低和濕度之間沒有明顯的依賴關系。這種依賴關系可以通過圖形化的方式來展示,如圖2.1所示。
圖2.1 概率的有向圖模型
如果濕度、下雨、降溫三者之間沒有明顯的關系,也就是獨立的事件,那麼可以用式 (2.6)進行聯合概率的分解。但三者之間顯然不是獨立的。下雨在濕度确定的情況下是獨立的,而降溫則是在下雨的條件下是獨立的。因此,概率分解方式應該為p(濕度,下雨,降溫)=p(濕度)p(下雨|濕度)p(降溫|下雨)。這種概率分解可以簡化建模。
這稱為概率圖模型,它代表了随機變量的依賴關系。假設對于聯合概率分布某些變量存在依賴關系,則其可以寫為如下形式。
(2.9)
此時概率有向圖的形式如圖2.2所示。
圖2.2 概率有向圖模型
如果概率之間并無依賴關系,則可以用無向圖來表示,如圖2.3所示。
圖2.3 無向圖表示的概率模型
此時概率可以分解為如下形式。
(2.10)
這稱為概率無向圖模型或馬爾科夫随機場,其中Z是歸一化常數。式 (2.10) 的分解依據為最大子團的分解。任意兩個節點間均有線連接,而加入任意新節點均無法滿足前面的條件,則稱這種結構為最大子團。兩種圖模型均可以用來表示聯合概率分解。這種圖示對于表示來說是清晰直觀的。
2.2 随機變量數字特征對于随機變量本身,我們很難用确定性的公式來描述,因此可以借助随機變量的數字特征來描述變量内在特征。在機器學習中我們所關注的随機變量的數字特征主要有随機變量的數學期望、方差、标準差、協方差等。這其中最簡單也是最重要的就是期望。期望的公式形式如下。
(2.11)
式 (2.11) 列舉了兩種随機變量的表示形式,一種是離散型随機變量,另一種是連續型随機變量。一般認為積分就是特殊形式的求和,因此兩個公式并無本質區别。但這裡需要說明的一點是,期望(Expected Value)與均值(Arithmetic Mean)是不同的。期望描繪的是數據的真實情況,是概率學内容;均值僅是對樣本數據進行的統計,屬于統計學範疇。在樣本數量較多的情況下,由大數定理可以知道均值和樣本相等。一般認為,樣本均值是對期望的無偏估計。
(2.12)
僅有數據均值是沒有用的。對于樣本本身分布而言還需要統計分布的離散程度,這種離散程度稱為方差。方差(Variance)概念的産生就是為了描述變量的離散程度,其表達方式如下。
(2.13)
标準差是在方差的基礎上開根号,其與方差可以一起用來描述數據的分布情況。為了說明問題,我們繪制圖像來展示數據分布的描述方式,如圖2.4所示。
圖2.4 數據的不同方差圖示
如果數據方差越大,則數據分布越分散。從統計條形圖上可以看到,紅色統計圖數據标準差較大,因此看起來分布更加分散。
條形圖
條形圖用來描述數據的分布情況,數據x軸表示随機變量取值,縱軸表示在某一區間樣本數量的多少。可以對條形圖概率進行歸一化,在大樣本情況下歸一化條形圖描繪了樣本的概率分布。
前面兩個統計數據均值以及方差均是描繪了一維數據的特征。如果樣本本身有兩個屬性,則可以通過協方差(Covariance)來描述數據兩個屬性之間的線性相關性。
(2.14)
這裡
、
代表數據點的兩個屬性,如果将數據存儲為二維矩陣,那麼每一行代表一個樣本,每一列代表數據的某一屬性。此時
、
就是二維矩陣的列向量。如果對式 (2.14) 使用方差進行歸一化,我們得到的就是兩列數據之間的皮爾遜相關系數(Pearson Correlation Coefficient)。
(2.15)
這種歸一化表示是有益的,我們可以通過直接觀察相關系數的取值來衡量兩列之間的相關性,如圖2.5所示。
圖2.5 不同分布數據的線性相關性
由圖2.5可知,如果兩個列屬性之間線性相關性較強,則其相關系數接近于1或者−1,否則接近于0。
線性相關性
這裡的線性相關性與第1章中的向量的相關性是類似的。如果兩個向量(列向量)具有很強的線性相關性,則代表一個向量可以由另一個向量來表示:。從另一個角度來講,數據内部存在冗餘,我們僅需要存儲即可表征。
對于多維向量而言,其組織形式為矩陣:
,其中
代表列向量,矩陣的每一行代表一個樣本,每一列
代表樣本的元素。對于這種數據,需要将協方差變為協方差矩陣(Convariance Matrix)來描述線性相關性。
(2.16)
衍生算法:主成分分析(PCA)算法它用來衡量樣本各列之間的線性相關性,如果各列之間的線性相關性比較強,則意味着其中一列可以用另一列來表示。這種盡量減少各列數據的數據相關性的算法就稱為PCA算法。PCA算法可以有效地減少數據冗餘,通常用于數據預處理過程。PCA算法的基本思想的公式化描述如下。
(2.17)
假設
中每一列元素均值為0,那麼式 (2.17) 就能成立。由此現在的一個問題就是找到一個合适的變換矩陣
使得
能夠變換為
的形式。也就是變換後使各列之間的線性相關性最小,這樣協方差矩陣可以對角化,在此假設對
進行變換的方式為線性變換。
(2.18)
要使變換後矩陣
可以用式 (2.17) 的形式對角化,可以對矩陣
其進行特征值分解。
(2.19)
此時僅需要使
,那麼變換後形式如下。
(2.20)
式 (2.18) 中的變換矩陣
就是式 (2.19)中的
。PCA算法實際上與矩陣的奇異值分解有很大程度的相似性,或者底層算法可以通用。
2.3 信息熵信息論是概率與統計的衍生内容。很多時候我們需要對系統的混亂程度進行衡量,通常而言這是難以量化的,在熱力學中引入了熵的概念。在物理學中系統總是趨于向熵增大的方向發展,也就是從有用的機械能到内能的轉換,這種轉換在孤立系統中是不可逆的。以一個形象的例子來說:兩種顔色的沙子,在混合前是有規律的。而在将其混合後整個系統的混亂程度變得很高,如果要将兩種顔色分開,需要人為挑選,這個過程需要做功。同樣地,機器學習過程也是如此,在開始過程中系統輸出是無規律的,我們需要進行訓練使整個系統可以進行某種預測。為了衡量系統本身的複雜度,在信息論中引入了與熱力學熵類似的信息熵。在了解信息熵之前,我們需要定義自信息。
(2.21)
自信息在信息學中是以2為底的
,單位是bit。這個概念比較容易理解,如果某一概率特别小的事件發生了,那麼說明它帶來了足夠多的有用信息。對于某一變量而言,我們通常并不關心它的具體取值,而隻是關注它的分布形式。對自信息取均值,就得到了信息熵,也稱香農熵(Shannon Entropy),其可以用來衡量系統的混亂程度。
(2.22)
這裡如果
或1,那麼
,式 (2.21) 對于離散變量就可以寫成求和形式。
這裡以抛硬币來舉例。如果在抛硬币的過程中,我們得到正反面的概率均為0.5,前面說到這種情況是無法學到任何知識的,這種知識量化就是信息熵,計算公式如下。
H(硬币) = - p(正面)log( p(正面) ) - p(反面)log{( p(反面) ) =}1 (2.23)
前面說到,log以2為底,單位是bit。此時,對于硬币而言,用1bit信息就可以表示狀态0或者1。如果通過某種方式,我們預測得知正面概率變為了1,則計算可得以下結果。
H(硬币) = - p(正面)log( p(正面) ) - p(反面)log{( p(反面) ) =}0 (2.24)
此時信息熵變小了,也就是系統混亂程度變小了。前面講過我們可以通過一定條件預測出抛硬币的結果。此時我們從系統中學到了有用的知識,從而使系統混亂程度降低。以硬币正面概率作為變量,以熵作為函數,如圖2.6所示。
圖2.6 預測硬币正反概率所對應的信息熵
因此,機器學習過程就是從數據中尋找規律從而使系統熵變小的過程。
在機器學習中衡量兩個分布相似度的概念是交叉熵(Cross Entropy)。
(2.25)
這也是機器學習中常用的損失函數之一(損失函數我們放到後面詳細描述)。相比傳統的點的距離的損失函數,交叉熵在計算梯度的過程中通常更加有效。因此,交叉熵在處理多分類問題時是更加合理的選擇。
Softmax在機器學習中很多理論是基于概率的,但是在理論推演過程或者實現過程中它通常用函數
來表示,其中
是輸入樣本,
是模型。在這個過程中,需要在概率與函數輸出之間進行轉換,其常用的形式如下。
(2.26)
這裡将模型輸出轉換為概率形式,
是歸一化常數,m為自定義常數通常為1。這個過程稱為Softmax。對于多分類問題,我們給定的數據标簽為d,它是一個多維向量,每一個維度上都保存了可能屬于某一類的概率。例如,對于年齡層劃分[青年,中年,老年]的問題,數據标簽可能為
,表示這個人屬于老年的概率為100%,這是因為我們在标注數據時可以确定這個人是老年人。這種編碼方式稱為one-hot編碼。
這種編碼方式是對應機器學習問題而産生的,因為如果用1、2、3來表示不同的年齡階段,則可能難以訓練。而預測輸出
,顯然并非概率的表示,因為概率表示不會存在負數,同時滿足約束之和為1。
對于第一個問題,我們可以通過e指數的方式解決。将
變為
,之後再進行歸一化
,整個過程稱為Softmax。它實際上解決的問題是将函數轉換為概率表示,也是基于能量的模型。
(2.27)
之後就可以用Softmax的結果與原有的标簽
計算交叉熵來作為損失函數。
2.4 概率模型下的線性變換機器學習模型均可以通過概率的方式進行描述。對于上面所述的一系列變換過程,均可以描繪為概率生成模型。
(2.28)
假設
是從某種分布
中抽取的向量,對于線性因子來講,其生成過程如下。
(2.29)
式 (2.29) 中
為噪聲,那麼它所描述的生成過程類似于如下公式。
(2.30)
式 (2.30) 描述的是線性變換的過程。因此很多線性變換可以描述成上述形式,這個過程如圖2.7所示。
圖2.7 線性因子圖示
對于 PCA 算法來講,式 (2.28) 中的
是線性獨立的。它的産生方式也是式 (2.30) 所描述的線性方式,而分布是單位分布。
(2.31)
假設
的協方差矩陣為單位矩陣,則由其産生的
如下。
(2.32)
2.5 最大似然估計與最大後驗估計這裡依然以抛硬币試驗為例。記錄
次随機試驗
,硬币正面
,出現正面的概率為
,從頻率學派的觀點來看,概率
應該是僅依賴于現有試驗結果的,也就是通過數據取得的。
(2.33)
這個概率應該是令式 (2.33) 取最大值的概率。在假設了正面出現的概率後,假設試驗是有順序的同時也是獨立重複的,那麼可以計算出現随機試驗情況下所得的概率。
(2.34)
計算上述以
為自變量的函數的最大值。
令函數為如下形式。
(2.36)
式 (2.36) 取得最小值時
,由此認為取得正面的概率為
。求解硬币取得正面概率的過程稱為最大似然估計(MLE)。
貝葉斯學派則認為概率符合一個先驗分布。這個先驗分布可以糾正采樣的偏差。
(2.37)
在式 (2.37) 中
(1)為後驗。
(2)為似然。
(3)為先驗。
(4)先驗概率 數據=後驗概率。
先驗概率是什麼意思?假設為了估計此次投擲硬币為正面的概率,我先用自己的硬币做了
次實驗,正面出現了
次,假設此時正面概率為
,那麼出現這種情況的概率如下。
式 (2.38) 中constant為歸一化常數,稱為Beta函數。
(2.39)
到此為止,我們都在描述
的分布,也就是硬币為正面概率的分布。可以看到使用我自己的硬币估計時,取得0.5的概率是最大的,如圖2.8所示。
這個概率就可以作為我們的先驗分布,它是概率的概率。以這個先驗分布,我們去估計其他硬币的試驗,假設使用另一枚硬币,抛4次,出現正面為
次,出現反面為
次,那麼在貝葉斯理論下出現正面的概率如下。
圖2.8 硬币為正面的概率分布
将式 (2.40) 繪制成圖2.9所示的曲線。
圖2.9 融入先驗概率後計算的正面概率分布
此時硬币正面概率最大值為0.375。這個數值很重要,我們以最大似然估計預測的硬币正面概率是0.25。此時是沒有先驗分布的,如果引入了先驗分布,則取得的正面概率應該為0.375。而我們抛硬币的次數僅為4次,因此很大可能出現偏差,先驗概率的引入則可以糾正這種偏差。從另一個角度來看相當于在最大似然估計的基礎上加入了正則化項,這種估計稱為最大後驗估計(MAP)。
假設神經網絡輸出為
,通過Softmax處理。
(2.41)
此時分類問題神經網絡預測過程可以描述為,給定樣本
後輸出屬于某一類的概率
,而神經網絡的可訓練參數為
。
(2.42)
神經網絡的訓練過程則可以描述為如下形式。
式 (2.43) 中,
為one-hot形式的向量。可以看到,最大似然估計與交叉熵作為損失函數具有相同的意義。
本文截選自《深度學習算法與實踐》
本書主要内容分為3個部分。
第一部分為深度學習的數學基礎(第1~4章)。這部分内容包括空間幾何與線性代數、概率與統計、函數建模與優化、機器學習庫的使用。其中,前兩個是相對獨立的,因此讀者可以根據自己的基礎進行選擇性閱讀;建模與優化綜合了線性代數、概率與統計的内容。
第二部分為深度學習基本組件(第5~9章)。這部分内容包括深度學習模型與全連接網絡、卷積神經網絡、循環神經網絡基礎、循環神經網絡擴展以及深度學習優化。這些基本組件均配有與訓練預測過程基本實現。讀者可以脫離機器學習庫實現深度學習算法,這是理想的學習結果,但并非理想的學習過程。作為初學者應當在實踐中逐步深入地進行學習。
第三部分為深度學習中常見的應用場景以及相關模型(第10~12章)。這部分内容包括圖像處理(物體檢測、人臉識别)、自然語言處理(語音識别、自然語言翻譯、語音生成)和非監督學習(對抗生成網絡、圖像去噪、增強學習)。
作為入門圖書,本書會從簡單的函數入手描述深度學習(這是編程所必需的),同時介紹深度學習的基本元素與實現(如卷積神經網絡、循環神經網絡)。至于更複雜的理論,僅進行預測過程公式的說明與機器學習庫版本的實現(如注意力機制)。訓練過程可能需要借助TensorFlow來完成,但這不代表其本身與TensorFlow是綁定的關系。希望看完本書的讀者能夠抽出時間來進行更系統的學習。比如從空間幾何、統計理論開始學習,但作為初學者,不建議過分糾結基礎。如果要真正精通機器學習問題,時間和精力也是必須付出的成本。
,