1. 程式人生 > >邏輯迴歸演算法之交叉熵函式理解

邏輯迴歸演算法之交叉熵函式理解

之前看到Tensorflow中文社群網站(http://www.tensorfly.cn/tfdoc/tutorials/mnist_beginners.htm)中訓練MNIST資料集有一個交叉熵函式,這裡寫圖片描述當時不是特別理解,想了很久為什麼這個函式就可以表示代價函式,後來經過學習吳恩達課程之後明白了,如果有初學者一開始想不明白這個函式,可以參考我以下的解釋:
首先訓練MNIST資料集的演算法採用的是分類演算法,和我們上次模擬房價的線性迴歸不一樣,對於分類演算法輸出值都是離散值,線性迴歸演算法輸出是連續值,接下來我們講一下廣泛使用且典型的二元邏輯迴歸演算法,邏輯迴歸演算法的總體思路是將樣本進行聚類分類,同一類樣本放一起,將不同類的樣本分離,如下圖
這裡寫圖片描述

對於二元邏輯迴歸演算法中,其輸出值只能是0或者1。上節說到了線性迴歸模型的數學模型,現給出邏輯迴歸演算法的數學模型,
這裡寫圖片描述

這裡寫圖片描述

這裡寫圖片描述

現已經給出了邏輯迴歸演算法的數學模型,如果我們採用傳統的平方誤差函式,其畫出的代價函式圖就不會是一個凸函式,而是有很多區域性最優點的歪歪扭扭的函式影象如下:
這裡寫圖片描述

這類函式影象不是我們所想要的,因為有太多區域性最優點了,我們需要一個全域性最優點並且曲線光滑,如下圖是我們所想要得到的代價函式曲線圖
這裡寫圖片描述

為了達到儘可能使得曲線光滑以及儘可能使得類似於像這種一元二次函式,因此我們給出代價函式表示式如下表示:
這裡寫圖片描述

這裡寫圖片描述

這裡寫圖片描述

這個代價函式是一個分段函式,分別給出了y=0和y=1的代價函式圖,從圖中可以看出這個代價滿足了凸函式的要求且沒有區域性最優點,只有全域性最優點。
這裡寫圖片描述

這是將分段函式組合成一個函式的表示式,看到這裡應該明白了為什麼訓練MNIST用了交叉熵函式,因為這是一個分類問題,手寫數字0-9,對應十個0和1標籤,標籤在某一個位置上為1代表對應的這個手寫數字。標籤值只有0和1,屬於離散值,交叉熵函式對應了y=1的分段函式。以上是本人的理解,希望對您有所幫助!