当前位置: 首页 > news >正文

哪些网站的做的好看加快网站速度吗

哪些网站的做的好看,加快网站速度吗,cdn资源访问出现问题怎么办,搜搜提交网站目录 激活函数 1. Sigmoid 2. Tanh 函数(双曲正切) 3. ReLU 函数 4. Leaky ReLU (LReLU) 5. Softmax 总结对比表 损失函数选择 激活函数 激活函数是神经网络中每个神经元(节点)的核心组成部分。它接收上一层所有输入的加权…

目录

激活函数

1. Sigmoid

2. Tanh 函数(双曲正切)

3. ReLU 函数

4. Leaky ReLU (LReLU)

5. Softmax

总结对比表

损失函数选择


激活函数

激活函数是神经网络中每个神经元(节点)的核心组成部分。它接收上一层所有输入的加权和(加上偏置项),并产生该神经元的输出。其主要作用是引入非线性,使得神经网络能够学习和逼近任意复杂的函数关系。如果没有非线性激活函数,无论网络有多少层,最终都等价于一个线性变换(单层感知机),能力极其有限。

1. Sigmoid

  • 公式:f(x) = \sigma(x) = \frac{1}{1 + e^{-x}}

  • 原理: 将输入压缩到 (0, 1) 区间。输出值可以被解释为概率(尤其是在二分类问题的输出层)。它平滑、易于求导。

  • 特征:

    • 输出范围: (0, 1)

    • 单调递增: 函数值随输入增大而增大。

    • S型曲线: 中间近似线性,两端饱和(变化缓慢)。

    • 导数:\sigma'(x)=\sigma(x)\cdot(1-\sigma(x))        最大值为0.25(当x=0时)。

  • 缺点:

    • 梯度消失: 当输入 x 的绝对值很大时(处于饱和区),导数 σ'(x) 趋近于0。在反向传播过程中,梯度会逐层连乘这些接近0的小数,导致深层网络的梯度变得非常小甚至消失,使得网络难以训练(权重更新缓慢或停滞)。

    • 信息丢失:输入100和输入10000经过sigmoid的激活值几乎都是等于 1 的,但是输入的数据却相差 100 倍。

    • 输出非零中心化: 输出值始终大于0。这可能导致后续层的输入全为正(或全为负),使得权重更新时梯度全部朝同一方向(正或负)移动,降低收敛效率(呈“之”字形下降路径)。

    • 计算相对较慢: 涉及指数运算。

  • 函数绘制:

    • x -> -∞ 时,σ(x) -> 0 (左水平渐近线 y=0)。

    • x = 0 时,σ(0) = 0.5

    • x -> +∞ 时,σ(x) -> 1 (右水平渐近线 y=1)。

    • 图像是一条平滑的、从接近0上升到接近1的S形曲线,关于点(0, 0.5)中心对称。导数曲线是一个钟形曲线,在x=0处达到峰值0.25,向两边迅速衰减到0。

2. Tanh 函数(双曲正切)

  • 公式:{tanh}(x) = \frac{e^x - e^{-x}}{e^x + e^{-x}}

  • 原理: 将输入压缩到 (-1, 1) 区间。是Sigmoid函数的缩放和平移版本。解决了 Sigmoid 输出均值非零的问题,更适合作为隐藏层激活函数。

  • 特征:

    • 输出范围: (-1, 1)

    • 单调递增: 函数值随输入增大而增大。

    • S型曲线: 中间近似线性,两端饱和。

    • 零中心化: 输出关于原点对称(tanh(-x) = -tanh(x))。这是相比于Sigmoid的主要优势,通常能使后续层的输入具有更理想的均值,有助于加速收敛。

    • 导数: tanh'(x) = 1 - tanh²(x),最大值为1(当x=0时)。

  • 缺点:

    • 梯度消失: 和Sigmoid类似,当 |x| 很大时,导数趋近于0,仍然存在梯度消失问题(虽然比Sigmoid稍好,因为其导数值更大)。

    • 计算相对较慢: 同样涉及指数运算。

  • 函数绘制:

    • x -> -∞ 时,tanh(x) -> -1 (左水平渐近线 y=-1)。

    • x = 0 时,tanh(0) = 0

    • x -> +∞ 时,tanh(x) -> 1 (右水平渐近线 y=1)。

    • 图像是一条平滑的、从接近-1上升到接近1的S形曲线,关于原点(0,0)中心对称。导数曲线是一个钟形曲线,在x=0处达到峰值1,向两边衰减到0。整体形状比Sigmoid更陡峭,饱和区变化更快。

