iT邦幫忙

2023 iThome 鐵人賽

DAY 22
0

前言

機率分布與抽樣在AI領域當中是很重要的概念,雖然沒有特別提出來說,可是很多概念都被我們當作前提假設隱藏在模型的設計背後,今天我們就利用VAE來看看機率分布與抽樣究竟會出現在什麼樣的地方。

先備知識

  1. 機率統計基礎(可以回顧:https://ithelp.ithome.com.tw/articles/10323078 )
  2. Variational Autoencoder是甚麼(可以回顧前兩篇關於AE的內容:https://ithelp.ithome.com.tw/articles/10334832https://ithelp.ithome.com.tw/articles/10335396)

看完今天的內容你可能會知道......

  1. 甚麼是機率分布?甚麼是抽樣?
  2. VAE跟AE的差別是甚麼?
  3. VAE怎麼學習機率分布?

一、機率分布(Probability Distribution)與抽樣(Sampling)

  • 在機率與統計的那篇內容中,我們有介紹到機率、期望值與變異數等概念,但其實在數學中我們會使用更嚴謹的方式定義它們,通常會先有一個「機率空間」,裡面我們會定義出「樣本」、「事件」以及「機率/機率測度」等概念,接著這些東西就是我們之前所談論的內容,所以我們可以進一步計算期望值或變異數等重要資訊。更詳細的定義與描述可以參考:https://zh.wikipedia.org/zh-tw/%E6%A9%9F%E7%8E%87%E7%A9%BA%E9%96%93https://zh.wikipedia.org/zh-tw/%E6%A6%82%E7%8E%87%E5%88%86%E5%B8%83
  • 如果今天你是一個班級的老師,你需要負責統計班上所有學生的身高與體重,可以想像一下,統計完之後,你會有很多的數據,這時候如果再要求計算出某個數值的人數多寡的話,我們又會得到一份新的資料,這份資料就是一種機率分布。通過這樣的機率分布,我們可以得知班上所有學生身高體體重的「趨勢」,以及每種身高或體重出現的機率,再更進一步的話,給定一個特定的身高體重組合,我們就可以從所有學生中挑出滿足條件的特定幾個學生,這就是一種「抽樣」的方式,或者我們也可以隨機挑出一些學生,觀察這些學生身高體重的趨勢與全體學生趨勢的差異,這也是一種「抽樣」。換句話說,從母體中抽出一部分個體作為樣本的過程就是「抽樣」。
  • 知道了甚麼是抽樣之後,我們再接著想一下,如果我想要從某種機率分布中抽樣的話,我是不是需要先知道機率分布長甚麼樣子?答案是肯定的,但是我要怎麼「描述」一個機率分布呢?從很早以前,許多的研究員/科學家就試圖從大量的實驗中,找出特定事物/現象的規律,最後這些規律會被整理成一些特殊的「機率分布」。聽起來很抽象吧!讓我們來看一些例子,想想看,今天你和朋友們玩遊戲,比賽看看在20次以內,誰獲勝的次數最多,比賽方式是丟硬幣,人頭面在上算你贏,數字面在上算你朋友贏,如果今天不進行這場遊戲的話,你可以估計出你贏的機率有多大嗎?這就是著名的「二項式分布(Binomial distribution)」,用來描述n次當中有k次為「是」的情況(實驗的中只會出現「是」或「否」兩種可能)。還有一個經典的機率分布,「常態分布/高斯分布」,中央極限定理告訴我們,當樣本數越多時,就會越像是常態分布,再加上常態分布本身有許多好用的特性,所以在很多領域中很喜歡把常態分布當成是前提假設。
  • 說到這裡,我們似乎還沒談到要怎麼「描述」一個機率分布,如果我們想要描述的機率分布是已經被人家固定下來的特殊的機率分布的話,我們可以通過平均值、變異數等資訊來描述一個機率分布。以常態分布為例:https://chart.googleapis.com/chart?cht=tx&chl=f(x%20%7C%20%5Cmu%2C%20%5Csigma%5E2)%20%3D%20%5Cfrac%7B1%7D%7B%5Csqrt%7B2%5Cpi%5Csigma%5E2%7D%7D%20%5Ccdot%20e%5E%7B-%5Cfrac%7B(x%20-%20%5Cmu)%5E2%7D%7B2%5Csigma%5E2%7D%7D,其中的https://chart.googleapis.com/chart?cht=tx&chl=%5Cmu 代表的就是平均值,而https://chart.googleapis.com/chart?cht=tx&chl=%5Csigma%5E2 則代表變異數。所以我們只需要利用這兩個資訊就可以定義出一個特定的常態分佈!其他的機率分布也是同理,可以通過數據中的資訊定義出來。

二、Variational Autoencoder(VAE)

  • 上面說了這麼多,好像跟AI沒什麼關係呀?這就要讓我們把目光放回到昨天介紹的VAE架構上了:
    https://ithelp.ithome.com.tw/upload/images/20231007/20163299d6pTapyIhn.png
  • 相較於AE來說,VAE中間處理低維度特徵的過程特別不一樣,如果說原本的AE學的是「樣本」的話,VAE想要學的就是「機率分布」,這樣有甚麼好處呢?這就要說到Autoencdoer的另外一個應用了,我們一開始只有說這種非監督式學習的模型可以替我們做到「降維」,好讓我們可以使用這些低維度特徵做其他不同的應用,可是我們可以稍微看一下「解碼器(Decoder)」的部分,如果只看這個地方的話,我們其實還有另外一種用途:圖片生成,我們可以輸入一個任意的低維度特徵,就能夠生成出一張完整的圖片,這就是一種「生成模型(Generative model)」。
  • 接著,再讓我們回想一下生成模型的概念,這種模型要學習的就是「機率分布」,當能夠很好的學到我們想要的機率分布時,從中任意抽樣出來的圖片都會是符合我們期望的結果。如果是一般AE的話,因為學習的都是特定低維度特徵的樣本,所以彈性不夠,學到的資訊不全面,作為生成模型來使用的話,效果就不太理想。
  • VAE從另外一個角度解決了這樣的問題,既然從「樣本」學「機率分布」很困難的話,那我就直接學習機率分布吧!他想要學的是我們上面介紹到的常態分佈(我們通常會假設真實世界中的圖片都是遵循常態分布的),所以其實我們模型要學習的就是兩個資訊:平均數與變異數,有了這兩個資訊之後,我們會透過常態分布的公式建立出一個常態分佈出來,接著再從中抽樣出一些樣本來,也就是我們要的低維度特徵。

三、總結

  • 今天我們從機率分布出發,說明了機率分布與抽樣的概念,最後利用這些概念解釋了AE與VAE最主要的差異。內容中我們並沒有使用到太多高深的數學,希望讓初學者或是數學不好的人也可以理解這些概念,認識這種類型的AI模型。

上一篇
CNN經典論文導讀(四)--自編碼器(Autoencoder)後篇
下一篇
CNN經典論文實戰(四)--Autoencoder
系列文
AI白話文運動系列之「A!給我那張Image!」30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言