1. 程式人生 > >關於共軛分佈,beta分佈,二項分佈和Dirichlet分佈、多項式分佈的關係

關於共軛分佈,beta分佈,二項分佈和Dirichlet分佈、多項式分佈的關係

在機器學習領域中,概率模型是一個常用的利器。用它來對問題進行建模,有幾點好處:1)當給定引數分佈的假設空間後,可以通過很嚴格的數學推導,得到模型的似然分佈,這樣模型可以有很好的概率解釋;2)可以利用現有的EM演算法或者Variational method來學習。通常為了方便推導引數的後驗分佈,會假設引數的先驗分佈是似然的某個共軛分佈,這樣後驗分佈和先驗分佈具有相同的形式,這對於建模過程中的數學推導可以大大的簡化,保證最後的形式是tractable。

    在概率模型中,Dirichlet這個詞出現的頻率非常的高。初始機器學習的同學或者說得再廣一些,在學習概率模型的時候,很多同學都不清楚為啥一個表現形式如此奇怪的分佈Dirichlet分佈會出現在我們的教科書中,它是靠啥關係攀上了多項分佈(Multinomial distribution)這個親戚的,以至於它可以“堂而皇之”地扼殺我大天朝這麼多數學家和科學家夢想的?為了引出背後這層關係,我們需要先介紹一個概念——共軛先驗(Conjugate Prior)

  • Conjugate Prior: In Bayesian probability theory, if the posterior distributions p(θ|x) are in the same family as the prior probability distribution p(θ), the prior and posterior are then called conjugate distributions, and the prior is called a conjugate prior for the likelihood. ----from wiki
  • 用中文來講,在貝葉斯統計理論中,如果某個隨機變數Θ的後驗概率 p(θ|x)和其先驗概率p(θ)屬於同一個分佈簇的,那麼稱p(θ|x)和p(θ)為共軛分佈,同時,也稱p(θ)為似然函式p(x|θ)的共軛先驗。

    介紹了這個重要的概念之後,我們回到文章的正題。首先需要弄清楚什麼是二項分佈(Binomial distribution)。這個概念是從伯努利分佈推進的。伯努利分佈是一個離散型的隨機分佈,其中的隨機變數只有兩類取值,非正即負{+,-}。二項分佈即重複n次的伯努利試驗,記為 X~b(n,p)。概率密度函式(概率質量函式)為。再來看看Beta分佈,給定引數,取值範圍為[0,1]的隨機變數x的概率密度函式,其中。這裡假定,先驗分佈和似然概率如下所示:

那麼很容易知道後驗概率(條件概率)

     弄清楚了Beta分佈和二項分佈之間的關係後,對於接下來的Dirichlet 分佈和多項分佈(Multinomial distribution)的關係理解將會有非常大的幫助。多項分佈,從字面上所表現出的含義,我們也大抵知道它的意思。它本身確實也是這樣的,其單次試驗中的隨機變數的取值不再是0-1的,而是有多種離散值可能(1,2,3...,k),其中

。多項分佈的概率密度函式為。而Dirichlet分佈的的密度函式形式也如出一轍:,其中。到這裡,我們可以看到Beta分佈和Dirichlet 分佈有多相似啊,二項分佈和多項分佈有多相似啊!

     再一次來看看共軛。假設有先驗分佈

另有似然函式

則後驗概率

,和Dirichlet 分佈形式一致。

    其實,細心的讀者已經發現,這裡這四類分佈,如果但從數學形式上看,它們的組織形式都是一致的,都是通過乘積的形式構成,加上先驗分佈、似然函式和後驗分佈之間的乘積推導關係,可以很容易發現,它們所表現出的共軛性質很容易理解。


相關推薦

關於分佈beta分佈分佈Dirichlet分佈多項式分佈關係

在機器學習領域中,概率模型是一個常用的利器。用它來對問題進行建模,有幾點好處:1)當給定引數分佈的假設空間後,可以通過很嚴格的數學推導,得到模型的似然分佈,這樣模型可以有很好的概率解釋;2)可以利用現有的EM演算法或者Variational method來學習。通常為

初見dfs用dfs計算維陣列

原題的網址(一道很水的題) 程式碼如下 #include<bits/stdc++.h> using namespace std; int sum=0,num[100][100],jz[100][100],n; void dfs(int x,int y) { for(int

劍指off:在一個維陣列中(每個一維陣列的長度相同)每一行都按照從左到右遞增的順序排序每一列都按照從上到下遞增的順序排序。請完成一個函式輸入這樣一個維陣列一個整數判斷陣列中是否含有該整數

題目描述 在一個二維陣列中(每個一維陣列的長度相同),每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個函式,輸入這樣的一個二維陣列和一個整數,判斷陣列中是否含有該整數。 思路: 從左下角x開始尋找,x為此列最大數字,此行最小數字。如果目

【不用敲命令】如何正常啟動雙系統(windows win7 linux ubuntu )避免任一系統啟動丟失或啟動卡殼卡頓!

本說明針對正常安裝雙系統後,避免啟動任一系統困難。 【以Win7下安裝Ubuntu為例】  當在win7系統上安裝好Ubuntu系統後,進入系統時,發現可以看到win7的啟動條目,但選擇以後,有時候選擇了能進,多用幾次後就發現不行了,因此很惱火。   操作步驟:  

L1L2 正則詳解 - 解空間先驗分佈最大似然估計 and 最大後驗估計