3. ReLU 函数

  • 公式: \text{ReLU}(x) = \max(0, x)

  • 原理: ReLU 是目前最常用的隐藏层激活函数之一,通过简单的线性分段

    \text{ReLU}(x)=\begin{cases}x,&\text{if } x>0\\0,&\text{if }x\leq0\end{cases}

  • 特征:

    • 输出范围: [0, +∞)

    • 计算极其高效: 只需比较和取最大值操作,没有指数等复杂运算。

    • 缓解梯度消失: 在正区间 (x > 0),导数为1,梯度可以无损地反向传播,有效缓解了梯度消失问题,使得深层网络训练成为可能。这是其成功的关键。

    • ReLU 函数的导数是分段函数:
      \text{ReLU}'(x)=\begin{cases}1,&\text{if } x>0\\0,&\text{if }x\leq0\end{cases}

    • 生物学合理性: 更接近生物神经元的稀疏激活特性(只有一部分神经元被激活)。

    • 稀疏激活:x \leq 0  时输出为 0,使网络具有 “稀疏性”(仅部分神经元激活),模拟生物神经元的工作模式。

  • 缺点:

    • 死亡ReLU (Dying ReLU): 在负区间 (x < 0),导数为0。如果一个神经元的加权和输入在训练过程中大部分时间都小于0(例如,学习率过高或负的偏置过大),那么它的梯度在反向传播时始终为0,导致该神经元的权重无法再更新,永远“死亡”(输出恒为0,不再参与训练)。

    • 输出非零中心化: 输出始终 >= 0。

    • x=0 处不可导: 实践中通常将 x=0 处的导数设为0或1(通常设为0)。

  • 函数绘制:

    • x < 0 时,ReLU(x) = 0 (沿x轴负半轴)。

    • x >= 0 时,ReLU(x) = x (沿y=x直线在第一象限)。

    • 图像是一个简单的折线:在原点(0,0)左侧是水平线(y=0),在原点右侧是一条45度角的直线(y=x)。导数图像:在x<0处是y=0的水平线;在x>0处是y=1的水平线;在x=0处不连续(通常画一个空心点)。

4. Leaky ReLU (LReLU)

  • 公式:

    \text{Leaky ReLU}(x)=\begin{cases}x,&\text{if } x>0\\\alpha x,&\text{if } x\leq0\end{cases}

     

    (其中 α 是一个很小的正数常数,如0.01)

  • 原理: 针对标准ReLU的“死亡”问题进行的改进。在负区间给予一个很小的非零斜率 α

  • 特征:

    • 输出范围: (-∞, +∞) (理论上,但负值部分很小)

    • 缓解死亡ReLU: 在负区间有小的梯度 α,(x<0)时输出(\alpha x)(非零),即使输入为负,神经元也有机会更新权重,避免了永久性“死亡”。

    • 计算高效: 和ReLU一样高效。

  • 缺点:

    • 效果依赖 α 需要人工设定或尝试 α 值。虽然通常设0.01有效,但并非最优。

    • x=0 处不可导: 同样的问题。

    • 负区间表现可能不一致: 微小的负斜率可能不足以完全解决某些场景下的问题,或者引入不必要的复杂性。

  • 函数绘制:

    • x >= 0 时,LReLU(x) = x (沿y=x直线在第一象限)。

    • x < 0 时,LReLU(x) = αx (一条斜率为 α 的直线,在第三象限,非常平缓)。

    • 图像在原点右侧与ReLU相同(y=x),在原点左侧是一条斜率很小(接近水平)的直线。导数图像:在x>0处是y=1的水平线;在x<0处是y=α的水平线(非常接近0);在x=0处不连续。

