迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > Python >

Python中ReLU函数的导数

作者:迹忆客 最近更新:2023/06/16 浏览次数:

ReLU 代表 Rectified Linear Activation Function,它是深度学习范围内最流行的激活函数替代方案。 ReLU 是线性函数的一部分,如果输入值为正,则输出相同的输入; 如果不是,它将使输出为零。

本文介绍如何使用 Python 编程语言对 ReLU 函数进行派生。


在 Python 中实现 ReLU 函数

作为一个数学函数,我们可以定义 ReLU 函数如下:

f(x) = max(0,x)

此函数关于 x 是线性的,并且对于所有负值输出零。

以下伪代码表示 ReLU 函数。

if input > 0:
        return input
else:
        return 0

正如上面的伪代码,我们可以构建我们的 ReLU 函数的实现如下:

import numpy as nm
def relu_func(x):
    return(nm.maximum(0,x))
print(relu_func(2))
print(relu_func(0))
print(relu_func(0.1))
print(relu_func(-3))

考虑到这个例子,它定义了带有参数 x 的函数 relu_func。 此函数返回考虑 ReLU 函数的输出。

我们一次将一个整数作为参数传递给 relu_func 函数。

maximum() 函数返回最大值。 如果整数大于0,它将打印与输入相同的整数; 如果不是,它打印零。

因此,我们在上面的代码中实现的 ReLU 函数将适用于任何单个整数; 也有 numpy 数组。

我们可以得到如下输出:

relu 函数


Python中 ReLU 函数的导数

否则,ReLU 函数的导数称为 ReLu 的梯度。 函数的导数是斜率。

如果我们创建一个图,例如,y= ReLu(x),并且 x 大于零,则梯度为 1。

如果 x 小于零,则梯度为 0。如果 x = 0,则导数不存在。

ReLu函数的数学导数可以定义如下:

f'(x) = 1, x >= 0
      = 0, x < 0

我们可以将 ReLu 函数的导数应用于图形。 那么,让我们看看下面的例子。

%matplotlib inline
import numpy as np
import matplotlib.pyplot as plt
#define relu function
def relu_func(z):
    return np.maximum(0,z)
z = np.arange(-3,5,1)
print (z)
Y = relu_func(z)
print(Y)
plt.plot(z,Y,'o-')
plt.xlabel('X')
plt.ylabel('F(x)')
plt.grid()

考虑到上面的代码,它被定义为传递 z 参数的 relu_func。 在这个函数下,我们返回relu函数和定义的z变量来获取x轴的范围。

还定义了 Y 变量定义为传递带有参数的 relu_func。 relu_func(Z) 函数计算所有 z 值的 reLU。

因此,所有负值都表示零。 x 轴图是 X,y 轴图是 F(x)。

下图是我们从上面的代码中得到的输出。

导数 relu 函数

如前所述,导数是指图形在某一点的斜率。 所以,x=1 的斜率为 1。

所有其他大于 0 的点的斜率为 1。但是,x=-3 的斜率是多少?

我们可以看到该点没有斜率。

所有其他小于 0 的点都得到 slope none,这意味着斜率为 0。所以这被称为 ReLu 函数的导数,内置 Python 编程语言。


总结

本文介绍如何在Python中实现ReLu函数,主要讨论如何实现ReLu导数函数。 ReLU 函数在深度学习中经常使用。

但它有一些问题。 例如,如果输入值小于 0,则输出将为 0。

因此,神经网络无法继续其某些工作。 作为解决方案,它主要使用 Leaky ReLU 函数。

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

Pandas read_csv()函数

发布时间:2024/04/24 浏览次数:254 分类:Python

Pandas read_csv()函数将指定的逗号分隔值(csv)文件读取到 DataFrame 中。

Pandas 追加数据到 CSV 中

发布时间:2024/04/24 浏览次数:352 分类:Python

本教程演示了如何在追加模式下使用 to_csv()向现有的 CSV 文件添加数据。

Pandas 多列合并

发布时间:2024/04/24 浏览次数:628 分类:Python

本教程介绍了如何在 Pandas 中使用 DataFrame.merge()方法合并两个 DataFrames。

Pandas loc vs iloc

发布时间:2024/04/24 浏览次数:837 分类:Python

本教程介绍了如何使用 Python 中的 loc 和 iloc 从 Pandas DataFrame 中过滤数据。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便