科普 | 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/zh-hk/n/370097.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
CSXGV的頭像CSXGV
上一篇 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

發表回復

登錄後才能評論