One PUNCH Man——激活函数和梯度消失/爆炸

2023-10-27

首先推荐一个写公式的网站:https://private.codecogs.com/latex/eqneditor.php

什么是激活函数

如下图,在神经元中,输入的 inputs 通过加权,求和后,还被作用了一个函数,这个函数就是激活函数 Activation Function。
在这里插入图片描述
如果不用激励函数,每一层输出都是上层输入的线性函数,无论神经网络有多少层,输出都是输入的线性组合。
如果使用的话,激活函数给神经元引入了非线性因素,使得神经网络可以任意逼近任何非线性函数,这样神经网络就可以应用到众多的非线性模型中。

激活函数介绍


  • sigmoid函数 f ( x ) = 1 1 + e − x f(x)=\frac{1}{1+e^{-x}} f(x)=1+ex1

sigmoid函数定义域是R,其值域为「0,1」,所以可以用来二分类(1,0),在特征相差比较复杂或是相差不是特别大时效果比较好
sigmoid函数的导数: f ′ ( x ) = f ( x ) ∗ ( 1 − f ( x ) ) f'(x)=f(x)*(1-f(x)) f(x)=f(x)(1f(x)),导函数值域为(0,0.25]

在这里插入图片描述
sigmoid缺点:

  • 激活函数计算量大,反向传播求误差梯度时,求导涉及除法
  • 反向传播时,很容易就会出现梯度消失的情况,从而无法完成深层网络的训练
  • Sigmoids函数饱和且kill掉梯度
  • Sigmoids函数收敛缓慢

sigmoid 原函数及导数图形如下:
在这里插入图片描述
由图可知,导数从 0 开始很快就又趋近于 0 了,易造成“梯度消失”现象


  • Tanh函数 t a n h ( x ) = e x − e − x e x + e − x tanh(x)=\frac{e^{x}-e^{-x}}{e^{x}+e^{-x}} tanh(x)=ex+exexex

Tanh函数也可以表示为: t a n h ( x ) = 2 s i g m o i d ( 2 x ) − 1 tanh(x)=2sigmoid(2x)-1 tanh(x)=2sigmoid(2x)1,其定义域为R,值域为(-1,1)
其导函数为: ( t a n h ( x ) ) ′ = s e c h 2 ( x ) = 1 − t a n h 2 ( x ) (tanh(x))'=sech^2(x)=1-tanh^2(x) (tanh(x))=sech2(x)=1tanh2(x),导函数值域为(0,1]

在这里插入图片描述

观察sigmoid和tanh的函数曲线,sigmoid在输入处于[-1,1]之间时,函数值变化敏感(导函数最大),一旦接近或者超出区间就失去敏感性,处于饱和状态,影响神经网络预测的精度值。tanh的输出和输入能够保持非线性单调上升和下降关系,符合BP网络的梯度求解,容错性好,有界,渐进于0、1,符合人脑神经饱和的规律,但比sigmoid函数延迟了饱和期。
tanh在特征相差明显时的效果会很好,在循环过程中会不断扩大特征效果。


  • ReLU函数: ϕ ( x ) = m a x ( 0 , x ) \phi (x)=max(0,x) ϕ(x)=max(0,x)

RELU特点:

  • 输入信号 <0 时,输出都是0,>0 的情况下,输出等于输入
    ReLU 的优点:
  • Krizhevsky et al. 发现使用 ReLU 得到的 SGD 的收敛速度会比 sigmoid/tanh 快很多
    ReLU 的缺点:
  • 训练的时候很”脆弱”,很容易就”die”了
    例如,一个非常大的梯度流过一个 ReLU 神经元,更新过参数之后,这个神经元再也不会对任何数据有激活现象了,那么这个神经元的梯度就永远都会是 0.
    如果 learning rate 很大,那么很有可能网络中的 40% 的神经元都”dead”了。

在这里插入图片描述
其导数为:
在这里插入图片描述


  • softmax函数

公式如下:
在这里插入图片描述
举个例子来看公式的意思:
在这里插入图片描述
就是如果某一个 zj 大过其他 z, 那这个映射的分量就逼近于 1,其他就逼近于 0,主要应用就是多分类。

为什么要取指数,第一个原因是要模拟 max 的行为,所以要让大的更大。第二个原因是需要一个可导的函数。

