阅读资料来自http://blog.csdn.net/rtygbwwwerr/article/details/50778098,本文是阅读理解记录
熵就是形容一个随机事件的不确定程度的量。值越大表示其不确定程度越大。扑克54张牌抽一张有54种可能,弹硬币有2种可能,那么计算熵肯定后者小。
熵也可以形容一个事物的信息量,比如假如一本书里写着a&&b=c,并且完全没对&&如何计算做解释,那么说了就相当于没说,因为&&可以是任何计算,但是假如写的是axb的话,那么我能想到的有两种:乘法和x积,并且这两种算子的概率非常大,那么这样写熵就会比原来小的多,所以有的书讲什么东西讲的不清楚也可以说这本书的某个表达熵太大了。
那么什么又叫做一个事件的不确定程度?举例来说,假如一个事件发生的概率是百分之百,比如你或者交出一块钱或者交出你的命那你肯定交出一块钱这个概率是1,那么这个事件的熵就是0,因为这是一个确定事件。而假如一个事件发生和不发生的概率都是0.5,那么肯定就是最不确定的状态,那么他的熵就是1。
当然以上过程要经过一些数学运算就可以算出对应的结果。具体数学运算见阅读资料。
这个数学模型表达的思想就是刚才我说的内容,所以他的本质其实是表示一种思想,公式是一种实现。
当然望更复杂的来说,上面说的是取值只有两种情况,发生或不发生,比如弹硬币是正或者反两种可能。而假如是有多种可能的情况时,比如打开电脑是打游戏还是上qq还是看视频这有三种选择时,这种情况就是上面情况的拓展,利用资料中的公式进行计算,
import math
def yyy(x):
x1=(-1)*x*math.log2(x)
return(x1)
x
array([ 0. , 0.01010101, 0.02020202, 0.03030303, 0.04040404,
0.05050505, 0.06060606, 0.07070707, 0.08080808, 0.09090909,
0.1010101 , 0.11111111, 0.12121212, 0.13131313, 0.14141414,
0.15151515, 0.16161616, 0.17171717, 0.18181818, 0.19191919,
0.2020202 , 0.21212121, 0.22222222, 0.23232323, 0.24242424,
0.25252525, 0.26262626, 0.27272727, 0.28282828, 0.29292929,
0.3030303 , 0.31313131, 0.32323232, 0.33333333, 0.34343434,
0.35353535, 0.36363636, 0.37373737, 0.38383838, 0.39393939,
0.4040404 , 0.41414141, 0.42424242, 0.43434343, 0.44444444,
0.45454545, 0.46464646, 0.47474747, 0.48484848, 0.49494949,
0.50505051, 0.51515152, 0.52525253, 0.53535354, 0.54545455,
0.55555556, 0.56565657, 0.57575758, 0.58585859, 0.5959596 ,
0.60606061, 0.61616162, 0.62626263, 0.63636364, 0.64646465,
0.65656566, 0.66666667, 0.67676768, 0.68686869, 0.6969697 ,
0.70707071, 0.71717172, 0.72727273, 0.73737374, 0.74747475,
0.75757576, 0.76767677, 0.77777778, 0.78787879, 0.7979798 ,
0.80808081, 0.81818182, 0.82828283, 0.83838384, 0.84848485,
0.85858586, 0.86868687, 0.87878788, 0.88888889, 0.8989899 ,
0.90909091, 0.91919192, 0.92929293, 0.93939394, 0.94949495,
0.95959596, 0.96969697, 0.97979798, 0.98989899, 1. ])
yyy(x)
0.0669631981826
0.113724376163
0.152860427859
0.187044711922
0.217546895212
0.245114795113
0.270242544305
0.293281343037
0.314493783512
0.334083689413
0.352213889049
0.369017469013
0.38460524975
0.399070947195
0.412494852193
0.424946524457
0.436486810506
0.447169385207
0.457041949758
0.466147176807
0.474523466094
0.482205555876
0.489225022955
0.495610695602
0.501388997552
0.506584236873
0.511218850341
0.515313611562
0.518887809329
0.521959401355
0.52454514748
0.526660725682
0.528320833574
0.529539277578
0.530329051613
0.530702406777
0.53067091328
0.530245515678
0.529436582298
0.528253949573
0.526706961959
0.524804507946
0.522555052639
0.519966667308
0.51704705625
0.513803581263
0.510243283989
0.506372906356
0.502198909316
0.497727490053
0.492964597813
0.487915948493
0.482587038105
0.476983155227
0.471109392531
0.464970657467
0.458571682193
0.4519170328
0.445011117903
0.437858196649
0.430462386197
0.422827668696
0.414957897823
0.4068568049
0.39852800463
0.389975000481
0.381201189744
0.372209868287
0.363004235028
0.353587396156
0.343962369099
0.334132086282
0.324099398662
0.313867079084
0.303437825442
0.29281426368
0.281998950633
0.270994376717
0.259802968488
0.248427091064
0.236869050432
0.225131095635
0.213215420857
0.201124167407
0.188859425607
0.176423236591
0.163817594021
0.151044445726
0.138105695263
0.125003203409
0.111738789588
0.0983142332331
0.0847312750945
0.0709916184827
0.0570969304659
0.0430488430143
0.0288489540967
0.0144988287324
-0.0
——————————————————————————————————————————————————————————————————————————
相对熵就比较蛋疼了,因为我觉得这个函数就没有前面的完美,看博文说是形容两个随机变量差距的大小,假如x取某一值,会产生两种情况:
(1)p(x)>q(x),那么差距越大logp(x)/q(x)的值越大,也就是熵越大。
(2)相反,那么熵会变成负的,最后求期望是互相影响的,即使是乘了比较小的概率。
——————————————————————————————————————————————————————————————
交叉熵
主要见其应用为代价函数,其公式见http://blog.csdn.net/u012162613/article/details/44239919
其公式的左边部分是DKL中将p和q换成y和a。DKL是描述p和q两者差异程度的函数表达式,y和a是期望输出和神经网络的输出。这样很容易解释通了。
而公式右边部分是1-y和1-a,可以理解为非y和非a的差异度。