深度学习入门(8)激活函数ReLU和 Sigmoid的计算图表示方式及其误差反向传播的代码实现

简介: 深度学习入门(8)激活函数ReLU和 Sigmoid的计算图表示方式及其误差反向传播的代码实现

前言


基于前两篇文章《深度学习入门(6)误差反向传播基础---计算图与链式法则》《深度学习入门(7)误差反向传播计算方式及简单计算层的实现》计算图基础及其简单层的实现,本文主要介绍如何将计算图运用到神经网络中,通过定义一个类的方式用计算图实现激活函数的 ReLU层和 Sigmoid层,让其成为构成神经网络的一个基础层。


一、ReLU层计算图及其代码实现

e791ddcfe81c4a03a72310a588a2fc94.png

如果正向传播时的输入x大于0,则反向传播会将上游的值原封不动地传给下游。反过来,如果正向传播时的x小于等于0,则反向传播中传给下游的信号将停在此处。

444997d293e24867b14f4355f6cedf97.png

206293f454a64581865d695e8d7f86bf.png

feaa2708cf6244acbe0f7c27506a410f.png

如果正向传播时的输入值小于等于0,则反向传播的值为0。因此,反向传播中会使用正向传播时保存的 mask,将从上游传来的 dout的mask中的元素为 True的地方设为0。、


注:ReLU 层的作用就像电路中的开关一样。正向传播时,有电流通过的话,就将开关设为ON;没有电流通过的话,就将开关设为OFF。反向传播时,开关为ON的话,电流会直接通过;开关为OFF的话,则不会有电流通过。


二、Sigmoid层计算图及其代码实现


fb74545451714fa18fd372e247fbe674.png

计算图:

6890ef851c3742b2ae320cd12a4d6206.png


图中,除了“ ×”和“ +”节点外,还出现了新的“ exp”和“ /”节点。“ exp”节点会进行y = exp(x)的计算,“ /”节点会进行y=1/x的计算。


8259127ee51a4ac59b109d85709c879d.png


计算图可以画成下图的集约化的“ sigmoid”节点。


519a02f7f7e2498d9ceed7e02e04c74c.png


通过对节点进行集约化,可以不用在意Sigmoid层中琐碎的细节,而只需要专注它的输入和输出。



9d3cb157708f40dabdbbda39b17e0ef6.png

0d4208bfb3c642b7a6d37cc0eb18fa8f.png

fb28908f6f454561b42b6e94e1fd7f45.png



这个实现中,正向传播时将输出保存在了实例变量 out中。然后,反向传播时,使用该变量 out进行计算。


总结


本文主要介绍了激活函数的 ReLU层和 Sigmoid层计算图的表示方式,以及代码实现。

相关文章
|
2天前
|
机器学习/深度学习 人工智能 自然语言处理
【深度学习】深度学习的概述及应用,附带代码示例
深度学习(Deep Learning,简称DL)是机器学习领域中的一个重要分支,其目标是通过模拟人脑神经网络的工作机制,构建多层次的抽象特征表示,使机器能够自动从原始数据中提取关键信息,从而实现高精度的任务执行。深度学习通过多层神经网络结构及其训练方式,实现了从低级像素级别到高级概念级别的递进式知识层次。 深度学习的主要组件包括输入层、隐藏层和输出层。隐藏层的数量和层数决定了模型的复杂度和表达能力。在训练过程中,权重更新和梯度下降法是关键步骤,目的是最小化损失函数,提高预测精度。深度学习主要基于反向传播算法(BP Algorithm)来优化模型参数,通过正向传播、损失计算、反向传播和梯度下降等
19 8
|
10天前
|
机器学习/深度学习 并行计算 异构计算
面向高效能计算的深度学习框架优化策略
【8月更文第9天】随着深度学习在各个领域的广泛应用,对训练模型的速度和效率要求越来越高。为了满足这些需求,深度学习框架需要针对不同硬件平台进行优化。本文将探讨针对GPU、TPU等硬件平台的优化策略,重点关注数据传输效率、并行计算策略及内存管理等方面。
32 1
|
16天前
|
机器学习/深度学习 算法 算法框架/工具
深度学习在图像识别中的应用及代码实现
【8月更文挑战第3天】深度学习技术在图像识别领域取得了显著的成果,通过构建深度神经网络模型,实现了对复杂图像数据的高效处理和准确识别。本文将介绍深度学习在图像识别中的原理、关键技术及应用实例,并通过代码示例展示如何利用深度学习框架进行图像识别任务的实现。
|
21天前
|
机器学习/深度学习 并行计算 数据挖掘
🎓PyTorch深度学习入门课:编程小白也能玩转的高级数据分析术
【7月更文挑战第29天】踏入深度学习世界,新手也能用PyTorch解锁高级数据分析。
16 2
|
26天前
|
机器学习/深度学习 算法 Serverless
现代深度学习框架构建问题之链式法则在反向传播中的作用如何解决
现代深度学习框架构建问题之链式法则在反向传播中的作用如何解决
26 3
|
1月前
|
机器学习/深度学习 PyTorch 算法框架/工具
图神经网络是一类用于处理图结构数据的神经网络。与传统的深度学习模型(如卷积神经网络CNN和循环神经网络RNN)不同,
图神经网络是一类用于处理图结构数据的神经网络。与传统的深度学习模型(如卷积神经网络CNN和循环神经网络RNN)不同,
|
17天前
|
机器学习/深度学习 算法 算法框架/工具
探索深度学习:从理论到代码实现
【8月更文挑战第2天】本文将深入探讨深度学习的核心理论,并通过实际的代码示例来展示这些理论的应用。我们将从基础的神经网络开始,逐步引入更复杂的模型和算法,如卷积神经网络(CNN)和循环神经网络(RNN)。最后,我们将通过一个具体的项目来展示如何将这些理论应用于实际问题。
26 0
|
2月前
|
机器学习/深度学习 数据采集 TensorFlow
使用Python实现深度学习模型:图神经网络(GNN)
使用Python实现深度学习模型:图神经网络(GNN)
72 1
|
2月前
|
机器学习/深度学习 算法 异构计算
为什么说深度学习入门难?
深度学习对于初学者可能会有一定的学习曲线,但并不是不可战胜的难题。深度学习难不难学?通过合适的学习资源、坚持不懈的努力和实际项目的实践,你可以逐渐掌握深度学习的技能。深度学习的重要性和广泛应用性使得克服学习难度是非常值得的。
28 3
|
2月前
|
机器学习/深度学习 人工智能 算法框架/工具
【深度学习】OneFlow深度框架:数据流图与异步计算的科技革新
【深度学习】OneFlow深度框架:数据流图与异步计算的科技革新
37 2

热门文章

最新文章