天天看點

softmax回歸的相關知識

機器學習在監督學習領域主要解決兩個問題,分類和回歸問題。那麼分類問題又分為二分類問題和多分類問題,而二分類問題相對來說很好解決,我們隻需要建構輸出層有一個神經元的神經網絡,然後結合sigmoid函數,即可實作二分類問題。而神經網絡的多分類問題就相對複雜一些,假如我們要解決三分類的問題,那麼我們建構神經網絡的時候,就需要建構一個輸出層為三個神經元的神經網絡,然後配合使用softmax回歸來完成神經網絡多分類的任務。

softmax回歸的相關知識

Softmax回歸的含義

通常,機器學習實踐者用 分類 這個詞來描述兩個有微妙差别的問題:

(1)我們隻對樣本的硬性類别感興趣,即屬于哪個類别;

(2)我們希望得到軟性類别,即得到屬于每個類别的機率。

這兩者的界限往往很模糊,這其中的一個原因是:即使我們隻關心硬類别,但我們仍然使用軟類别的模型。

那麼我拿一個圖像分類的問題來具體說明一下。假設每次輸入的是一個圖像,可能是“貓”,“雞”和“狗”中的任意一個,那對于它們的标簽表示我們肯定不能用。于是,我們使用統計學家很早以前就發明的一種表示分類資料的簡單方法:獨熱編碼(one-hot encoding)。獨熱編碼是一個向量,它的分量和類别一樣多。類别對應的分量設定為1,其他所有分量設定為0。在我們的例子中,标簽将是一個三維向量,其中對應于“貓”、對應于“雞”、對應于“狗”:

softmax回歸是一個單層神經網絡。由于計算每個輸出、和取決于所有輸入、、和,是以softmax回歸的輸出層也是全連接配接層。

softmax回歸的相關知識

Softmax運算

那麼對于多分類問題來說,使用的softmax函數即是網絡輸出層的激活函數,softmax函數可以對輸出值進行歸一化操作,把所有輸出值都轉化為機率,所有機率值加起來等于1。

為了将未歸一化的預測變換為非負并且總和為1,同時要求模型保持可導。首先對每個未歸一化的預測求幂,這樣可以確定輸出非負。為了確定最終輸出的總和為1,需要再對每個求幂後的結果除以它們的總和。運算公式如下:

其中 (模型的輸出)可以視為屬于 類 的機率。然後我們可以選擇具有最大輸出值的類别 作為我們的預測。例如,如果、和分别為0.1、0.8和0.1,那麼我們預測的類别是2,在我們的例子中代表“雞”。

繼續閱讀