【机器学习】 二次损失函数的不足及交叉熵损失softmax详解
二次代价函数的不足:
以sigmoid激活函数为例,由于初始化是随机的,假设目标值为0,第一次随机初始化使得输入为0.82,那么还可以,多次迭代之后可以收敛到0.09,但如果第一次随机初始化到0.98,由于sigmoid激活函数的性质,就会使得梯度特别小,从而即使迭代次数特别大,也很难收敛到一个较好的值。故实验二的输出0.2很不理想。
这个时候就需要引入交叉熵损失。当然我们可以更换激活函数,但这个为了引出交叉熵函数但作用,我们不换激活函数。
逻辑回归中使用的就是交叉熵损失函数。
对sigmoid函数再多一嘴,sigmoid函数的产生是由最大熵原理而来的,可以参考这篇文章https://blog.csdn.net/zynash2/article/details/79261039
但日常使用的理解其实可以很简单
具体看文末链接,总结一下就是交叉熵损失函数的梯度更新中可以避免对激活函数求导(抵消掉了),从而摆脱了激活函数的限制,实现了真正的误差越大,梯度越大。
Softmax函数
在逻辑回归二分类问题中,我们通常使用sigmoid将输出映射到[0,1]区间中以0.5为界限来分类。
LR是一个传统的二分类模型,它也可以用于多分类任务,其基本思想是:将多分类任务拆分成若干个二分类任务,然后对每个二分类任务训练一个模型,最后将多个模型的结果进行集成以获得最终的分类结果。常用的策略有One VS One和One VS All。
softmax回归是LR在多分类的推广。https://www.cnblogs.com/lianyingteng/p/7784158.html
Softmax的求导
softmax的计算与数值稳定性
Softmax回归
- softmax回归也需要建立多个lr二分类器,不过只是在最后表决的时候用softmax函数做了一下处理。
- softmax的梯度推导,其中为符号函数要不是0要不是1,sign(y(i)=j).
多分类LR与Softmax回归
有了多分类的处理方法,那么我们什么时候该用多分类LR?什么时候要用softmax呢?
总的来说,若待分类的类别互斥,我们就使用Softmax方法;若待分类的类别有相交,我们则要选用多分类LR,然后投票表决。
参考文章:https://blog.csdn.net/u014313009/article/details/51043064
https://www.cnblogs.com/lianyingteng/p/7784158.html
【机器学习】 二次损失函数的不足及交叉熵损失softmax详解相关推荐
- 为什么使用交叉熵代替二次代价函数_Softmax回归与交叉熵损失的理解
0.sigmoid.softmax和交叉熵损失函数的概念理解 sigmoid.softmax和交叉熵损失函数 1.使用场景 在二分类问题中,神经网络输出层只有一个神经元,表示预测输出 是正类 的概率 ...
- 机器学习中的损失函数(交叉熵损失、Hinge loss)
损失函数 文章目录 损失函数 1 交叉熵损失 1.1 从最大似然估计到交叉熵损失 概率论中的MLE 机器学习中的MLE 交叉熵损失 1.2 多分类的交叉熵损失函数 1.3 比较 2. Hinge lo ...
- 常用损失函数:交叉熵损失
目录 什么是损失函数 均方误差与交叉熵 为什么要使用交叉熵 交叉熵与KL散度之间的关系 参考文献 什么是损失函数 对于损失函数网上已经有充分的解释:"机器学习中所有的算法都需要最大化或最小化 ...
- 交叉熵损失函数和focal loss_理解熵、交叉熵和交叉熵损失
交叉熵损失是深度学习中应用最广泛的损失函数之一,这个强大的损失函数是建立在交叉熵概念上的.当我开始使用这个损失函数时,我很难理解它背后的直觉.在google了不同材料后,我能够得到一个令人满意的理解, ...
- 【损失函数】NLLLoss损失、CrossEntropy_Loss交叉熵损失以及Label Smoothing示例与代码
机缘巧合下,近期又详细学习了一遍各损失函数的计算,特此记录以便后续回顾. 为了公式表示更加清晰,我们设 y n ∈ { 1 , 2 , - , K } {{y_n} \in \{ 1,2, \ ...
- 机器学习--- 交叉熵损失(CrossEntropy Loss)--(附代码)
文章目录 一. Softmax 介绍 1.1 Softmax 的形式 1.2 一些问题 1.2.1 为什么训练阶段需要 Softmax 层?推理阶段通常不使用 Softmax 层? 二.交叉熵损失(C ...
- python交叉熵损失函数实现_大话交叉熵损失函数
使用keras进行二分类时,常使用binary_crossentropy作为损失函数.那么它的原理是什么,跟categorical_crossentropy.sparse_categorical_cr ...
- sklearn基于make_scorer函数为Logistic模型构建自定义损失函数+代码实战(二元交叉熵损失 binary cross-entropy loss)
sklearn基于make_scorer函数为Logistic模型构建自定义损失函数+代码实战(二元交叉熵损失 binary cross-entropy loss) # 广义线性模型中的各种连接函数: ...
- RankNet学习思路+损函感悟+\pi \xu 学xi+交叉熵损函详
文章目录 RankNet学习思路 canci 损失函数感悟 排序学习实践---ranknet方法 1 背景 2 排序学习 2.1 point wise过程 2.2 point wise缺点 2.3 p ...
最新文章
- linux终端中运行网银盾,Linux下使用Virtualbox安装 Windows 7 操作网银攻略
- Windows下Eclipse配置基于MinGW的C/C++开发环境
- hihocoder1479 三等分
- IBM开发单原子存储技术 iPod能存上3万部电影?
- Quartz.Net实现作业定时调度详解
- 如何保存一个函数_如何表达一个“分段函数”之学习Matlab Function模块
- 人家可是见过大世面的
- axure命令行_axure怎么做计算器
- windows中使用Git工具连接GitHub(配置篇)
- 在 React 中使用 TypeScript
- Oracle · 一些实用语法
- Spark Streaming 之foreachRDD 输出
- java怎么销毁session_【Java】问题:Session的销毁方式到底有哪些?
- 软件测试流程五个阶段
- 【步步到位】mysql安装教程 8.0.26
- matlab中点乘与乘的区别
- 上云之路千万条,青立方易捷版第一条
- 无憾,2019!加油,2020!
- java-操作 Excel
- 《深入理解JAVA虚拟机》周志明 第三版 - 第四章 虚拟机性能监控、故障处理工具
热门文章
- MOCTF-Web-机器蛇
- vue中mixins的使用方法和注意地方
- ES6中import * as xxx from ‘xxx‘的作用
- 调用百度报Cannot read property ‘lng‘ of null错误
- mysql select 查询选后5个_mysql 查询select语句汇总
- 学习响应式BootStrap来写融职教育网站,Bootsrtap第十天你的收获
- typescript数组类型
- Java 开发人员必知必会的 20 种常用类库和 API
- c++中的类型转换--reinterpret_cast
- ANN:DNN结构演进History—RNN