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

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

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

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

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

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

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

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

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

文章目录

目录

前言

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

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

总结



前言

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

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

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

 

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

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

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

计算图:

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

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

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

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


总结

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

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

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

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
ReLU的优点: 1. 计算速度快:ReLU仅对正数进行操作,不需要进行复杂的计算,因此计算速度比sigmoid和tanh快很多。 2. 解决梯度消失问题:在深度神经网络中,梯度消失是一个常见的问题,ReLU可以在一定程度上缓解梯度消失的问题,因为它只有一部分区域的导数是0。 3. 稀疏性:ReLU可以使得神经元输出的结果变得更加稀疏,因为它会将一些负数的输入变成0,这样可以减少神经元之间的相互依赖。 ReLU的局限性: 1. 死亡ReLU问题:当输入为负数时,ReLU的导数为0,这将导致神经元“死亡”,即无法更新权重,影响模型的性能。 2. 非线性可分性限制:ReLU只能处理线性可分问题,无法处理一些非线性可分的问题,如异或问题。 3. 对负数的处理方式不够优秀:ReLU对负数的处理方式是将其变为0,这样可能会导致信息的丢失。 sigmoid的优点: 1. 可以将输出限制在0~1之间,并且输出值可以表示概率。 2. 具有良好的可导性,方便进行反向传播算法更新权重。 3. 在一定程度上可以防止神经元之间的相互依赖。 sigmoid的局限性: 1. 计算量大:sigmoid函数的计算量比ReLU和tanh大,因为它需要进行指数运算。 2. 容易出现梯度消失问题,特别是当输入很大或很小的时候,导数可以趋近于0,使得权重更新变得困难。 3. 输出不是零中心化的,这会导致模型的收敛速度变慢。 tanh的优点: 1. 输出值在-1~1之间,可以使得模型的输出更加稳定。 2. 具有良好的可导性,方便进行反向传播算法更新权重。 tanh的局限性: 1. 计算量大:tanh函数的计算量比ReLUsigmoid大,因为它需要进行指数运算。 2. 容易出现梯度消失问题,特别是当输入很大或很小的时候,导数可以趋近于0,使得权重更新变得困难。 3. 输出不是零中心化的,这会导致模型的收敛速度变慢。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿_旭

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值