1. 程式人生 > >BAT資深演算法工程師《深度學習》讀書分享:概率和資訊理論

BAT資深演算法工程師《深度學習》讀書分享:概率和資訊理論

《深度學習》這本書是機器學習領域的重磅書籍,三位作者分別是機器學習界名人、GAN的提出者、谷歌大腦研究科學家 Ian Goodfellow,神經網路領域創始三位創始人之一的蒙特利爾大學教授 Yoshua Bengio(也是 Ian Goodfellow的老師)、同在蒙特利爾大學的神經網路與資料探勘教授 Aaron Courville。只看作者陣容就知道這本書肯定能夠從深度學習的基礎知識和原理一直講到最新的方法,而且在技術的應用方面也有許多具體介紹。這本書面向的物件也不僅是學習相關專業的高校學生,還能夠為研究人員和業界的技術人員提供穩妥的指導意見、提供解決問題的新鮮思路。

面對著這樣一本內容精彩的好書,不管你有沒有入手開始閱讀,都希望藉此給大家提供一個共同討論、共同提高的機會。所以我們請來了曾在百度和阿里工作過的資深演算法工程師王奇文與大家一起分享他的讀書感受。

分享人:王奇文,資深演算法工程師,曾在百度和阿里工作,先後做過推薦系統、分散式、資料探勘、使用者建模、聊天機器人。“演算法路上,砥礪前行”。

「Deep learning」讀書分享(三) —— 第三章 概率和資訊理論

分享的是「深度學習」這本書的第三章概率和資訊理論。

這節課會講到一些基本概念,常用的分佈,頻率學派和貝葉斯學派的差別,還有貝葉斯規則,概率圖,最後是資訊理論。這裡第四條可能很多人可能頭一回見到,學了那麼多概率,連這個都不知道,那你的概率真的白學了,真這樣,不開玩笑。不過,老實說我也是前幾年才知道這個學派的差別,因為浙大三版教材上就沒提到這些,好像就提到一點,頻率學派就是古典概率,沒有什麼其他的,這也是現行教材的缺陷。

概率的概念就是描述一個事件發生的可能性,比如說今天下雨嗎?我們平時的回答裡面可能有一些口語化表達,比如可能、八成、好像會、天氣預報說會。這是一種可能性或者一種可信度,怎麼用數學方法去衡量它呢?就是通過概率。

為什麼每一個事件有一些可能性?有時候可能發生、有時候可能不發生。它是由多種原因產生的,因為任何事情都存在一定的不確定性和隨機性,它的來源第一個叫系統本身,也就是這個事件本身的隨機性;第二個,即使你瞭解了系統的一些基本特性,在觀測的時候也不一定都是準的,因為觀測還會有隨機誤差,比如測量時裝置因素;第三,比如你觀測的變數上有一些事件是服從正態分佈的,這個正態分佈真的就是對的嗎?也不一定,所以存在一個不完全建模

的問題。這是不確定性和隨機性的三種因素、三種原因。

概率就是對不確定性的事件進行表示和推理。書裡面提到一點,就是往往簡單而不確定的規則,比複雜而確定規則更實用,這個怎麼理解呢?像第一句話,多數鳥兒會飛,這個好理解,但是其實第一條很不嚴謹,因為它有很多情況,有些鳥本身就不會飛(企鵝、鴕鳥),有些幼小、生病也不會飛;如果嚴謹一點,表述成下面 “除了什麼。。。什麼。。。以外的鳥兒都會飛”,聽著都累。這就是簡單而不確定的規則比複雜而確定的規則更實用

機器學習裡面有一個類似的概念叫奧卡姆剃刀也是一樣,簡單的模型能滿足差不多的效果就可以了,比那些複雜的模型、準確度高一些的要好得多。

事件有幾種分類。必然事件,太陽從東邊升起西邊落下是必然的;不可能事件,1+1 不可能不等於 2(這個不要鑽牛角尖,這方面的段子很多,千萬別跟我說陳景潤證明 1+1 不等於 2,我跟你急);買彩票中了五百萬,這個概率是非常小的,即小概率事件。小概率怎麼度量呢?就是正態分佈裡面三倍標準差以外,跟那個μ±3δ相關。

