日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

Convolutional Neural Networks for Visual Recognition 1

發(fā)布時(shí)間:2023/12/9 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Convolutional Neural Networks for Visual Recognition 1 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Introduction

這是斯坦福計(jì)算機(jī)視覺大牛李菲菲最新開設(shè)的一門關(guān)于deep learning在計(jì)算機(jī)視覺領(lǐng)域的相關(guān)應(yīng)用的課程。這個(gè)課程重點(diǎn)介紹了deep learning里的一種比較流行的模型:Convolutional Neural Networks,簡(jiǎn)稱CNN,主要利用CNN來(lái)做visual recognition,或者說(shuō)是image classification,object recognition等。我自己在學(xué)習(xí)的過(guò)程中,一邊翻譯一邊總結(jié),整理出這些中文版的lecture notes,英文好的同學(xué)可以直接看原文,課程的網(wǎng)址是:

http://cs231n.stanford.edu/

學(xué)習(xí)這門課程,需要一定的數(shù)學(xué)基礎(chǔ),包括線性代數(shù),概率論,統(tǒng)計(jì)等,還要對(duì)傳統(tǒng)的機(jī)器學(xué)習(xí)有一定的了解,可以參考斯坦福大學(xué)機(jī)器學(xué)習(xí)大牛Anderw的課程,另外一個(gè)前提條件是編程,這門課程沒有用matlab,而是用了當(dāng)下比較流行的一種語(yǔ)言python,課程中所有的程序都是用python寫成的,所以還要學(xué)習(xí)python編程,這門課程對(duì)python有簡(jiǎn)單的介紹,并且還推薦了相應(yīng)的python版本及編譯器,這些信息都可以在課程網(wǎng)站上找到。

我在這里轉(zhuǎn)譯的中文lecture notes,認(rèn)為大家都已經(jīng)搞定了上述所需的前提條件,就是有一定的數(shù)學(xué)基礎(chǔ),也了解機(jī)器學(xué)習(xí),并且安裝了相應(yīng)的python和IDE(推薦Eclipse+Pydev),能夠利用python進(jìn)行編程。所以沒有這些基礎(chǔ)知識(shí)。下面是正式的課程內(nèi)容。

Image Classification

首先介紹的是計(jì)算機(jī)視覺領(lǐng)域一個(gè)重要而基礎(chǔ)的問題:圖像分類。簡(jiǎn)單來(lái)說(shuō),就是將一幅圖像賦以一個(gè)語(yǔ)義標(biāo)簽,對(duì)這幅圖像進(jìn)行標(biāo)識(shí),如下圖所示:


圖像分類的任務(wù)就是將一個(gè)給定的圖像賦予一個(gè)或者一組語(yǔ)義標(biāo)簽。

我們看到的是一只貓,但是對(duì)于計(jì)算機(jī)來(lái)說(shuō),看到的只是一個(gè)三維的數(shù)組,這個(gè)圖像是248個(gè)像素寬,400像素高,而且有R,G,B三個(gè)通道,所以是一個(gè)248×400×3的數(shù)組,一共有296700個(gè)像素,每個(gè)像素的值在0-255的范圍內(nèi),圖像分類的任務(wù)就行將這所有的像素用一個(gè)語(yǔ)義標(biāo)簽進(jìn)行標(biāo)識(shí),比如“cat”。

一般來(lái)說(shuō),對(duì)于visual recognition,我們需要解決以下一些困難或挑戰(zhàn):
Viewpoint variation:一個(gè)物體由于照相機(jī)拍攝的視角不同,會(huì)呈現(xiàn)不同的方向。
Scale variation: 尺度的變化,這是比較常見的一個(gè)問題。
Deformation: 有些物體可能會(huì)發(fā)現(xiàn)形變。
Occlusion: 物體的局部有可能被遮擋。
Illumination conditions:光照條件的變化有可能改變圖像的像素值的分布。
Background clutter: 背景紋理與物體的紋理相似的話,會(huì)對(duì)識(shí)別造成很大影響。
Intra-class variation: 即使屬于同一類的物體,也有可能呈現(xiàn)不同的形狀,比如椅子,杯子等。

一個(gè)好的圖像分類模型,應(yīng)該能夠很好地處理這些問題。

