這一周我們學習的主要內容是物件檢測,它是計算機視覺領域中乙個新興的應用方向,相比前兩年,它的效能越來越好。在構建物件檢測之前,我們先了解一下物件定位,首先我們看看它的定義。
分類任務我們已經熟悉了,就是演算法遍歷,判斷其中的物件是不是汽車,這就是分類。這節課我們要學習構建神經網路的另乙個問題,即定位分類問題。**這意味著,我們不僅要用演算法判斷中是不是一輛汽車,還要在中標記出它的位置,用邊框或紅色方框把汽車圈起來,這就是定位分類問題。**其中「定位」的意思是判斷汽車在中的具體位置。
本週我們要研究的分類定位問題,通常只有乙個較大的物件位於中間位置,我們要對它進行識別和定位。而在物件檢測問題中,可以含有多個物件,甚至單張中會有多個不同分類的物件。因此,分類的思路可以幫助學習分類定位,而物件定位的思路又有助於學習物件檢測,我們先從分類和定位開始講起。
如果你正在構建汽車自動駕駛系統,那麼物件可能包括以下幾類:行人、汽車、電單車和背景,這意味著中不含有前三種物件,也就是說中沒有行人、汽車和電單車,輸出結果會是背景物件,這四個分類就是softmax函式可能輸出的結果。
這就是標準的分類過程,如果你還想定位中汽車的位置,該怎麼做呢?我們可以讓神經網路多輸出幾個單元,輸出乙個邊界框。具體說就是讓神經網路再多輸出4個數字,標記為bx,by,bh和bw,這四個數字是被檢測物件的邊界框的引數化表示。
我們先來約定本週課程將使用的符號表示,左上角的座標為(0,0),右下角標記為(1,1)。要確定邊界框的具體位置,需要指定紅色方框的中心點,這個點表示為(bx,by),邊界框的高度為bh,寬度為bw。**因此訓練集不僅包含神經網路要**的物件分類標籤,還要包含表示邊界框的這四個數字,接著採用監督學習演算法,輸出乙個分類標籤,還有四個引數值,從而給出檢測物件的邊框位置。**此例中,bx的理想值是0.5,因為它表示汽車位於水平方向的中間位置;by大約是0.7,表示汽車位於距離底部的位置;bh約為0.3,因為紅色方框的高度是高度的0.3倍;bw約為0.4,紅色方框的寬度是寬度的0.4倍。
下面我再具體講講如何為監督學習任務定義目標標籤y。
請注意,這有四個分類,神經網路輸出的是這四個數字和乙個分類標籤,或分類標籤出現的概率。
它是乙個向量,第乙個元件pc表示是否含有物件,如果物件屬於前三類(行人、汽車、電單車),則pc=1,如果是背景,則中沒有要檢測的物件,則pc=0。我們可以這樣理解pc,它表示被檢測物件屬於某一分類的概率,背景分類除外。
如果檢測到物件,就輸出被檢測物件的邊界框引數bx、by、bh和bw。最後,如果存在某個物件,那麼pc=1,同時輸出c1、c2和c3,表示該物件屬於1-3類中的哪一類,是行人,汽車還是電單車。鑑於我們所要處理的問題,我們假設中只含有乙個物件,所以針對這個分類定位問題,最多隻會出現其中乙個物件。
這是中只有乙個檢測物件的情況,如果中沒有檢測物件呢?如果訓練樣本是這樣一張呢?
種情況下pc=0,y的其它引數將變得毫無意義,這裡我全部寫成問號,表示「毫無意義」的引數,因為中不存在檢測物件,所以不用考慮網路輸出中邊界框的大小,也不用考慮中的物件是屬於c1、c2和c3中的哪一類。針對給定的被標記的訓練樣本,不論中是否含有定位物件,構建輸入x和分類標籤y的具體過程都是如此。這些資料最終定義了訓練集。
最後,我們介紹一下神經網路的損失函式,其引數為類別y和也y^網路輸出,如果採用平方誤差策略,則
如果中存在定位物件,那麼y1=1,所以pc=y1,同樣地,如果中存在定位物件pc=1,損失值就是不同元素的平方和。
另一種情況是y1=0,也就是pc=0,損失值是pc的準確度。
回顧一下,當時y1=1時,也就是這種情況(編號1),平方誤差策略可以減去這8個元素**值和實際輸出結果之間差值的平方。如果y1=0, 矩陣中的後7個元素都不用考慮(編號2),只需要考慮神經網路評估y1(即pc)的準確度。
為了讓大家了解物件定位的細節,這裡我用平方誤差簡化了描述過程。實際應用中,你可以不對c1、c2、c3和softmax啟用函式應用對數損失函式,並輸出其中乙個元素值,通常做法是對邊界框座標應用平方差或類似方法,對pc應用邏輯回歸函式,甚至採用平方**誤差也是可以的。
以上就是利用神經網路解決物件分類和定位問題的詳細過程,結果證明,利用神經網路輸出批量實數來識別中的物件是個非常有用的演算法。下節課,我想和大家分享另一種思路,就是把神經網路輸出的實數集作為乙個回歸任務,這個思想也被應用於計算機視覺的其它領域,也是非常有效的,所以下節課見。
深度學習 吳恩達
第三週神經網路 啟用函式 第一門課 感謝黃博的參考筆記 一次梯度下降 正向傳播與反向傳播 一次反向傳播梯度下降 注意與機器學習課程不同的一點是,第一層不算樣本輸入 a t an z a tan z a tan z 的值域是位於 1和 1之間。a t anh z e z e zez e za tanh...
吳恩達深度學習筆記
2.02 紅色為小標題,藍色比較重要 第四講第二週 4.2.1 為什麼要進行例項 4.2.2 經典網路 lenet 5網路當時還沒有padding,所以在卷積過程當中越來越小 也沒有relu函式,當時這個例子用的是sigmoid函式。超級引數不是很多。這個典型的網路有padding,使用的是relu...
總結 吳恩達深度學習
從去年8月份開始,ai界大ip吳恩達在coursera上開設了由5們課組成的深度學習專項課程,掀起了一股人工智慧深度學習熱潮。這裡附上deeplearning.ai的官網 deeplearning.ai,也可以在網易雲課堂學習 有中文字幕 關於該深度學習專項課程,本人非常推薦!它對於理解各種演算法背...