信息論 | information theory | 信息度量 | information measures | R代碼(一)

這個時代已是多學科相互滲透的時代,純粹的傳統學科在沒落,新興的交叉學科在不斷興起。html

  • life science
  • neurosciences
  • statistics
  • computer science
  • information theory

個人問題很簡單:web

  1. 一個細胞裏到底保存了多少信息,複製、轉錄、翻譯過程當中傳遞了多少信息?
  2. 神經突觸傳遞信息的上限是多少?

 

想回答這些問題就必需要學習信息論!app


什麼是信息?dom

兩個一樣的光碟裏保存的信息是同樣的嗎?ide

人和信息的關係是什麼?假設全部人都不存在了,信息還存在嗎?函數

  

independence of random variablespost

  • Mutual Independence
  • Pairwise Independence
  • Conditional Independence

Markov chain學習

strictly positive優化

 

重點概念:atom

條件獨立:獨立與條件獨立,X->Y->Z,X與Y不獨立,Y與Z也不獨立,X與Z呢?這就是條件獨立。也就是X和Z的依賴關係(獨立關係)藉由Y產生,因此叫條件獨立。舉例:X:明天下雨,Y:今天下雨,Z:今天地面變溼了。

馬爾科夫鏈:由條件獨立引伸而來。𝑝(𝑋1,𝑋2,,𝑋𝑛)=𝑝(𝑋1)𝑝(𝑋1𝑋2)𝑝(𝑋2𝑋3)𝑝(𝑋𝑛1𝑋𝑛)。馬爾科夫鏈其實並非嚴格的鏈,也有多是環。小白都能看懂的馬爾可夫鏈詳解

馬爾科夫子鏈:任意從馬爾科夫鏈中取出m個節點,按順序排列,新的馬爾科夫鏈是原來的一個子鏈。(有點難以理解,明明斷開了)

 

entropy

conditional entropy

mutual information

conditional mutual information

 

熵的數學定義:

和機率分佈同樣,熵也是隨機變量的函數,更確切的說,熵是機率分佈的函數。

此時咱們討論的都是離散隨機變量,因此只能選離散分佈來計算熵值。

能夠看到,對於伯努利分佈而言,當0和1出現機率都爲0.5時,此時隨機變量的機率分佈的熵值最大,爲1.

library(philentropy)
library(ggplot2)
library(Rlab)

# define probabilities P(X)
Prob <- 1:10/sum(1:10)
# Compute Shannon's Entropy
H(Prob)

x <- (0:1000)/1000
y <- unlist(lapply(x, function(x) {H(dbern(0:1, x))}))
ggplot(data=data.frame(prob=x, entropy=y), aes(x=prob, y=entropy)) + 
  geom_bar(stat="identity") + 
  labs(title = "Entropy of Bernoulli Distribution") +
  geom_hline(yintercept=0) +
  geom_vline(xintercept=0)

H(dbinom(1:100, size = 100, prob = 0.1))
H(dbinom(1:100, size = 100, prob = 0.3))
H(dbinom(1:100, size = 100, prob = 0.5))
H(dbinom(1:100, size = 100, prob = 0.7))
H(dbinom(1:1000, size = 100, prob = 0.7))
H(dbinom(1:1000, size = 1000, prob = 0.7))
ggplot(data=data.frame(x=1:100, probability=dbinom(1:100, size = 100, prob = 0.7)), 
                aes(x=x, y=probability)) + geom_bar(stat="identity")
ggplot(data=data.frame(x=1:1000, probability=dbinom(1:1000, size = 100, prob = 0.7)), 
       aes(x=x, y=probability)) + geom_bar(stat="identity")
ggplot(data=data.frame(x=1:1000, probability=dbinom(1:1000, size = 1000, prob = 0.7)), 
       aes(x=x, y=probability)) + geom_bar(stat="identity")

爲何香農選的是這個公式?

代碼能夠參考我以前文章:統計分佈彙總 | 生物信息學應用 | R代碼 | Univariate distribution relationships

能夠看到熵值函數是一個求和函數,基本單位是-p*log(p), 其中0<=p<=1. 全部的p值之和爲1.

能夠將這個基本函數可視化:

能夠看到這並非一個對稱函數,極值在x=0.3678694時取得,爲0.5307378。

h <- function(x) {-x*log2(x)}
curve(h, 0, 1) + abline(v=0.3678694, h=0.5307378)
plot(h) + abline(v=0.3678694, h=0.5307378)
# h=0.5307378

optimize(h, c(0,1), maximum = T)
# nlm(h, c(0,1))  

如何證實,對全部的p(x)的機率分佈,h(x)的最大值都是在全部事件等概論時出現?至關於離散型的均勻分佈。

最優化問題的求解與R實現

 

code alphabet - 決定了熵值函數裏面的基

Shannon的熵值公式也能夠用指望的角度來解讀

  • average amount of information contained in X
  • the average amount of uncertainty removed upon revealing the outcome of X

binary entropy function

 

下面開始用直覺難以理解了:

joint entropy

conditional entropy

 

mutual information

conditional mutual information

 

variational distance

 

  

 

 

 

參考:

香農的信息論究竟牛在哪裏?

Information Theory - R 

相關文章
相關標籤/搜索