我們?nèi)绾螌懸粋€(gè)算法來(lái)做這項(xiàng)工作呢,這個(gè)不像排序那么簡(jiǎn)單,因?yàn)槲覀儾荒苤苯訉懸粋€(gè)算法來(lái)確定圖像里的物體。因此,一般來(lái)說(shuō),我們會(huì)先給計(jì)算機(jī)一些樣本,通過(guò)這些樣本讓計(jì)算機(jī)了解每一類物體的性質(zhì),這種方法稱為data-driven(數(shù)據(jù)驅(qū)動(dòng)),因?yàn)檫@類方法要依賴于事先收集的一些訓(xùn)練數(shù)據(jù)。下圖給出了一些訓(xùn)練數(shù)據(jù)的示例:

在實(shí)際的應(yīng)用中,可能會(huì)有幾千個(gè)類別而每一類可能會(huì)有成千上萬(wàn)個(gè)樣本。一個(gè)完整的圖像分類模型包含以下幾個(gè)步驟:
Input:我們的輸入包括N張圖像,每張圖像都有相應(yīng)的標(biāo)簽,這些標(biāo)簽屬于K個(gè)不同的類別,這組圖像稱為訓(xùn)練集。
Learning: 我們的任務(wù)是通過(guò)訓(xùn)練集讓計(jì)算機(jī)知道每一類的性質(zhì),這個(gè)過(guò)程稱為訓(xùn)練階段或者學(xué)習(xí)階段。
Evaluation: 最后,我們要用訓(xùn)練好的模型來(lái)評(píng)估一些從未見過(guò)的圖像,對(duì)這些圖像進(jìn)行分類,并將預(yù)測(cè)標(biāo)簽與該圖像的真實(shí)標(biāo)簽比較。

Nearest Neighbor Classifier

我們先介紹一種很簡(jiǎn)單的分類模型:最近鄰分類器,這個(gè)模型與我們將要介紹的CNN沒有什么關(guān)系,而且在實(shí)際應(yīng)用中,也很少用到這個(gè)模型,但是可以用這個(gè)模型來(lái)了解圖像分類的處理流程。

這里我們要用到的數(shù)據(jù)庫(kù)是:\textbf{CIFAR-10},這是一個(gè)非常流行的用于圖像分類的數(shù)據(jù)庫(kù),這個(gè)數(shù)據(jù)庫(kù)包含10類圖像,一共含有60000張圖,每張圖的寬和高都是32,每張圖都有一個(gè)類標(biāo)簽,這60000萬(wàn)張圖分成兩部分,其中50000張圖作為訓(xùn)練集,剩下的10000張圖作為測(cè)試集。下圖給出了該訓(xùn)練集的一些樣圖:

左圖:訓(xùn)練集里的一些樣圖。右圖:第一列是測(cè)試圖,其它圖是與該測(cè)試圖最相似的訓(xùn)練圖。

現(xiàn)在,假設(shè)我們有這樣一個(gè)數(shù)據(jù)庫(kù),包含屬于10個(gè)類別的共50000個(gè)訓(xùn)練樣本,每個(gè)類別有5000張圖,最近鄰分類器拿到一張測(cè)試圖,會(huì)將該測(cè)試圖與訓(xùn)練集的每一個(gè)
樣本進(jìn)行比較,挑出離該測(cè)試圖最近的訓(xùn)練樣本,并且將該訓(xùn)練樣本的類標(biāo)簽賦給該測(cè)試圖,換句話說(shuō),離該測(cè)試圖最近的樣本是什么類,那么該測(cè)試圖就屬于該類,
我們可以看到,利用這個(gè)分類器,上面右邊的10個(gè)測(cè)試樣本只有三個(gè)賦予了正確的類標(biāo)簽,其它7個(gè)樣本都錯(cuò)了,比如第8個(gè)樣本是一個(gè)馬的頭,但是離它最近的訓(xùn)練樣本
是汽車,這樣這個(gè)馬頭的圖像就被賦予汽車的標(biāo)簽了。

現(xiàn)在我們來(lái)定義Nearest Neighbor Classifier,最簡(jiǎn)單的一種定義就是像素級(jí)的比較,我們將一張32×32×3的圖看成一個(gè)高維的向量,兩張圖的差距
定義為L1距離:

