欢迎访问宙启技术站
智能推送

mxnet.gluon.nn模块解析:常用的激活函数及其作用

发布时间:2023-12-25 00:46:12

MXNet是一个深度学习框架,它提供了nn模块来帮助用户构建神经网络模型。在nn模块中,有许多常用的激活函数可以用来增加神经网络的非线性特性。本文将介绍一些常见的激活函数,并给出相应的使用示例。

1. Sigmoid激活函数

Sigmoid函数将输入映射到[0,1]的范围内,它的公式为:f(x) = 1 / (1 + exp(-x))。

Sigmoid函数常用于二分类问题中,例如判断一张图片是否包含猫。在MXNet中,可以使用Sigmoid函数的Symbol版本,代码示例如下:

import mxnet as mx
from mxnet.ndarray import sigmoid

x = mx.nd.array([-1, 0, 1])
output = sigmoid(x)
print(output)

输出结果为:

[0.26894143 0.5 0.7310586 ]

2. ReLU激活函数

ReLU函数将输入映射到[0,+\infty),它的公式为:f(x) = max(0, x)。

ReLU函数用于增加神经网络的非线性特性,并且相对于Sigmoid函数,ReLU函数的计算速度更快。在MXNet中,可以使用ReLU函数的Symbol版本,代码示例如下:

import mxnet as mx
from mxnet.ndarray import relu

x = mx.nd.array([-1, 0, 1])
output = relu(x)
print(output)

输出结果为:

[0. 0. 1.]

3. LeakyReLU激活函数

LeakyReLU函数是对ReLU函数的改进,它解决了ReLU函数在负数部分导数为0的问题。它的公式为:f(x) = max(0.01x, x)。

在MXNet中,可以使用LeakyReLU函数的Symbol版本,代码示例如下:

import mxnet as mx
from mxnet.ndarray import LeakyReLU

x = mx.nd.array([-1, 0, 1])
output = LeakyReLU(x, slope=0.01)
print(output)

输出结果为:

[-0.01 0. 1. ]

4. Tanh激活函数

Tanh函数将输入映射到[-1,1]的范围内,它的公式为:f(x) = (exp(x) - exp(-x)) / (exp(x) + exp(-x))。

Tanh函数也常用于二分类问题,它的输出范围和Sigmoid函数一样,但是Tanh函数的输出均值为0。在MXNet中,可以使用Tanh函数的Symbol版本,代码示例如下:

import mxnet as mx
from mxnet.ndarray import tanh

x = mx.nd.array([-1, 0, 1])
output = tanh(x)
print(output)

输出结果为:

[-0.7615942 0. 0.7615942]

总结:

本文介绍了一些常见的激活函数并给出了相应的使用示例。这些激活函数可以用于增加神经网络的非线性特性,并提高模型的表达能力。根据具体的问题,选择合适的激活函数可以取得更好的模型性能。