One Hot Encoder 在機器學習分類模型中的重要性

本文是關於One Hot Encoder的快速解釋。

如果我們有如下所示的機器學習數據集:

One Hot Encoder 在機器學習分類模型中的重要性

在上面的機器學習數據集中它們是三個類(Apple,Chicken,Broccoli)如果我給一個Apple數據集輸入logistic迴歸或神經網絡,但是它預測的是一隻Chicken,所以我們要使用梯度下降來最小化損失函數來正確預測。如果我們使用數字標籤分類模型,問題出現在損失函數,由於這個模型學習的是像Apple(1)

One Hot Encoder 在機器學習分類模型中的重要性

L = 1 / m(predict-target)²

現在我將calories 95 dataset of apple的輸入提供給邏輯迴歸模型或神經網絡模型,它應該預測Apple(1),但它預測是Chicken(2)因此使用損失函數值我們必須訓練我們的網絡正確預測,現在讓我們看看MSE損失函數是如何工作的。

predict= 2(Chicken)

target = 1(Apple)

(2–1)²=1

現在我們輸入Apple值,predict = Broccoli(3) 但目標是apple(1)

predict = 3

target = 1

(3–1)² = 4

正如你所看到的那樣,各種損失函數意味著它的訓練使得apple遠離Broccoli,但是由於最小化或全局最小值的收斂將會很慢並且它可能最終會出現在局部最小值因為我們不能使用凸損失函數的交叉熵損失函數,因此分類問題成為非凸問題。

One Hot Encoder 在機器學習分類模型中的重要性

One Hot encoder

One Hot Encoder 在機器學習分類模型中的重要性

如果模型預測chicken ,但目標類是apple

predict =(0,1,0)

target =(1,0,0)

L =((0,1,0) - (1,0,0))

根據多分類損失函數

L =(0-1)²+(1-0)²+(0-0)²= 2

現在,如果模型預測broccoli ,但目標類是apple

predict =(0,1,0)

target =(0,0,1)

L =((0,0,1) - (1,0,0))

L =(0-1)²+(0-0)²+(1-0)²= 2

我們可以看到,如果我們使用One Hot encoder標籤,則損失函數給出相同的誤差值,因此它將標籤分類為nominal(變量沒有固有順序或排序順序),而數字標籤分類標籤具有序數(變量和有序系列)分類問題中不必要的東西。

One Hot Encoder 在機器學習分類模型中的重要性

數字標籤缺點:

  • 我們不能使用sigmoid或softmax激活函數,這在分類問題中非常重要,因為它將值壓縮為0到1或歸一化。
  • 因此,如果沒有sigmoid或softmax激活函數意味著我們不能使用交叉熵損失函數。
One Hot Encoder 在機器學習分類模型中的重要性

  • 因此,如果我們不能使用交叉熵損失函數,我們必須選擇均方誤差損失函數,它主要是非凸損失函數。

我舉一個簡單的例子說明為什麼交叉熵損失函數在分類問題中很重要。

假設它是一個數值問題,那麼我們必須使用均方損失函數,我們可以使用Relu激活函數。

One Hot Encoder 在機器學習分類模型中的重要性

Relu是一個簡單的非線性激活函數,它使負值為零,如果值為正,則它將是相同的值。

One Hot Encoder 在機器學習分類模型中的重要性

假設我們有一個神經網絡,權重被初始化,現在我們在神經網絡中為apple輸入值95進行正向傳播,我們得到一個輸出值200.所以我們的目標值是1,但模型預測200,我們使用了relu激活函數。

target = 1

predicted = 200

讓我們做MSE,我們做單個數據,所以m是1(m = 1)

L = 1 / m(predicted — target)²

L = 1/1(1-200)²

(-199)² = 39601

Error Rate為39601

現在,如果我們在具有梯度下降的神經網絡中應用反向傳播(學習率= 0.001)

One Hot Encoder 在機器學習分類模型中的重要性

學習率= 0.01,目標= 1,預測= 200,輸入(x)= 95和單輸出神經元,因此權重僅為1。

weight=weight(0.01)*(39601)(95)

weight=weight- (0.01)*(3762095)

weight=weight- (37620)

我們可以看到Error Rate如此之高。

但是如果我們使用one hot encoder ,我們可以使用softmax激活函數或sigmoid激活函數和交叉熵損失函數,因為問題是凸的。

現在我們將向模型提供輸入,最初模型預測(001)是broccoli,但目標是apple(100)。當我們使用softmax函數時,輸出充當概率模型。如果模型預測= (0.8,0.1,0.1)表示輸出為apple的概率為0.8%,輸出可能是broccoli或chicken 的概率為0.1%。因此,我們將最高百分比作為分類標籤。

One Hot Encoder 在機器學習分類模型中的重要性

One Hot Encoder 在機器學習分類模型中的重要性

predict=(0 0 1)

target =(1 0 0)

用於mlogloss損失函數

N = 1,log(0)未定義,因此我們採用predict =(0.0001,0,0.9999)target =(1,0,0)

L = - ((1)log(0.0001)+(0)log(0)+(1)log(0.9999))

L = - ( - 4 + 0-0.00004343)

L~4

當我們比較數字標籤loss 值和One Hot Encoder loss 值時,One Hot Encoder Loss要小得多。

4 <39601

如果我們應用梯度下降

One Hot Encoder 在機器學習分類模型中的重要性

weight=weight-α(pi-yi)

在最後一層,我們有三個輸出神經元,所以我們有三個權重。但對於數值模型,我們只有一個輸出神經元。

weight=weight-0.01 *(0.001-1)

weight1 = weight1-0.01 *(0-0)

weight2 = weight2-0.01 *(0.9999-0)

用於MSE 損失函數

predict =(0,0,1)

target =(1,0,0)

(0–1)²+(0–0)²+(1–0)² = 2

Error rate為2

如果我們用softmax 或sigmoid函數來解決MSE丟失函數的三個類問題我們得到的是2。

Numerical vs One Hot Encoder(MSE Loss function)

One Hot Encoder 在機器學習分類模型中的重要性

One Hot Encoder 在機器學習分類模型中的重要性


分享到:


相關文章: