它是如何工作的:神经网络中的修正线性单元

问题描述 投票:0回答:3

谁能告诉我上述算法是如何工作的。理论上我明白了,但我需要一些演示。一个简单的 2x2 矩阵就可以了。希望你能在这方面帮助我。这与我正在学习的深度学习课程有关。

neural-network deep-learning
3个回答
1
投票

ReLU 只是一个函数:

f(x)=max(0,x)

所以如果你有一个矩阵:

X=[[0, 3],[-2,7]] ----> f(X) = [[0,3][0,7]]

在向后传递过程中,梯度将仅流过输入矩阵的正元素。上一个示例获得的梯度掩码为:

X=[[0, 3],[-2,7]] ----> df(X)/d(X)=[[0,1][0,1]]

由于 ReLU 的导数未针对 x=0 定义,因此另一个有效掩码可能是:

df(X)/dX=[[c,1][0,1]] 其中 c 介于 0 和 1 之间。


0
投票

RELU 公式很简单

f(x)=max(0,x)
所以它基本上将卷积矩阵中的所有负数归零。

这里您对 RELU 和卷积神经网络有很好的解释。


0
投票

ReLU(修正线性单元)

  • 可以将输入值(

    x
    )转换为0到
    x
    之间的输出值。 *如果
    x
    < 0, then 0 while if 0 <=
    x
    ,则
    x

  • 的公式是 y = max(0, x)。

  • 是 PyTorch 中的 ReLU()

    import torch
    
    my_tensor = torch.tensor([[8, -3, 0, 1],
                            [-5, 2, -1, 4]])
    relu = nn.ReLU()
    relu(input=my_tensor)
    # tensor([[8, 0, 0, 1],
    #         [0, 2, 0, 4]])
    
  • 用于:

    • 二元分类模型。
    • 多类分类模型。
    • CNN(卷积神经网络)。
    • RNN(循环神经网络)。 *PyTorch 中的 RNN
    • 变压器。 *PyTorch 中的 Transformer()
    • 基于RNN的NLP(自然语言处理)。
    • GAN(生成对抗网络)。
  • 的优点:

    • 它缓解了梯度消失问题
  • 的缺点:

    • 它会导致 ReLU 死亡问题
    • 它在
      x = 0
      处不可微。
  • Desmos 中

Image description

© www.soinside.com 2019 - 2024. All rights reserved.