Cross_entropy和softmax

2024-08-21 10:58
文章标签 softmax cross entropy

本文主要是介绍Cross_entropy和softmax,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1. 传统的损失函数存在的问题

传统二次损失函数为:
J ( W , b ) = 1 2 ( h W , b ( x ) − y ) 2 + λ 2 K ∑ k ∈ K w i j 2 J(W,b)=\frac 12(h_{W,b}(x)-y)^2+\frac \lambda{2K}\sum_{k \in K}w_{ij}^2 J(W,b)=21(hW,b(x)y)2+2KλkKwij2
权重和偏置的迭代方程为:
KaTeX parse error: No such environment: align at position 8: \begin{̲a̲l̲i̲g̲n̲}̲ w_{ji}&=w_{ji}…
从上式可以看出,在学习率 α \alpha α固定的情况下,权重和偏置的迭代快慢取决于损失对于权重 w w w和偏置 b b b的偏导,而损失函数对权重和偏置的偏导为:
KaTeX parse error: No such environment: align at position 8: \begin{̲a̲l̲i̲g̲n̲}̲ \frac {\partia…
从输出层一步步往输入层迭代,可以看出, δ j ( l + 1 ) \delta_j^{(l+1)} δj(l+1)是后面一层已经计算过的,无法改变,而 a i ( l ) a_i^{(l)} ai(l)是第 l l l层和第 l + 1 l+1 l+1层的输入值,也无法改变。因此其实偏导的大小取决于第 l l l层和第 l + 1 l+1 l+1层的输出值,即:
∂ J ∂ w j i ( l ) ∼ a j ( l + 1 ) ( 1 − a j ( l + 1 ) ) ∂ J ∂ b i ( l ) ∼ a j ( l + 1 ) ( 1 − a j ( l + 1 ) ) \frac {\partial J}{\partial w_{ji}^{(l)}} \sim a_j^{(l+1)}(1-a_j^{(l+1)})\\ \frac {\partial J}{\partial b_{i}^{(l)}} \sim a_j^{(l+1)}(1-a_j^{(l+1)}) wji(l)Jaj(l+1)(1aj(l+1))bi(l)Jaj(l+1)(1aj(l+1))
因此可以看出,当 a j ( l + 1 ) a_j^{(l+1)} aj(l+1)接近 1 2 \frac 12 21的时候偏导最大,学习速率最快,权重和骗到更新也最快,损失下降也最快。然而在刚开始和快要结束的时候,即 a j ( l + 1 ) a_j^{(l+1)} aj(l+1)接近1和0的时候,学习速率会非常慢,因此整体的学习速率曲线为:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sQU7Lbic-1603833300352)(./pics/42.png)]
这可能会造成在有限的迭代次数( e p o c h s epochs epochs)内无法将损失降到一个较低的值。

2. cross_entropy损失函数

为了解决这个问题,引入一个新的损失函数:
J ( W , b ) = ∑ ( x ( m ) , y ( m ) ) [ y ln ⁡ h W , b ( x ) + ( 1 − y ) ln ⁡ ( 1 − h W , b ( x ) ) ] + λ 2 K ∑ k ∈ K w i j 2 J(W,b)=\sum_{(x^{(m)}, y^{(m)})}[y\ln h_{W,b}(x) + (1-y)\ln(1-h_{W,b}(x))] +\frac \lambda{2K}\sum_{k \in K}w_{ij}^2 J(W,b)=(x(m),y(m))[ylnhW,b(x)+(1y)ln(1hW,b(x))]+2KλkKwij2
此时的偏导数为:
KaTeX parse error: No such environment: align at position 8: \begin{̲a̲l̲i̲g̲n̲}̲ \frac {\partia…
h W , b ( x ) = a j ( l + 1 ) h_{W,b}(x)=a_j^{(l+1)} hW,b(x)=aj(l+1),因此:
∂ h W , b ( x ) ∂ w j i = a j ( l + 1 ) ( 1 − a j ( l + 1 ) ) a i ( l ) \frac {\partial h_{W,b}(x)}{\partial w_{ji}}=a_j^{(l+1)}(1-a_j^{(l+1)})a_i^{(l)} wjihW,b(x)=aj(l+1)(1aj(l+1))ai(l)
上式为:
KaTeX parse error: No such environment: align at position 8: \begin{̲a̲l̲i̲g̲n̲}̲ \frac {\partia…
此时 a i ( l ) a_i^{(l)} ai(l) y y y的值都是确定的不可改,因此此时偏导数取决于 y − a j ( l + 1 ) y-a_j^{(l+1)} yaj(l+1),即后面一层的输出值与 y y y的差值的大小,当与 y y y差距较大时,偏导大,学习快,损失下降也快,当差值较小时,偏导极小,学习较慢,损失下降也较小,比较符合实际要求。整体的学习速率曲线为:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NpIK3JH8-1603833300358)(./pics/43.png)]
因此采用 c r o s s _ e n t r o p y cross\_entropy cross_entropy能够解决二次损失函数的学习速率问题,被广泛采用。

3. softmax激活函数

