科普 | np.tanh的多面向探究

一、简介

np.tanh是numpy库中的一个函数,常被用来处理神经网络中的激活函数,或者数学中的一些复杂计算。tanh即双曲正切函数。

二、单变量情形

首先,我们看下单变量tanh函数在数学中的表达式:

$$ \tanh(x) = \frac{e^{x}-e^{-x}}{e^{x}+e^{-x}} $$

这个函数的图像如下示意:

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(-10, 10, 1000)
y = np.tanh(x)
plt.plot(x, y)
plt.xlabel('x')
plt.ylabel('y')
plt.title('tanh(x)')
plt.show()

这个函数的取值范围为[-1, 1],当x越接近0时,y越接近于0,当x远离0时,y越趋近于1或-1。同时,这个函数呈现出S型的特点。

三、多变量情形

如果我们考虑在多变量情况下,使用tanh函数,那么可以根据上述公式拓展:

$$ \tanh(\mathbf{x}) = \frac{\mathbf{e}^{\mathbf{x}}-\mathbf{e}^{-\mathbf{x}}}{\mathbf{e}^{\mathbf{x}}+\mathbf{e}^{-\mathbf{x}}} $$

其中,\mathbf{x}为一个向量。

四、神经网络中的应用

在神经网络中,激活函数具有很重要的意义。tanh函数常被用作隐藏层的激活函数,因为tanh函数不仅符合sigmoid函数的一些性质,而且均值为0,方差为1。这有助于数据的中心化处理,并且可以加快梯度下降的速度。

例如,如果我们结合Keras库的使用,可以定义一个简单的神经网络模型:

import tensorflow as tf
from tensorflow import keras

model = keras.Sequential([
    keras.layers.Dense(10, input_shape=(3,), activation=tf.nn.tanh),
    keras.layers.Dense(1, activation=tf.nn.sigmoid)
])
model.compile(loss='binary_crossentropy', optimizer='adam')

这里定义了一个包含一个10个节点的隐藏层的神经网络模型,其中隐藏层的激活函数是tanh函数。

五、总结

在大多数数学计算、深度学习中,tanh函数都是一个非常有用的函数。tanh函数的S型特征给用户提供了非常好的非线性工具,并且tanh函数的均值为0,方差为1对于神经网络的应用也非常方便。

原创文章,作者:CSXGV,如若转载,请注明出处:https://www.506064.com/n/370097.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
CSXGVCSXGV
上一篇 2025-04-18 13:40
下一篇 2025-04-18 13:40

相关推荐

  • Python定义两个列表的多面探索

    Python是一种强大的编程语言,开放源代码,易于学习和使用。通过Python语言,我们可以定义各种数据类型,如列表(list)。在Python中,列表(list)在处理数据方面起…

    编程 2025-04-29
  • Python中中括号里数字的多面

    本文将从多个方面对Python中中括号里数字做详细的阐述,包括索引、切片、循环等,以及一些常见问题的解决方法。 一、索引操作 索引操作指的是通过中括号里的数字来访问列表(list)…

    编程 2025-04-28
  • Python中的np.arange函数

    在本篇文章中,我们将着眼于Python中的np.arange函数。我们将从多个方面对这个函数进行全面解析,涵盖的内容包括介绍、功能、用法、案例以及注意事项等。如果您想深入了解np.…

    编程 2025-04-28
  • 深入理解np.diag

    一、介绍 NumPy是一个开源的Python科学计算库,它支持高维数组和矩阵运算。np.diag是NumPy中的一个函数,可以用来创建对角矩阵、获取对角线元素、构建对角线数组等。 …

    编程 2025-04-25
  • Python命令行执行的多面探秘

    一、基础操作 Python是一种通用编程语言,可以在命令行中运行。做到这一点的最简单方法是打开命令行窗口,键入Python,然后按Enter。这将带您到Python提示符里。 $p…

    编程 2025-04-24
  • np.divide函数详解

    一、简介 np.divide函数是numpy库中的一个函数,用于对两个数组进行逐元素的除法运算。它是一个通用的、基础的元素级函数,可以对数组中的任何类型进行操作。使用np.divi…

    编程 2025-04-24
  • 一文详解np.mat函数

    一、np.mat函数是什么? np.mat函数是一个将数组转换成矩阵的函数,是numpy中的一个基础函数。它可以将一个有序的n维数组转换成一个矩阵,并返回该矩阵的视图,也就是返回一…

    编程 2025-04-23
  • 深入探索np.linalg.norm函数

    np.linalg.norm是numpy库中常用的函数之一,用于计算向量或矩阵的范数。在许多数学和物理问题中,范数是一个关键的概念,它衡量了向量的长度大小和矩阵的大小。在本文中,我…

    编程 2025-04-23
  • 深入浅出:np.floor

    一、概述 在Python中,numpy模块是一个强大的数学工具集,提供了许多有用的功能。其中,np.floor是一个常用的函数,它的作用是返回输入一个小数后向下取整的结果。 imp…

    编程 2025-04-22
  • np.reshape方法详解

    一、基本介绍 np.reshape()方法是NumPy中的一个关键操作,用于重塑数组的尺寸。通过该方法可以改变数组的形状,维度数量和元素数量不一定会改变。 通常情况下,np.res…

    编程 2025-04-20

发表回复

登录后才能评论