從本文開始,筆者開始一種新的寫作模式。之前寫知乎的最初目的是總結當時所看的論文、書籍和視頻等等,主要目的是為了讓自己能把自己學到的東西像講故事似的講出來,一方面加深理解,另一方面當作日後複習。但是,在看到某個有意思的研究時,老是想把這個領域吃透,如果做不到將各種千絲萬縷的知識脈絡理清楚,是不想動筆(鍵盤)寫的。所以,就導致了一種後果:更新周期起伏不定但總體偏慢性發展並且夾雜著大量公式的長篇知乎文

所以,為了快速更新以及縮小篇幅,想開通一個新的寫作模式,暫時命名為碎片化學習,主要目的是記錄一些小小的知識。主要目的不是為了將某個領域講清楚,而是碎片化學習,零碎但很重要。第一次就從數學開始講起,筆者是做機器學習方向的,所以深知數學的重要性,尤其是矩陣論、優化理論和概率統計學。所以,碎片化學習的數學方向就會零零散散地記錄一些矩陣、優化和概率論等等方向的知識點。除了數學方向,還會有機器學習、深度學習、編程等等。

Jensen不等式是什麼呢?它是指,對於一個凸函數 f ,都有函數值的期望大於等於期望的函數值

E[f(x)] geq f(E[x])

上式當中 x 是一個隨機變數,它可以是離散的或者連續的,假設 x sim p(x) 。那麼,對於離散變數 p(x = x_i) = p_i, forall i in [1, n] ,式子可以重新寫為,其中 sum_{i=1}^n p_i =1

Eleft[ f(x) 
ight] = sum_{i=1}^n p_if(x_i) \ fleft( E[x] 
ight) = fleft(sum_{i=1}^n p_i x_i 
ight) \ Rightarrow sum_{i=1}^n p_if(x_i)  geq fleft(sum_{i=1}^n p_i x_i 
ight)

上式是離散形式的加和,對於連續變數則有積分形式:

E[f(x)] = int f(x)p(x) dx \ fleft( E[x] 
ight) = fleft( int xp(x) dx 
ight) \ Rightarrow \ int f(x)p(x) dx geq fleft( int xp(x) dx 
ight)

另外,對於定積分形式有:

int_{a}^b  f(x)p(x) dx geq fleft( int_{a}^b xp(x) dx 
ight)

本文介紹的重點是如何證明離散形式和連續形式的Jensen不等式

首先回顧一下凸函數(Convex Function)的定義:對於任意的值 x_1, x_2 ,且對任意的 0 leq t leq 1 ,都有:

 t f(x_1) + (1-t)f(x_2) geq  fleft( t x_1 + (1-t)x_2 
ight)

上面的定義其實就是函數的任意兩點之間的函數值都小於等於函數值對應的插值(加權平均)。

可以看出,上面凸函數的定義是離散形式Jensen不等式的一種特殊情況(令 n=2p_1 = t, p_2 = 1-t )。所以離散形式Jensen不等式的證明就從上面的式子出發,對 n 利用數學歸納法,顯然 n=2 時離散形式Jensen不等式成立。下面假設 n geq 2 時Jensen不等式都成立,即有:

sum_{i=1}^n p_if(x_i)  geq fleft(sum_{i=1}^n p_i x_i 
ight)

下面看 n+1 個變數時是否成立。引入 y_1, y_2

y_1 = frac{sum_{i=1}^n p_i x_i}{sum_{i=1}^n p_i} = frac{sum_{i=1}^n p_i x_i}{1 - p_{n+1}}\ y_2 = x_{n+1}

其中 y_1 代表了 x_1, x_2, cdots, x_n 的加權平均,並且有係數 frac{p_1}{sum_{i=1}^n p_i}, cdots, frac{p_n}{sum_{i=1}^n p_i} ,那麼由Jensen不等式在 n 個變數時的公式:

sum_{i=1}^n left( frac{p_i}{sum_{j=1}^n p_j} f(x_i) 
ight)  geq fleft(sum_{i=1}^n frac{p_i}{sum_{j=1}^n p_j} x_i 
ight) = f(y_1)

因此有:

sum_{i=1}^n left( p_i f(x_i) 
ight)  geq sum_{j=1}^n p_j f(y_1) = (1-p_{n+1})f(y_1)

回到 y_1,y_2 ,由兩個變數的Jensen不等式有:

p_{n+1}f(y_2) + (1-p_{n+1})f(y_1) geq fleft( p_{n+1}y_2 + (1-p_{n+1})y_1 
ight) = fleft( sum_{i=1}^{n+1} p_i x_i 
ight)

將上面兩個式子結合得到:

sum_{i=1}^{n+1} p_{i}f(x_{i}) geq fleft( sum_{i=1}^{n+1} p_i x_i 
ight)

因此由 數學 歸納法 ,得證。因此離散形式的Jensen不等式得到證明,核心是數學歸納法以及 y_1, y_2 的構造。

對於連續形式的證明,下面採用期望形式的表述來代表積分形式,有:

E[f(x)] geq f(E[x])

假設函數 f(x)x=x_0 處的切線方程為:

l(x) = a x + b

其中有 a = f(x_0), b=f(x_0) - a x_0

下面回顧凸函數的性質(至於下面兩個公式為什麼等價,讀者可以參閱相關資料,或者再以後的文章中再整理):

 t f(x_1) + (1-t)f(x_2) geq  fleft( t x_1 + (1-t)x_2 
ight) \ Leftrightarrow \ f(x_1) geq f(x_2) + f(x_2)(x_1 - x_2)

利用上面的第二個性質得到:

f(x) geq f(x_0) + f(x_0)(x-x0) = ax + b

兩邊同時求期望得到:

E[f(x)] geq E[ax+b] = aE[x] + b

下面是證明的重點,也是最難理解的地方,我們取 x_0 = E[x] = int xp(x)dx ,而相應地 a = f(x_0), b = f(x_0) - ax_0 ,此時代入上式有:

E[f(x)] geq aE[x] + b = ax_0 + b = f(x_0) = fleft(  E[x] 
ight)

所以連續Jensen不等式的證明關鍵是兩點:第一,利用凸函數的切線永遠在凸函數下面的性質;第二,選擇在 x_0 = E[x] = int xp(x)dx 這一點使用第一條性質進行推導

關於Jensen不等式,這次就介紹這麼一點點吧,大概十分鐘即可看完,希望對讀者也有幫助。

推薦閱讀:

相关文章