激活函数高频面试题集合

news2025/2/27 5:29:22

激活函数

  • 激活函数的作用是什么?
  • 常用的激活函数
    • Relu
      • 引入Relu的原因
      • Relu顺序
      • relu在零点可导吗,不可导如何进行反向传播?
    • Gelu
    • leaky relu
      • 优点
      • 缺点
    • softmax
    • sigmoid
      • 缺陷
    • tanh
      • 缺点
  • 如何选择激活函数
  • Bert、GPT、GPT2中用的激活函数是什么?为什么?
  • transformer FFN层用的激活函数是什么?为什么?
  • dropout在激活函数之前做,还是激活函数之后做?

激活函数的作用是什么?

最主要的是引入了非线性因素,可以提高模型的表达能力。
如果没有激活函数,那么模型就只有线性变换,可想而知线性模型能表达的空间是有限的。而激活函数引入了非线性因素,比线性模型拥有更大的模型空间。

常用的激活函数

Relu,Gelu,leaky relu,softmax,sigmoid,tanh

Relu

引入Relu的原因

第一,采用sigmoid等函数,算激活函数时(指数运算),计算量大,反向传播求误差梯度时,求导涉及除法,计算量相对大,而采用Relu激活函数,整个过程的计算量节省很多。

第二,对于深层网络,sigmoid函数反向传播时,很容易就会出现 梯度消失 的情况(在sigmoid接近饱和区时,变换太缓慢,导数趋于0,这种情况会造成信息丢失),从而无法完成深层网络的训练。

第三,ReLu会使一部分神经元的输出为0,这样就造成了 网络的稀疏性,并且减少了参数的相互依存关系,缓解了过拟合问题的发生。网络的稀疏性可以理解为让不同的神经元各司其职。

Relu顺序

一般是卷积-BN-Relu.
Sigmoid:如果先BN再Sigmoid,由于BN后方差接近于1,均值接近于0,使得BN后的数据接近于Sigmoid的线性区域,降低了激活函数的非线性能力,这种情况下建议Sigmoid+BN。

Relu:如果先Relu再BN,Relu后部分神经元已经失活,失活的神经元将对BN的归一化产生影响,这种情况下建议BN+Relu。

relu在零点可导吗,不可导如何进行反向传播?

不可导,人为将梯度规定为0.

import numpy as np
import matplotlib.pyplot as plt

def relu(x):
    return np.maximum(0, x)

x = np.linspace(-10, 10, 100)
y = relu(x)

plt.plot(x, y)
plt.xlabel('x')
plt.ylabel('ReLU(x)')
plt.title('ReLU Function')
plt.grid()
plt.show()

在这里插入图片描述

Gelu

import numpy as np
import matplotlib.pyplot as plt

def gelu(x):
    return 0.5 * x * (1 + np.tanh(np.sqrt(2/np.pi) * (x + 0.044715 * np.power(x, 3))))

x = np.linspace(-10, 10, 100)
y = gelu(x)

plt.plot(x, y)
plt.xlabel('x')
plt.ylabel('GeLU(x)')
plt.title('GeLU Function')
plt.grid()
plt.show()

在这里插入图片描述

leaky relu

优点

该方法与ReLU不同的是在x小于0的时候取f(x) = ax,其中a是一个非常小的斜率(比如0.01)。这样的改进可以使得当x小于0的时候也不会导致反向传播时的梯度消失现象。

缺点

无法避免梯度爆炸的问题。
神经网络不学习\alphaα值。
在求导的时候,两部分都是线性的。

import numpy as np
import matplotlib.pyplot as plt

def leakyrelu(x, alpha=0.01):
    return np.maximum(x, alpha * x)

x = np.linspace(-10, 10, 100)
y = leakyrelu(x)

plt.plot(x, y)
plt.xlabel('x')
plt.ylabel('LeakyReLU(x)')
plt.title('LeakyReLU Function')
plt.grid()
plt.show()

在这里插入描述

softmax

sigmoid

如下图所示,其值域为 (0,1)(0,1)。也就是说,输入的每个神经元、节点都会被缩放到一个介于0和1之间的值。

当x大于零时输出结果会趋近于1,而当x小于零时,输出结果趋向于0,由于函数的特性,经常被用作二分类的输出端激活函数。

缺陷

