反向傳播 反向傳播是神經(jīng)網(wǎng)絡參數(shù)學習的必備工具,以經(jīng)典的多層前向神經(jīng)網(wǎng)絡為例: 整個網(wǎng)絡可以認為是以下結(jié)構(gòu)的重復,其中n代表處于第幾層: 假設: 那么誤差反向傳播原理為: 卷積網(wǎng)絡結(jié)構(gòu)演化史 網(wǎng)絡結(jié)構(gòu)的發(fā)展歷程更像是一個實驗科學的過程,人們通過不斷地嘗試和實驗來得到與驗證各種網(wǎng)絡結(jié)構(gòu)。 CNN基本原理 卷積神經(jīng)網(wǎng)絡是我認為非常好用的一類神經(jīng)網(wǎng)絡結(jié)構(gòu),當數(shù)據(jù)具有局部相關性時是一種比較好選擇,在圖像、自然語言處理、棋類競技、新藥配方研制等方面有廣泛應用。比如,經(jīng)典的LeNet-5網(wǎng)絡結(jié)構(gòu): Sigmoid激活函數(shù) 激活函數(shù)是神經(jīng)網(wǎng)絡必備工具,而Sigmoid激活函數(shù)是早期神經(jīng)網(wǎng)絡最普遍的選擇。Sigmoid函數(shù)是類神奇的函數(shù),廣義上所有形為“S”的函數(shù)都可叫做Sigmoid函數(shù),從早期的感知機模型中Sigmoid函數(shù)就被用來模擬生物細胞的激活反應,所以又被叫做激活函數(shù),從數(shù)學角度看,Sigmoid函數(shù)對中間信號增益較大而對兩側(cè)信號增益小,所以在信號的特征空間映射上效果好。 從生物角度看,中間部分類似神經(jīng)元的興奮狀態(tài)而兩側(cè)類似神經(jīng)元的抑制狀態(tài),所以神經(jīng)網(wǎng)絡在學習時,區(qū)分度大的重要特征被推向中間而次要特征被推向兩側(cè)。 Logistic函數(shù)最早是Pierre Fran?ois Verhulst在研究人口增長問題時提出的,由于其強悍的普適性(從概率角度的理解見前面對Logistic Regression的講解)而被廣泛應用(在傳統(tǒng)機器學習中派生出Logistic Regression),但是實踐中,它作為激活函數(shù)有兩個重要缺點: Tanh函數(shù)是另外一種Sigmoid函數(shù),它的輸出是0均值的,Yann LeCun給出的一種經(jīng)驗激活函數(shù)形式為: 但這個函數(shù)依然解決不了梯度消失問題,后續(xù)介紹其他網(wǎng)絡結(jié)構(gòu)時會看到在激活函數(shù)層面上的演化。 CNN的典型特點是:局部相關性(稀疏連接)、權重與偏置共享及采樣,一套典型的結(jié)構(gòu)由輸入層、卷積層、采樣層、全連接層、輸出層組成。 輸入層 CNN的輸入層一般為一個n維矩陣,可以是圖像、向量化后的文本等等。比如一幅彩色圖像: 卷積層 卷積操作在數(shù)學上的定義如下: 但對于我們正在講的CNN中的卷積并不是嚴格意義的卷積(Convolution)操作,而是變體Cross-Correlation: 卷積層的作用:當數(shù)據(jù)及其周邊有局部關聯(lián)性時可以起到濾波、去噪、找特征的作用;每一個卷積核做特征提取得到結(jié)果稱為feature map,利用不同卷積核做卷積會得到一系列feature map,這些feature map大小為長寬深度(卷積核的個數(shù))并作為下一層的輸入。以圖像處理為例,卷積可以有至少3種理解: · 平滑當設置一個平滑窗口后(如3*3),除了邊緣外,圖像中每個像素點都是以某個點為中心的窗口中各個像素點的加權平均值,這樣由于每個點都考慮了周圍若干點的特征,所以本質(zhì)上它是對像素點的平滑。 · 濾波將信號中特定波段頻率過濾的操作,是防干擾的一類方法,如果濾波模板(卷積核)是均勻分布,那么濾波就是等權滑動平均,如果模板是高斯分布,那么濾波就是權重分布為鐘形的加權滑動平均,不同的模板能得到圖像的不同濾波后特征。 · 投影卷積是個內(nèi)積操作,如果把模板(卷積核)拉直后看做一個基向量,那么滑動窗口每滑動一次就會產(chǎn)生一個向量,把這個向量往基向量上做投影就得到feature map,如果模板有多個,則組成一組基,投影后得到一組feature map。 卷積和權重共享可以在保證效果的基礎上大大降低模型復雜度,說明如下: 輸入層為5*5矩陣,卷積核為3*3矩陣,隱藏層為:3*3矩陣: · 采用全連接神經(jīng)網(wǎng)絡 參數(shù)個數(shù)為:5*5*9=225 · 采用局部連接神經(jīng)網(wǎng)絡 隱藏層只與3*3大小的局部像素相連,參數(shù)個數(shù)為:3*3*9=81 · 采用局部連接權重共享神經(jīng)網(wǎng)絡 所有隱藏層共享權值,且權值為卷積核,參數(shù)個數(shù)為:3*3*1=9,共享權重的本質(zhì)含義是對圖片某種統(tǒng)計模式的描述,這種模式與圖像位置無關。 Zero-Padding Zero-Padding是一種影響輸出層構(gòu)建的方法,思路比較簡單:把輸入層邊界外圍用0填充,當我們希望輸出空間維度和輸入空間維度大小一樣時可以用此方法,例如下圖:當輸入為4*4,卷積核為3*3時,利用Zero-Padding可以讓輸出矩陣也是4*4。 Zero-Padding一方面讓你的網(wǎng)絡結(jié)構(gòu)設計更靈活,一方面還可以保留邊界信息,不至于隨著卷積的過程信息衰減的太快。大家如果使用Tenserflow會知道它的padding參數(shù)有兩個值:SAME,代表做類似上圖的Zero padding,使得輸入的feature map和輸出的feature map有相同的大??;VALID,代表不做padding操作。 采樣層(pooling) 通過卷積后。模型的參數(shù)規(guī)模大幅下降,但對于復雜網(wǎng)絡參數(shù)個數(shù)依然很多,且容易造成過擬合,所以一種自然的方式就是做下采樣,采樣依然采用滑動窗口方式,常用采樣有Max-Pooling(將Pooling窗口中的最大值作為采樣值)和Mean-Pooling(將Pooling窗口中的所有值相加取平均,用平均值作為采樣值),一個例子如下: 實際上也有人嘗試拋棄Pooling層而采用Stride大于1的卷積層,例如,以下例子中Stride=2,效果類似: 另外,如果卷積層的下一層是pooling層,那么每個feature map都會做pooling,與人類行為相比,pooling可以看做是觀察圖像某個特征區(qū)域是否有某種特性,對這個區(qū)域而言不關心這個特性具體表現(xiàn)在哪個位置(比如:看一個人臉上某個局部區(qū)域是否有個痘痘)。 全連接樣層 全連接層一般是CNN的最后一層,它是輸出層和前面若干層的過渡層,用來組織生成特定節(jié)點數(shù)的輸出層。 參數(shù)求解 對于多分類任務,假設損失函數(shù)采用平方誤差: C為分類個數(shù),N為樣本數(shù)。下面以一個樣本為例推導CNN的原理: 2.機器學習原來這么有趣!【第二章】:用機器學習制作超級馬里奧的關卡 7.機器學習從零開始系列連載(5)——Bagging and Boosting框架 掃描個人微信號, 拉你進機器學習大牛群。 福利滿滿,名額已不多… |
|
來自: 新用戶8173JS52 > 《待分類》