L1、L2 正則項詳解(解空間、先驗分佈) 引入 直觀看 解空間 先驗分佈 最大似然估計 最大後驗估計 引入 線上性迴歸

資訊熵交叉熵與相對熵(KL散度)的關係還介紹了聯合資訊熵條件熵互資訊(資訊增益)的概念

@(關於機器學習的其他)[KL散度][資訊熵][交叉熵] 1、資訊量 資訊量用一個資訊所需要的編碼長度來定義,而一個資訊的編碼長度跟其出現的概率呈負相關,因為一個短編碼的代價也是巨大的,因為會放棄所有以其為字首的編碼方式,比如字母”a”用單一個

伯努利分佈分佈Beta分佈分佈Dirichlet分佈與他們之間的關係以及在LDA中的應用

  在看LDA的時候,遇到的數學公式分佈有些多,因此在這裡總結一下思路。 一、伯努利試驗、伯努利過程與伯努利分佈 先說一下什麼是伯努利試驗: 維基百科伯努利試驗中: 伯努利試驗(Bernoulli trial)是隻有兩種可能結果的單次隨機試驗。 即:對於一個隨機變數而言,P(X

機器學習之先驗分佈後驗分佈先驗分佈

共軛先驗分佈的提出:某觀測資料服從概率分佈p(θ),當觀測到新的資料時,思考下列問題: 1.能否根據新觀測資料X更新引數θ; 2.根據新觀測的資料可以在多大的程度上改變引數θ:θ=θ+rθ; 3.當重

數學(3) 各種數學分佈,高斯伯努利泊松指數BetaDirichlet

打算這裡記錄各種數學分佈,隨時更新 正態分佈 正態分佈又名高斯分佈。 若隨機變數X服從一個數學期望為μ,標準差為σ的正態分佈,則記為X~N(μ,σ2)。 其中期望μ決定了分佈位置,標準差σ決定了分佈幅度。 概率密度函式為: f(x)=1σ2π

無約束演算法-最速下降牛頓法擬牛頓梯度求解次函式極小值

import numpy as np import math a=np.random.randint(1,10,size=[100,1]) G=(a*a.T)+np.random.randint(1,5)*np.eye(100) b=np.dot(G,np.ones(

分佈泊松分佈二者的關係

離散型隨機變數中,經典的兩個分佈為二項分佈和泊松分佈。 二項分佈的定義 泊松分佈的定義 注意 一,對泊松分佈定義的右邊式子,對k=0,1,2,….求和的結果為1,即所有事件的概率之和為1。

分佈binomial(n,k,p)

一、二項分佈,遞迴實現 public static double binomial(int N, int k, double p){ if(N==0 && k==0) return 1.0; if(N < 0 || k < 0) re

在 SQL 裡描述資料分佈情況的時候有 Cardinality Selectivity 兩個概念有什麼區別?

What is the difference between cardinality and selectivity? In SQL, cardinality refers to the number of unique values in particular column. So, card

課堂練習--計算陣列的最大值最小值平均值標準差中位數;numpy.random模組提供了產生各種分佈隨機數的陣列;正態分佈;Matplotlib

#計算陣列的最大值,最小值,平均值,標準差,中位數 import numpy as np a=np.array([1, 4, 2, 5, 3, 7, 9, 0]) print(a) a1=np.max(a) #最大值 print(a1) a2=np.min(a) #最小值 print(a2) a3

statistic—偏度峰度卡方分佈t分佈f分佈

from __future__ import print_function, division import numpy as np import pandas as pd import matplotlib.pyplot as plt from scipy.s

自相關函式怎麼理解為什麼定義中有卷積呢。定義中的卷積有什麼意義?尤其是在訊號處理方面

簡潔地解釋如下: 1) 首先我們僅考慮實訊號。 自相關的直觀含義就是:把一個訊號平移一段距離,跟原來有多相似。 於是就有了自相關的定義: 它代表了“移、乘、積”這三步操作。   如果只談自相關,其實到此就可以結束了。 只不過,在訊號處理領域中還有一個叫“卷

高斯分佈中均值方差協方差的計算及matlab實現

今天看論文的時候又看到了協方差矩陣這個破東西,以前看模式分類的時候就特困擾,沒想到現在還是搞不清楚,索性開始查協方差矩陣的資料,惡補之後決定馬上記錄下來,嘿嘿~本文我將用自認為循序漸進的方式談談協方差矩陣。 統計學的基本概念 學過概率統計的孩子都知道,統計裡最

深度學習/機器學習入門基礎數學知識整理(五):Jensen不等式簡單理解函式

Jensen不等式及其延伸 凸函式最基本的不等式性質,又稱Jensen不等式[1] f(θx+(1−θ)y)≤θf(x)+(1−θ)f(y)f(θx+(1−θ)y)≤θf(x)+(1−θ)f(y) 通俗一點講就是,期望的函式值小於等於函式值的期望。

C/C++變數在記憶體中的分佈堆疊區別堆疊段資料段程式碼段附加段

在C++中,記憶體分成5個區,他們分別是堆、棧、自由儲存區、全域性/靜態儲存區和常量儲存區。 棧,就是那些由編譯器在需要的時候分配,在不需要的時候自動清楚的變數的儲存區。裡面的變數通常是區域性變數、函式引數等。 堆,就是那些由new分配的記憶體塊,他們的釋放編譯器不