小实验:关于期望的乘法性质
小實(shí)驗(yàn):關(guān)于期望的乘法性質(zhì)
- 引言
- 個(gè)人疑惑
- 驗(yàn)證過程
- 樣本生成
- 實(shí)驗(yàn)過程
- 附:完整代碼
引言
本節(jié)通過代碼實(shí)現(xiàn)期望的乘法性質(zhì)。
個(gè)人疑惑
在數(shù)學(xué)期望的定義中,有一條隨機(jī)變量期望的乘法性質(zhì):
當(dāng)隨機(jī)變量 X , Y \mathcal X,\mathcal Y X,Y相互獨(dú)立時(shí),有:
E ( X ? Y ) = E ( X ) ? E ( Y ) \mathbb E(\mathcal X \cdot \mathcal Y) = \mathbb E(\mathcal X) \cdot \mathbb E(\mathcal Y) E(X?Y)=E(X)?E(Y)
個(gè)人誤區(qū):隨機(jī)變量 X , Y \mathcal X,\mathcal Y X,Y分別屬于不同分布,在各分布下隨機(jī)變量獨(dú)立采樣時(shí),它們的期望會(huì)滿足上述形式。
問題:如果兩隨機(jī)變量 X , Y \mathcal X,\mathcal Y X,Y是獨(dú)立同分布 ( Independent?Identically?Distribution,IID ) (\text{Independent Identically Distribution,IID}) (Independent?Identically?Distribution,IID)條件下,上述結(jié)果是否也成立 ? ? ?
驗(yàn)證過程
樣本生成
我們使用基于一維高斯分布 ( Gaussian?Distribution ) (\text{Gaussian Distribution}) (Gaussian?Distribution)的兩隨機(jī)變量 X , Y \mathcal X,\mathcal Y X,Y進(jìn)行驗(yàn)證。高斯分布的概率密度函數(shù)表示如下:
F ( x ) = 1 σ 2 π exp ? { ? ( x ? μ ) 2 2 σ 2 } \mathcal F(x) = \frac{1}{\sigma \sqrt{2\pi}} \exp \left\{- \frac{(x - \mu)^2}{2 \sigma^2} \right\} F(x)=σ2π?1?exp{?2σ2(x?μ)2?}
對(duì)應(yīng)代碼表示如下:
但在牛客網(wǎng)八股刷題系列——概率密度函數(shù)中介紹過,概率密度函數(shù)結(jié)果進(jìn)描述輸入事件發(fā)生的可能性,而不是真正的概率結(jié)果。這里使用積分近似的方式對(duì)概率進(jìn)行近似描述:
這里使用 1000 1000 1000個(gè)點(diǎn)對(duì)積分區(qū)間(設(shè)置左邊界 ? 5 -5 ?5,右邊界是需要計(jì)算概率的值)
需要注意的是:僅作實(shí)驗(yàn)使用,左邊界數(shù)值不能設(shè)置太高,否則會(huì)導(dǎo)致積分誤差較大。
基于上述概率結(jié)果,我們從均值為 μ \mu μ方差為 σ \sigma σ的高斯分布中采集一組樣本:
由于‘概率密度函數(shù)’形狀是關(guān)于 x = μ x = \mu x=μ對(duì)稱圖形,需要將大于一半積分 ( 0.5 ) (0.5) (0.5)的結(jié)果減去 0.5 0.5 0.5,并將剩余部分乘以2;若積分小于 0.5 0.5 0.5,僅需要將該部分乘以2即可。也就是說, x = μ x = \mu x=μ時(shí)的作為該分布的概率最大。
至此,可以通過該采樣得到不同參數(shù) ( μ , σ ) (\mu,\sigma) (μ,σ),并且數(shù)量相同的一維高斯分布樣本。
實(shí)驗(yàn)過程
- 首先使用服從于相同分布的兩組樣本集合SampleListx于SampleListy。將兩組樣本集合中的樣本對(duì)應(yīng)元素相乘,從而得到一個(gè)新的樣本集合:
這里樣本屬于隨機(jī)相乘。因?yàn)槲覀儾⒉恢獣詢杉现懈鳂颖镜木唧w數(shù)值結(jié)果。
此時(shí),構(gòu)建兩個(gè)參數(shù)相同的高斯分布的樣本集合,執(zhí)行上述操作:
末尾附完整代碼。
原集合與新集合的期望結(jié)果分別表示為:
# 1.0 * 1.0 = 1.0 0.9918332790661574 0.9996555919557066 1.0031321613765627可以發(fā)現(xiàn),個(gè)人誤區(qū)中的想法是錯(cuò)誤的:只要隨機(jī)變量之間相互獨(dú)立(單獨(dú)被采樣出來),即便它們屬于相同分布,期望的乘法性質(zhì)依舊成立。
將這個(gè)示例泛化:
- 選擇兩個(gè)不同參數(shù)的高斯分布;
- 每隔 10 10 10個(gè)樣本,輸出一次原始集合、新集合的期望結(jié)果, 觀察它們的收斂過程:
最終圖像結(jié)果返回如下:
其中綠色線,紅色線分別表示各原始集合的期望收斂過程;橙色線表示新集合的期望收斂過程。而藍(lán)色線則表示新集合的理論期望結(jié)果。
可以看出,隨著樣本的增多,分布的描述越加明顯,期望結(jié)果逐漸向理論期望結(jié)果收斂。并且在原始分布均是高斯分布的條件下,即便分布參數(shù)之間存在差異,但不影響期望的乘法性質(zhì)。
本篇文章目的是針對(duì)深度學(xué)習(xí)筆記——數(shù)值穩(wěn)定性、模型初始化與激活函數(shù)中期望問題的驗(yàn)證。
附:完整代碼
import math import random import numpy as np import matplotlib.pyplot as pltdef pdf(x,mu,sigma):return (1 / (sigma * math.sqrt(2 * math.pi))) * math.exp(-1 * (((x - mu) ** 2) / (2 * (sigma ** 2))))def Console():def GetIntegral(x,mu,sigma,DivideNum=1000):dx = list()y = list()x = list(np.linspace(-5,x,DivideNum))for k in range(0,DivideNum - 1):y.append(pdf(x[k],mu,sigma))dx.append(x[k+1] - x[k])return np.sum(np.multiply(y,dx))def GetSample(mu,sigma,SampleNum=5000):SampleList = list()count = 0while True:n = random.uniform(0,1)Samplex = random.uniform(-10,10)SampleIntegral = GetIntegral(Samplex,mu,sigma)if SampleIntegral >= 0.5:Prob = 2 * (1 - SampleIntegral)else:Prob = 2 * SampleIntegralif n < Prob:SampleList.append(Samplex)count += 1if count == SampleNum:breakreturn SampleListdef CheckExpectationValue(Inputx,Inputy):"""Inputx,Inputy -> IID:return:"""# RandomProductProductSample = [i * j for _,(i,j) in enumerate(zip(Inputx,Inputy))]return sum(ProductSample) / len(ProductSample)def CheckExpectAstringency(SampleListx,SampleListy,mu):ContainerX = list()ContainerY = list()ExpectXList = list()ExpectYList = list()ExpectList = list()for idx,(i,j) in enumerate(zip(SampleListx,SampleListy)):ContainerX.append(i)ContainerY.append(j)if len(ContainerX) % 10 == 0:ExpectXList.append(sum(ContainerX) / len(ContainerX))ExpectYList.append(sum(ContainerY) / len(ContainerY))ExpectList.append(CheckExpectationValue(ContainerX,ContainerY))plt.plot([i for i in range(len(ExpectList))],[mu for _ in range(len(ExpectList))])plt.plot([i for i in range(len(ExpectList))],ExpectList,c="tab:orange")plt.plot([i for i in range(len(ExpectList))],ExpectXList,c="tab:red")plt.plot([i for i in range(len(ExpectList))],ExpectYList,c="tab:green")plt.show()SampleListx = GetSample(mu=1.0, sigma=1.0)SampleListy = GetSample(mu=1.0, sigma=1.0)MixExpect = CheckExpectationValue(SampleListx,SampleListy)# mu:1.0 * 1.0 = 1.0CheckExpectAstringency(SampleListx,SampleListy,mu=1.0)if __name__ == '__main__':Console()返回結(jié)果:
相關(guān)參考:
數(shù)學(xué)期望——百度百科
總結(jié)
以上是生活随笔為你收集整理的小实验:关于期望的乘法性质的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 敏感词屏蔽——AC自动机
- 下一篇: 发明 实新 外观 三个专利有什么不同?