5. Softmax

  • 公式:              \mathrm{Softmax}(z_i)=\frac{e^{z_i}}{\sum_{j=1}^ne^{z_j}}

     

    (其中 z_i 是第i个神经元的输入,K是输出层神经元的个数/类别数)

    给定输入向量 z=[z_1,z_2,…,z_n]

    1.指数变换:对每个 z_n 进行指数变换,得到t = [e^{z_1},e^{z_2},...,e^{z_n}],使z的取值区间从(-\infty,+\infty)  变为  (0,+\infty)

    2.将所有指数变换后的值求和,得到s = e^{z_1} + e^{z_2} + ... + e^{z_n} = \Sigma_{j=1}^ne^{z_j}

    3.将t中每个e^{z_i} 除以归一化因子s,得到概率分布:


    softmax(z) =[\frac{e^{z_1}}{s},\frac{e^{z_2}}{s},...,\frac{e^{z_n}}{s}]=[\frac{e^{z_1}}{\Sigma_{j=1}^ne^{z_j}},\frac{e^{z_2}}{\Sigma_{j=1}^ne^{z_j}},...,\frac{e^{z_n}}{\Sigma_{j=1}^ne^{z_j}}]
     

    即:        \mathrm{Softmax}(z_i)=\frac{e^{z_i}}{\sum_{j=1}^ne^{z_j}}

     

  • 原理: 将多个神经元的输入(通常是一个向量 z = [z1, z2, ..., zK])转换为一个概率分布。每个输出值在 (0, 1) 区间,且所有输出值之和为1,适合作为多分类任务的输出层。

  • 特征:

    • 输出范围: (0, 1)

    • 归一化: 输出总和为1,非常适合表示K个互斥类别的概率分布(多分类问题)。

      \sum_{i=1}^n\text{Softmax}(z_i)=1

    • 放大差异: 输入值中最大的那个,其对应的输出概率会被显著放大(指数效应),较小的输入对应的概率会被压缩。

    • 在实际应用中,Softmax常与交叉熵损失函数Cross-Entropy Loss结合使用,用于多分类问题。在反向传播中,Softmax的导数计算是必需的。

  • 缺点:

    • 仅用于输出层: 通常只在多分类网络的最后一层使用。

    • 梯度消失:当某个输入远大于其他时,其对应的输出趋近于 1,其他趋近于 0,梯度接近 0。

API

torch.nn.functional.softmax

import torch
import torch.nn as nn
​
# 表示4分类,每个样本全连接后得到4个得分,下面示例模拟的是两个样本的得分
input_tensor = torch.tensor([[-1.0, 2.0, -3.0, 4.0], [-2, 3, -3, 9]])
​
softmax = nn.Softmax()
output_tensor = softmax(input_tensor)
# 关闭科学计数法
torch.set_printoptions(sci_mode=False)
print("输入张量:", input_tensor)
print("输出张量:", output_tensor)

输出结果:

输入张量: tensor([[-1.,  2., -3.,  4.],[-2.,  3., -3.,  9.]])
输出张量: tensor([[    0.0059,     0.1184,     0.0008,     0.8749],[    0.0000,     0.0025,     0.0000,     0.9975]])

总结对比表