這是事件發生可能性的度量,三種類別:必然事件,隨機事件,不可能事件

前人做了一些實驗——拋硬幣,觀察出現正面的可能性。可以看到 2048 次還是 0.51,然後越來越多的時候,趨近於事務本身:拋硬幣時,正面反面應該是 1/2 的概率。就是說實驗次數越多,它越趨近於事件本身發生的概率,這個也叫大數定律。(注:皮爾遜真傻,扔了 3.6w 次,哈哈,科學家好像都挺 “傻” 的)

隨機變數有兩種分類,按照它的取值空間分為離散和連續,不同的分類有不同的概率密度函式。連續時是 PDF 概率密度函式,離散時是概率質量函式,對應不同的求解方法。這個在機器學習裡面也會經常區分,如果是離散的,那麼就是分類問題;如果連續的就是迴歸問題,這是一一對應的。

概率會滿足一些性質,非負可加歸一,歸一就是和是 1。

這是離散型的概率分佈,X 這個事件取得 X1、X2 等等情況的可能性。這是離散概率分佈,如果是連續的話就變成積分的形式了。

這幾個表示式我們見得多了,均值、方差、協方差。注意一點,方差前面的分母是 N-1,因為這個地方用到的是期望,期望已經用掉了一個自由度,所以這個地方自由度要減一;這地方要注意,要不然的你算方差的時候這裡是 N 就糗大了。

這個是時間序列,裡面檢驗一個序列的平穩性,要知道它的期望是一個常數還是方差是一個常數。期望類似均值。圖中綠色序列的期望是固定的,紅色序列的期望是變化的。

方差是每一次的波動幅度要一樣,圖中綠色序列的方差是固定的,紅色序列的方差是變化的。

還有一個叫協方差,自己跟自己比的話,每一次變化的週期要一致。像這個紅色序列前面週期比較長,後面週期變短,然後又長了,它的週期就一直在變化,這個也是不穩定的。

方差的形象理解,就是期望對每一個值之間的差別,取平方、求和取近似均值(除 N-1)。

協方差是衡量兩個變數,兩個隨機事件 X 和 Y 之間的關係;這個關係指的是線性關係,不是任意的關係,如果 X 和 Y 成非線性關係,這個協方差解決不了,這是要注意的地方。

這個是相關係數,就是用的協方差,然後除以它的兩個方差 D(X)D(Y);如果相關係數在不同的取值範圍,表示有不同的相關度。0 就是完全沒有線性關係,-1 是完全負相關,1 是完全正相關;這都是指線性關係。

這是一個圖形化的解釋,線性就是這樣,在二維空間裡面的一條直線,有斜率;這種非線性的用協方差是度量不了的。

介紹幾個概念。邊緣概率是,如果聯合分佈涉及到 x、y 兩個事件,那麼固定 x 看它的平均分佈,這叫邊緣概率。條件概率是在一個事件發生的時候,另外一個事件的概率分佈。

這個是全概率公式,是求 B 事件發生時候 A 的發生概率;B 可能有多種取值,每種取值情況下都要算一下。

鏈式法則是,有可能有多種依賴。像這個聯合分佈裡面,A、B、C 三個事件,需要 C 發生且 B 發生,然後 B 和 C 同時發生的時候 A 發生,這就是鏈式法則。

這是概率裡面的幾個重要概率。條件概率和全概率剛才已經說了,貝葉斯是基於這兩個基礎上的。

這是「生活大爆炸」裡面 Sheldon 在驗算這個。

常用的概率分佈,均勻、伯努利;範疇分佈裡面就不再是一個值,而是多個值,實驗一次有多種結果,相當於扔的是色子,而前面扔的是硬幣,那麼硬筆只有兩種取值;還有高斯分佈,也叫正態分佈。

