【深度學習】Softmax迴歸(一)概念和原理
阿新 • • 發佈:2018-12-15
文章目錄
概述
在前面的三篇文章中:
介紹了線性迴歸的基本原理,自己動手使用Python從0開始做了實現,同時也藉助MXNet深度學習框架進行了實現,並在一個公開資料集和一個模擬資料集上進行了實驗。
在機器學習問題中,我們通常將對連續值處理的模型叫做迴歸模型,對離散值處理的模型叫做分類模型。可以看到,線性迴歸正是適用於輸出為連續值的情況。在某些場景中,模型的輸出可能是諸如瓜的類別、影象類別等的離散值。比如輸入一張包含西瓜或哈密瓜的圖片,我們需要輸出圖片中包含哪種瓜,我們一般使用離散的值來描述這種類別,比如0代表西瓜,1代表哈密瓜。
這時我們可以採用分類模型來進行處理,比如Softmax線性分類模型(也稱Softmax迴歸)。筆者也正通過《動手學深度學習》這本線上書籍學習Softmax模型,藉此將學習筆記和心得記錄與此,希望可以和大家相互交流。
Softmax
Softmox迴歸模型
我們以上文提到的瓜的類別問題為例:
- 假設輸入圖片的大小為 ,即包含4個畫素,每個畫素是一個特徵;
- 假設需要判斷圖片中是哪種型別的瓜,以 代表西瓜, 代表哈密瓜, 代表木瓜;
Softmax和線性迴歸一樣,均對輸入特徵做線性疊加。與線性迴歸不同的是,Softmax輸出值的個數等同於樣本中的類別數,所以我們得到( 表示模型的輸出):
Softmax和線性迴歸一樣,也可以看做是單層神經網路,並且輸出層也是全連線層,因為 依賴於所有的輸入 。畫出上述模型的神經網路結構如下:
向量形式
為了方便計算,我們將上述模型寫成向量形式。令: