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

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

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

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

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

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

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

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

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

文章目录

目录

前言

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

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

总结



前言

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

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

深度学习入门(8)激活函数ReLU和 Sigmoid的计算图表示方式及代码实现_第1张图片

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

深度学习入门(8)激活函数ReLU和 Sigmoid的计算图表示方式及代码实现_第2张图片

 深度学习入门(8)激活函数ReLU和 Sigmoid的计算图表示方式及代码实现_第3张图片

深度学习入门(8)激活函数ReLU和 Sigmoid的计算图表示方式及代码实现_第4张图片

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

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

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

计算图:

深度学习入门(8)激活函数ReLU和 Sigmoid的计算图表示方式及代码实现_第5张图片

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

深度学习入门(8)激活函数ReLU和 Sigmoid的计算图表示方式及代码实现_第6张图片

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

深度学习入门(8)激活函数ReLU和 Sigmoid的计算图表示方式及代码实现_第7张图片

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

深度学习入门(8)激活函数ReLU和 Sigmoid的计算图表示方式及代码实现_第8张图片

深度学习入门(8)激活函数ReLU和 Sigmoid的计算图表示方式及代码实现_第9张图片

深度学习入门(8)激活函数ReLU和 Sigmoid的计算图表示方式及代码实现_第10张图片

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


总结

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

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

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

你可能感兴趣的:(深度学习入门,python,深度学习,Relu层实现,Sigmoid层实现,激活函数)