Gumbel分布

一、介紹

Gumbel分布是極值分布的一種,適用於描述極端事件的概率分布。它也被稱為極大值分布(more extreme value distribution)或者Frechet分布。

Gumbel分布是由瑞士數學家Emil Gumbel於1954年提出的,在現代科學工程學中得到了廣泛的應用,比如用於建築工程中極端風及地震引起的破壞力的分析、水文學中洪水的頻率分析等。在機器學習中,Gumbel分布被用來進行採樣和近似梯度計算。

二、概率密度函數

一個隨機變數X服從Gumbel分布,它的概率密度函數為:

f(x) = \frac{1}{\beta}e^{-(z+e^{-z})} 
z = \frac{x - \mu}{\beta}

其中,$\mu$是位置參數,$\beta$是尺度參數,注意當$\beta=1$時,z可以簡寫成(x-$\mu$)。

以下是Python代碼示例:

import numpy as np
import matplotlib.pyplot as plt

def gumbel(x, mu, beta):
    z = (x-mu)/beta
    return np.exp(-(z + np.exp(-z))) / beta

x = np.linspace(0, 10, 100)
y = gumbel(x, 5, 1)
plt.plot(x, y)
plt.xlabel("X")
plt.ylabel("Probability density")
plt.title("Gumbel distribution, mu=5, beta=1")
plt.show()

三、分布特性

1. 期望和方差

Gumbel分布的期望和方差分別為:

E(X) = \mu + \beta \gamma
Var(X) = \frac{\pi^2}{6} \beta^2

其中,$\gamma$是歐拉常數(0.5772…),也就是:

import scipy.special as sp
sp.euler_gamma   # 0.5772156649015329

2. 生成隨機數

可以使用numpy的gumbel()函數生成Gumbel分布的隨機數,基本用法如下:

import numpy as np
mu = 5
beta = 1
sample = np.random.gumbel(mu, beta, 1000)

其中,mu和beta分別是位置參數和尺度參數,1000是生成的隨機數個數。

3. 模擬採樣

使用Gumbel分布進行採樣的方法通常稱為Gumbel-softmax trick,可以用於生成離散空間中的採樣,比如深度學習中的softmax採樣。

基本思路是先從Gumbel分布中採樣出兩個隨機數,然後將採樣概率分布取exponential()值,最後做歸一化,即可得到softmax分布中的採樣。

以下是Python代碼示例:

def gumbel_sample(logits, temperature):
    noise = np.random.gumbel(size=logits.shape)
    y = (logits + noise) / temperature
    return np.exp(y) / np.sum(np.exp(y), axis=-1, keepdims=True)

logits = np.array([2.0, 1.0, 0.5])
t = 1.0
samples = gumbel_sample(logits, t)
print(samples)   # [0.535, 0.272, 0.193]

四、小結

本文介紹了Gumbel分布的概念、概率密度函數、期望和方差、隨機數生成方法以及在模擬採樣中的應用。Gumbel分布作為極值分布的一種,有著廣泛的應用場景,特別是在科學工程學和機器學習中。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/240794.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-12 12:24
下一篇 2024-12-12 12:24

相關推薦

  • 深入了解Gumbel分布

    一、Gumbel vq 在深度學習中,我們經常需要對數值進行排序,而Gumbel分布是一種經常用於排序任務中的分布。在排序時,我們可以使用Gumbel分布生成雜訊,然後對雜訊進行排…

    編程 2025-01-14
  • Gumbel Softmax演算法詳解

    一、Gumbel Softmax簡介 Gumbel Softmax是一種基於採樣的概率分布生成演算法,它用於從一個具有固定參數的分布中生成一組概率分布。 具體地說,它可以通過使用伯努…

    編程 2025-01-03
  • Gumbel分布的詳細闡述

    一、基本概念介紹 Gumbel分布被廣泛應用於極值統計和可靠性分析中,是一種連續概率分布。Gumbel分布的概率密度函數為: f(x) = (1/β) * exp(-(x-μ+ex…

    編程 2024-11-26

發表回復

登錄後才能評論