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

网站建设与会展淘宝客网站建设平台

网站建设与会展,淘宝客网站建设平台,建设网站的和服务器,免费网站程序下载专栏#xff1a;神经网络复现目录 深度学习神经网络基础知识(三) 本文讲述神经网络基础知识#xff0c;具体细节讲述前向传播#xff0c;反向传播和计算图#xff0c;同时讲解神经网络优化方法#xff1a;权重衰减#xff0c;Dropout等方法#xff0c;最后进行Kaggle实…专栏神经网络复现目录 深度学习神经网络基础知识(三) 本文讲述神经网络基础知识具体细节讲述前向传播反向传播和计算图同时讲解神经网络优化方法权重衰减Dropout等方法最后进行Kaggle实战具体用一个预测房价的例子使用上述方法。 文章部分文字和代码来自《动手学深度学习》 文章目录深度学习神经网络基础知识(三)前向传播反向传播计算图前向传播的计算图反向传播的计算图pytorch中的计算图前向传播 前向传播forward propagation或forward pass 按顺序从输入层到输出层计算和存储神经网络中每层的结果。 在神经网络中前向传播是指从输入层开始经过一系列的隐藏层后将结果输出到输出层的过程。在每一层中输入会与对应层的权重进行线性组合再经过激活函数进行非线性变换得到输出并传递到下一层。这个过程可以表示为 h(l)f(W(l)h(l−1)b(l))h^{(l)} f(W^{(l)}h^{(l-1)} b^{(l)})h(l)f(W(l)h(l−1)b(l)) 其中h(l)h^{(l)}h(l)表示第lll层的输出fff为该层的激活函数W(l)W^{(l)}W(l)为该层的权重矩阵h(l−1)h^{(l-1)}h(l−1)为上一层的输出b(l)b^{(l)}b(l)为该层的偏置。 在每一层中输入的维度通常为(batch_size, input_size)即一批数据的输入维度。而每层输出的维度通常为(batch_size, output_size)即一批数据的输出维度。这样一般情况下每一层的权重矩阵的维度为(input_size, output_size)每一层的偏置的维度为(output_size,)。 前向传播的过程将每层的输出作为下一层的输入最终得到网络的输出。在训练过程中输出可以与标签进行比较计算出网络的误差并通过反向传播来更新权重和偏置使得网络的输出更接近于标签。 反向传播 反向传播是一种用于训练神经网络的优化算法其基本思想是利用链式法则计算损失函数对每个参数的导数从而更新参数。反向传播中的计算可以通过计算图来表示其中每个节点代表一个运算每个边表示数据的传递。 反向传播公式可以表示为 ∂L∂z∂L∂y∂y∂z\frac{\partial L}{\partial \mathbf{z}} \frac{\partial L}{\partial \mathbf{y}} \frac{\partial \mathbf{y}}{\partial \mathbf{z}}∂z∂L​∂y∂L​∂z∂y​ 其中LLL是损失函数y\mathbf{y}y和z\mathbf{z}z是任意两个向量∂L∂y\frac{\partial L}{\partial \mathbf{y}}∂y∂L​和∂y∂z\frac{\partial \mathbf{y}}{\partial \mathbf{z}}∂z∂y​分别是LLL关于y\mathbf{y}y的梯度和y\mathbf{y}y关于z\mathbf{z}z的梯度。 反向传播的主要思想是从输出层开始计算每一层的梯度然后根据链式法则将梯度向前传播最终计算出每个参数的梯度。具体来说对于每个参数反向传播算法会计算其对损失函数的梯度然后使用梯度下降等优化算法来更新参数。 为了更好地理解反向传播算法的推导过程以下将给出一个简单的两层神经网络的示例假设输入样本为 xxx第一层的输出为 hhh第二层的输出为 ooo损失函数为 LLL。 首先根据链式法则我们可以将输出层的权重 W2W_2W2​ 的梯度表示为 ∂L∂W2∂L∂o⋅∂o∂W2\frac{\partial L}{\partial W_2} \frac{\partial L}{\partial o} \cdot \frac{\partial o}{\partial W_2}∂W2​∂L​∂o∂L​⋅∂W2​∂o​ 其中∂L∂o\frac{\partial L}{\partial o}∂o∂L​ 表示损失函数对输出层输出的偏导数∂o∂W2\frac{\partial o}{\partial W_2}∂W2​∂o​ 表示输出层输出对权重的偏导数。 对于 ∂L∂o\frac{\partial L}{\partial o}∂o∂L​我们可以通过损失函数对输出层输出的偏导数来计算 ∂L∂o∂L∂y⋅∂y∂o\frac{\partial L}{\partial o} \frac{\partial L}{\partial y} \cdot \frac{\partial y}{\partial o}∂o∂L​∂y∂L​⋅∂o∂y​ 其中yyy 表示经过激活函数后的输出∂L∂y\frac{\partial L}{\partial y}∂y∂L​ 表示损失函数对 yyy 的偏导数∂y∂o\frac{\partial y}{\partial o}∂o∂y​ 表示 yyy 对 ooo 的偏导数。 对于 ∂y∂o\frac{\partial y}{\partial o}∂o∂y​我们可以根据激活函数的不同计算出其具体的形式。 对于 ∂L∂h\frac{\partial L}{\partial h}∂h∂L​我们可以通过链式法则计算出其表达式 ∂L∂h∂L∂o⋅∂o∂h\frac{\partial L}{\partial h} \frac{\partial L}{\partial o} \cdot \frac{\partial o}{\partial h}∂h∂L​∂o∂L​⋅∂h∂o​ 其中∂o∂h\frac{\partial o}{\partial h}∂h∂o​ 表示输出层输出对隐藏层输出的偏导数。 同样地我们可以通过链式法则计算出隐藏层权重 W1W_1W1​ 的梯度 ∂L∂W1∂L∂h⋅∂h∂W1\frac{\partial L}{\partial W_1} \frac{\partial L}{\partial h} \cdot \frac{\partial h}{\partial W_1}∂W1​∂L​∂h∂L​⋅∂W1​∂h​ 其中∂h∂W1\frac{\partial h}{\partial W_1}∂W1​∂h​ 表示隐藏层输出对权重的偏导数。 在实际的反向传播算法中我们需要依次计算每个参数的梯度然后利用梯度下降等优化算法来更新参数。 计算图 计算图computational graph是用于描述数学表达式中变量之间关系的图形模型通常用于深度学习中的自动微分。在计算图中节点表示操作如加法、乘法、求和、激活函数等边表示输入和输出之间的关系。计算图可以将复杂的数学表达式拆分成简单的操作方便求导和计算梯度。 在前向传播时计算图会按照从输入到输出的顺序依次计算每个节点的输出值。在反向传播时计算图则按照从输出到输入的顺序依次计算每个节点的梯度并将梯度传递给其前驱节点。最终计算图可以通过自动微分技术计算出整个表达式的梯度并用于优化模型参数。 前向传播的计算图 前向传播节点存储的是计算的值 反向传播的计算图 反向传播节点存储的是此时的梯度 pytorch中的计算图 在 PyTorch 中计算图是由 torch.autograd 模块负责构建和维护的。该模块提供了一个 Function 类代表着计算图中的节点这些节点对应于操作例如加法、乘法等并维护了操作的输入、输出和梯度等信息。在计算图中输入节点称为“叶子节点”它们对应于输入数据和模型参数。 当我们调用一个函数时该函数对应的计算图节点将被创建并用于计算函数的输出。同时一个新的计算图会在内存中被构建它会记录该操作与其他操作之间的依赖关系。这个新计算图就是梯度图我们可以使用它来计算反向传播梯度。 当我们在 PyTorch 中进行自动微分时每个计算图节点都维护着一个梯度。通过自动微分我们可以在计算图中反向传播梯度并且通过对梯度进行链式法则的运算计算叶子节点的梯度。这些叶子节点的梯度可以用于更新模型参数以最小化损失函数。 在PyTorch中Tensor是中心数据结构它不仅存储数据还存储计算图中的梯度信息。在每个Tensor上调用.requires_gradTrue可以启用自动微分机制。计算图中每个Tensor都有一个.grad属性它存储该张量对应的梯度信息。 在计算图中完成前向传播后可以通过调用.backward()方法来执行反向传播计算梯度。反向传播的过程会沿着计算图反向传播将梯度信息传递给各个参数Tensor的.grad属性。通过调用优化器的更新方法即可使用计算出的梯度信息来更新模型的参数。 具体来说当我们定义一个需要求导的tensor时PyTorch会为该tensor创建一个计算图并在图中记录所有计算操作。当我们执行前向传播时计算图会记录所有执行的操作以便之后可以根据链式法则计算梯度。然后当我们执行反向传播时PyTorch会根据链式法则和计算图中记录的操作来计算梯度。
http://www.hkea.cn/news/14351779/

