在分類任務中,我們希望模型可以分辨出不同類別的資料,希望分類出來的「錯誤率」越小越好,或是說正確率越大越好。 右邊上面第一個數學式子錯誤率( error rate )數學表式為: y表示實際值、ŷ表示預測值、n為資料大小。 但是真正進行機器學習的時候,我們不會拿模型分類結果的錯誤率( error rate )直接當作損失函數, 但我們設計損失函數時,當中要有錯誤率的隱含意義。 這裡介紹交叉熵(cross-entropy)之前,我們需要了解熵(Entropy)是什麼。 熵(Entropy):是從熱力學引用過來的一個名詞,在資訊理論中,代表接收的每個消息之中包含之資訊的平均量。 熵可以直接理解成衡量不確定性的度量衡,越隨機發生的事件熵越大。 例如以下兩個例子。 訊息量非常大,是一件不太尋常、不太可能發生的事件: 昨天投資虛擬貨幣不小心賺了100萬,於是去買了一台汽車。 常理或是不可能改變的真理,訊息量非常低: 水從高處往低處流。 熵(Entropy)的數學表示為這樣 交叉熵(Cross-entropy):測量"預測機率分布"與"實際機率分布"的誤差範圍,將各類別的熵(Entropy)算出來之後,再相加算總和。 當預測結果與實際結果差距很多,代表此結果所含有的資訊量非常大,不確定性很多,交叉熵(Cross-entropy)就會非常高。 交叉熵(Cross-entropy)的數學表示為: C是類別數、n是資料總數、 yc,i是第i筆資料屬於第c類的正確類別、 pc,i是第i筆資料屬於第c類預測出來的機率。 那Cross entropy 作為損失函數帶來哪些好處呢? 可以看到數學式中,交叉熵會考慮每個類別機率值跟正確值的差異,因此可以修正每次分類錯誤的結果,一次一次的優化模型