文章目录

  • 一,引入
  • 二,softmax是什么?
  • 三,为什么 使用exe^xex
  • 实现
  • 总结

一,引入

我们为什么要引入这个函数,我们知道在机器学习当中,一些问题大概可以分为两种,一种是分类问题,一种是回归问题。
但,分类问题中可以有二分类问题和多分类问题。
对于而分类问题,我们可以很容易的想到使用逻辑回归算法。逻辑回归算法本身的逻辑并不复杂,最关键的步骤是将线性模型中输出值通过某种方式映射到[0,1]区间内。

通过sigmoid函数可以判断,根据头发等判断是否为男女,肿瘤问题等等。

对于softmax可以理解为就是解决多分类问题,将多分类问题结果通过概率的形式展现出来。

二,softmax是什么?

如果要说明softmax是什么的问题,就不得不提那种是非softmax的形式,举个例子,例如ReLu函数就是一种非softmax,而是一种hardmax。对于多分类问题(这里讨论的是两种分类以上),我么想要得到的信息是对于每种可能类别的可信度。即对每种可能结果赋予一个概率值。

下面给出softmax的定义:

ziz_izi​为第i个节点的输出值,C为节点的个数,可能输出结果的总数(分类类别数)。
通过上例中就可以将多分类问题的输出值(无论是多大)转化为范围在[0, 1]和为1的概率分布。

三,为什么 使用exe^xex

认为最主要的是 对于exe^xex,随着x的不断上升,斜率在不断的增大。当我们在x上有一点微小的变化时,都会导致y上的变化值较大。能够将输出的数值拉开距离,比较好的区分开来。
还有一个优点是在bp网络中求梯度,和使用各种梯度下降法去优化参数的时候,exe^xex求导为本身。

在pytroch中,Softmax与交叉熵损失函数同时实现。

实现

def softmax(X):""":param X::return:"""# 对向量中的每一个求他 e^x的值X_exp = torch.exp(X)# 对其进行一阶求和partition = X_exp.sum(1, keepdim=True) # 对求出的值任然保持维度return X_exp / partition #这里利用了一个广播机制, 将所有的数都进行除法的运算def net(X):# -1return softmax(torch.matmul(X.reshape((-1, W.shape[0])), W) + b)

总结

如果模型输出为非互斥类别,且可以同时选择多个类别,则采用Sigmoid函数计算该网络的原始输出值。如果模型输出为互斥类别,且只能选择一个类别,则采用Softmax函数计算该网络的原始输出值。


参考:
[1] https://zhuanlan.zhihu.com/p/105722023
[2] http://www.noobyard.com/article/p-voihadih-qc.html
[3] https://www.bilibili.com/video/BV1K64y1Q7wu?from=search&seid=9124491475035014829&spm_id_from=333.337.0.0
[4] https://blog.csdn.net/bitcarmanlee/article/details/82320853

深度学习softmax函数理解相关推荐

  1. 深度学习loss函数理解

    机器学习中的范数规则化之L0.L1.L2范数及loss函数 监督机器学习问题无非就是"minimizeyour error while regularizing your parameter ...

  2. 运用深度学习教机器人理解自然语言

    运用深度学习教机器人理解自然语言 2016-08-16 16:33 转载 CSDN 1条评论 雷锋网按:本文作者Jonathan是21CT的首席科学家.他主要研究机器学习和人工智能如何使用在文本和知识 ...

  3. 【深度学习】深入理解Batch Normalization批归一化

    [深度学习]深入理解Batch Normalization批归一化 转自:https://www.cnblogs.com/guoyaohua/p/8724433.html 这几天面试经常被问到BN层的 ...

  4. 深度学习之感性理解-机器学习基础一

    深度学习之感性理解-机器学习基础一 机器学习是什么 机器学习用来干嘛的 机器学习是怎么做的 机器学习是什么 关于机器学习的定义,网上很多,我就不多说了,谈谈自己的理解.简单的说就是有一个事情想让计算机 ...

  5. 【深度学习】入门理解ResNet和他的小姨子们(一)---ResNet

    2015年由He KaiMing 大神 提出的ResNet现在是一种经典模型.在这之前,虽然VGG的深度已经高达19层了,但是152层的ResNet真的让我们目瞪口呆. ResNet这篇文章则是CVP ...

  6. 基于深度学习的语义理解技术在机器翻译中的应用

    作者:禅与计算机程序设计艺术 <基于深度学习的语义理解技术在机器翻译中的应用>技术博客文章 引言 1.1. 背景介绍 随着全球化的推进,跨语言交流需求日益增长,机器翻译技术应运而生.翻译技 ...

  7. 深度学习Caffe 入门理解使用教程

    2019独角兽企业重金招聘Python工程师标准>>> 1.首先caffe 安装我就不解释了 如果有人安装不会的话 可以加我qq 1050316096 ,我会按照使用方式来介绍,首先 ...

  8. 深度学习-softmax回归

    softmax regression 1- softmax 基本概念 1-1 极大似然估计 2- Fashion-MNIST图像分类数据集 2-1 下载数据集 2-2 可视化 3- softmax回归 ...

  9. 【深度学习】深入理解Batch Normalization批标准化

    这几天面试经常被问到BN层的原理,虽然回答上来了,但还是感觉答得不是很好,今天仔细研究了一下Batch Normalization的原理,以下为参考网上几篇文章总结得出. Batch Normaliz ...

最新文章

  1. matlab中句柄图性对像的设置
  2. qt找不到打印机_Qt无法调起打印机问题(QPrintDialog: Cannot be used on non-native printers)解决...
  3. elif是不是java关键字_C# 中的#if、#elif、#else、#endif等条件编译符号 (转载)
  4. TypeScript入门教程 之 解构
  5. Flink读数据 addSource
  6. HDU 2068 Choose the best route
  7. Ruby的case语句
  8. 实用网站推荐——office模板(PPT)
  9. PLSQL14下载与安装及使用
  10. 数学公式截图转Latex格式
  11. 安卓手机续航测试软件,10款手机电池续航测试对决:都是骁龙865手机,续航差距有多大?...
  12. 移远EC200T模块应用移植
  13. 【阿里云IoT+YF3300】9.快速开发modbus设备驱动
  14. 静态站点 免费_七个站点,您可以随意使用免费照片
  15. PPT到Word的文档转换(未果)
  16. python在vsc制作动态二维码_用VScode愉快的写python代码
  17. Android自带模拟器的安装
  18. Java中Stream详细使用教程
  19. Flarum部署:从源码到docker到放弃
  20. Linux cooked capture v1 层的处理

热门文章

  1. 微信小程序播放音乐的方法中的两种方法
  2. 甄选虚拟主机空间 拒绝为“假宽带”买单
  3. C语言_原码、补码、反码
  4. codemirror mysql_vue-codemirror 最全踩坑之路
  5. Suspend流程介绍
  6. 推荐一个超好用的截屏软件 Windows 上最好的免费截图标注工具:Snipaste
  7. 云端存储服务企业就在企业云盘
  8. 朴素贝叶斯先验概率公式推导
  9. 给想提高的ios程序员一些建意
  10. 顺序查找、折半查找的区别与联系