使用Softmax回歸將神經網絡輸出轉成概率分布


神經網絡解決多分類問題最常用的方法是設置n個輸出節點,其中n為類別的個數。對於每一個樣例,神經網絡可以得到一個n維數組作為輸出結果。數組中的每一個維度(也就是每一個輸出節點)對應一個類別,通過前向傳播算法得到的輸出層每個維度值代表屬於這個類別的可能性大小。
    也就是說,任意事件發生的概率都在0和1之間,且總有某一個事件發生(概率的和為1)。如果將分類問題中“一個樣例屬於某一個類別”看成一個概率事件,那么訓練數據的正確答案就符合一個概率分布。如何將神經網絡前向傳播得到的結果也變成概率分布呢?Softmax回歸就是一個非常常用的方法。
    Sofemax回歸本身可以作為一個學習算法來優化分類結果,它只是神經網絡中的一層額外的處理層,將神經網絡的輸出變成了一個概率分布,下圖展示了加上了Softmax回歸的神經網絡結構圖。

                         通過softmax層將神經網絡輸出變成一個概率分布

假設原始的神經網絡輸出為y1, y2, …, yn,那么經過Softmax回歸處理之后的輸出為:

從以上公式中可以看出,原始神經網絡的輸出被用作置信度來生成新的輸出,而新的輸出滿足概率分布的所有要求。這個新的輸出可以理解為經過神經網絡的推導,一個樣例為不同類別的概率分別是多大。這樣就把神經網絡的輸出也變成了一個概率分布,從而可以通過交叉熵來計算預測的概率分布和真實答案的概率分布之間的距離了。

下面我們通過一個淺層神經網絡來描述此過程,如下圖所示:

我們可以將此過程寫成一個等式:

我們可以將上述過程向量化,將其轉成矩陣相乘和向量相加,這樣有助於提高運算效率。

參考


1、tensorflow上關於softmax的介紹


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM