姓名:高澤坤;
學(xué)號:20010190023;
學(xué)院:通信工程學(xué)院;
轉(zhuǎn)載于:https://blog.csdn.net/nine_mink/article/details/104888902
【嵌牛導(dǎo)讀】神經(jīng)網(wǎng)絡(luò)是機(jī)器學(xué)習(xí)中的一種經(jīng)典模型闪水,也是現(xiàn)在深度學(xué)習(xí)的前身和基礎(chǔ),因此如果要想掌握深度學(xué)習(xí)蒙具,必須通透地了解神經(jīng)網(wǎng)絡(luò)球榆。關(guān)于神經(jīng)網(wǎng)絡(luò)需要做到以下幾點:了解神經(jīng)網(wǎng)絡(luò)的線性結(jié)構(gòu),了解非線性激活函數(shù)禁筏,掌握參數(shù)訓(xùn)練的反向傳播算法(BP, backpropagation)持钉,了解多層神經(jīng)網(wǎng)路的梯度彌散問題。
【嵌牛鼻子】深度學(xué)習(xí)二分類問題
【嵌牛提問】什么是二分類問題
【嵌牛正文】
二分類(Binary Classification)
吳恩達(dá)老師的視頻講二分類問題的角度雖然比較專業(yè)篱昔,但是還是很容易理解的每强,這里面會有一些你們可能理解不是很深刻的名詞,如果你覺得困難的話州刽,不如先等幾天空执,看完我介紹神經(jīng)網(wǎng)絡(luò)再來參考這篇博文學(xué)習(xí)二分類問題。
本篇博文還是以吳恩達(dá)老師的視頻為基礎(chǔ)
我們將學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)知識穗椅,其中需要注意的是辨绊,當(dāng)實現(xiàn)一個神經(jīng)網(wǎng)絡(luò)的時候,我們需要知道一些非常重要的技術(shù)和技巧匹表。例如有一個包含m個樣本的訓(xùn)練集门坷,你很可能習(xí)慣于用一個for循環(huán)來遍歷訓(xùn)練集中的每個樣本(適用于有編程思維和經(jīng)驗的人),但是當(dāng)實現(xiàn)一個神經(jīng)網(wǎng)絡(luò)的時候桑孩,我們通常不直接使用for循環(huán)來遍歷整個訓(xùn)練集拜鹤,所以在這周的課程中你將學(xué)會如何處理訓(xùn)練集。
另外在神經(jīng)網(wǎng)絡(luò)的計算中流椒,通常先有一個叫做**前向暫停(forward pause)或叫做前向傳播(foward propagation)的步驟敏簿,接著有一個叫做反向暫停(backward pause) 或叫做反向傳播(backward propagation)**的步驟。
所以這周也會向你介紹為什么神經(jīng)網(wǎng)絡(luò)的訓(xùn)練過程可以分為前向傳播和反向傳播兩個獨立的部分。
在課程中我將使用**邏輯回歸(logistic regression)**來傳達(dá)這些想法惯裕,以使大家能夠更加容易地理解這些概念温数。即使你之前了解過邏輯回歸,我認(rèn)為這里還是有些新的蜻势、有趣的東西等著你去發(fā)現(xiàn)和了解撑刺,所以現(xiàn)在開始進(jìn)入正題。
邏輯回歸是一個用于二分類(binary classification)的算法握玛。
二分類問題示例:
首先我們從一個問題開始說起够傍,這里有一個二分類問題的例子,假如你有一張圖片作為輸入挠铲,比如這只貓冕屯,如果識別這張圖片為貓,則輸出標(biāo)簽1作為結(jié)果拂苹;如果識別出不是貓安聘,那么輸出標(biāo)簽0作為結(jié)果(這也就是著名的cat和non cat問題)。現(xiàn)在我們可以用字母y來表示輸出的結(jié)果標(biāo)簽瓢棒,如下圖所示:
我們來看看一張圖片在計算機(jī)中是如何表示的浴韭,為了保存一張圖片,需要保存三個矩陣(矩陣的概念脯宿,一定要清楚念颈,不清楚的需要去看看線性代數(shù)了,補(bǔ)充下连霉,推薦B站宋浩老師的線性代數(shù)舍肠,我看了他的視頻線代考了96分),它們分別對應(yīng)圖片中的紅窘面、綠、藍(lán)三種顏色通道叽躯,如果你的圖片大小為64x64像素财边,那么你就有三個規(guī)模為64x64的矩陣,分別對應(yīng)圖片中紅点骑、綠酣难、藍(lán)三種像素的強(qiáng)度值。為了便于表示黑滴,這里我畫了三個很小的矩陣憨募,注意它們的規(guī)模為5x4 而不是64x64,如下圖所示:?
為了把這些像素值放到一個特征向量(這個是重點袁辈,特征向量菜谣!這個是后面很多神經(jīng)網(wǎng)絡(luò)的核心思維!)中,我們需要把這些像素值提取出來尾膊,然后放入一個特征向量x媳危。為了把這些像素值轉(zhuǎn)換為特征向量 x,我們需要像下面這樣定義一個特征向量 x 來表示這張圖片冈敛,我們把所有的像素都取出來待笑,例如255、231等等抓谴,直到取完所有的紅色像素暮蹂,接著最后是255、134癌压、…仰泻、255、134等等措拇,直到得到一個特征向量我纪,把圖片中所有的紅、綠丐吓、藍(lán)像素值都列出來浅悉。(可以想象成把所有畫素值并成一列或者一排,這里最好理解成一列券犁,因為后續(xù)的思路是按列來看的)术健,如果圖片的大小為64x64像素,那么向量 x 的總維度粘衬,將是64乘以64乘以3荞估,這是三個像素矩陣中像素的總量。
在這個例子中結(jié)果為12,288≈尚拢現(xiàn)在我們用n_x=12,288勘伺,來表示輸入特征向量的維度,有時候為了簡潔褂删,我會直接用小寫的n來表示輸入特征向量x的維度飞醉。所以在二分類問題中,我們的目標(biāo)就是習(xí)得一個分類器屯阀,它以圖片的特征向量作為輸入缅帘,然后預(yù)測輸出結(jié)果y為1還是0,也就是預(yù)測圖片中是否有貓:
接下來我們說明一些在余下課程中难衰,需要用到的一些符號钦无。
符號定義 :
x:表示一個n_x維數(shù)據(jù),為輸入數(shù)據(jù)盖袭,維度為(n_x,1)失暂;
y:表示輸出結(jié)果彼宠,取值為(0,1)(取值問題,一定要注意趣席,這個是后期輸出值的把控重點1尽);
(x(i),y(i))(代表x的(i)上標(biāo)宣肚,y的(i)上標(biāo)):表示第i組數(shù)據(jù)想罕,可能是訓(xùn)練數(shù)據(jù),也可能是測試數(shù)據(jù)霉涨,此處默認(rèn)為訓(xùn)練數(shù)據(jù)按价;
X=[x(1),x(2),…,x^(m)]:表示所有的訓(xùn)練數(shù)據(jù)集的輸入值,放在一個 n_x×m的矩陣中笙瑟,其中m表示樣本數(shù)目;
Y=[y(1),y(2),…,y^(m)]:對應(yīng)表示所有訓(xùn)練數(shù)據(jù)集的輸出值楼镐,維度為1×m。
此處方便理解往枷,特意截圖出來框产,希望能了解!
用一對(x,y)來表示一個單獨的樣本错洁,x代表n_x維的特征向量秉宿,y 表示標(biāo)簽(輸出結(jié)果)只能為0或1。 而訓(xùn)練集將由m個訓(xùn)練樣本組成屯碴,其中(x(1),y(1))表示第一個樣本的輸入和輸出描睦,(x(2),y(2))表示第二個樣本的輸入和輸出,直到最后一個樣本(x(m),y(m))导而,然后所有的這些一起表示整個訓(xùn)練集忱叭。有時候為了強(qiáng)調(diào)這是訓(xùn)練樣本的個數(shù),會寫作M_train今艺,當(dāng)涉及到測試集的時候韵丑,我們會使用M_test來表示測試集的樣本數(shù),所以這是測試集的樣本數(shù):
最后為了能把訓(xùn)練集表示得更緊湊一點虚缎,我們會定義一個矩陣用大寫X的表示埂息,它由輸入向量x(1)、x(2)等組成遥巴,如下圖放在矩陣的列中,所以現(xiàn)在我們把x(1)作為第一列放在矩陣中享幽,x(2)作為第二列铲掐,x(m)放到第m列,然后我們就得到了訓(xùn)練集矩陣X值桩。所以這個矩陣有m列摆霉,m是訓(xùn)練集的樣本數(shù)量,然后這個矩陣的高度記為n_x,注意有時候可能因為其他某些原因携栋,矩陣X會由訓(xùn)練樣本按照行堆疊起來而不是列搭盾,如下圖所示:x(1)的轉(zhuǎn)置直到x^(m)的轉(zhuǎn)置,但是在實現(xiàn)神經(jīng)網(wǎng)絡(luò)的時候婉支,使用左邊的這種形式鸯隅,會讓整個實現(xiàn)的過程變得更加簡單
現(xiàn)在來簡單溫習(xí)一下:X是一個規(guī)模為n_x乘以m的矩陣,當(dāng)你用Python實現(xiàn)的時候向挖,你會看到X.shape蝌以,這是一條Python命令,用于顯示矩陣的規(guī)模何之,即X.shape等于(n_x,m)跟畅,X是一個規(guī)模為n_x乘以m的矩陣。所以綜上所述溶推,這就是如何將訓(xùn)練樣本(輸入向量X的集合)表示為一個矩陣徊件。
那么輸出標(biāo)簽y呢?同樣的道理蒜危,為了能更加容易地實現(xiàn)一個神經(jīng)網(wǎng)絡(luò)虱痕,將標(biāo)簽y放在列中將會使得后續(xù)計算非常方便,所以我們定義大寫的Y等于y(1),y(m),…,y^(m)舰褪,所以在這里是一個規(guī)模為1乘以m的矩陣皆疹,同樣地使用Python將表示為Y.shape等于(1,m),表示這是一個規(guī)模為1乘以m的矩陣占拍。
當(dāng)你在后面的課程中實現(xiàn)神經(jīng)網(wǎng)絡(luò)的時候略就,你會發(fā)現(xiàn),一個好的符號約定能夠?qū)⒉煌?xùn)練樣本的數(shù)據(jù)很好地組織起來晃酒。而所說的數(shù)據(jù)不僅包括 x 或者 y 還包括之后你會看到的其他的量表牢。
將不同的訓(xùn)練樣本的數(shù)據(jù)提取出來,然后就像剛剛我們對 x 或者 y 所做的那樣贝次,將他們堆疊在矩陣的列中崔兴,形成我們之后會在邏輯回歸和神經(jīng)網(wǎng)絡(luò)上要用到的符號表示。
備注:符號說明蛔翅。
————————————————
版權(quán)聲明:本文為CSDN博主「nine_mink」的原創(chuàng)文章敲茄,遵循CC 4.0 BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請附上原文出處鏈接及本聲明山析。
原文鏈接:https://blog.csdn.net/nine_mink/article/details/104888902