softmax与sigmod函数类似,一般用于输出层的激活函数:
s o f t m a x ( z j ) = e − z j ∑ i = 1 n e − z i softmax(z_j)=\frac {e^{-z_j}}{\sum_{i=1}^ne^{-z_i}} softmax(zj)=i=1neziezj
其中:
z j = ∑ i = 1 m w j i ( L − 1 ) a i ( L − 1 ) + b j ( L ) z_j=\sum_{i=1}^mw_{ji}^{(L-1)}a_i^{(L-1)}+b_j^{(L)} zj=i=1mwji(L1)ai(L1)+bj(L)
其实就是每一类占总体的比率,因此
∑ j = 1 n s o f t m a x ( z j ) = 1 \sum_{j=1}^nsoftmax(z_j)=1 j=1nsoftmax(zj)=1
n n n为输出神经元的个数。
softmax的损失函数为:
J = − ln ⁡ a j ( L ) s o f t m a x ( z j ) = 1 J=-\ln a_j^{(L)} softmax(z_j)=1 J=lnaj(L)softmax(zj)=1
n n n为输出神经元的个数。
softmax的损失函数为:
J = − ln ⁡ a j ( L ) J=-\ln a_j^{(L)} J=lnaj(L)

这篇关于Cross_entropy和softmax的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1092964

相关文章

cross-plateform 跨平台应用程序-03-如果只选择一个框架,应该选择哪一个?

跨平台系列 cross-plateform 跨平台应用程序-01-概览 cross-plateform 跨平台应用程序-02-有哪些主流技术栈? cross-plateform 跨平台应用程序-03-如果只选择一个框架,应该选择哪一个? cross-plateform 跨平台应用程序-04-React Native 介绍 cross-plateform 跨平台应用程序-05-Flutte

经验笔记:跨站脚本攻击(Cross-Site Scripting,简称XSS)

跨站脚本攻击(Cross-Site Scripting,简称XSS)经验笔记 跨站脚本攻击(XSS:Cross-Site Scripting)是一种常见的Web应用程序安全漏洞,它允许攻击者将恶意脚本注入到看起来来自可信网站的网页上。当其他用户浏览该页面时,嵌入的脚本就会被执行,从而可能对用户的数据安全构成威胁。XSS攻击通常发生在Web应用程序未能充分过滤用户提交的数据时,导致恶意脚本得以传递

word2vec 两个模型,两个加速方法 负采样加速Skip-gram模型 层序Softmax加速CBOW模型 item2vec 双塔模型 (DSSM双塔模型)

推荐领域(DSSM双塔模型): https://www.cnblogs.com/wilson0068/p/12881258.html   word2vec  word2vec笔记和实现 理解 Word2Vec 之 Skip-Gram 模型 上面这两个链接能让你彻底明白word2vec,不要搞什么公式,看完也是不知所云,也没说到本质. 目前用的比较多的都是Skip-gram模型 Go

[论文解读]Genre Separation Network with Adversarial Training for Cross-genre Relation Extraction

论文地址:https://www.aclweb.org/anthology/D18-1125.pdf发表会议:EMNLP2019 本论文的主要任务是跨领域的关系抽取,具体来说,利用某个领域的数据训练好的关系抽取模型,很难去直接抽取另一个领域中的关系,比如我们拿某个领域训练好的模型,把另一个领域的数据直接输入整个模型,很难抽取出来正确的实体关系。这主要是因为源领域和目标领域特征表达的不同,在源

Softmax classifier

Softmax classifier原文链接 SVM是两个常见的分类器之一。另一个比较常见的是Softmax分类器,它具有不同的损失函数。如果你听说过二分类的Logistic回归分类器,那么Softmax分类器就是将其推广到多个类。不同于SVM将  f(xi,W)  的输出结果 (为校准,可能难以解释)作为每个分类的评判标准,Softmax分类器给出了一个稍直观的输出(归一化的类概率),并且

cross join lateral 表连接

1. 概述 在 PostgreSQL 中,表连接是查询构建的核心。通过连接,可以将多张表的数据组合在一起,以生成所需的结果。 2. 什么是 CROSS JOIN LATERAL? CROSS JOIN LATERAL 是 PostgreSQL 中一个非常强大的功能,它允许对左表的每一行执行右侧的子查询或表达式。不同于普通的 JOIN 操作,CROSS JOIN LATERAL 允许右侧的子查

解决Node.js调用fs.renameSync报错的问题(Error: EXDEV, cross-device link not permitted)

在写一个文件上传的功能时候,调用fs.renameSync方法错误 出错 代码所在如下: 1 function upload(response,request){ 2 console.log("upload called"); 3 var form = new formidable.IncomingForm(); 4 console.log("about t

【论文】A Collaborative Transfer Learning Framework for Cross-domain Recommendation

Intro 业界常见的跨域建模方案主要分为两种范式[22][32][5][36][17][14][20]:1) 将源样本和目标样本进行联合和混合,然后执行多任务学习技术,以提高在所有域中的性能;2) 使用混合或数据丰富的源域数据预先训练模型,然后在数据不足的目标域中对其进行微调,以适应新的数据分布。在第一种方法中,通过不同类型的网络设计来学习特定域特征和域不变特征,其中域指标通常用于识别域。在微

[深度学习]交叉熵(Cross Entropy)算法实现及应用

写在前面:要学习深度学习,就不可避免要学习Tensorflow框架。初了解Tensorflow的基础知识,看到众多API,觉得无从下手。但是到了阅读完整项目代码的阶段,通过一个完整的项目逻辑,就会让我们看到的不只是API,而是API背后,与理论研究相对应的道理。除了Tensorflow中文社区的教程,最近一周主要在阅读DCGAN的代码(Github:https://github.com/carpe

keras 将softmax值转成onehot 最大值赋值1 其他赋值0

注意: 当使用 categorical_crossentropy 损失时,你的目标值应该是分类格式 (即,如果你有 10 个类,每个样本的目标值应该是一个 10 维的向量,这个向量除了表示类别的那个索引为 1,其他均为 0)。 为了将 整数目标值 转换为 分类目标值,你可以使用 Keras 实用函数 to_categorical: from keras.utils.np_utils import