CS231 線性分類

2021-10-07 18:10:55 字數 2256 閱讀 4760

評分函式:原始影象資料到類別分值的對映

損失函式:用來量化**分類標籤的得分與真實標籤之間一致性的

現在假設有乙個包含很多影象的訓練集[公式],每個影象都有乙個對應的分類標籤[公式]。這裡[公式]並且[公式]。這就是說,我們有n個影象樣例,每個影象的維度是d,共有k種不同的分類。

如,在cifar-10中,我們有乙個n=50000的訓練集,每個影象有d=32x32x3=3072個畫素,而k=10,這是因為被分為10個不同的類別(狗,貓,汽車等)。我們現在定義評分函式為:[公式],該函式是原始影象畫素到分類分值的對映。

在本模型中,我們從最簡單的概率函式開始,該函式是原始影象畫素到分類分值的對映。

線性分類器計算影象中3個顏色通道中所有畫素的值與權重的矩陣乘,從而得到分類分值。根據我們對權重設定的值,對於影象中的某些位置的某些顏色,函式表現出喜好或者厭惡(根據每個權重的符號而定)。

乙個將影象對映到分類分值的例子。為了便於視覺化,假設影象只有4個畫素(都是黑白畫素,這裡不考慮rgb通道),有3個分類(紅色代表貓,綠色代表狗,藍色代表船,注意,這裡的紅、綠和藍3種顏色僅代表分類,和rgb通道沒有關係)。首先將影象畫素拉伸為乙個列向量,與w進行矩陣乘,然後得到各個分類的分值。需要注意的是,這個w一點也不好:貓分類的分值非常低。從上圖來看,演算法倒是覺得這個影象是乙隻狗。

將影象看做高維度的點:既然影象被伸展成為了乙個高維度的列向量,那麼我們可以把影象看做這個高維度空間中的乙個點(即每張影象是3072維空間中的乙個點)。整個資料集就是乙個點的集合,每個點都帶有1個分類標籤。

既然定義每個分類類別的分值是權重和影象的矩陣乘,那麼每個分類類別的分數就是這個空間中的乙個線性函式的函式值。我們沒辦法視覺化3072維空間中的線性函式,但假設把這些維度擠壓到二維,那麼就可以看看這些分類器在做什麼了:

影象空間的示意圖。其中每個影象是乙個點,有3個分類器。以紅色的汽車分類器為例,紅線表示空間中汽車分類分數為0的點的集合,紅色的箭頭表示分值上公升的方向。所有紅線右邊的點的分數值均為正,且線性公升高。紅線左邊的點分值為負,且線性降低。

從上面可以看到,w的每一行都是乙個分類類別的分類器。對於這些數字的幾何解釋是:如果改變其中一行的數字,會看見分類器在空間中對應的直線開始向著不同方向旋轉。而偏差b,則允許分類器對應的直線平移。需要注意的是,如果沒有偏差,無論權重如何,在x=0時分類分值始終為0。這樣所有分類器的線都不得不穿過原點。

偏差和權重的合併技巧:在進一步學習前,要提一下這個經常使用的技巧。它能夠將我們常用的引數[公式]和[公式]合二為一。回憶一下,分類評分函式定義為:

分開處理這兩個引數(權重引數[公式]和偏差引數[公式])有點笨拙,一般常用的方法是把兩個引數放到同乙個矩陣中,同時[公式]向量就要增加乙個維度,這個維度的數值是常量1,這就是預設的偏差維度。這樣新的公式就簡化成下面這樣:

還是以cifar-10為例,那麼[公式]的大小就變成[3073x1],而不是[3072x1]了,多出了包含常量1的1個維度)。w大小就是[10x3073]了。[公式]中多出來的這一列對應的就是偏差值[公式],具體見下圖:

偏差技巧的示意圖。左邊是先做矩陣乘法然後做加法,右邊是將所有輸入向量的維度增加1個含常量1的維度,並且在權重矩陣中增加乙個偏差列,最後做乙個矩陣乘法即可。左右是等價的。通過右邊這樣做,我們就只需要學習乙個權重矩陣,而不用去學習兩個分別裝著權重和偏差的矩陣了。

影象資料預處理:在上面的例子中,所有影象都是使用的原始畫素值(從0到255)。在機器學習中,對於輸入的特徵做歸一化(normalization)處理是常見的套路。而在影象分類的例子中,影象上的每個畫素可以看做乙個特徵。在實踐中,對每個特徵減去平均值來中心化資料是非常重要的。在這些的例子中,該步驟意味著根據訓練集中所有的影象計算出乙個平均影象值,然後每個影象都減去這個平均值,這樣影象的畫素值就大約分布在[-127, 127]之間了。下乙個常見步驟是,讓所有數值分布的區間變為[-1, 1]。零均值的中心化是很重要的,等我們理解了梯度下降後再來詳細解釋。

cs231 線性分類

k nearest neighbor分類器存在以下不足 分類器必須記住所有訓練資料並將其儲存起來,以便於未來測試資料用於比較。這在儲存空間上是低效的,資料集的大小很容易就以gb計。對乙個測試影象進行分類需要和所有訓練影象作比較,演算法計算資源耗費高。引言 我們將要實現一種更強大的方法來解決影象分類問...

cs231線性分類筆記

最簡單的線性分類器 公式每個影象由32 32 3個畫素,上述公式中把影象拉伸為乙個3072 1的向量。w和b是引數,其中w是乙個k 3072的矩陣 k表示類別數 被稱為權重,b是乙個k 1的偏執向量。1,乙個單獨的矩陣乘法 2,其中的引數是可以控制的,目的就是找到最合適的引數使得準確率做高。3,資料...

cs231以及遷移學習

以這個2元分類為例,不normalization的話,loss非常敏感,分類器稍微改變一下,對loss的影響很大。normalization後問題得到解決。在cnn中我們希望每層都normalization,可以用batch normalization velocity初始值是0 逐引數調節學習率,...