接下來介紹卷積神經網路的各種改進措施,其中經典網路的改進措施已經在前面各個網路中介紹。針對卷積神經網路的改進措施主要在以下幾個方面:卷積層,池化層,啟用函式
,損失函式,網路結構,正則化技術等方面。優化演算法對網路的訓練至關重要,在這裡我們單獨列出來了。
卷積層的改進有以下幾種:卷積核小型化,1x1 卷積,network in network,inception機制,卷積分解(factorization),反卷積運算等下面分別介紹
network in network的主要思想是用乙個小規模的神經網路來替代卷積層的線性濾波器,在這篇文獻中,小型網路是乙個多層感知器卷積網路。顯這種小型網路比線性的卷積sigai運算有更強的的描述能力。卷積核小型化是現在普遍接受的觀點,在vgg 網路中已經介紹了。1x1 卷積可以用於通道降維,也可以用於全卷積網路,保證卷積網路能接受任意尺寸的輸入影象,並能做逐畫素的**。inception 機制在googlenet 網路中已經介紹,這裡也不在重複。卷積操作可以轉化為影象與乙個矩陣的乘積來實現,反卷積[17]也稱為轉置卷積,它的操作剛好和這個過程相反,正向傳播時左乘矩陣的轉置,反向傳播時左乘矩陣。注意這裡的反卷積和訊號處理裡的反卷積不是一回事,它只能得到和原始輸出影象尺寸相同的影象,並不是卷積運算的逆運算。反卷積運算有一些實際的用途,包括接下來要介紹的卷積網路的視覺化;全卷積網路中的上取樣,影象生成等。反卷積運算通過對卷積運算得到的輸出影象左乘卷積矩陣的轉置,可以得到和原始影象尺寸相同的一張影象。
池化層的改進主要有以下幾種:l-p 池化,混合池化,隨機池化,spatial pyramid pooling,roi pooling。spatial pyramid pooling 在 spp 網路中提出,之前的「基於深度學習的目標檢測演算法綜述」文章中 sigai 已經做了講解,這裡不再重複。roi pooling 在 fast r-cnn 演算法中提出,同樣的在目標檢測文章中已經做了介紹。
損失函式也是乙個重要的改進點。除了歐氏距離損失之外,交叉熵,對比損失,合頁損失等相繼被使用。這些基本的損失函式 sigai 在後續的文章中會專門介紹,敬請期待!… 在一些複雜的任務上,出現了多工損失損失函式。典型的有目標檢測演算法,人臉識別演算法,影象分割演算法等,這些損失函式在人臉識別、目標檢測系列綜述文章中已經進行介紹,在這裡不再重複。
這裡的網路結構指拓撲結構以及層的使用上。連線關係的改進如殘差網路和 densenet等結構在前面已經做了介紹。… 全卷積網路 fully convolutional networks[31],簡稱 fcn,是在標準卷積網路基礎上所做的改變,它將標準卷積網路的全連線層替換成卷積層,以適應影象分割、深度估計等需要對原始影象每個畫素點進行**的情況。一般情況下,全卷積網路最後幾個卷積層採用 1x1的卷積核。由於卷積和下取樣層導致了影象尺寸的減小,為了得到與原始輸入影象尺寸相同的影象,使用了反卷積層實現上取樣以得到和輸入影象尺寸相等的**影象。
… 不同層的卷積核有不同的感受野,描述了影象在不同尺度的資訊。多尺度處理也是卷積網路的一種常用手段,將不同卷積層輸出影象彙總到乙個層中進行處理可以提取影象多尺度的資訊,典型的做法包括 googlenet,ssd,cascade cnn,densebox。
神經網路在訓練過程中每一層的引數會隨著迭代的進行而不斷變化,這會導致它後面一sigai層的輸入資料的分布不斷發生變化,這種問題稱為 internal covariate shift。在訓練時,每一層要適應輸入資料的分布,這需要我們在迭代過程中調整學習率,以及精細的初始化權重引數。為了解決這個問題,我們需要對神經網路每一層的輸入資料進行歸一化。其中一種解決方案為批量歸一化 batch normalization
,它是網路中一種特殊的層,用於對前一層的輸入資料進行批量歸一化,然後送入下一層進行處理,這種做法可以加速神經網路的訓練過程。
深度神經網路 優化演算法
好的優化演算法能夠讓神經網路執行的更快。本篇部落格根據吳恩達老師的講解,對幾種優化演算法進行總結。將訓練集分割為小一點子集,使用梯度下降法進行訓練。該過程叫做mini batch梯度下降。設每個子集中有m個樣本 因為考慮到電腦的記憶體設定和使用方式,一般的mini batch的大小m設定為62 51...
深度神經網路
關於卷積神經網路cnn,網路和文獻中有非常多的資料,我在工作 研究中也用了好一段時間各種常見的model了,就想著簡單整理一下,以備查閱之需。如果讀者是初接觸cnn,建議可以先看一看 deep learning 深度學習 學習筆記整理系列 中關於cnn的介紹 1 是介紹我們常說的lenet為例,相信...
機器學習,深度學習,神經網路,深度神經網路
先來說一下這幾者之間的關係 人工智慧包含機器學習,機器學習包含深度學習 是其中比較重要的分支 深度學習源自於人工神經網路的研究,但是並不完全等於傳統神經網路。所以深度學習可以說是在傳統神經網路基礎上的公升級。神經網路一般有輸入層 隱藏層 輸出層,一般來說隱藏層大於2的神經網路就叫做深度神經網路,深度...