PyTorch 常用非线性激活函数详解
-
首先,简单复习下什么是梯度:梯度是偏微分的集合
- 举例说明:对于 z = y 2 − x 2 : ∇ z = ( ∂ z ∂ x , ∂ z ∂ y ) = ( 2 x , 2 y ) z = y^2-x^2: \nabla z= (\frac{\partial z}{\partial x}, \frac{\partial z}{\partial y}) = (2x, 2y) z=y2−x2:∇z=(∂x∂z,∂y∂z)=(2x,2y)
-
获取极小值
minima的方法核心: θ t + 1 = θ t − α ∇ f ( θ t ) \theta_{t+1}=\theta_t-\alpha\nabla f(\theta_t) θt+1=θt−α∇f(θt)
本文总结了深度学习中常见的几种激活函数,包括 Sigmoid, Tanh, ReLU, Softmax
1. Sigmoid
-
【
torch.sigmoid(x)】
Sigmoid ( x ) = 1 1 + e − x \text{Sigmoid}(x)=\frac{1}{1+e^{-x}} Sigmoid(x)=1+e−x1

- 优点:连续可导,常用作二分类输出层
- 缺点:在
|x|非常大时饱和(函数会变得很平),对x的微小改变会变得不敏感;在反向传播时,梯度趋近 0 → 容易出现 梯度消失,从而无法完成深层网络训练 - PyTorch 使用:对应类
torch.nn.Sigmoidimport torch import torch.nn as nn # 1) 准备输入 x = torch.linspace(-5, 5, 10) # 2.1) 使用方法一 out1 = torch.sigmoid(x) # 函数式 # 2.2) 使用方法二 layer = nn.Sigmoid() # 模块式 out2 = layer(x)
2. Tanh
- 【
torch.tanh(x)】 sigmoid 经过缩放平移获得
Tanh ( x ) = e x − e − x e x + e − x \text{Tanh}(x) = \frac{e^x-e^{-x}}{e^x+e^{-x}} Tanh(x)=ex

最低0.47元/天 解锁文章
8895

被折叠的 条评论
为什么被折叠?