当输入数据很大或者很小时,函数的梯度几乎接近于0,这对神经网络在反向传播中的学习非常不利。
Sigmoid函数的均值不是0,这使得神经网络的训练过程中只会产生全正或全负的反馈。
导数值小于1,反向传播易导致梯度消失。

import numpy as np
import matplotlib.pyplot as plt

def sigmoid(x):
    return 1 / (1 + np.exp(-x))

x = np.linspace(-10, 10, 100)
y = sigmoid(x)

plt.plot(x, y)
plt.xlabel('x')
plt.ylabel('Sigmoid(x)')
plt.title('Sigmoid Function')
plt.grid()
plt.show()

在这里插入图片描述

tanh

缺点

导数值小于1,反向传播易导致梯度消失。

import numpy as np
import matplotlib.pyplot as plt

def tanh(x):
    return np.tanh(x)

x = np.linspace(-10, 10, 100)
y = tanh(x)

plt.plot(x, y)
plt.xlabel('x')
plt.ylabel('tanh(x)')
plt.title('Hyperbolic Tangent Function')
plt.grid()
plt.show()

在这里插入图片描述

如何选择激活函数

用于分类器时,二分类为Sigmoid,多分类为Softmax,这两类一般用于输出层;
对于长序列的问题,隐藏层中尽量避免使用Sigmoid和Tanh,会造成梯度消失的问题;
Relu在Gelu出现之前在大多数情况下比较通用,但也只能在隐层中使用;
现在隐藏层中主要的选择肯定优先是Gelu、Swish了。
不过大部分情况下论文用什么就用什么了。

Bert、GPT、GPT2中用的激活函数是什么?为什么?

Gelu

transformer FFN层用的激活函数是什么?为什么?

dropout在激活函数之前做,还是激活函数之后做?

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/426992.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

我在chatgpt学习requestIdleCallback