激活函数公式输出范围优点缺点适用场景函数绘制描述
Sigmoid\sigma(x) = \frac{1}{1 + e^{-x}}(0, 1)平滑,输出可解释为概率,导数易求梯度消失严重,输出非零中心,计算慢二分类输出层,早期隐藏层S形曲线,从(0,0)附近到(0,1)附近,关于(0,0.5)对称
Tanh\frac{e^x - e^{-x}}{e^x + e^{-x}}(-1, 1)零中心化,梯度比Sigmoid稍大仍有梯度消失,计算慢隐藏层(比Sigmoid更常用)S形曲线,从(0,-1)附近到(0,1)附近,关于(0,0)对称
ReLUmax(0, x)[0, +∞)计算极快,有效缓解梯度消失(正区间),生物学启发,实践效果好死亡ReLU问题,输出非零中心,x=0不可导最常用隐藏层 (CNN, FNN)x<0为水平线(y=0),x>=0为45度线(y=x),原点处转折
Leaky ReLU\begin{cases}x,&\text{if } x>0\\\alpha x,&\text{if } x\leq0\end{cases} (α≈0.01)(-∞, +∞)缓解死亡ReLU,计算快效果依赖α,x=0不可导,负斜率可能非最优隐藏层 (ReLU的改进尝试)x>=0同ReLU(y=x),x<0为斜率很小的直线(y=αx)
Softmax\frac{e^{z_i}}{\sum_{j=1}^ne^{z_j}}(0, 1), Σ=1输出归一化为概率分布,适合多分类仅用于输出层,数值不稳定(需技巧)多分类输出层作用于向量,输出概率向量。最大输入对应最大概率(接近1)

损失函数选择

  • 隐藏层:优先用ReLU,计算快、效果稳。若出现大量 “死神经元”(输出恒为 0),换Leaky ReLU

  • 输出层:

    • 二分类: Sigmoid (输出单个概率)。

    • 多分类: Softmax (输出类别概率分布)。

    • 回归

      • 输出非负(如销量):ReLU

      • 输出可正可负(如温度):线性激活(y=x)Tanh(配合缩放)

    • 循环网络(RNN/LSTM):门控用Sigmoid(控制开关),状态用Tanh(限制范围)。

  • 避免使用: 在深度网络的隐藏层中,通常避免使用Sigmoid(梯度消失问题严重),也较少使用原始Tanh(ReLU族通常更优)。

http://www.dtcms.com/a/556307.html

相关文章:

  • 网站死链怎么解决如何做目录wordpress
  • 动态图片素材网站网络舆情的危害
  • 免费公司网站怎么做wordpress密码$
  • 做网站最大的公司如何在网站后台添加商品
  • 网站彩票怎么做wordpress手机页面模板下载
  • 电子商务与网站建设论文企业app怎么做
  • 怎样把自己做的网站上传到网上wordpress里的导航用什么位置
  • 匠王红木在那个网站做众筹微信指数是搜索量吗
  • 稿定设计网站官网怎么用wordpress打开网站吗
  • 会计题库网站怎么做深圳市信用网
  • 快手刷评论推广网站绚丽网站模板
  • 制作网站结构设计小程序源码模板下载
  • 网站报价页榕江网站建设
  • 网站建设主体力量石油大学 网页设计与网站建设
  • 在电脑上建设个人网站免费免备案空间
  • 专业微网站电话号码网络公司网站首页
  • 做网站有什么用怎么理解搜索引擎优化
  • 手机怎么制作网站教程步骤如何制作软件手机软件
  • 网站开发与网页制作的区别工地模板
  • 爱站网关键词挖掘查询工具吉林省四平市网站建设
  • 做网站 外文参考文献免费电商网站模板
  • 公司网站一定要域名吗太原网站建设招聘
  • 装修网站建设方案百度文库小水库运行管理培训教材久久建筑网
  • 重庆模板网站多少钱像wordpress之类的框架
  • 做网站可以用什么数据库南宁住房建设部网站
  • 优秀网站h5案例分享宁夏吴忠市红寺堡建设局网站
  • 在线教育网站用什么做陕西省领导班子一览表
  • 网站建设卖手机代码网页设计与制作策划书
  • 食品加工设备建站方案能上国外网站的dns
  • 微信网站模板ssh框架可以做网站么