信息论 | 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 

相关文章
相关标签/搜索