這正態分佈的鐘形曲線。對於標準正態分佈,均值是 0,標準差為 1;這個圖裡覆蓋的是正負兩個標準差的範圍,這不是我們常見的畫法。一般畫圖的時候會畫到正負三個標準差,這個範圍內曲線下的面積是總的 99.7%。

這是我單獨整理一張圖,幾種概率分佈之間的關係;它們之間的變化是有規律的。

  • 伯努利分佈相當於是扔硬幣,扔一次;

  • 扔了很多次以後就變成二項分佈;

  • 扔多次直到成功就是幾何分佈,比如扔了三次,看第一次出現正面的概率;

  • 負二項分佈,是說實驗 n 次,成功 r 次才停止;

  • 超幾何分佈跟二項分佈是不同的,最核心的不同在於它是不放回的抽樣,而二項分佈是放回的;

  • 最核心的當然就是正態分佈了。

這張圖是碰到什麼情況下該用哪種分佈。先不細說了,大家等到以後用了再說。

中心極限定律就是,多次隨機變數的和,把它看成一個新的隨機變數的話,它也是近似服從正態分佈的,就這個意思。

書裡有個高斯分佈分佈,就是說剛才提到的分佈都比較簡單,我們能不能把它們整合起來,設計我想要的分佈。這就用到高斯混合模型,這個圖裡面他構造了三種概率分佈:

  • 第一種的表述是 “各向同性”,其中 x1、x2 兩個變數的分佈的方差,必須一樣。那麼從整個形成的幾何形狀看來,這些資料點就像一個球形或者是圓形。每一個方向的方差是一樣的,是規則的形狀。如果不滿足就變成二和三的情形。

  • 第二組是用一個對角陣,就是 x1 和 x2 在方陣的對角線上,其他位置是零,控制 y 這個維度上面的方差,把它放大了;相當於把第一種的變化做了一下拉伸。

  • 第三種情況類似的,把 X 軸也做一下拉伸;當然在 Y 軸方向也有拉伸,這個是說 x1、x2 兩個變數的方向可以做任意的控制,這就是高斯混合模型的作用,可以按照你想要的分佈去設計。

這裡提幾個大人物,一個是數學王子高斯,他和阿基米德、牛頓並列為世界三大數學家。德國的貨幣叫馬克,十馬克上面印的頭像就是高斯,頭像左邊就是正態分佈;硬幣上也有。好像只有德國把科學家印在紙幣上面,其他的國家基本都是政治人物,這也體現日耳曼這個民族的可怕。(值得學習)

這是標準正態分佈。一倍標準差、兩倍、三倍的位置對應的面積不同,分別覆蓋了 68%、95%、99.7%。三倍標準差以外的事件就當作小概率事件,這也是它的定義方式。

右圖是一些相關用法,比如假設檢驗裡面會驗證α,也叫分位數,比如就 0.05 以上的概率是什麼,驗證一下對點估計或者區間估計的可信度。

常用函式,這是一個 sigmoid,它有飽和特性。

還有一個 softplus,它是 softmax 的一種弱化;softmax 從右往左下降會直接到 0,在 0 的位置有一個突變,然後繼續走;0 這個點的左導數和右導數是不一樣的,左導數是 0,右導數是 1,所以 0 這個點上的導數是不存在的。怎麼辦呢?為了數學上面好看,而且求導方便,那就把它變成 softplus,在 0 這個點做變換之後就整個平滑起來,每個點的都是可導的。實際上在書裡面也提到一點,平時其實深度網路 DNN 裡面會經常用到 ReLU,ReLU 裡就是 softmax。softmax 是 ReLU 的一種推廣。ReLU 裡 0 點也是不可導的,就有一些規則的方法,就是如果到了這個點的話,他會給要麼是 0,要麼是 1,視具體情況而論。

這是一些概率函式的基本性質。sigmoid 求導非常方便,還有其他一些特性。softplus 也有一些很好的性質,(x)-(-x) 起來就等於 x,挺簡單。

