稍早,您遇到 二元分類 且能從兩個可能選項中擇一使用,例如:
- 指定的電子郵件為垃圾郵件或非垃圾郵件。
- 特定象徵很惡劣或無害。
在本節中,我們將調查 多元分類 這些模型可以從「多種」可能性中挑選。例如:
- 這隻狗是熊、獵犬或血獵犬嗎?
- 這朵花是西伯利亞伊里斯嗎? 或矮鬍子?
- 請問是「Boeing 747」、「Airbus 320」、「Boeing 777」還是「Ebraer 190」?
- 這是蘋果、熊、糖果、狗或雞蛋的圖片嗎?
現實世界的多課問題有數百萬人選擇 分別建立不同的類別比方說,以多元分類模型為例 都能輕鬆辨識任何圖片
本節將詳細說明多元分類的兩個主要變化版本:
- one-vs.-all
- one-vs.-one,其通常稱為 softmax
單一或所有
「One-vs.-all」提供二元分類可用於二元分類 。
假設有 N 個可能的解決方案出現分類問題,則屬於「一體制」 解決方案包含 N 個獨立的二進位分類器,也就是一個二進位檔 每個可能結果的分類項。在訓練期間 通過一連串的二元分類器,訓練每個分類器回答 分類問題
以一張水果的圖片為例 可能會訓練出不同的辨識器,分別回答不同的是 問題:
- 這張圖片是蘋果嗎?
- 這張圖片是橘色嗎?
- 這張圖片是香蕉嗎?
- 這張圖片是葡萄紫嗎?
下圖說明實際的運作方式。
![圖 7. 一張珍珠圖片被輸入成 4 種不同
二元分類器模型第一個模型能預測「apple」或「not」
「apple」),並預測出「not apple」。第二個模型會預測
「橘色」「非橘色」,則預測值「不是橘色」
第三個模型「不是梨」,而且預測結果是
「pear」。第四個模型預測的是「葡萄紫」「非葡萄紫」及
就是「非葡萄紫」](https://developers.google.cn/static/machine-learning/crash-course/neural-networks/images/one_vs_all_binary_classifiers.png?authuser=5&hl=zh-tw)
如果類別總數,這個方法相當合理 但類別數量越少,效率就越低 上升。
我們就能建立更有效率的全方位模型 這種模型搭配深層類神經網路,其中每個輸出節點都代表 類別下圖說明這個方法。
![圖 8:具備下列架構的類神經網路:輸入層
1 個節點、含 3 個節點的隱藏層、有 4 個節點的隱藏層、
也就是 4 個節點的輸出層輸入節點給了一隻梨子的圖片。
S 函數會套用至輸出層。每項
輸出節點代表映像檔
。輸出節點 1 表示「是蘋果嗎?」且值為 0.34
輸出節點 2 表示「是橘色嗎?」且值為 0.18
輸出節點 3 表示「是珍珠嗎?」,其值為 0.84
輸出節點 4 表示「是葡萄紫?」且值為 0.07](https://developers.google.cn/static/machine-learning/crash-course/neural-networks/images/one_vs_all_neural_net.png?authuser=5&hl=zh-tw)
一對一 (softmax)
您可能已經注意到,圖 8 輸出層中的機率值 加總的值不會等於 1.0 (即 100%)。(實際上加總為 1.43)。單人駕駛 每個二進位結果集的可能性取決於 同時獨立處理其他資料集也就是挑選機率最高的 的「apple」與「not apple」相比也未考量到 水果選項:「橘色」、「珍珠」或「葡萄紫」。
不過,假設我們想預測每水果 我們該如何調整設計?在這個範例中,而不是預測「apple」而 「apple」,我們要預測「apple」對比「橘色」對「梨」而不是「葡萄紫」 這種多元分類稱為「一對一分類」。
我們可以使用相同類型的類神經元,實作一對一分類 用於單一分類,一項重大變更的網路架構。 我們必須將不同的轉換套用至輸出層。
針對 one-vs.-all,我們將 S 函數套用至每個輸出內容 分別產生 0 到 1 個節點的輸出值 ,但不保證這些值加總為 1。
針對 one-vs.-one,我們可以改為套用名為 softmax 的函式, 針對多重類別問題中的每個類別指派小數的機率, 所有機率加總等於 1.0。這項額外限制 讓訓練的收斂速度更快
下方圖片重新實作單類別、多類別分類 做為一道式任務請注意,為了執行 softmax, 位於輸出層 (稱為 softmax 層) 前方的 也就是與輸出層相同的節點數量
![圖 9:具備下列架構的類神經網路:輸入內容
含 1 個節點的隱藏層、有 4 個節點的隱藏層、有 4 個節點的隱藏層
也就是 4 個節點的輸出層輸入節點給了一隻梨子的圖片。
系統會對輸出層套用 softmax 啟動函式。每項
輸出節點代表映像檔
。輸出節點 1 表示「是蘋果嗎?」且值為 0.19
輸出節點 2 表示「是橘色嗎?」且值為 0.12
輸出節點 3 表示「是珍珠嗎?」且值為 0.63
輸出節點 4 表示「是葡萄紫?」且值為 0.06](https://developers.google.cn/static/machine-learning/crash-course/neural-networks/images/one_vs_one_neural_net.png?authuser=5&hl=zh-tw)
Softmax 選項
請參考下列 softmax 變化版本:
Full softmax 是我們先前討論的 softmax。也就是 softmax 會計算每個可能類別的機率。
候選樣本是指 softmax 會計算機率 但僅適用於隨機抽樣 排除標籤。舉例來說,如果我們想找出 無論輸入圖像是米格魯或血管,我們都不必 會提供每個非狗用範例的機率
如果類別數量不多,Full softmax 的成本很低 但會因為類別數量攀升而造成高成本 候選樣本有助於改善 類別數量
一個標籤與多個標籤
Softmax 假設每個範例都是單一類別的成員。 但有些範例可以同時屬於多個類別。 例如:
- 無法使用 softmax。
- 請務必依賴多重邏輯迴歸。
例如,上述圖 9 中的 one-vs.-one 模型假設每個輸入值都假設 只能描述一種水果類型:蘋果、橘子、梨子或 一顆葡萄不過,如果輸入圖片可能包含多種水果,例如 而一碗蘋果與柳橙;必須運用多種物流 迴歸模型