由于初学,现在有个概念就好,点到为止,下一节介绍由sigmoid函数为基础的LR模型算法。

梯度消失/爆炸

这部分是补充内容。在学习了神经网络后会有更好的理解https://blog.csdn.net/No_Game_No_Life_/article/details/89710077

一般来说就是,由于求导后的连乘导致的梯度消失或者爆炸发生。详见下面的链接:
https://blog.csdn.net/qq_17130909/article/details/80582226

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

One PUNCH Man——激活函数和梯度消失/爆炸 的相关文章

  • ffmpeg 录制屏幕

    文章目录 1 ffmpeg 下载 2 screen capture recorder 下载 3 ffmpeg 录屏命令 4 ffmpeg 其他命令 后续 寻路篇 立理想 坐豪车 住豪宅 天天睡到自然醒 叹现状 小黄车 挤隔断 早上起来数星星
  • 常用框架分析(7)-Flutter

    框架分析 7 Flutter 专栏介绍 Flutter 核心思想 Flutter的特点 快速开发 跨平台 高性能 美观的用户界面 Flutter的架构 框架层 引擎层 平台层 开发过程 使用Dart语言编写代码 编译成原生代码 热重载 工具
  • Dell服务器系统升级,更改引导方式(以戴尔R720为例)

    1 重启服务器按住F2 进入system setup 选择第一项的 system BIOS 2 选择 Boot Setting 进入后启动模式有两种 BIOS和UEFI 当磁盘小于2TB的时候选择BIOS 当磁盘大于2TB的时候选择UEFI
  • vue项目引入antDesignUI组件

    快速安装ant design vue并配置 vue2 0 antDesign 1 7 8 第一步 安装ant deisgn vue 1 7 8 npm install ant design vue 1 7 8 save 第二步 配置pack
  • Centos7下载和安装教程

    1 CentOS下载 CentOS是免费版 推荐在官网上直接下载 网址 https www centos org download DVD ISO 普通光盘完整安装版镜像 可离线安装到计算机硬盘上 包含大量的常用软件 一般选择这种镜像类型即
  • 如何用openweather显示html,如何显示openweathermap天气图标

    我正在使用openweathermap显示天气预报 一切正常 但图标有问题 json响应代码是 Array city gt Array id gt 1271476 name gt Guwahati coord gt Array lon gt
  • makefile中wildcard的理解

    wildcard 用来明确表示通配符 因为在 Makefile 里 变量实质上就是 C C 中的宏 也就是说 如果一个表达式如 objs o 则 objs 的值就是 o 而不是表示所有的 o 文件 若果要使用通配符 那么就要使用 wildc
  • PCB制板流程及工艺

    PCB制板的流程一般包括以下几个步骤 1 设计电路原理图和PCB布局 首先 需要设计电路原理图和PCB布局图 电路原理图是电路的逻辑图 用于指导电路的设计和调试 PCB布局图是电路板上各个元件的布局图 包括焊盘 引脚 电源 地线等 电路原理
  • 华中科技大学操作系统实验课 实验二

    一 实验目的 1 理解进程 线程的概念和应用编程过程 2 理解进程 线程的同步机制和应用编程 二 实验内容 1 在Linux下创建一对父子进程 2 在Linux下创建2个线程A和B 循环输出数据或字符串 3 在Windows下创建线程A和B
  • MySQL 回表 & 索引覆盖

    索引类型 聚簇索引 叶子节点存储的是行记录 每个表必须要有至少一个聚簇索引 使用聚簇索引查询会很快 因为可以直接定位到行记录 普通索引 二级索引 除聚簇索引外的索引 即非聚簇索引 普通索引叶子节点存储的是主键 聚簇索引 的值 聚簇索引递推规
  • 【嵌入式学习-C语言篇】 if & switch 的使用

    嵌入式学习 C语言篇 if switch 的使用 if switch 的常用场景 智能音箱 网络状态判断 智能家居 传感器开关灯 基本代码 我们拿网络状态判断来举例 下面代码展示了使用if 和 switch的使用 include
  • 背包问题(资料搜集)

    https comzyh com upload PDF Pack PDF Comzyh pdf 上面的背包问题讲解来自这位大佬 大佬
  • VS Code中统计有效代码行数(除去注释行,空格)

    之前用正则表达式在VSCode中直接查询代码行数 不过这种太麻烦了需要先设置好 要包含的文件 和 要排除的文件 而且还不能排除注释行和空格 所有给大家安利VS Code的一款很好用的插件 1 首先在VS Code中搜索VS Code cou
  • 刷脸支付比以前的支付技术确实安全不少

    支付宝正式推出刷脸支付功能 在我们腾不出手来或是忘记各种各样的密码可以选择往付款摄像头一站随后输入号码就支付完成 整个过程不足十秒钟 随着科学技术的不断完善 刷脸也会变得更加安全 不过就目前的安全来看 日常使用刷脸支付没有任何问题 刷脸支付
  • 华为HCIA-Datacom学习笔记

    系列文章目录 第一章 网络的定义和网络的历史 文章目录 系列文章目录 第一章 网络的定义和网络的历史 前言 一 网络的定义 1 网络范围 二 网络的历史沿革 1 图灵机 2 第一台计算机 3 阿帕网 4 传输协议 5 厂商 6 代理商 7
  • 函数使用注意事项

    1 自定义函数 lt 1 gt 无参数 无返回值 def 函数名 语句 lt 2 gt 无参数 有返回值 def 函数名 语句 return 需要返回的数值 注意 一个函数到底有没有返回值 就看有没有return 因为只有return才可以