頻率學派和貝葉斯學派。先講講貝葉斯這個人,他剛開始只是一個牧師,就是一個神職人員,滑稽的是,他做數學研究是為了研究神的存在;這個跟牛頓有點像,不過牛頓前期是不怎麼研究,到老了研究上帝,最後沒什麼成果。貝葉斯是一個徹頭徹尾的學術屌絲,在 1742 年就加入了皇家學會;當時也是有牛人給推薦了,他沒有發表過任何論文,不知道怎麼的就進去了;後來也挺悽慘,到 1761 年死了也沒什麼訊息。1763 年,他的遺作被人發現「論機會學說中一個問題的求解」,貝葉斯理論就從此誕生。

誕生時,還是波瀾不驚,沒有什麼影響。直到 20 世紀,也就是過了幾百年(對,等黃花菜都涼了,花兒都謝了),貝葉斯理論就開始越來越有用了,成為現在概率裡面的第二大門派,一般提到概率就會提到頻率學派和貝葉斯學派。這個人物跟梵高一樣,生前一文不值,死後價值連城。貝爺(別想多了,不是荒野求生)非常非常的低調。

還有一個更加悲劇的數學天才——迦羅瓦,他是群論的創始人,法國人,也是非常厲害的一個天才。十幾歲就提出五次多項式方程組的解不存在,論文先後給別人看,希望大神引薦、宣傳一下,結果被柯西、傅立葉、泊松等人各種理由錯失,有的遺失、有的拒絕,反正那些大師都不看好。然後到 21 歲的時候,年少氣盛,一不開心就跟情敵決鬥,這個情敵是個警探,居然用槍決鬥,然後光榮的掛了。

當然,決鬥前夜他知道自己會掛(明知要死,還有去送死,這是種什麼精神?),所以連夜把自己的書稿整理一下,交代後事,這才有群論的誕生。後來人對他評判是 “笨死的天才”,他的英年作死直接導致整個數學發展推遲了幾十年。

上面圖中是貝葉斯,不一定是他本人,因為這個人太低調,連張頭像可能都找不到,沒有人能夠記清楚了,所以這個不一定是。下面的就是迦羅瓦,中槍倒下 ing。

這是貝葉斯規則,就是條件概率。x 和 y 是兩個隨機變數,y 發生的情況下 x 會發生的概率是 x 單獨發生的概率乘 x 發生的情況下 y 發生的概率,除以 y 單獨發生概率。一般拿這個做一些判別分類。機器學習裡面分兩大類生成式和判別式,判別式的一個典型就是貝斯規則;生成式的方法跟判別式方法區別就是,生成式儘可能用模型去擬合它的聯合分佈,而判別式擬合的是一種條件分佈。

貝葉斯學派和頻率學派最大的不同、根上的不同,就是在於模型 y=wx+b 其中的 w 和 b 兩個引數,頻率學派認為引數是固定的,只要通過不停的取樣、不停的觀測訓練,就能夠估算引數 w 和 b,因為它們是固定不變的;而貝葉斯學派相反,他們認為這些引數是變數,它們是服從一定的分佈的,這是它最根本的差別。在這個基礎上演變的最大似然估計、或者 MAP 等等的都不一樣。這完全是兩個不同的流派。

由條件概率引申出來的貝葉斯規則。像這個 a、b、c 的聯合分佈可以表示成這樣,然後它可以對應一個圖,概率圖。像這樣。

a 發生、b 發生是有一定的依賴關係的。一般如果 a、b、c 完全是獨立的就好說了,那 p(a,b,c) 就等於 p(a)、p(b)、p(c) 的乘積。這個圖跟 TensorFlow 裡面的圖是一回事。

下面介紹一下資訊理論。資訊理論是夏農這個人提出來的,在 1948 年他發表了一篇論文叫 “通訊的數學原理”,對資訊通訊行業的影響非常大,相當於計算機行業的馮諾依曼這個級別。不過他的功勞一直被低估(吳軍《數學之美》)。

