人工智能入门1.交叉熵 - loss函数在Tensorflow中的定义

1.交叉熵

要懂得交叉熵,先要懂得信息量

信息量的定义

香农(C. E. Shannon)信息论应用概率来描述不确定性。信息是用不确定性的量度定义的.一个消息的可能性愈小,其信息愈多;而消息的可能性愈大,则其信息愈少.事件出现的概率小,不确定性越多,信息量就大,反之则少。

其中

标识x0 事件出现的概率。

 

通俗的讲,信息量,就是某个事件能给你带来多大的震撼,越震撼信息量就越大。我们来举个例子

抛硬币是人们经常用来举例的,假设

x1 表示硬币正面 x2表示硬币反面,另外x3表示硬币竖起来。(x3事件我们现在只是用来举例不必深究)

则这个三者的概率(p)

p(x1) 0.49995

p(x2) 0.49995

p(x3) 0.0001

 

则这个三个事件能带给我们的信息量(I)是多少呢?

I(x1) = -log(0.49995) = 1.000144277

I(x2) = -log(0.49995) = 1.000144277

I(x3) = -log(0.0001) = 13.28771238

这边的log是

所以你抛一枚硬币,如果它立起来了,你会说卧槽---表示信息量很大。 实际上x3 的概率还会更小,我这边只是为了举例子。

 

熵的定义

n表示几个可能的概率事件。

这个熵,怎么理解能,我们如果不求和,单个的看就是概率和信息量的乘积。把所有的事件的这个乘积加起来就是熵。

定义是这样定义的,但是怎么理解,就看个人的理解了。

我们计算下上面抛硬币的熵:

0.49995*1.000144277 + 0.49995*1.000144277 + 0.0001*13.28771238 = 1.001373034

 

相对熵的定义

再提出相对熵之前我们先讲一个出老千的例子:比如还是上述抛硬币,我和另外一个同学A再用这个抛硬币来赌博,如果正面朝上我赢,如果反面朝上同学A赢,如果立起来谁也不算赢。但是啊,上面我们算过了p(x1) 的概率 是0.49995 ,但是有一天,同学A出老千,使用磁铁等不正规手段,把p(x1) 正面的概率降低到了0.33333以下,我们记q(x1) = 0.33333 导致我输了很多钱。

那么,这边x1 正面朝上的概率,相对两个场景就有了两个不同的概率分布。我们如何去描述这两个场景信息差异。就是用相对熵。

 

我们看相对熵D,如果p 场景下的概率和q场景下的概率都是一样的,意思是q场景下我的同学没有出老千,那么p和q的比例就是1。那么

就等于0,那么相对熵就是为零。就是表示这两个场景的信息没有差异。

 

将D进行变换一下,

 

那么好了,由于p场景下x事件是恒定已知的,因为没有人做手脚。所有H函数是确定的,不确定的就是后面的部分。

 

我们定义H(p,q)叫做交叉熵。

2.loss函数在Tensorflow中的定义

loss = tf.reduce_mean(tf.square(y - y_))

cross = -tf.reduce_sum(y_ * tf.log(y + 1e-10))

 

在Tensorflow中常常有,以上两种定义loss函数。

第一个是均方差第二个就是交叉熵。

 

为什么使用交叉熵,理论上我没有去证明,大概想一想。

在梯度求极限的情况下,使用均方差是比较好的

但是如果是信息分类,大多反应的是各种场景的信息量,所有估计交叉熵会好。实践表明就是如此。

 

学的比较浅,有错误的地方欢迎批评指正。

相关文章《人工智能入门2.线性回归-理解TensorFlow中wb参数的含义》

更多文章关注https://www.shennongblog.com

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值