react对接chatgpt,导入json形成记忆数据继续提问,想要私聊 [{"role": "user","content": "requestIdleCallback 怎么使用" }, {"role": "assistant","content": "requestI…

电子采购系统的优缺点分析及选型建议

在现今,电子采购系统的出现,为企业采购带来了全新的解决方案。它可以使采购过程更加自动化、高效化,减少采购成本和人力资源的浪费。本文将对电子采购系统的优缺点进行分析,并提供选型建议。 电子采购系统优点: 1、自…

(Linux) make/makefile的简单介绍以及使用

make和makefile的功能make和makefile的使用规则make和makefile的功能 什么是make和makefile,它有什么作用?我相信这是大部分人在刚接触make和makefile时疑惑。那我们就一起来看看它的答案吧。 make是一条命令,makefile是一个文件,两个搭配使…

基于ZC序列的帧同步

Zadoff-Chu序列是一种特殊的序列,具有良好的自相关性和很低的互相关性,这种性能可以被用来产生同步信号,作为对时间和频率的相关运算在TD-LTE系统中,Zadoff-Chu(ZC)序列主要应用于上行RS序列生成、PRACH前导序列生成以及主同步信号…

CIMCAI mature AI product, digital port intelligent port waterway

全球港航人工智能领军企业中集飞瞳CIMCAI,成熟港航人工智能产品全球领先,核心技术世界顶尖水平数字化港航自动化。全球集装箱人工智能AI领军企业CIMCAI中集飞瞳,全球航运港口高科技领军企业,率先将港口人工智能Ceaspectus™产品做…

python入门(六) opencv的安装,图片操作,绘制文字图形,视频操作

文章目录课程目标认识openCV如何安装openCVOpenCV 读取、缩放、翻转、写入图像读取图片缩放图片翻转图片写入图片openCV绘制图形和文字创建一个纯黑色的底图画一个矩形再画一个正方形再画一个圆形再画一个实心圆画一条线画多边形在真实的图片上加载图形在真实的图片上加载文字O…

创建菜单栏、菜单、菜单项

1、QMainWindow窗口 1.1、创建菜单栏 this 代表的是 当前窗口(主窗口),也就是 当前窗口中添加/设置 菜单栏 this->resize(800,600); //创建 菜单栏 QMenuBar *menuBar new QMenuBar(this); //将菜单栏 添加到主窗口的特殊位置 this-&g…

第12届蓝桥杯省赛真题剖析-2020年12月20日Scratch编程初级组

[导读]:超平老师的《Scratch蓝桥杯真题解析100讲》已经全部完成,后续会不定期解读蓝桥杯真题,这是Scratch蓝桥杯真题解析第123讲。 第12届蓝桥杯省赛举办了两次,这是2020年10月20日举行的第一次省赛初级组试题,比赛仍…

<STM32>STM32CubeMX-串口收发通信(DMA传输)(6)

<STM32>STM32CubeMX-串口收发通信(DMA传输)(6) 本节主要讲解串口DMA通信的功能,主要采用DMA接收数据的方式; DMA、串口的详细解说可参考《STM32F4XXX中文参考手册》,资料有详细的讲解和说明&am…

【机器视觉------标定篇(二)】三点成圆算法(求相机旋转中心)

应用场景 机器视觉项目应用中,相机安装在机器人上,并且需要定位产品返回坐标偏差以及角度偏差。 与九点标定配合使用,实现精准角度补偿。 算法输入 不共线的三点坐标 A(X₁,Y₁) ,B(X₂,Y₂&…

关于加解密方法报错java.security.InvalidKeyException: Illegal key size

1、找到自己的jdk安装路径下去; 2、找到java.security查看是否存在#crypto.policyunlimited,如果有把该#号去掉,注释打开; 3、若java.security文件中不存在#crypto.policyunlimited,则应该去从官网下载jce策略文件(补丁…

springboot+vue旧物置换网站(完整源码+文档)

风定落花生,歌声逐流水,大家好我是风歌,混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的旧物置换网站。项目源码请联系风歌,文末附上联系信息 。 目前有各类成品java毕设,需要请看文末联系方式 。ja…

Python|基于粒子群和遗传算法的微电网优化调度

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

Hadoop2.0伪分布式平台环境搭建

一、搭建环境的前提条件 环境:ubuntu-16.04 hadoop-2.6.0 jdk1.8.0_161。这里的环境不一定需要和我一样,基本版本差不多都ok的,所需安装包和压缩包自行下载即可。 因为这里是配置Hadoop的教程,配置Java以及安装VMware Tools就自行…

为什么2017年之后操作系统仍将扮演重要角色?

操作系统的历史虽然不像计算科学那么久远,但却也已经拥有相当可观的发展历程。大型机客户于上世纪五十年代末编写了第一批操作系统,这些系统直到数十年后的今天仍拥有相当的知名度——其中包括来自IBM公司的OS/360以及贝尔实验室打造的Unix。 在可预期的…

详解二叉搜索树 --- key模型和key/value模型

🍀作者:阿润菜菜 📖专栏:数据结构 一、认识二叉搜索树的key模型和key/value模型 key的模型是指每个节点只有一个键值,用于确定节点在树中的位置。节点的键值必须满足二叉搜索树的性质,即左子节点的键值小于…

SpringBoot 中使用Guava实现单机令牌桶限流

SpringBoot项目中如何对接口进行限流,有哪些常见的限流算法,如何优雅的进行限流。 首先就让我们来看看为什么需要对接口进行限流? 为什么要进行限流? 因为互联网系统通常都要面对大并发大流量的请求,在突发情况下&a…

你还还还没学会RabbitMQ?-----------RabbitMQ详解及快速入门(工作模式)

你像天外来物一样,求之不得(咳咳,指offer)🌹 文章目录什么是MQ?MQ的优势与劣势使用MQ需要满足的条件常见的MQ产品关于RabbitMQ生产者消费者工作模式订阅模式路由模式通配符模式什么是MQ? Messa…

机器学习——支持向量机的训练

目录 实践SVM分类 测试1-1​编辑 测试1-2 SVM核心 支持向量机函数 分类器SVC的主要属性: 分类器SVC的主要方法: 回归器SVR的主要属性: 支持向量机在鸢尾花分类中的应用 实践SVM分类 (1)参数C的选择: C为惩罚系数,也称为正则化系数: C越小模型越受限(即单个数据…

【设计模式】从Mybatis源码中学习到的10种设计模式

文章目录一、前言二、源码:学设计模式三、类型:创建型模式1. 工厂模式2. 单例模式3. 建造者模式四、类型:结构型模式1. 适配器模式2. 代理模式3. 组合模式4. 装饰器模式五、类型:行为型模式1. 模板模式2. 策略模式3. 迭代器模式六…