d1(I1,I2)=p|Ip1?IP2|
還有一種常用的度量,是L2距離:
d2(I1,I2)=p(Ip1?IP2)2???????????
實(shí)驗(yàn)證明,利用L1,L2度量的效果并不理想,只有30%多一點(diǎn),一種比較常見的改進(jìn)是K-NN,我們不能只參考離測(cè)試樣本最近的一個(gè)樣本,我們要參考離測(cè)試樣本最近的K個(gè)樣本,然后利用投票策略,即,這K個(gè)樣本中,哪一類的樣本最多,我們就認(rèn)為測(cè)試樣本屬于這一類。但是K-NN中的K到底要取多大?這個(gè)K可以稱為hyperparameters,在機(jī)器學(xué)習(xí)中,如何選擇參數(shù)也是一個(gè)需要仔細(xì)考慮的問題,一般來(lái)說(shuō)test set只能用來(lái)做最后的評(píng)估,而且只能用一次,不能用test set來(lái)選擇最佳的hyperparameters,一個(gè)可行的方案是將訓(xùn)練集分成兩部分,我們將擁有絕大多數(shù)訓(xùn)練樣本的那部分用來(lái)訓(xùn)練,稱為training set,而只有很少一部分訓(xùn)練樣本的那部分用來(lái)評(píng)估不同的參數(shù)對(duì)模型的影響,這部分稱為validation set。

當(dāng)樣本總數(shù)很少的時(shí)候,我們一般會(huì)采取另外一種策略稱為cross validation,將樣本分為相同規(guī)模的幾份,比如5份或者10份,然后,挑出一份做validation,剩下的做訓(xùn)練,這樣循環(huán)一遍,以保證每一份都能被評(píng)估,這種策略相對(duì)來(lái)說(shuō)比較耗時(shí),因?yàn)樾枰h(huán)地做訓(xùn)練和測(cè)試。

Pros and Cons of Nearest Neighbor classifier

接下來(lái),我們要總結(jié)一下Nearest Neighbor classifier的優(yōu)缺點(diǎn),很顯然,這種分類器的優(yōu)點(diǎn)就是簡(jiǎn)單,易懂,而且不需要訓(xùn)練,但是它的缺點(diǎn)也很明顯,一個(gè)是效率太低,測(cè)試的時(shí)候非常耗時(shí),因?yàn)橐陀?xùn)練集
的樣本逐個(gè)比較,在實(shí)際應(yīng)用中,我們比較關(guān)心測(cè)試階段的效率,因?yàn)橛?xùn)練可以提前做好,所以最近鄰分類器不能滿足實(shí)時(shí)檢測(cè),在實(shí)際應(yīng)用中,很少用到這種分類器。最近鄰分類器另外一個(gè)缺點(diǎn)是對(duì)像素亮度值的變化非常敏感,因?yàn)檫@個(gè)是基于像素值的比較,所以同一個(gè)物體,在不同光照,或者有遮擋的情況下,會(huì)出現(xiàn)很大的差距,更加合理的度量應(yīng)該基于物體的語(yǔ)義及結(jié)構(gòu)信息。如下圖所示:

圖像的偏移,部分遮擋,光照變化會(huì)使距離度量相差很大。

最后做一點(diǎn)總結(jié):
我們介紹了圖像分類的概念,并且介紹了一種很簡(jiǎn)單的分類器:最近鄰分類器,而且我們也介紹了如何利用validation set或者cross validation來(lái)調(diào)整hyperparameters,我們也看到最近鄰分類器的效果并不是很理想,最后我們探討了L1,L2度量的缺陷,就是對(duì)像素值的變化比較敏感,而沒有基于物體的語(yǔ)義及結(jié)構(gòu)信息來(lái)進(jìn)行度量。

聲明:lecture notes里的圖片都來(lái)源于該課程的網(wǎng)站,只能用于學(xué)習(xí),請(qǐng)勿作其它用途,如需轉(zhuǎn)載,請(qǐng)說(shuō)明該課程為引用來(lái)源。

課程網(wǎng)站 http://cs231n.stanford.edu/

轉(zhuǎn)載于:https://www.cnblogs.com/mtcnn/p/9412617.html

總結(jié)

以上是生活随笔為你收集整理的Convolutional Neural Networks for Visual Recognition 1的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。