書名: 機器學習編程:從編碼到深度學習作者名: (意)保羅·佩羅塔本章字數: 730字更新時間: 2021-06-01 17:13:35
7.1 多元分類
讓我們回顧一下現狀與目標。我們有一個基于剛性設計的二元分類器,能夠識別某個特定數字,例如數字5。這個二元分類器使用加權和的方式傳遞圖像數據,然后通過S型函數將這個加權和壓縮到0~1的范圍。由于我們需要一個具體的二元分類結果,所以將S型函數值四舍五入為數字1或0中的一個,最終輸出一個具體的結論,“是的,這是5”或者“不,這不是5”,如下圖所示:

我們的目標是構造一個程序,它能讀取一幅圖像,并告訴我們這幅圖像究竟是代表0~9中的哪個數字,如下圖所示:

現在來看看應該如何從現狀走到目標。首先,我們把注意力集中在第一張圖片中間的方框上,一個加權和計算公式以及一個S型函數。這個計算模塊沒有通用的名稱,我們將其簡稱為WSS(Weighted Sum plus Sigmoid,加權和加S型函數)。WSS很像一個二元分類器,二者的區別在最后一步,WSS返回的值不是0或1,而是0~1之間的某個浮點數。
現在想象一下:構建一個由10個WSS組成的數組,每個類別一個。從0-WSS只能識別0,到9-WSS只能識別9……如果我們把它們都運行一遍,就會得到一個由10個數字組成的數組,如下表所示:

每個WSS返回一個0~1之間的數值,這個數值表示WSS的置信度有多大。例如,2-WSS返回0.787,這非常接近最大值1。這意味著2-WSS相當確定圖像確實是2。相比之下,其他WSS對自己的結果就不那么確定了。例如,4-WSS返回一個接近于0的數字,因此可以肯定圖像不會是4。總而言之,2-WSS是置信度最高的,所以這個圖像最可能是2。
現在我們有了一個更詳細的多元分類計劃。首先,對輸入圖像樣本運行10個WSS,每個WSS專門針對某個特定的數字。然后,從中選擇置信度最高的WSS模塊所匹配的數字作為輸出的分類結果。
我們可以通過運行10次相同的WSS代碼來實現這個計劃,每個類別運行一次。我們是可以這么做,但是還可以做得更好。