cross entropy的直觀理解
對於工作想寫些紀錄,學習有一種特別有效的方式稱為「費曼技巧」,透過假裝教學來學習,寫寫文章也有這種效果。既然我是文組畢業,寫些文科生也能懂得機器學習是一個不錯的目標,順便累積作品(coding放在github)對未來職涯也有幫助,但小弟專業上還有待精進,有誤的地方再麻煩好心人指出,謝謝。
今天講得是工作遇到的基本觀念,cross entropy交叉熵,簡單講就是衡量要找出正確答案,不同的策略,所要消耗的成本。
可能你早就用過這個函數了,不就是個除了Mean squared error(MSE)的cost function嗎?原因有二,第一,在決策樹(DT)或邏輯斯(LR)常見的演算法中經常使用,深刻了解後才能對於演算法會有更好的掌握,第二,相對於MSE是對於輸出結果的評量,cross entropy交叉熵是針對機率的評量,側重的目標不同。寫作時主要參考的文章是來在怎样理解 Cross Entropy,此文Quora問答的翻譯,翻譯沒甚麼問題,但跟原文對照能夠更精準。
一、理解cross entropy之前,先了解何謂entropy 熵
熵直觀上的理解代表一個狀況的混亂情況,情況越混亂,熵越大,如果有一枚作弊的硬幣,怎麼丟都是正面,那它的情況就很穩定,熵就等於零。
Quora的問答舉了一個例子,如果我有四個不同顏色的球(紅橙黃綠),每個抽到的機率都是1/4,其中一種最好的問法是,先問是不是紅球或橙球,分為兩組後,再問是否為紅球 及 是否為黃球,就能找出所有的球,由於問了兩道題目,1/4(機率) * 2道題目 * 4顆球 = 2,平均需要問兩道題目才能找出不同顏色的球,也就是說期望值為2,就是entropy。
逆推回來,一顆球抽到的機率是1/4,需要找出這顆球的題目數是log(底數2, 指數 1/(1/4))=2,需要問兩題才能找出,所以把所有的可能性與要問的問題數加總起來,就代表情況平均所需的問題數目,也就是期望值,公式可以用以下代表,i代表可能的情況,SUM(Pi*log(2, 1/Pi)),代表在最好的策略,所需要的問題數量(entropy),所以情況如果越複雜,需要問的問題越多,entropy也會增加。
二、cross entropy:目前策略所需的問題數量(成本)
剛才在算entropy,都隱含了最佳解的設定,但現實狀況下,並不會這麼幸運,於是有了cross entropy,在某一策略下,猜彩色球需要的問題數,可能有些人比較呆,一開始只問了是不是藍色,這樣就導致了需要更多題目才能得到結果,計算出的cross entropy就會比較大,數學上其實變動不大,第一個Pi一樣,因為求抽到機率一樣,但log(2, 1/Pi)的Pi會變成你目前策略所設定的機率,因為它所代表的意義是策略所產生的問題數量,以Pi"表示,你執行策略所設定的機率, 公式變為SUM(Pi*log(2, 1/Pi"))。
不好的執行策略,就是對於原本的機率Pi的錯誤假設,Pi與Pi"的差距很大,導致cross entropy很高。
三、 應用:分類問題
cross entropy一個常見的運用場景就是非題(二元分類),例如這個用戶會不會流失,狀況只有兩種,會流失與不會流失。
首先,
- 用y 與 (1-y) 代表實際的結果
- 用y"與1-y" 代表策略執行時的機率,可以說是對於實際情況的似然函數(Likelihood function)
將y表示為第一種狀況的機率,另一個狀況的機率就是 1-y,加起來剛好100%,對於你執行策略所假設的機率以y"與1-y"表示,
y"is probability, y is trial result 1 or 0
這種只有兩種狀況(成功/失敗),是一種特別的分布,數學上稱為白努利分布 (Bernoulli distribution),我們利用最大似然估計(Maximum likelihood estimation),把似然函數寫成
ssssBernulii~~~(book