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

河北省住房与建设厅网站首页河南建筑工程网

河北省住房与建设厅网站首页,河南建筑工程网,长沙有什么好玩的,淮南企业网站建设文章总览#xff1a;YuanDaiMa2048博客文章总览 深度学习之激活函数 激活函数基本概念分类常见的激活函数2. Tanh/双曲正切激活函数3. ReLU激活函数4. Softmax激活函数 PyTorch中如何使用1. 线性激活函数2. 非线性激活函数SigmoidTanhReLULeaky ReLUParametric ReLU (PReLU) 使…文章总览YuanDaiMa2048博客文章总览 深度学习之激活函数 激活函数基本概念分类常见的激活函数2. Tanh/双曲正切激活函数3. ReLU激活函数4. Softmax激活函数 PyTorch中如何使用1. 线性激活函数2. 非线性激活函数SigmoidTanhReLULeaky ReLUParametric ReLU (PReLU) 使用激活函数 激活函数 基本概念 激活函数Activation Function是一种添加到人工神经网络中的函数旨在帮助网络学习数据中的复杂模式。在神经元中输入的input经过一系列加权求和后作用于另一个函数这个函数就是这里的激活函数。类似于人类大脑中基于神经元的模型激活函数最终决定了是否传递信号以及要发射给下一个神经元的内容。 分类 激活函数可以分为线性激活函数线性方程控制输入到输出的映射如f(x)x等以及非线性激活函数非线性方程控制输入到输出的映射比如Sigmoid、Tanh、ReLU、LReLU、PReLU、Swish 等 为什么要使用激活函数 因为神经网络中每一层的输入输出都是一个线性求和的过程下一层的输出只是承接了上一层输入函数的线性变换所以如果没有激活函数那么无论你构造的神经网络多么复杂有多少层最后的输出都是输入的线性组合纯粹的线性组合并不能够解决更为复杂的问题。而引入激活函数之后我们会发现常见的激活函数都是非线性的因此也会给神经元引入非线性元素使得神经网络可以逼近其他的任何非线性函数这样可以使得神经网络应用到更多非线性模型中。 常见的激活函数 Sigmoid函数 Sigmoid函数也被称为Logistic函数通常用于神经网络的隐层神经元输出。其输出值的范围在 (0,1) 之间因此可以将实数映射到 (0,1) 的区间常用于二分类问题。在特征相差较复杂或差异不是特别大时Sigmoid函数的效果较好。其数学表达式如下所示 σ ( x ) 1 1 e − x \sigma(x) \frac{1}{1 e^{-x}} σ(x)1e−x1​ 应用场景 用于将预测概率作为输出的模型。由于概率的取值范围是 0 到 1因此 Sigmoid 函数非常合适。 - 适用于二分类问题输出范围为 (0,1)可用于输出概率。 - 适用于多层网络中的中间层的非线性转换。 优点 输出范围在 (0,1) 内适合作为概率输出。函数是可微的有助于梯度下降优化。在输出接近 0 或 1 时梯度较大有助于参数更新。 缺点 Sigmoid 函数存在梯度消失问题导致深层网络训练困难。在输出远离中心位置时梯度接近于 0容易导致梯度消失。Sigmoid 函数的计算相对复杂会消耗更多的计算资源。 2. Tanh/双曲正切激活函数 Tanh函数又称双曲正切激活函数hyperbolic tangent activation function与Sigmoid函数类似但将其值范围压缩至 -1 到 1 的区间内。与Sigmoid函数不同的是Tanh函数的输出以零为中心因为其取值范围在 -1 到 1 之间。其数学表达式如下 Tanh ( x ) e x − e − x e x e − x \text{Tanh}(x) \frac{e^{x} - e^{-x}}{e^{x} e^{-x}} Tanh(x)exe−xex−e−x​ Tanh函数和Sigmoid函数之间存在一种简单的关系可以通过Sigmoid函数的输出来表示Tanh函数。给定Sigmoid函数的输出 σ ( x ) σ(x) σ(x)Tanh函数的输出可以表示为 Tanh ( x ) 2 σ ( 2 x ) − 1 \text{Tanh}(x) 2σ(2x) - 1 Tanh(x)2σ(2x)−1 这个关系式表示了Tanh函数如何由Sigmoid函数的输出得出。 应用场景 适用于隐藏层的激活函数可以将输入值映射到 (-1,1) 区间内。适用于需要零中心化的场景相较于 Sigmoid 函数Tanh 函数的输出以 0 为中心。 优点 输出值在 (-1,1) 内相比于 Sigmoid 函数Tanh 函数的输出以 0 为中心有助于神经网络的训练。函数的形状对称能够保持输入的符号信息。 缺点 仍然存在梯度消失问题特别是在靠近饱和区域时。计算复杂度较高相比于 Sigmoid 函数计算量大一些。 3. ReLU激活函数 ReLU函数又称为修正线性单元Rectified Linear Unit是一种分段线性函数其弥补了sigmoid函数以及tanh函数的梯度消失问题在目前的深度神经网络中被广泛使用。ReLU函数本质上是一个斜坡ramp函数其数学表达式如下 这个函数的图像在 x 0 x 0 x0 时是一条斜坡斜率为1在 x 0 x 0 x0 时函数值为0。ReLU 函数可以表示为 ReLU ( x ) { 0 , if  x ≤ 0 x , if  x 0 max ⁡ ( 0 , x ) \text{ReLU}(x) \begin{cases} 0, \text{if } x \leq 0 \\ x, \text{if } x 0 \end{cases} \max(0, x) ReLU(x){0,x,​if x≤0if x0​max(0,x) ReLU函数作为神经元的激活函数在接收来自上一层神经网络的输入向量 x \mathbf{x} x进行线性变换 w T x b \mathbf{w}^T\mathbf{x} b wTxb 之后产生非线性输出结果。换言之对于进入神经元的来自上一层神经网络的输入向量 x \mathbf{x} x使用ReLU函数的神经元会输出 ReLU ( w T x b ) max ⁡ ( 0 , w T x b ) \text{ReLU}(\mathbf{w}^T\mathbf{x} b) \max(0, \mathbf{w}^T\mathbf{x} b) ReLU(wTxb)max(0,wTxb) 这个输出值将被传递至下一层神经元或作为整个神经网络的输出取决于神经元在网络结构中的位置。 应用场景 在深度神经网络中广泛应用能够有效避免梯度消失问题加速网络的收敛速度。许多成功的深度学习模型使用 ReLU 作为激活函数如 AlexNet、VGG 等。 优点 相比于 Sigmoid 和 Tanh 函数ReLU 函数的计算速度更快因为它是简单的线性函数。解决了梯度消失问题能够在训练深层神经网络时更快地收敛。 缺点 Dead ReLU 问题当输入为负时ReLU 函数输出为 0导致部分神经元失活无法更新参数影响模型性能。对于负数部分ReLU 函数的导数为 0可能导致梯度消失问题。不是零中心化可能导致在训练过程中出现偏移。 Dead ReLU问题是指在训练神经网络时ReLU激活函数所对应的神经元可能会因参数更新不当而“死亡”。具体来说如果某个ReLU神经元在一次不恰当的参数更新后对于所有的训练数据其输出始终为负数那么该神经元的参数梯度将永远为零即无法被激活。这意味着即使在后续的训练过程中神经元接收到的输入值可能已经可以激活它但由于参数梯度一直为零该神经元也无法被激活。这种情况被称为“死亡ReLU问题”可能出现在网络的任何隐藏层中。Dead ReLU问题可能会影响网络的性能和训练效果因此在实践中需要采取措施来缓解这个问题例如使用其他类型的激活函数或调整网络结构。 4. Softmax激活函数 Softmax函数是一种常用的激活函数通常用于多分类问题中将模型的原始输出转换为概率分布。Softmax函数接受一个包含任意实数的向量作为输入并将每个元素的值转换为介于 0 和 1 之间的概率值使得所有元素的概率之和等于 1。Softmax函数的数学表达式如下 Softmax ( z ) i e z i ∑ j 1 N e z j \text{Softmax}(\mathbf{z})_i \frac{e^{z_i}}{\sum_{j1}^{N} e^{z_j}} Softmax(z)i​∑j1N​ezj​ezi​​ 其中 z \mathbf{z} z 是输入向量 N N N 是向量的维度 Softmax ( z ) i \text{Softmax}(\mathbf{z})_i Softmax(z)i​ 表示 Softmax 函数的输出向量中的第 i i i 个元素。 应用场景 用于多分类问题中将模型的原始输出转换为类别概率分布。在神经网络的输出层使用 Softmax 函数可以得到每个类别的预测概率然后根据概率进行分类决策。 优点 输出结果是一个概率分布所有类别的概率之和为 1便于理解和解释。Softmax 函数是可微的有助于梯度下降优化。在训练过程中Softmax 函数的梯度可以直接用于更新参数。 缺点 对于输入较大或较小的情况Softmax 函数的输出会非常接近于 0 或 1可能导致梯度消失问题。Softmax 函数的计算量较大因为要对所有元素进行指数运算和求和操作特别是在处理大规模数据时计算复杂度较高。 PyTorch中如何使用 在 PyTorch 中可以使用 torch.nn 模块来定义各种激活函数。以下是几个经典激活函数的定义及其代码示例 1. 线性激活函数 线性激活函数实际上是恒等函数它可以通过直接返回输入实现 import torch.nn as nnclass LinearActivation(nn.Module):def forward(self, x):return xlinear_activation LinearActivation()2. 非线性激活函数 Sigmoid import torch.nn as nnsigmoid nn.Sigmoid()Tanh import torch.nn as nntanh nn.Tanh()ReLU import torch.nn as nnrelu nn.ReLU()Leaky ReLU import torch.nn as nnleaky_relu nn.LeakyReLU(negative_slope0.01) # negative_slope 参数用于控制负半轴的斜率Parametric ReLU (PReLU) import torch.nn as nnprelu nn.PReLU() # PReLU 的参数可以通过设置 init 参数进行初始化使用激活函数 可以在构建模型时将这些激活函数作为层添加到网络中。例如 import torch import torch.nn as nnclass SimpleNet(nn.Module):def __init__(self):super(SimpleNet, self).__init__()self.fc1 nn.Linear(10, 20)self.relu nn.ReLU() # 可以换成其他激活函数如 nn.Sigmoid()self.fc2 nn.Linear(20, 1)def forward(self, x):x self.fc1(x)x self.relu(x)x self.fc2(x)return x# 实例化模型 model SimpleNet()
http://www.dnsts.com.cn/news/63865.html