随机推荐

  • 服务器修改字体,Win10 1909默认字体怎么修改?Win10 1909默认字体修改教程

    在使用Win10 1909设备的时候 偶尔需要创建一个全新的网络连接来进行文件的共享 但许多Win10 1909用户其实并不清楚 该怎么新建网络连接 针对这一情况 小编今天为大家带来了Win10 1909网络连接新建方法简述 方法步骤 打开
  • 基于组件化+模块化+Kotlin+协程+Flow+Retrofit+Jetpack+MVVM架构实现WanAndroid客户端

    前言 之前一直想写个 WanAndroid 项目来巩固自己对 Kotlin Jetpack 协程 等知识的学习 但是一直没有时间 这里重新行动起来 从项目搭建到完成前前后后用了两个月时间 平常时间比较少 基本上都是只能利用零碎的时间来写 但
  • 虚拟数字人详解|有个性、有情感的对话技术探索

    文 蔡华 华院计算 元宇宙是当前流行的的技术和商业热点 而其背后的核心技术是数字人 近日 华院计算算法研究员蔡华博士就虚拟数字人 有个性 有情感的对话技术 的话题进行了讲解 以下内容为蔡华博士的演讲内容节选 虚拟数字人的三重 境界 关于虚拟
  • STM32编译生成的BIN文件详解

    背景 在做stm32的IAP功能 大概思路参见我的另一篇文章 跟别人讨论了关于app中发生中断之后流程的问题 然后看了一下BIN文件格式 主要是因为BIN文件就是镜像 不包含任何其他信息 如下载的地址等 就是对ROM的绝对描述 可以很清楚看
  • 安卓端自行实现工信部要求的隐私合规检测一(教你手写Xposed模块代码)

    前言 友情提示 文章较长 源码及相关使用教程都在文尾 之所以写这篇文章 是因为不久前 我们公司上架的app被打回来了 信通院那边出了个报告 里面说我们app未经授权就自动获取了手机的mac地址 当时其实是有点懵逼的 因为合规措施其实是已经做
  • 七十九.找出唯一成对的数(位运算)

    1 N 这N个数放在含有N 1个元素的数组中 只有唯一的一个元素值重复 其它均只出现一次 每个数组元素只能访问一次 设计一个算法将它找出来 不用辅助存储空间 能否设计一个算法实现 import java util Random public
  • 引力搜索算法

    最近在论文中看到有学者用改进的引力搜索算法解优化问题 有一个较好的效果 于是去了解了一下这个算法 引力搜索算法 Gravitational Search Algorithm GSA 是Esmat Rashedi等人在2009年提出的一种随机
  • 微信小程序——前端——抵扣券、优惠券样式

    微信小程序 前端 抵扣券 优惠券样式 效果图 实现思路 左边 划线 右边 使用信息 分割线 使用限制 整体底色 wrapper margin 0 auto width 100 display flex background linear g
  • 程序,进程和线程

    注 并发和并行是有区别的 并发是在同一时间段内同时运行 本质上还没有同时 而并行则是在同一时刻同时运行 一 程序 进程和线程之间的关系 1 一个应用程序是由许多个程序段组成 2 进程是由程序段 相关的数据段和PCB 进程控制块 组成 进程是
  • Java中“附近的人”实现方案讨论及代码实现

    在我们平时使用的许多app中有附近的人这一功能 像微信 qq附近的人 哈罗 街兔附近的车辆 这些功能就在我们日常生活中出现 像类似于附近的人这一类业务 在Java中是如何实现的呢 本文就简单介绍下目前的几种解决方案 并提供简单的示例代码 注
  • 46 最佳实践-性能最佳实践-内存大页

    文章目录 46 最佳实践 性能最佳实践 内存大页 46 1 概述 46 2 操作指导 46 最佳实践 性能最佳实践 内存大页 46 1 概述 相比传统的4K内存分页 openEuler也支持2MB 1GB的大内存分页 内存大页可以有效减少T
  • failed with initial frozen solve. Retrying with flexible solve. 什么意思?

    这通常是指一个软件包管理器 如pip conda等 在尝试安装某个软件包时遇到了问题 并且在第一次尝试使用 frozen solve 方法时失败了 Frozen solve 是一种求解器的方法 它会尝试使用已知的软件包版本和其依赖项版本来解
  • AD如何快速更改元件库器件的颜色

    如何你想在原理图库中快速修改元件的颜色 一根根线去点肯定是太慢了 可能第一反应就是查找相似 把颜色不是目标颜色全部选中 然后统一更改 但是在原理图库中 这一做法是行不通的 例如下图 可以在右上方找到筛选器 先选中Lines改成自己想要的颜色
  • 计算机网络思维导图

    计算机网络思维导图 按照计算机网络的TCP IP四层模型构建 物理层对应网络接口层的功能 这个是之前期末考试时做的思维导图 现在复习专业课发现里面还有很多缺漏 希望大家多多提意见 后期有时间我也会查漏补缺的 谢谢支持 目录 计算机网络思维导
  • 集成运算放大电路实验报告_模电总结:第三章、集成运算放大电路

    我的公众号 每日晴天 可关注领取我的笔记pdf版哦 部分英文 d差模 different 差模的d c 共模 common mode 3 1多级放大电路 1 多级放大电路的组成 输入级 输入电阻高 噪声和漂移小 中间级 具有足够大的放大能力
  • android httpClient 支持HTTPS的2种处理方式

    项目中Android https或http请求地址重定向为HTTPS的地址 相信很多人都遇到了这个异常 无终端认证 javax net ssl SSLPeerUnverifiedException No peer certificate 1
  • YoloV4训练自己的数据集

    YoloV4训练自己的数据集 1 建立工作文件夹 2 准备训练数据集 3 修改配置文件 4 Anchor Box先验框聚类分析与修改 5 训练自己的数据集 6 测试训练出来的网络模型 7 性能统计 1 建立工作文件夹 新建一个项目文件夹 用
  • STM32/AMP32F407进入低功耗待机模式后立马被唤醒的解决办法

    最近项目用到低功耗 但是调试发现进入待机就被唤醒的问题 清除WU SB两个唤醒标志位 也依然被立马唤醒一次 进入待机模式 HAL PWR EnterSTANDBYMode 通过极海的数据手册终于发现 我们在使能WAKE UP PA 0唤醒脚
  • 【Linux】进程描述符

    linux进程管理 1 进程描述符 进程描述符 Linux使用进程描述符数据结构记录现场信息 然后给予进程描述符管理进程 包括进程的创建 调度 消亡等操作 进程除了包括运行着的程序 还包括系统资源 当前CPU现场 调度信息 进程间关系等 记
  • One PUNCH Man——激活函数和梯度消失/爆炸

    文章目录 什么是激活函数 激活函数介绍 梯度消失 爆炸 首先推荐一个写公式的网站 https private codecogs com latex eqneditor php 什么是激活函数 如下图 在神经元中 输入的 inputs 通过加