天天看點

[動手學深度學習]softmax回歸分類問題的表示網絡架構softmax 運算損失函數總結

softmax 回歸也可以用于分類問題。

分類問題的表示

  1. 對于沒有順序關系的類别(雞,貓,狗)可以直接用數字{1,2,3}代表某一類。
  2. 對于有順序關系的類别(嬰兒,少兒,少年,青年,中年,老年)可以考慮轉為回歸問題,這裡的幾個變量相當于連續變量。
  3. 獨熱編碼。使用獨熱編碼表示分類資料,獨熱編碼是一個向量,它的長度和類别一樣多,将向量中類别對應的分量設定為1,其他所有分量設定為0。比如1⃣️中的雞對應(1,0,0),貓(0,1,0),狗(0,0,1)
  4. 但在有的場景下,分類問題并不是每一個東西100%屬于某一類的。比如在劃分客戶時,我們能得到的隻是一個客戶屬于某一類的機率,即A可能有80%的機率為目标客戶

網絡架構

為了估計所有可能類别的條件機率,我們需要有一個多輸出的模型,每個類别對應一個輸出(差別于預測問題,隻有一個輸出)。于是我們要讓每一個輸出對應一個仿射函數(affine function)

e.g.我們從一個圖像分類問題開始。 假設每次輸入是一個2×2的灰階圖像。 我們可以用一個标量表示每個像素值,每個圖像對應四個特征x1,x2,x3,x4。 此外,假設每個圖像屬于類别“貓”,“雞”和“狗”中的一個。于是我們需要12個标量來表示權重,3個标量來表示偏置,下面為每個輸入計算三個未規範化的預測:

o1=x1w11+x2w12+x3w13+x4w24+b1

o2=x1w21+x2w22+x3w23+x4w24+b2

o3=x1w31+x2w32+x3w33+x4w34+b3

我們可以用神經網絡來描述這個過程,與線性回歸一樣softmax是一個單層神經網絡,由于每一個輸出都是取決于全部輸入的,softmax 也是一個全連接配接層

softmax 運算

我們以最大化觀測資料的機率作為優化目标。我們希望模型的輸出可以視為屬于某類j的機率,然後選擇具有最大輸出值的類别作為我們的預測。

我們知道機率都是0-1之間的數,但是未規範化的輸出值(線性層的直接輸出)可能的值是負的,同時這些輸出類别數字的總和可能不為1(要将輸出視為機率,我們必須保證在任何資料上的輸出都是非負的且總和為1)

社會科學家鄧肯·盧斯于1959年在選擇模型(choice model)的理論基礎上 發明的softmax函數正是這樣做的: softmax函數将未規範化的預測變換為非負并且總和為1,同時要求模型保持可導。 我們首先對每個未規範化的預測求幂,這樣可以確定輸出非負。 為了確定最終輸出的總和為1,我們再對每個求幂後的結果除以它們的總和。如下式:
[動手學深度學習]softmax回歸分類問題的表示網絡架構softmax 運算損失函數總結

其中

[動手學深度學習]softmax回歸分類問題的表示網絡架構softmax 運算損失函數總結

這裡,對于所有的j總有0<=

[動手學深度學習]softmax回歸分類問題的表示網絡架構softmax 運算損失函數總結

<=1 ,是以,y^可以視為一個正确的機率分布。 softmax運算不會改變未規範化的預測o之間的順序,隻會确定配置設定給每個類别的機率。 是以,在預測過程中,我們仍然可以用下式來選擇最有可能的類别。

[動手學深度學習]softmax回歸分類問題的表示網絡架構softmax 運算損失函數總結

盡管softmax是一個非線性函數,但softmax回歸的輸出仍然由輸入特征的仿射變換決定。 是以,softmax回歸是一個線性模型(linear model)。

損失函數

使用極大似然估計。

softmax 函數的輸出是一個向量

[動手學深度學習]softmax回歸分類問題的表示網絡架構softmax 運算損失函數總結

,整個資料集{X,Y}具有n個樣本,其中第i個樣本由特征向量

[動手學深度學習]softmax回歸分類問題的表示網絡架構softmax 運算損失函數總結

和獨熱标簽向量

[動手學深度學習]softmax回歸分類問題的表示網絡架構softmax 運算損失函數總結

組成,可以将估計值與實際值進行比較:

[動手學深度學習]softmax回歸分類問題的表示網絡架構softmax 運算損失函數總結

(每個樣本都是獨立同分布的)根據極大似然估計,最大化

[動手學深度學習]softmax回歸分類問題的表示網絡架構softmax 運算損失函數總結

,相當于最小化負對數似然

[動手學深度學習]softmax回歸分類問題的表示網絡架構softmax 運算損失函數總結

這裡面提到了交叉熵,熵是資訊論中用來量化資料中的資訊内容的一個值,可通過一下方程得到

[動手學深度學習]softmax回歸分類問題的表示網絡架構softmax 運算損失函數總結

熵是當配置設定的機率(P(j))真正比對資料生成過程時的資訊量(-logP(j))的期望,比如,在觀察一個事件j時,并賦予它(主觀)機率P(j)。 當我們賦予一個事件較低的機率時,我們的驚異會更大,該事件的資訊量也就更大。相當于,我們總是從發生的未知事件中得到新的資訊,那些發生的已知事件中得到資訊我們是已然了解的。

對于交叉熵H(P,Q),可以把交叉熵想象為主觀機率為Q的觀察者在看到根據機率P生成的資料時的預期驚異(實際機率與生成機率的差異程度)當P=Q時交叉熵最低。于是對于交叉熵分類目标,我們可以考慮1最小化傳達标簽所需的驚異,2最大化觀測資料的似然

softmax 及其導數

[動手學深度學習]softmax回歸分類問題的表示網絡架構softmax 運算損失函數總結

換句話說,導數是我們softmax模型配置設定的機率與實際發生的情況(由獨熱标簽向量表示)之間的差異。 從這個意義上講,這與我們在回歸中看到的非常相似, 其中梯度是觀測值y和估計值y^之間的差異。 這不是巧合,在任何指數族分布模型中,對數似然的梯度正是由此得出的。 這使梯度計算在實踐中變得容易很多。 

總結

  • softmax運算擷取一個向量并将其映射為機率
  • softmax 是一個多類分類模型
  • 使用softmax操作得到每個類的預測置信度(非負,和為1) 
  • 使用交叉熵來衡量預測和實際類别的差別

繼續閱讀