【DL-CV】線性分類器

【DL-CV】計算機視覺前置瞭解<前篇---後篇>【DL-CV】損失函數,SVM損失與交叉熵損失segmentfault

神經網絡的變種不少,各類模型滿天飛,可是相信你們見得最多的是這種
圖片描述數組

這是多層感知器(multilayer perceptron/MLP),不加特效的最原始的神經網絡,經典中的經典。(如無特別註釋,神經網絡一般指經典的mlp神經網絡)。在接觸其餘熱門變種如卷積神經網絡前,咱們會好好和MLP這位小朋友玩,瞭解他的特性,調教教導他,這樣遇到其餘小朋友纔會有法可教,最終征服全部孩子成爲孩子王啦。
然而要搞好MLP也是一個漫長的過程,做爲第一步,首先來了解線性分類器,並看看它是如何解決圖像分類問題的網絡

線性分類器

如今有輸入的圖像數組x,以及一堆參數W和b,如何組合它們將圖像的像素值映射爲各個分類類別的得分?最簡單的方式就是乘起來求和(線性組合),這就是一個線性分類器。該方法能夠地延伸到神經網絡和卷積神經網絡上函數

其形式就是一個函數 $$f(x,W,b) = {W*x+b}$$這裏的x是圖像數據/特徵值展開成的列向量;W是參數矩陣,稱其爲權重(weights);b叫偏置值(bias),與W*x形狀相同
但更多時候咱們會把W與b合併在一塊兒,而後給x增長一維並用1填充這一維,變成 $f(x,W_{new}) = {W_{new}*x}$ 的形式,這種變換是等價的
圖片描述學習

注:除了W*x外,x*W也是能夠的,取決於x是列向量仍是行向量。spa

理解線性分類器

將每行W和b看作一個模板:假設咱們把函數直接用於評分blog

圖片描述

如圖,每種顏色都是服務於某個的類評分的,至關於W和b的每一行都是一個小的分類器/模板。上圖的結果很不理想(貓被硬說成是狗),固然後面會有方法實現學習功能讓其經過訓練集自學到更好的W和b,使得計算出來的類別分值狀況和訓練集中圖像數據的真實類別標籤相符。在這你能夠暫時忽略這些問題只關注函數自己原理。圖片


將圖像看作高維度的點:既然圖像被伸展成爲了一個高維度的列向量,那麼咱們能夠把圖像看作這個高維度空間中的一個點。整個數據集就是一個點的集合,每一個點都帶有1個分類標籤。W和b的做用就至關於在這個空間中劃線分開這些點,W至關於斜率(使線旋轉),b至關於截距(使線平移)
圖片描述get

以紅色的汽車分類器爲例,紅線表示空間中汽車分類分數爲0的點的集合,紅色的箭頭表示分值上升的方向。全部紅線右邊的點的分數值均爲正,且線性升高。紅線左邊的點分值爲負,且線性下降。it

和網絡的關係

函數我都懂,但這和本文開始的那張圖有什麼關係?
答案就在藏在矩陣乘法,矩陣的乘法造成了網狀結構。每條連線對應權重的一個值,傳遞時進行乘法操做;因此上層全部的神經元(儲存特徵值或輸入的單元)與下層一個神經元的連線對應一行權重,傳遞時進行線性組合後加上偏置值,獲得的結果還要經過激活函數(後面再講)最終的到特徵值。每傳遞一層,就至關於執行一次線性分類器和激活函數,其輸出可做爲下一個線性分類器的輸入繼續往下傳遞。像這樣多個線性分類器疊加起來,那種網絡結構就成型了。
圖片描述

另外補充一下:實際上咱們不會/不多用單層神經網絡,使用一個線性分類器就實現對圖像分類的評分是不現實的,由於這樣提取的特徵信息太淺了,每每由於顏色或形狀相近就會被歸爲同類。正確作法應該是使用多層網絡,對淺層特徵進行再組合得到深層特徵,最後才根據深層特徵值來評分

相關文章
相關標籤/搜索