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=y2x2:z=(xz,yz)=2x,2y
  • 获取极小值 minima 的方法核心: θ t + 1 = θ t − α ∇ f ( θ t ) \theta_{t+1}=\theta_t-\alpha\nabla f(\theta_t) θt+1=θtαf(θt)


  • torch.sigmoid() Sigmoid ( x ) = 1 1 + e − x \text{Sigmoid}(x)=\frac{1}{1+e^{-x}} Sigmoid(x)=1+ex1
    在这里插入图片描述

    • 优点:连续函数,便于求导,可以用作输出层
    • 缺点:在变量取绝对值非常大时会出现饱和现象(函数会变得很平),且对输入的微小改变会变得不敏感;在反向传播时,当梯度接近于0,容易出现梯度消失,从而无法完成深层网络训练
  • torch.tanh() 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+exexex, sigmoid 经过缩放平移获得
    在这里插入图片描述

    • 优点:同 sigmoid 且均值是0 (更好)
    • 缺点:仍存在饱和问题
  • torch.relu() ReLU ( x ) = max ⁡ ( 0 , x ) \text{ReLU}(x)=\max(0,x) ReLU(x)=max(0,x)
    在这里插入图片描述

    • 优点:高效;在x>0区域上,不会出现梯度饱和、梯度消失
    • 缺点:Dead ReLU Problem (在x<0时,梯度为0:这个神经元及之后的神经元梯度永远为0,不再对任何数据有所响应,导致相应参数永远不会被更新)

相关推荐

  1. PyTorch -- 常见损失函数 LOSS 选择

    2024-06-14 01:54:02       7 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-06-14 01:54:02       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-14 01:54:02       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-14 01:54:02       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-14 01:54:02       18 阅读

热门阅读

  1. Llama2微调

    2024-06-14 01:54:02       6 阅读
  2. Python记忆组合透明度语言模型

    2024-06-14 01:54:02       8 阅读
  3. screenrecord

    2024-06-14 01:54:02       6 阅读
  4. 高精度汽车衡的应用领域有哪些?一文说清楚

    2024-06-14 01:54:02       7 阅读
  5. 时间类:SimpleDateFormatk

    2024-06-14 01:54:02       10 阅读
  6. window系统下为django自动绘制模型类关系图

    2024-06-14 01:54:02       8 阅读
  7. GaussDB系统视图归纳总结及常用运维SQL

    2024-06-14 01:54:02       9 阅读
  8. 开源项目-MES制造执行系统

    2024-06-14 01:54:02       9 阅读
  9. 58.强制类型转换

    2024-06-14 01:54:02       9 阅读
  10. 【Python入门与进阶】Python中变量的输出方式

    2024-06-14 01:54:02       9 阅读