知道吗?滚还是不滚的问题和信息论有关!
信息社會(huì),信息的概念我們聽得太多了,有時(shí)候會(huì)有梗說“這個(gè)信息量有點(diǎn)大啊……”比如下面的這個(gè)老掉牙的故事:
”一對(duì)情侶被殺人狂抓住了
殺人狂說可以只殺一個(gè),情侶兩人玩一次剪刀石頭布,勝方活命,平局兩人都要死。
情侶互相約定好,一起出石頭共赴黃泉!
可是最后女孩被殺人狂殺了,因?yàn)槟泻⒊隽思舻丁?/span>
但是,你有沒有想過,一個(gè)精確的對(duì)于信息的定義是什么呢?是可以腦補(bǔ)出很多內(nèi)容的意思嗎?我們不妨深入思考一下信息,information,核心本質(zhì)的意義在哪里。
在追求精確的科學(xué)領(lǐng)域,信息要有一個(gè)精確的量化指標(biāo)。大概是說,我們可以有諸如“一個(gè)單位的信息”這樣的說法。為了探求這樣的量化方式,我們需要探索一下一些常見的信息載體給我們多或者少的信息的時(shí)候,有什么特點(diǎn)。
震驚!
太陽今天早晨竟然在東邊升起!
不看你會(huì)后悔!
朝鮮聲稱即將進(jìn)行下一輪核試驗(yàn)!
注意了!
每吸煙一分鐘生命就會(huì)減少60秒!
看到這樣的新聞標(biāo)題,我們會(huì)覺得十分無聊,甚至不用看正文就知道這個(gè)新聞沒有什么新東西(換句話說就是沒有多少信息)。
那么這是為什么呢?
仔細(xì)思考一下你就會(huì)發(fā)現(xiàn),之所以覺得這件事沒什么值得報(bào)道的,核心原因就是因?yàn)槲覀冇X得這件事情幾乎是必然發(fā)生的,也就是說概率幾乎為1。所以對(duì)于這些報(bào)道而言,它們包含的信息微乎其微。
但是相反,如果你突然看到了下面的消息:
國(guó)足3:0橫掃巴西,
強(qiáng)勢(shì)進(jìn)軍世界杯決賽!
神劇!
這個(gè)反派一句沒BB就崩了男主!
LR脫單了!……
當(dāng)你們看到這些概率非常小的事情的時(shí)候,立刻會(huì)覺得這背后充滿了信息。因?yàn)榭赡苄蕴?#xff0c;所以背后一定有大事情。
于是我們就有了信息的第一個(gè)性質(zhì):
一個(gè)事件包含的信息和它發(fā)生的概率有關(guān),且成負(fù)相關(guān)關(guān)系
(即概率越大信息越少,概率趨近于0信息無窮大)
但是這樣的函數(shù)有很多(例如1/x^n-1),我們還需要更加精確的定量分析信息的性質(zhì)。稍加思考我們會(huì)感受到,假設(shè)存在這樣表示信息量一個(gè)函數(shù)I(A),以發(fā)生概率p的事件A為自變量;如果說有兩件基本毫不相關(guān)的事情同時(shí)發(fā)生(例如特朗普當(dāng)選總統(tǒng)和今天的線性代數(shù)停課),它們提供給我的總信息量,應(yīng)當(dāng)?shù)扔?strong style="max-width: 100%;box-sizing: border-box;word-wrap: break-word !important;">兩個(gè)各自信息量的總和:
I(AB)=I(A)+I(B)
AB:特朗普當(dāng)選總統(tǒng)且線性代數(shù)停課
A:特朗普當(dāng)選總統(tǒng)
B:線性代數(shù)停課
但同時(shí)我們知道,不相關(guān)的AB發(fā)生的概率是兩個(gè)事件的概率的乘積,所以這個(gè)性質(zhì)精確的刻畫了信息函數(shù)的樣子,解這個(gè)函數(shù)方程,我們得到:
I(A)=log(1/p)
其中p是A發(fā)生的概率。
這個(gè)函數(shù)非常優(yōu)秀,因?yàn)樗瑫r(shí)滿足了:
p=1時(shí)信息為0,p趨向于0時(shí)信息為無窮大
I(A)+I(B)=log(1/p)+log(1/q)
=log(1/pq)=I(AB)
(即信息的疊加原理)
在上面的這個(gè)公式中,log的底數(shù)是不清的。如果取成2,那么就是最常見的信息度量,單位為bit(沒錯(cuò)!就是文件大小的那個(gè)bit!事實(shí)上它的含義就是基本內(nèi)存單元的一個(gè)二進(jìn)制碼);如果是自然對(duì)數(shù)e,那么單位就叫奈特。
可是,僅僅有了這個(gè)公式有什么意義呢?為了說明這個(gè)問題,我們可以先看一個(gè)有趣的小問題:
國(guó)王召開宴會(huì),一共有1000桶葡萄酒。邪惡的刺客在其中一桶酒里下了致命的毒。人們只知道有且僅有一桶酒被下毒,卻不知道是哪一桶。現(xiàn)在你可以拿小白鼠做實(shí)驗(yàn),小白鼠可以同時(shí)喝下多個(gè)桶的取樣結(jié)果,且無視稀釋效果喝到就死,但是一只小白鼠只能喝一次,且時(shí)間緊迫你只有一輪觀察的時(shí)間。請(qǐng)問你最少需要多少只小白鼠來確定呢?
這道題原本是一個(gè)數(shù)學(xué)競(jìng)賽的題目,最后的答案和二進(jìn)制有關(guān),但是這個(gè)問題原來的解法十分玄妙,如果沒有接觸過很難下手。不過,我們現(xiàn)在可以從信息論的角度來重新審視這個(gè)問題:
假設(shè)某一個(gè)小白鼠以p的概率死亡,(1-p)的概率存活。那么它最后的死活結(jié)果將會(huì)以p的概率通過死給出log(1/p)的信息,以(1-p)的概率通過活給出log(1/(1-p))的信息,所以每一只小白鼠給的信息量是:
p×log(1/p)+(1-p)×log(1/(1-p))
注意到函數(shù)x·log(x)是一個(gè)在(0,1)區(qū)間內(nèi)的凸函數(shù),所以根據(jù)琴生不等式我們有
p×log(1/p)+(1-p)×log(1/(1-p))≤2(1/2×log(2))=1
換句話說,每一個(gè)老鼠能夠給出至多1bit的信息量,而1000桶酒我們假設(shè)每一桶都等概率1/1000的有毒(根據(jù)琴生不等式這也是最不確定和需要最多信息的情況了),于是這個(gè)信息量是:
log(1000)≈9.97<10
所以我們立刻得到,想要讓小白鼠加在一起包含這個(gè)有毒的編號(hào)的信息,我們需要至少10只小白鼠。而且想要真正滿足這一點(diǎn),需要要求不同小白鼠之間的死活沒有關(guān)聯(lián)且每只老鼠的死亡概率都大致是1/2
而具體的做法很簡(jiǎn)單,我們把所有1-1000的數(shù)字寫成十位二進(jìn)制數(shù),然后讓第i只老鼠喝二進(jìn)制第i位為1的所有編號(hào)桶的酒。這樣,第i只老鼠如果死我們就知道有毒桶的第i位編號(hào)是1、否則是0,最后10只小白鼠的死活就自動(dòng)構(gòu)成有毒桶的編號(hào)的二進(jìn)制序列,我們就確定下來有毒的是哪一桶酒了。
(以8桶酒為例,第一只小白鼠喝1,3,5,7;第二只喝3,4,7,8;第三只喝5,6,7,8。可以自己驗(yàn)證對(duì)于所有的有毒情況都唯一對(duì)應(yīng)一個(gè)獨(dú)特的死亡序列)
因此可以看到,一個(gè)信息源頭的信息量有多少,很大程度上就是由它輸出的多種情況及各種情況的概率分布所決定的。而量化其大小的標(biāo)準(zhǔn),就是編碼其各種輸出的結(jié)果所需要的長(zhǎng)度。一個(gè)良好的編碼在相當(dāng)長(zhǎng)的一個(gè)時(shí)間跨度和隨機(jī)分布內(nèi),應(yīng)該使得其冗余編碼最小,也就是總長(zhǎng)度最短。在給定先驗(yàn)的信號(hào)分布(也就是各種結(jié)果可能的概率的時(shí)候),理論上最佳也被廣泛使用的編碼體系就是“哈夫曼編碼”,有興趣可以自己查找【挖坑不填嘿嘿嘿】
熵與互信息
為了讓問題進(jìn)行的更深入,我們先來看熱力學(xué)的概念:熵,如何在信息中有應(yīng)用。
熵在熱力學(xué)中的意義是不確定度,在信息論中也有涉及(這就是香農(nóng)建立起的信息熵理論)。如果一件事情有各種發(fā)生的可能,那么這個(gè)事情在位置的時(shí)候具有的不確定性(也就是熵),等于各種結(jié)果的信息量按照其概率加權(quán)平均。
我們可以看一個(gè)更有意思的事情,就是互信息:
如果僅僅有一個(gè)信息量的定義和量化我們并不能做什么事情。信息一件最重要的職能就是輔助我們減少不確定度、并完成一件事情。
比如當(dāng)你選了一門Yariv的英語課,然后獲得了幾位學(xué)長(zhǎng)在這門課上被掛或是被扔出教室的信息,那么你選擇退課的幾率將大大提升,換言之退掉Yariv課這件事情的不確定性(或信息量)在給定有學(xué)長(zhǎng)被扔出教室的情況下會(huì)大大減小。
這種一個(gè)事件的發(fā)生的信息減少另一件事件的不確定度(也即信息量)的情況,就是互信息的意義所在。如果我們記:
X:得知慘慘的學(xué)長(zhǎng)被掛及扔出教室
Y:選擇退掉Yariv的英語課
然后我們有以下表格:
解釋這個(gè)表格意思就是,
p(X)=0.5
你有0.5的概率知道有學(xué)長(zhǎng)被掛的這件事情。
在你不知道的時(shí)候,你會(huì)有0.6的概率退課,0.4的概率不退;而你一旦知道這件事情之后,你有0.9的概率退課,0.1的概率選擇面對(duì)疾風(fēng)。在不知道你到底有沒有聽說學(xué)長(zhǎng)的建議之前,你有0.45+0.3=0.75的概率退課,0.25的概率不退,這件事情的信息熵為
H(Y)=0.75×log(1/0.75)+0.25×log(1/0.25)
≈0.81bit
但是在給定X=1(也就是你知道有人被掛的事情的情況下),你退課的概率暴增到0.9,于是你退課這件事情的信息熵變成了只有
H(Y|X)=0.9×log(1/0.9)+0.1×log(1/0.1)
≈0.47bit
這中間減少的信息H(Y)-H(Y|X)≈0.34bit就是X給Y提供的信息了,我們把它記為I(Y:X)。通俗來說就是,X的發(fā)生能夠給Y減少多少的不確定度。這個(gè)減少量就是信息量。
【小思考:I(X:Y)又代表什么呢?(答案在本文找)】
表示在知道你已經(jīng)退課時(shí)候,能推出你聽說了學(xué)長(zhǎng)退課的信息量
信道模型
互信息有一個(gè)常見的模型是信道模型:眾所周知,當(dāng)信號(hào)在傳遞的時(shí)候會(huì)有一定的幾率錯(cuò)誤(電磁噪音,敲鍵盤手抖,女朋友很作……)我們假設(shè)當(dāng)發(fā)送源打算發(fā)送0的時(shí)候有e的概率發(fā)生錯(cuò)誤,打算發(fā)送1的時(shí)候有f的概率發(fā)生錯(cuò)誤。而這個(gè)信道原本發(fā)出0的概率是p,那么整個(gè)傳遞過程如下表:
如圖,藍(lán)色代表正確傳遞,紅色代表錯(cuò)誤
我們可以看到,發(fā)出源s的信息熵為p×log(1/p)+(1-p)×log(1/(1-p)),而接受源r的信息熵為
(不要覺得很復(fù)雜哦,只要注意到輸出端以p(1-e)+(1-p)f的概率輸出0,剩余概率輸出1,然后兩者的信息加權(quán)平均,這個(gè)公式還是很直觀的)
上面的內(nèi)容可能還是太抽象,我們不妨來看看一個(gè)真實(shí)的案例。
案例:某一個(gè)時(shí)候,你惹你女朋友生氣了,這個(gè)時(shí)候她可能叫你滾,也可能不叫你滾。但是當(dāng)她叫你滾的時(shí)候可能并不是真的讓你滾,當(dāng)她說再留一下的時(shí)候也可能是讓你趕緊離開,這個(gè)時(shí)候她說出來的話對(duì)于你應(yīng)該離開與否提供的信息如何呢?
其實(shí)很簡(jiǎn)單,套用上面的思路,設(shè)女朋友的表現(xiàn)是X,你應(yīng)該要做的事情是Y。你需要計(jì)算的實(shí)質(zhì)就是當(dāng)你被給定X的時(shí)候你所能減少的Y的不確定度。也即I(Y:X),這一點(diǎn)只要套用上面的公式把兩邊的信息熵減一下就可以了。
但是問題來了!You know what, 有一個(gè)非常極端的例子。那就是根據(jù)你的大數(shù)據(jù)統(tǒng)計(jì)測(cè)算,每次發(fā)生不愉快時(shí),對(duì)方有正好0.5的概率讓你滾,0.5的概率不。而當(dāng)對(duì)方表達(dá)出任何一種想法的時(shí)候,都有0.5的概率是真的,0.5的概率言不由衷。這種情況下,如果你計(jì)算I(X:Y)就會(huì)驚奇的發(fā)現(xiàn):
互信息為0啊!
為0啊老鐵!
知道這意味著什么嗎?
這意味著對(duì)方無論說什么,對(duì)于你究竟應(yīng)該怎么做毫無指導(dǎo)意義,你完全不能得到任何信息。所以這個(gè)時(shí)候推薦你選擇一個(gè)1bit熵的輸出信源,然后自行決定,畫風(fēng)如下:
【以下情節(jié)純屬娛樂,如實(shí)際試驗(yàn)概不負(fù)責(zé)囧】
今天你似乎又惹你的女朋友生氣了,但是她看起來十分平靜,靜靜佇立著望向遠(yuǎn)方,不知道內(nèi)心是不是充滿波瀾;在以往的經(jīng)驗(yàn)里,她此時(shí)將以二分之一的概率碎碎念著。你去找她,問:“沒事吧?”,答:“沒事”,甚至還有一彎淺淺的笑。但是你依然放不下心,因?yàn)楦鶕?jù)以往的經(jīng)驗(yàn),她此時(shí)有百分之五十的概率在說假話。你計(jì)算了互信息,發(fā)現(xiàn)根本沒有任何頭緒。此時(shí)你想到你需要一個(gè)1bit的信源來做出決定,于是你掏出了一枚硬幣,你知道它等概率的正反在信息的本質(zhì)上和她有沒有生氣一樣,也在本質(zhì)上和你基于她的表現(xiàn)做出離開與否的決定一樣。于是你拋出這枚硬幣,反面,看來她是真的不生氣…………
【全文終】
彩蛋
男孩很生氣:不是說好了一起出石頭的嗎?!
女孩(奄奄一息):但是我知道你要出剪刀啊【微笑】
……
∑編輯?|?Gemini
來源 |?漫士囈語
算法數(shù)學(xué)之美微信公眾號(hào)歡迎賜稿
稿件涉及數(shù)學(xué)、物理、算法、計(jì)算機(jī)、編程等相關(guān)領(lǐng)域
稿件一經(jīng)采用,我們將奉上稿酬。
投稿郵箱:math_alg@163.com
總結(jié)
以上是生活随笔為你收集整理的知道吗?滚还是不滚的问题和信息论有关!的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux 打开上一级目录,linux开
- 下一篇: 北师大名教授通过趣味数学与幽默教你学数学