資訊理論主要解決什麼問題呢?第一,概率是事件發生時的可能性,怎麼度量資訊量的大小?第二是對於某個隨機事件,比如說今天下雨這句話,到底有多少什麼資訊量?如果是在南方的話,可能經常下雨,那資訊量不大;如果在北方或者在北極,這個資訊量就大了去了。還有今天是晴天還是可能下冰雹,實際上這是隨機事件的概率分佈,這個分佈有多少資訊量就用熵來衡量。上面就是自資訊,有條件分佈,對應的是條件熵;還有互資訊等等。

總之,資訊理論是建立在概率論的基礎上,概率論裡面基本上每一種概率都能對應到資訊理論裡面的解釋。

這是夏農和三種書裡面提到的三種特性:

  • 非常可能發生的事件,它的資訊量比較少,因為它確定性比較高;

  • 而不可能發生的,或者是很少發生的,它的資訊量就比較大;

  • 獨立事件具有增量的資訊,剛才說的下雨就是一個例子;另一個例子是太陽從東邊升起和從西邊升起,這兩個事件是完全獨立的,兩個事件的資訊量可以累加起來。

這是資訊理論的幾個概念,自資訊、互資訊、條件熵 。上面的公式是自資訊的標準,直接就取一個對數而已,加上負號。熵就是把多種情況累加起來再取均值。

資訊理論現在是跟各個行業、各個領域都是密切相關的,像統計學、經濟學、數學,影響非常大。

看左邊的圖是不同的熵之間的關係。左邊整個圈是 x 事件的範圍,中間交叉的部分是互資訊。不同熵之間的關係用韋恩圖來表示。

這裡有一個交叉熵,也是重點提到的概念。這是衡量事件發生的概率,像左側靠近零,說明這個事件發生的可能性很小,那麼它對應的資訊量較少;然後到中間 0.5 的地方,比如說扔硬幣有兩種結果,兩種結果 0.5 基本上靠猜,完全隨機了;對於這樣分不清到底結果是什麼樣的,對應的資訊量最大的;類似的到另外一個極端,就是這個事件確定是可以發生的,可能性很大的,那資訊量也小。

這裡還有一個 KL 散度,基本上是衡量兩個概率分佈的差異。這個公式也很複雜,你們自己去琢磨,必須要看,看一遍然後才有直觀的理解。現在講也講不清楚。(注:資訊理論也可以形象起來,參考:colah's blog,Visual Information Theory)

機器學習裡面還有一個交叉熵,cross-entropy,跟熵是密切相關的,它的差別就是少了一項。

這是 KL 散度,它是不對稱的,就是說概率 p 和概率 q 的順序調一下是不同的概念,兩個順序不同要用於不同的場景。它的目標是要構造一個概率分佈 q,去近似擬合、去模擬另外一個概率分佈 p。這個 p 分佈是由兩個正態分佈組合起來的,兩個疊加起來。怎麼用 q 擬合它呢,如果用左邊的散度去度量,算分佈之間的誤差,這個誤差對應的就是 KL 散度,然後根據 KL 散度去有方向地去調整。這是它的過程,類似於機器學習裡面的過程。

如果用左邊的 KL 散度,p 在前 q 在後,那我們會得到這樣一個結果;綠色的是擬合的概率。它的效果是保證在高概率的地方,擬合的概率要高,而不考慮低概率的部分,所以結果就會做一個平滑。概率的總和還是 1,要保證歸一性嘛。右邊反過來,q 在前 p 在後,那麼低概率要優先保證,高概率就忽略了,那麼這個擬合的概率分佈就儘量往一個峰靠,只能保證一個峰。這就解釋了 KL 散度不對稱性的應用,可以按照不同的應用場景取不同的方向。

剛才 PPT 裡面講的大致的內容,圖都是來自於「大嘴巴漫談資料探勘」這本書,朱向軍的,這本書全部用圖的方式去解釋,非常好;還有「數學之美」和一些概念。

好,我這邊講完了。

AI 科技評論整理。感謝王奇文嘉賓的分享以及對本文的校對和補充。

本文轉自雷鋒網AI研習社(ID:okweiwu),轉載已獲授權,如需轉載請聯絡原作者。