今天給大家帶來的這篇文章是關於機器學習的,機器學習有其獨特的數學基礎,我們用微積分來處理變化無限小的函數,並計算 它們的變化;我們使用線性代數來處理計算過程;我們還用概率論與統計學建模不確定性。 在這其中,概率論有其獨特的地位,模型的預測結果、學習過程、學習目標都可以通過概率的角度來理解。 與此同時 ...
今天給大家帶來的這篇文章是關於機器學習的,機器學習有其獨特的數學基礎,我們用微積分來處理變化無限小的函數,並計算
它們的變化;我們使用線性代數來處理計算過程;我們還用概率論與統計學建模不確定性。
在這其中,概率論有其獨特的地位,模型的預測結果、學習過程、學習目標都可以通過概率的角度來理解。
與此同時,從更細的角度來說,隨機變數的概率分佈也是我們必須理解的內容。在這篇文章中,項目作者介紹了所有你需要瞭解
的統計分佈,他還提供了每一種分佈的實現代碼。
項目地址:https://github.com/graykode/distribution-is-all-you-need
下麵讓我們先看看總體上概率分佈都有什麼吧:
Python學習交流Q群:906715085### 非常有意思的是,上圖每一種分佈都是有聯繫的。比如說伯努利分佈,它重覆幾次就是二項分佈,如果再擴展到多類別,就成為 了多項式分佈。註意,其中共軛(conjugate)表示的是互為共軛的概率分佈;Multi-Class 表示隨機變數多於 2 個;N Times 表示 我們還會考慮先驗分佈 P(X)。
在貝葉斯概念理論中,如果後驗分佈 p(θ | x) 與先驗分佈 p(θ) 是相同的概率分佈族,那麼後驗分佈可以稱為共軛分佈,先驗分佈
可以稱為似然函數的共軛先驗。
為了學習概率分佈,項目作者建議我們查看 Bishop 的模式識別與機器學習。當然,你要是準備再過一遍《概率論與數理統計》,
那也是極好的。
概率分佈與特性
1. 均勻分佈(連續型)
均勻分佈是指閉區間 [a, b] 內的隨機變數,且每一個變數出現的概率是相同的。
2. 伯努利分佈(離散型)
伯努利分佈並不考慮先驗概率 P(X),它是單個二值隨機變數的分佈。它由單個參數φ∈ [0, 1] 控制,φ 給出了隨機變數等於 1 的
概率。我們使用二元交叉熵函數實現二元分類,它的形式與對伯努利分佈取負對數是一致的。
3. 二項分佈(離散型)
二項分佈是由伯努利提出的概念,指的是重覆 n 次獨立的伯努利試驗。在每次試驗中只有兩種可能的結果,而且兩種結果發生與
否互相對立。
4.Multi-Bernoulli 分佈(離散型)
Multi-Bernoulli 分佈又稱為範疇分佈(Categorical distribution),它的類別超過 2,交叉熵的形式與該分佈的負對數形式是一致的。
5. 多項式分佈(離散型)
範疇分佈是多項式分佈(Multinomial distribution)的一個特例,它與範疇分佈的關係就像伯努利分佈與二項分佈之間的關係。
6.Beta 分佈(連續型)
貝塔分佈(Beta Distribution) 是一個作為伯努利分佈和二項式分佈的共軛先驗分佈的密度函數,它指一組定義在 (0,1) 區間的連續
概率分佈。均勻分佈是 Beta 分佈的一個特例,即在 alpha=1、 beta=1 的分佈。
7. 狄利克雷分佈(連續型)
狄利克雷分佈(Dirichlet distribution)是一類在實數域以正單純形(standard simplex)為支撐集(support)的高維連續概率分
布,是 Beta 分佈在高維情形的推廣。在貝葉斯推斷中,狄利克雷分佈作為多項式分佈的共軛先驗得到應用,在機器學習中被用於
構建狄利克雷混合模型。
8.Gamma 分佈(連續型)
Gamma 分佈是統計學中的常見連續型分佈,指數分佈、卡方分佈和 Erlang 分佈都是它的特例。如果 Gamma(a,1) / Gamma(a,1)
- Gamma(b,1),那麼 Gamma 分佈就等價於 Beta(a, b) 分佈。
9. 指數分佈(連續型)
指數分佈可以用來表示獨立隨機事件發生的時間間隔,比如旅客進入機場的時間間隔、打進客服中心電話的時間間隔等等。當
alpha 等於 1 時,指數分佈就是 Gamma 分佈的特例。
10. 高斯分佈(連續型)
高斯分佈或正態分佈是最為重要的分佈之一,它廣泛應用於整個機器學習的模型中。例如,我們的權重用高斯分佈初始化、我們
的隱藏向量用高斯分佈進行歸一化等等。
當正態分佈的均值為 0、方差為 1 的時候,它就是標準正態分佈,這也是我們最常用的分佈。
11. 卡方分佈(連續型)
簡單而言,卡方分佈(Chi-squared)可以理解為,k 個獨立的標準正態分佈變數的平方和服從自由度為 k 的卡方分佈。卡方分佈
是一種特殊的伽瑪分佈,是統計推斷中應用最為廣泛的概率分佈之一,例如假設檢驗和置信區間的計算。
12. 學生 t-分佈
學生 t-分佈(Student t-distribution)用於根據小樣本來估計呈正態分佈且變異數未知的總體,其平均值是多少。t 分佈也是對稱的
倒鐘型分佈,就如同正態分佈一樣,但它的長尾占比更多,這意味著 t 分佈更容易產生遠離均值的樣本。
分佈的代碼實現
上面多種分佈的 NumPy 構建方式以及製圖方式都提供了對應的代碼,讀者可在原項目中查閱。如下所示展示了指數分佈的構建
的製圖方式,我們可以直接定義概率密度函數,再列印出來就好了。
import numpy as np from matplotlib import pyplot as plt def exponential(x, lamb): y = lamb * np.exp(-lamb * x) return x, y, np.mean(y), np.std(y) for lamb in [0.5, 1, 1.5]: x = np.arange(0, 20, 0.01, dtype=np.float) x, y, u, s = exponential(x, lamb=lamb) plt.plot(x, y, label=r'$mu=%.2f, sigma=%.2f,' r' lambda=%d$' % (u, s, lamb)) plt.legend() plt.savefig('graph/exponential.png') plt.show()
最後
今天給大家分享的Python小技巧到這裡就結束了,對於文章有不懂的地方可以評論留言告訴我,喜歡的記得點贊收藏喲!!!