二次代价函数、交叉熵(cross-entropy)、对数似然代价函数(log-likelihood cost)(04-1)
二次代价函数
$C = \frac{1} {2n} \sum_{x_1,...x_n} \|y(x)-a^L(x) \|^2$
其中,C表示代价函数,x表示样本,y表示实际值,a表示输出值,n表示样本的总数;整个的意思就是把n个y-a的平方累加起来,再除以2求一下均值。
为简单起见,先看下 一个样本 的情况,此时二次代价函数为:$C = \frac{(y-a)^2} {2}$
$a=\sigma(z), z=\sum w_j*x_j +b$ ,其中a就代表激活函数的输出值,这个符号$\sigma$代表sigmoid函数将变量映射到0-1的$S$型光滑的曲线,z是上一层神经元信号的总和
假如我们使用梯度下降发(Gradient descent)来调整权值参数的大小,权值w和权值b的梯度推到如下(求导数):
$\frac {\partial C} {\partial w} = (a-y)\sigma' (z)x$ $\frac {\partial C} {\partial b} = (a-y)\sigma' (z)$
其中,z表示神经元的输入,$\sigma$表示激活函数sigmoid。可以看出,w和b的梯度跟激活函数的梯度成正比,激活函数的梯度越大,w和b的大小调整越快,训练收敛的就越快。
假设我们激活函数输出的值目标是收敛到1,A点离目标较远,梯度较大,权值调整比较大。B点为0.98离目标比较近,梯度比较小,权值调整比较小,调整方案合理。
假设我们激活函数输出的值目标是收敛到0,A点离目标较远,梯度较大,权值调整比较大。B点为0.98离目标比较远,梯度比较小,权值调整比较小,调整方案不合理,B点要经过非常长的时间才会收敛到0,而且B点很可能成为不收敛的点。
交叉墒代价函数(cross-entropy)
由于上边的问题,我们换一种思路,我们不改变激活函数,而是改变代价函数,改用交叉墒代价函数:
$C = -\frac{1}{n} \sum_{x_1,,,x_n}, [y\ln a + (1-y) \ln(1-a)]$
其中,C表示代价函数,x表示样本,y表示实际值,a表示输出值,n表示样本的总数。
$a=\sigma(z), z=\sum w_j*x_j +b $ $ \sigma'(z) = \sigma(z)(1-\sigma (x))$ sigmod函数的导数比较好求,这也是为什么大家用sigmoid做激活函数的原因,接下来我们看一下求导的过程
懒得敲了,直接贴个图过来,之后闲了在敲一遍,上边就是求导的推导过程,从最后的式子可以看出:权值w和偏执值b的调整与$\sigma '(z)$无关,另外,梯度公式中的$\sigma (z)-y$表示输出值与实际值放入误差。所以当误差越大时,梯度就越大,参数w和b的调整就越快,训练的速度也就越快。
总结:当输出神经元是线性的,那么二次代价函数就是一种合适的选择。如果输出神经元是S型函数,那么比较适合交叉墒代价函数。
对数似然代价函数(log-likelihood cost)
对数似然函数常用来作为softmax回归的代价函数,如果输出层神经元是sigmoid函数,可以使用交叉墒代价函数。而深度学习中更普遍的做法是将softmax作为最后一层,此时常用的代价函数是对数似然代价函数。
对数似然代价函数与softmax的组合和交叉墒与sigmoid函数的组合非常相似。对数似然代价函数在二分类时可以化简为交叉墒代价函数的形式。
在TensorFlow中用:
tf.nn.sigmoid_cross_entropy_with_logits()来表示跟sigmoid搭配使用的交叉墒。
tf.nn.softmax_cross_entropy_with_logits()来表示跟softmax搭配使用的交叉墒。
二次代价函数、交叉熵(cross-entropy)、对数似然代价函数(log-likelihood cost)(04-1)的更多相关文章
- 最大似然估计 (Maximum Likelihood Estimation), 交叉熵 (Cross Entropy) 与深度神经网络
最近在看深度学习的"花书" (也就是Ian Goodfellow那本了),第五章机器学习基础部分的解释很精华,对比PRML少了很多复杂的推理,比较适合闲暇的时候翻开看看.今天准备写 ...
- 交叉熵cross entropy和相对熵(kl散度)
交叉熵可在神经网络(机器学习)中作为损失函数,p表示真实标记的分布,q则为训练后的模型的预测标记分布,交叉熵损失函数可以衡量真实分布p与当前训练得到的概率分布q有多么大的差异. 相对熵(relativ ...
- 深度学习中交叉熵和KL散度和最大似然估计之间的关系
机器学习的面试题中经常会被问到交叉熵(cross entropy)和最大似然估计(MLE)或者KL散度有什么关系,查了一些资料发现优化这3个东西其实是等价的. 熵和交叉熵 提到交叉熵就需要了解下信息论 ...
- 『TensorFlow』分类问题与两种交叉熵
关于categorical cross entropy 和 binary cross entropy的比较,差异一般体现在不同的分类(二分类.多分类等)任务目标,可以参考文章keras中两种交叉熵损失 ...
- Sklearn中二分类问题的交叉熵计算
二分类问题的交叉熵 在二分类问题中,损失函数(loss function)为交叉熵(cross entropy)损失函数.对于样本点(x,y)来说,y是真实的标签,在二分类问题中,其取值只可能为集 ...
- [ch03-02] 交叉熵损失函数
系列博客,原文在笔者所维护的github上:https://aka.ms/beginnerAI, 点击star加星不要吝啬,星越多笔者越努力. 3.2 交叉熵损失函数 交叉熵(Cross Entrop ...
- TF Boys (TensorFlow Boys ) 养成记(五): CIFAR10 Model 和 TensorFlow 的四种交叉熵介绍
有了数据,有了网络结构,下面我们就来写 cifar10 的代码. 首先处理输入,在 /home/your_name/TensorFlow/cifar10/ 下建立 cifar10_input.py,输 ...
- 【联系】二项分布的对数似然函数与交叉熵(cross entropy)损失函数
1. 二项分布 二项分布也叫 0-1 分布,如随机变量 x 服从二项分布,关于参数 μ(0≤μ≤1),其值取 1 和取 0 的概率如下: {p(x=1|μ)=μp(x=0|μ)=1−μ 则在 x 上的 ...
- 关于交叉熵(cross entropy),你了解哪些
二分~多分~Softmax~理预 一.简介 在二分类问题中,你可以根据神经网络节点的输出,通过一个激活函数如Sigmoid,将其转换为属于某一类的概率,为了给出具体的分类结果,你可以取0.5作为阈值, ...
随机推荐
- socketserver 模块简介
一.socketserver模块简介 socketserver模块简化了网络编程,模块下有五个服务类:BaseServer.TCPServer.UDPServer.UnixStreamServer.U ...
- laravel 事件系统
例子: 打开 VerificationController ,此控制器处理所有邮件认证相关逻辑: app/Http/Controllers/Auth/VerificationController.ph ...
- linux下使用crontab新建定时任务
我安装了一个全文搜索的插件,但是需要生成索引才能使用,但是不能手动生成索引,所以说呢,我就加了一个定时任务, 一.首先vim /etc/crontab 打开文件 我根据上面的提示加了用户名,但是看到其 ...
- python中文本的读写操作
文本的操作 函数的排序操作: def func(i): return i[2] list=[('曹操',101,'c'),('吕布',100,'d'),('刘备',200,'l'),('大乔',50, ...
- C语言与汇编的嵌入式编程:main中模拟函数的调用(两数交换)
编写一个两数交换函数swap,具体代码如下: #include<stdio.h> void swap(int *p1,int *p2) { int temp; temp = *p1; *p ...
- 获得APP的包名package和activity
方法一: Aapt dumpbadging xxxx.apk(包的路径) 第一个框为包名 第二个框为主Activity名 方法二: 如果你装了Appium 可以这么操作下 进入设置页,选择APK 路 ...
- redis(一)动态字符串
redis 动态字符串 概述 Sda(Simple Dynamic String) 简单动态字符串是 redis中用来表示字符串的结构,而不是传统 C 字符串. 主要的特点就是Sda要做到高效和 二进 ...
- 【译】高级T-SQL进阶系列 (四)【上篇】:使用游标进行行级别处理
[译注:此文为翻译,由于本人水平所限,疏漏在所难免,欢迎探讨指正] 原文链接:传送门. 正常来说,使用游标并不是处理记录集的最佳方式.然而当一个经验丰富的程序员第一次开始写TSQL时,他们经常会寻找其 ...
- java 对图片的添加文字描述,以及两张图片合成一张
最近公司一个需要,需要把商品的优惠卷分享链接,生成一个二维码然后和商品主图合成一张,并且在新合成的主图增加商品信息的描述,好了直接看合成后图片的样式 下面我就直接贴代码,首先是Contorller层 ...
- HDU 1016 素数环(dfs + 回溯)
嗯... 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1016 一道很典型的dfs+回溯: 根据题意首先进行初始化,即第一个位置为1,然后进行dfs, ...