相关文章:

  • 培训学校类网站建设方案本地拖拽网站建设
  • 做投标的网站产品设计网站制作
  • 邻水建设局网站什么网站推广比较好
  • 广西南宁市住房和城乡建设局网站有自己域名主机怎么做网站
  • 帝国cms地方门户网站模板wordpress后台新建慢
  • 网站404页面怎么做百度一下首页手机版
  • 单产品网站模板有哪些商业网站
  • 网络公司构建网站php网站开发平台
  • 项目建设管理 公司 网站温州企业网站制作
  • 网站建设图片设置国外做行程的网站
  • 如何做网签合同 网站网站地图怎么设置
  • 网站地址和网页地址elementor wordpress
  • 台州做网站最好的app是怎么制作的
  • 如何从建设局网站上更换职称人员网络工程师证书考试时间
  • 北京酒店团购网站建设建设网站程序
  • 辽宁省建设机械协会官方网站书店商城网站设计
  • 搜索案例的网站有哪些青海省交通建设工程质量监督站网站
  • 网站空间带宽企业网站备个人
  • 中国建设教育协会是什么网站在线视频播放网站建设
  • 网站如何申请微信支付中国建筑集团网
  • 学做网站能赚多少快速优化关键词排名
  • 遵化建设招标网站wordpress手机版边侧导航
  • 怀来网站建设在线二级域名子域名查询
  • 临沂网站服务器价格合肥优秀网站建设
  • 网站推广有用吗?欧洲大型服务器
  • 企业网站建设思路网站推广软件排名
  • 网站推广代运营多少钱创业网项目招商
  • 长安镇网站建设个人网站设计论文道客巴巴
  • 建设网站ppt深圳前海网站设计
  • 做网站上海的备案地址深圳龙华新区住房和建设局网站