相关文章:

  • .php的网站是怎么做的怎么免费建设个人网站
  • 说明设计网站开发方案流程建筑人才网招聘网官网
  • 宠物网站页面设计创意国外微信彩票网站网站建设
  • code snippets wordpress深圳seo网站建设
  • 有哪些高端的网站河南地区建设工程信息网
  • 11免费建网站免费做二建题的网站
  • 网站建设分工说明网站建设 深圳宝安
  • 本地做网站顺序凡科网怎么制作小程序
  • 网站 用什么语言宁德北京网站建设
  • 彩票网站制作找谁响应式网站建设源码
  • 网站建设的公司选择哪家好进入公众号后打开网页
  • 做网站的升级人wordpress 外贸网站
  • 建设一个网站的文案需要做中英双语切换的网站
  • 深圳网站设计公司如何个人创业做网站
  • 做手机网站价格广州门户网站制作
  • 网站开发的软 硬件环境标准网站页脚需要放什么用
  • 网站建设1000元响应式网站 翻译
  • 东莞做网站设计制作安徽中小企业网站建设
  • 网站的详情页面散文网站模板
  • 如何进行网站宣传推广哪里有做微商网站
  • 河南网站建设app开发网站建设mdf
  • 上传网站的三种方法做wish选品参考什么网站
  • 软件下载网站地址网站接口设置
  • 全球域名注册平台seo整合营销
  • 中国黄金集团建设有限公司官方网站wordpress点播收费
  • 闽侯县住房和城乡建设局网站中小型网站建设 教案
  • 做视频网站怎么看不会卡织梦做中英文网站详细步骤
  • 网站建设业务怎么做产品线上营销有哪些方式
  • 网站建设的风险预测中小企业建站可以怎么做
  • 公司门户网站怎么做信丰做网站