LLM-01-第一章-预训练/神经网络的激活函数(一)概述

神经网络的激活函数(一)综述

激活函数(Activation Function)是人工神经网络中的一个关键组件,它的作用是为神经网络引入非线性因素。如果没有激活函数,神经网络无论有多少层,都只能表示输入和输出之间的线性关系,这大大限制了网络处理复杂问题的能力。激活函数通常在神经网络的每个神经元或节点上应用,它们帮助网络学习和表示复杂的函数。

发展历史

1. Sigmoid

Sigmoid函数是最早被广泛使用的激活函数之一,它的公式为:

Sigmoid函数的输出范围在0到1之间,Sigmoid函数的主要问题是在输入很大或很小的情况下,梯度会变得很小,这会导致梯度消失的问题,从而影响网络的训练效果。

历史背景:早在19世纪,数学家们就研究了类似的函数形式;在1986年,David Rumelhart、Geoffrey Hinton和Ronald Williams在提出多层感知器(MLP)和反向传播算法时,Sigmoid函数被广泛使用,因为它的导数形式简单,便于计算梯度。

2. Softmax

Softmax函数是一种常用的多分类激活函数,它的公式为:

Softmax函数的输出是一个概率分布,它将输入映射到一个概率分布上,使得每个类别的概率之和为1。Softmax函数通常用于多分类问题中的输出层。

历史背景:Softmax函数的概念来源于统计力学中的Boltzmann分布,它在20世纪中期开始被应用于神经网络中。

3. Tanh

Tanh函数是双曲正切函数,它的公式为:

Tanh函数的输出范围在-1到1之间, Tanh函数相对于Sigmoid函数来说,输出的范围更广,可以将输入映射到-1到1之间,从而减少梯度消失的问题。

历史背景:Tanh函数与双曲函数的研究可以追溯到18世纪。它在数学和工程学中有广泛的应用,特别是在信号处理和控制系统中。随着神经网络的发展,Tanh函数被引入作为一种激活函数。

4. ReLU

ReLU函数是修正线性单元函数,它的公式为:

ReLU函数在输入大于0时输出等于输入,否则输出为0。ReLU函数的优点是计算简单,收敛速度快,但它也存在一个问题,就是在输入小于0时,梯度为0,这会导致神经元无法更新权重,从而出现"神经元死亡"的问题。

提出时间: 2010年,由Vinod Nair和 Geoffrey Hinton在他们的论文《Rectified Linear Units Improve Restricted Boltzmann Machines》1中展示了ReLU在深度神经网络中的有效性。自此,ReLU成为了深度学习中最流行的激活函数之一。

5. Leaky ReLU

Leaky ReLU函数是ReLU函数的改进版本,它的公式为:

其中\\alpha是一个小于1的常数,通常取0.01。Leaky ReLU函数在输入小于0时,不再输出0,而是输出一个很小的值\\alpha x,这样可以避免ReLU函数的"神经元死亡"问题。

提出时间: 2013年,Leaky ReLU首次出现在论文《Rectifier Nonlinearities Improve Neural Network Acoustic Models》2中,该论文由Andrew L. Maas、Awni Y. Hannun和Andrew Y. Ng撰写.

6. PReLU

PReLU函数是带参数的ReLU函数,它的公式为:

其中\\alpha是一个可学习的参数,通常在训练过程中通过反向传播来更新。PReLU函数在输入小于0时,不再输出0,而是输出一个由参数\\alpha控制的值,这样可以更灵活地调整激活函数的形状。

提出时间: PReLU是由何凯明(Kaiming He)、张翔(Xiangyu Zhang)、任少卿(Shaoqing Ren)和孙剑(Jian Sun)在2015年的论文《Delving Deep into Rectifiers: Surpassing Human-Level Performance on ImageNet Classification》3中提出的。

7. ELU

ELU函数是指数线性单元函数,它的公式为:

其中\\alpha是一个大于0的常数,通常取1。ELU函数在输入大于0时输出等于输入,否则输出一个由参数\\alpha控制的值,这样可以避免ReLU函数的"神经元死亡"问题,并且在输入小于0时,输出的值是连续的,有助于提高网络的稳定性。

提出时间: ELU激活函数是在2015年由Djork-Arné Clevert、Thomas Unterthiner和Sepp Hochreiter在论文《Fast and Accurate Deep Network Learning by Exponential Linear Units (ELUs)》4中提出的。

8. GLU

GLU函数是门控线性单元函数,它的公式为:

其中\\sigma(x)是Sigmoid函数,\\odot表示元素级乘法。GLU函数在输入上应用了门控机制,通过Sigmoid函数来控制输入的信息流动,从而提高网络的表达能力。

提出时间: GLU激活函数是在2017年由Yann Dauphin等人在论文《Language Modeling with Gated Convolutional Networks》5中提出的。

9. SELU

SELU函数是自归一化指数线性单元函数,它的公式为:

其中\\lambda\\alpha是两个常数,通常取1.0507和1.6733。SELU函数在输入大于0时输出等于输入,否则输出一个由参数\\alpha控制的值,这样可以避免ReLU函数的"神经元死亡"问题,并且在输入小于0时,输出的值是连续的,有助于提高网络的稳定性。SELU函数还具有自归一化的性质,可以使得网络的输出保持稳定。

提出时间: SELU激活函数是在2017年由Günter Klambauer、Thomas Unterthiner、Andreas Mayr和Sepp Hochreiter在论文《Self-Normalizing Neural Networks》7中提出的。

10. GELU

GELU函数是高斯误差线性单元函数,它的公式为:

GELU函数在输入大于0时输出等于输入,否则输出一个由参数\\alpha控制的值,这样可以避免ReLU函数的"神经元死亡"问题,并且在输入小于0时,输出的值是连续的,有助于提高网络的稳定性。GELU函数在很多实际应用中表现出了比ReLU函数更好的性能。

提出时间: GELU激活函数是在2016年由Dan Hendrycks和Kevin Gimpel在论文《Gaussian Error Linear Units (GELUs)》中提出的。

11. Swish

Swish函数是自门控激活函数,它的公式为:

Swish函数在输入大于0时输出等于输入,否则输出一个由Sigmoid函数控制的值,这样可以避免ReLU函数的"神经元死亡"问题,并且在输入小于0时,输出的值是连续的,有助于提高网络的稳定性。Swish函数在很多实际应用中表现出了比ReLU函数更好的性能。

提出时间: Swish激活函数是在2017年由Google Brain团队在论文《Searching for Activation Functions》6中提出的。

12. Mish

Mish函数是自门控激活函数,它的公式为:

Mish函数在输入大于0时输出等于输入,否则输出一个由Sigmoid函数控制的值,这样可以避免ReLU函数的"神经元死亡"问题,并且在输入小于0时,输出的值是连续的,有助于提高网络的稳定性。Mish函数在很多实际应用中表现出了比ReLU函数更好的性能。

提出时间: Mish激活函数是在2019年由Diganta Misra在论文《Mish: A Self Regularized Non-Monotonic Neural Activation Function》中提出的。

13. SwiGLU

SwiGLU函数是自门控激活函数,它的公式为:

SwiGLU函数在输入大于0时输出等于输入,否则输出一个由Sigmoid函数控制的值,这样可以避免ReLU函数的"神经元死亡"问题,并且在输入小于0时,输出的值是连续的,有助于提高网络的稳定性。SwiGLU函数在很多实际应用中表现出了比ReLU函数更好的性能。

提出时间: SwiGLU激活函数是在2021年由DeepMind团队在论文《Scaling Vision Transformers》7中提出的。

相关推荐
默 语28 分钟前
10分钟打造专属AI助手!ToDesk云电脑/顺网云/海马云操作DeepSeek哪家强?
人工智能·电脑·todesk
Donvink2 小时前
【Dive Into Stable Diffusion v3.5】2:Stable Diffusion v3.5原理介绍
人工智能·深度学习·语言模型·stable diffusion·aigc·transformer
宇灵梦2 小时前
大模型金融企业场景落地应用
人工智能
lsrsyx2 小时前
中信银行太原长治路支行赴老年活动服务中心开展专题金融知识宣讲
大数据·人工智能
烟锁池塘柳03 小时前
【深度学习】Self-Attention机制详解:Transformer的核心引擎
人工智能·深度学习·transformer
Matrix_113 小时前
论文阅读:Self-Supervised Video Defocus Deblurring with Atlas Learning
人工智能·计算摄影
云上艺旅4 小时前
K8S学习之基础四十七:k8s中部署fluentd
学习·云原生·容器·kubernetes
你觉得2056 小时前
天津大学第二讲:《深度解读DeepSeek:部署、使用、安全》|附PPT下载方法
大数据·人工智能·安全·机器学习·ai·知识图谱·内容运营
网络安全指导员6 小时前
威胁驱动的网络安全方法论
开发语言·学习·安全·web安全·php
不加冰的红茶要热的6 小时前
【机器学习】什么是决策树?
人工智能·决策树·机器学习