0
点赞
收藏
分享

微信扫一扫

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


《深度学习入门》系列文章目录

​​深度学习入门 (1)感知机​​

​​深度学习入门(2)神经网络​​

​​深度学习入门(3)神经网络参数梯度的计算方式​​

​​深度学习入门(4)【深度学习实战】无框架实现两层神经网络的搭建与训练过程​​

​​深度学习入门(5)如何对神经网络模型训练结果进行评价​​

​​深度学习入门(6)误差反向传播基础---计算图与链式法则使用​​

​​深度学习入门(7)误差反向传播计算方式及简单计算层的实现​​


文章目录

目录

​​前言​​

​​一、ReLU层​​计算图及其误差反向传播代码实现

​​二、Sigmoid层​​计算图及其误差反向传播代码实现

​​总结​​


前言

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

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

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

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

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

 

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

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

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

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

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

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

计算图:

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

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

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

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

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

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

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

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

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

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

总结

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

如果内容对你有帮助,感谢点赞+关注哦!

更多干货内容持续更新中…

举报

相关推荐

0 条评论