卷積神經網絡(CNN)是機器學習研究中的熱點,在醫學圖像應用中具有一定價值。本文首先介紹了 CNN 基本原理,其次綜述了其在網絡結構的改進:在模型結構方面,總結了 CNN 的 11 種經典模型,并以時間順序梳理發展進程;在結構優化方面,從 CNN 的 5 個方面(輸入層、卷積層、下采樣層、全連接層以及整個網絡)總結研究進展。然后,對學習算法從優化和融合兩個方面進行歸納:優化算法方面,根據優化目的(提高準確率、防止過擬合、防止局部最值、提高收斂速度)梳理算法的進展;方法融合方面,分別從輸入層、卷積層、下采樣層、全連接層和輸出層共 5 個角度進行歸納。最后,將 CNN 映射到醫學圖像領域,結合計算機輔助診斷探討 CNN 在醫學圖像中的應用。本文對 CNN 進行了較為全面系統地總結,對 CNN 的研究發展具有積極意義。
引用本文: 梁蒙蒙, 周濤, 張飛飛, 楊健, 夏勇. 卷積神經網絡及其在醫學圖像分析中的應用研究. 生物醫學工程學雜志, 2018, 35(6): 977-985. doi: 10.7507/1001-5515.201710060 復制
引言
機器學習是人工智能(artificial intelligence, AI)領域發展最快,也是最體現智能的一個分支,以學習算法為研究基礎,通過提供先驗知識產生相應的模型,當提出新問題時,該模型會自動做出相應的判斷。其中的深度學習算法通過訓練樣本,得到具有多個層級的深度神經網絡結構,結合多重非線性變換及映射算法,可發現數據的分布特點[1]。目前廣泛應用的深度學習方法主要包括:限制玻爾茲曼機、卷積神經網絡(convolutional neural network, CNN)和堆棧自編碼器,其中 CNN 的應用最為廣泛。CNN 是一種基于感知器的模型結構,其優點在于可以直接輸入原始圖像,避免對圖像的過度預處理,同時還具有權值共享功能,降低了學習的復雜度。CNN 的網絡結構主要包括輸入層、卷積層、下采樣層、全連接層以及分類輸出層,而在隱藏層中,卷積層和下采樣層交替進行。
CNN 是深度學習中較為成熟的模型,相關的學術性研究相對較多,改進方法層出不窮。目前 CNN 的優化主要集中在模型和算法兩個方面,本文從這兩個方面對 CNN 的發展進行總結,首先歸納了 CNN 的經典模型,并以時間順序梳理其發展進程;其次從算法優化和融合兩個方面總結 CNN 在學習算法方面的進展;最后從醫學圖像識別和分割兩個角度介紹 CNN 在醫學圖像分析方面的應用現狀。本文梳理了 CNN 的發展進程,詳細概括了目前的改進方法,能夠使讀者清晰地了解當前 CNN 的發展現狀及趨勢,在一定程度上提供 CNN 優化的方向。
1 CNN 基本原理
CNN 是一種有監督的深度學習模型,包含卷積層和下采樣層兩種特殊的結構層,CNN 通過結合局部感受野、權值共享、時間或空間亞采樣來實現對輸入數據的位移變化、尺度變化、形狀變化等不變性。CNN 的隱藏層(卷積層和下采樣層)是特征提取的核心,在卷積層,每個神經元的輸入與前一層的局部感受野相連,并提取該局部的特征。卷積層的形式如式(1)所示:
![]() |
其中,I 表示層數,Mj 代表輸入層的感受野,b 表示偏置系數。在下采樣層,上層輸入的特征圖經過采樣后其個數不變,輸出的特征圖大小為原圖一半,下采樣層的形式如式(2)所示:
![]() |
其中,p(.) 為下采樣函數,β 為權重系數,b 為偏置系數。
2 CNN 網絡結構的改進
CNN 通過結構重組、減少權值等將特征提取融入多層感知器,是一種不同神經元和學習規則的組合,具有良好的容錯、并行處理和自我學習能力,且運行速度較快。本節從經典模型和結構優化兩個維度總結 CNN 在網絡結構方面的進展。
2.1 基于模型的改進
按照生物神經元的結構和工作原理,1943 年心理學家 McCulloch 和數學家 Pitts 提出一個簡化的麥卡洛克-皮茨(McCulloch-Pitts, M-P)神經元模型[2],該模型是神經網絡的基本元素,為以后 CNN 發展做出鋪墊。在基本神經元的基礎上勒奈網(LeNet)和勒奈 5(LeNet-5)模型誕生,這是 CNN 模型的開始,LeNet 和 LeNet-5 具備完備的模型結構,而亞歷克斯網(AlexNet)模型和谷歌網(GoogLeNet)模型通過不斷優化 CNN,成為 CNN 模型史上的里程碑。
如圖 1 所示,是將 CNN 模型的改進進程映射到二維空間的示意圖,橫軸以方法為指針綜述其改進,縱軸以時間順序探索其發展脈絡。縱觀 CNN 的發展,以 M-P 神經元模型為起點,以 LeNet 和 LeNet-5 模型[3]為發展,直到 2012 年 Krizhevsky 等[4]提出了 AlexNet 模型,成為歷史性突破點。本文對經典模型的發展進行總結,其中以 AlexNet 模型為基礎,總結了其在 4 個方向(加深網絡、加強卷積功能、從分類到檢測、新增模塊功能)的改進。
如圖 1 所示,圖中涉及的模型還有:可變形部件模型(deformable part model, DPM)、視覺幾何組(visual geometry group, VGG)模型、丹西雷桑網絡(Dan Ciresan Net)、網中網(network-in-network, NIN)模型、區域卷積神經網絡(regions with convolutional neural network features, RCNN)、空間金字塔池化網絡(spatial pyramid pooling-net, SPP-Net)、全卷積網絡(fully convolutional network, FCN)、循環神經網絡(recurrent neural network, RNN)、長短期記憶(long short-term memory, LSTM)網絡模型、多功能框架模型(Overfeat)、殘差網絡(residual networks, ResNet)、高效神經網絡(efficient neural network, ENet)模型以及壓縮網絡(SqueezeNet)模型。

2.2 基于結構的優化
CNN 在各個領域都有應用價值,其改進更是層出不窮,CNN 網絡結構包括輸入層、卷積層、下采樣層以及全連接層,由于各層的作用不同,本節分別總結每層的改進,結果如圖 2 所示。

(1)輸入層
輸入層作為 CNN 的首要層次,傳統方法是將所研究的對象統一輸入網絡中。而輸入層的改進有多模態輸入、多通道輸入、多尺度分塊輸入等 11 種方法,其主要改進目的是為了擴大數據集,增加訓練樣本量。例如:基于伽柏(Gabor)CNN 是利用不同尺度和不同方向的濾波器對圖像濾波處理,擴大數據集,再將濾波后的圖像與卷積核卷積,得到相應的梯度特征,最后將梯度特征輸入 CNN 識別[5]。
(2)卷積層
卷積核的本質是特征提取,每個卷積層都包含多個特征映射,每個特征映射又由多個神經元構成,通過卷積核對輸入圖像的特征進行卷積,從而達到特征提取的目的。本節總結了 10 種改進方法,如增加卷積層數、引入乘法層或加法層、變換步幅卷積層等。卷積層改進的目的往往希望獲得特點更突出的特征圖,如楊格蘭等[6]在視頻識別模型中擴展 CNN 的卷積層,使每一幀都能得到卷積處理,同時引入乘法層和加法層,分別計算兩個特征映射之間逐元素相乘和相加的值,使獲得的信息量更大。
(3)下采樣層
下采樣層是對上層的特征進行二次提取。將卷積層的輸出直接作為采樣層的輸入,下采樣則通過壓縮使特征圖變小,簡化網絡計算的復雜度。其改進主要有分段下采樣、多尺度下采樣、多類型動態池化等 7 種方法。分段 CNN 是對文本句子進行分段池化操作,為獲取不同結構的關鍵特征,將 CNN 分為若干段,對每段均取卷積向量的最大值,將這些最大值拼接為新向量,再對新向量進行非線性運算得到最終向量[7]。
(4)全連接層
全連接層是連接下采樣后的所有特征,上一層任何神經元與下一層所有神經元均連接,能達到訓練分類器、學習目標的全局特征的目的,主要有跨層全連接、引入費希爾(Fisher)準則、增加哈希層等 7 種改進方法。基于聯合層特征 CNN 構造了主網絡和輔網絡,主網絡進行卷積和池化,輔網絡主要是全連接,將主網絡中每個池化層的輸出作為輔網絡的輸入,從而增加分類層的訓練樣本[8]。
(5)整個網絡
傳統 CNN 模型的改進主要是對模型參數的調整,但也有些文獻是對整體結構的改進,如基于遞進的 CNN、AlexNet、支持向量機(support vector machine, SVM)及快速特征嵌入的卷積結構(convolutional architecture for fast feature embedding, Caffe)結合等 9 種改進方法,結合 AlexNet 模型及 SVM,在 Caffe 平臺上使用多層網絡結構可達到人臉表情特征的分類預測,王偉凝等[9]提出并行 CNN 模型,通過兩個通路分別輸入原圖像和亮度變換矩陣,每個單通路分別進行特征提取。
3 CNN 學習算法的改進
CNN 的優化不僅體現在網絡結構方面,學習算法上也很多,本節從兩個方面總結學習算法的改進:一是以提高準確率、防止過擬合、防止局部最值以及提高收斂速度等為目的,對算法的優化進行總結;二是根據 CNN 的網絡結構,總結其與算法的融合。
3.1 算法的優化
算法優化是為了提高 CNN 性能,本節以提高準確率、防止局部最值、提高收斂速度以及防止過擬合共 4 個目的,分別總結算法的優化,如圖 3 所示。

(1)提高準確率
準確率是評價 CNN 模型及算法優劣的重要指標,目前的算法主要有感興趣區域 K-鄰近(region of interest k-nearest neighbor, ROI-KNN)算法、帶有修正線性單元 (rectified linear unit, ReLU) 函數的 CNN 算法、超像素區域的 CNN 模型等。超像素是將圖像中一些具有相似特性的像素聚集為一個具有代表性的新元素,作為其他圖像處理算法的基本單位。超像素可降低圖像的維度,并且能夠剔除異常的像素點。劉占文等[10]構造了基于超輪廓圖中超像素區域的圖模型,提出層次檢測方法,獲取上層顯著圖的大尺度結構信息,并融合局部區域的細節和結構信息以提高識別率。
(2)防止過擬合
模型訓練時需要防止過擬合,提高泛化能力。基于這種目的,研究人員通過截斷迭代次數、數據集擴增、正則化方法、引入以某個概率刪減神經元等方法進行改善。其中以概率刪減神經元的主要思想是訓練 CNN,以概率 p 舍棄部分神經元,使其他神經元以概率 q = 1 ? p 保留下來,這種算法是通過使其他隱藏單元存在不可靠性來防止過擬合。鄔美銀等[11]在 CNN 的基本結構上引入正負例均衡化和自適應學習速率,對圖像塊進行局部對比歸一化后輸入 CNN,避免了因樣本分布不均導致分類準確率的下降,從而達到防止過擬合的目的。
(3)防止局部最值
一個算法的波動存在多個峰值時,計算機往往會陷入局部最優問題,為防止這種現象發生,很多啟發式算法應運而生,它們誕生于自然界現象的啟發,如布谷鳥搜索(cuckoo search, CS)算法,粒子群優化(particle swarm optimization, PSO)算法等,PSO 算法是模擬鳥群捕食行為的算法,每個優化問題的解都是一顆粒子,所有粒子都具有一個被優化函數決定的適應值,通過不斷更新粒子速度和位置,尋找整個區域最優粒子。陳耀丹等[12]提出一種基于 CNN 的人臉識別方法,通過批量梯度下降法和以一定概率刪減神經元的方法訓練特征提取器,從而防止局部最值問題。
(4)提高收斂速度
算法達到一定的迭代次數后,輸出值與真實值的差別穩定在閾值區間,此時算法就收斂了,速度是迭代次數的一個表征,通過提高收斂的速度,可以評價算法的優劣。改變訓練函數、優化初始權值等都可提高算法的收斂性。劉冶等[13]提出有監督快速圖像檢索哈希算法,將原始圖像作為哈希算法的輸入,并用哈希碼進行學習,得到了較好的收斂速度。
3.2 方法融合
單一 CNN 算法往往不能得到滿意的效果,研究人員常結合其他方法達到研究目的,在算法融合方面,CNN 可與許多方法結合,如分數階理論、主成分分析法、模擬退火粒子群算法等,本節根據 CNN 的結構特點總結融合方法,如圖 4 所示。

(1)輸入層
圖像在輸入 CNN 模型前通常要經過一系列處理,達到一定標準后,才運用 CNN 進行特征提取,處理方法有運動特征提取(3 種)、形變特征提取(10 種)、多尺度特征提取(3 種)以及其他特征提取方法(10 種)等。李寰宇等[14]提出易于初始化的類 CNN 視覺跟蹤算法,采用仿射變換處理原始圖像,并結合粒子濾波對分類實現跟蹤。Guan 等[15]引入顯著性探測方法,從大量信息中選擇感興趣區域作為先驗知識,利用主成分分析表達影像塊,使得 CNN 訓練時間減少。
(2)卷積層
卷積層的操作主要依賴于卷積核,因此很多學者對其改進,如分層進行主成分分析(principal component analysis, PCA)學習特征向量,改變卷積核大小,通過自編碼器訓練等,通過對卷積層的優化能夠提取出更具有代表性的特征圖。吳素雯等[16]用多個小卷積核代替大卷積核,結合搜索算法得到候選區域,用 Gabor 濾波器作為權值矩陣,以增強網絡泛化能力。
(3)下采樣層
下采樣層的改進通常是在傳統采樣,如均值采樣、隨機采樣、最大值采樣、均方采樣、歸一化采樣以及概率最大化采樣等基礎上,再從數學的角度進行改進。劉萬軍等[17]分析了傳統下采樣的不足,并提出一種動態自適應池化模型,根據特征圖和池化域內容的不同自適應地調整池化過程,從而提高 CNN 特征提取的準確度。
(4)全連接層
全連接層直接連接下采樣層,將學習到的分布式特征映射到樣本標記空間,起到分類器的作用,其改進方法有引入 L2 范數、改變激活函數以及采用流形排序等。張力等[8]提出聯合層特征的 CNN 模型,將不同層提取出來的特征聯合輸入到全連接層,多次訓練分類器,以提高分類識別的準確率。
(5)輸出層
輸出層直接輸出的數據并不是研究所需要的結果,往往還要對這些數據進行一定變換處理,如通過多分類器分類、運用極限學習機以及粒子濾波等。Huang 等[18]提出一種綜合方法以解決在訓練和測試條件之間的性能退化問題,通過在原來的 CNN 結構中添加一個或多個較小的輔助輸出層,從而使錯誤率降低。
4 CNN 在醫學圖像方面的應用
隨著 CNN 模型和學習算法的改進,其應用也逐漸多元化,比如可將 CNN 模型應用于醫學圖像領域。醫學圖像是以不同的灰度來反映器官或組織對射線的吸收程度,因此對醫學圖像的特征提取等操作相對較難。隨著計算機水平的提高,醫學影像的計算機輔助診斷技術也得到快速發展,目前 GoogLeNet、Resnet、U 型網絡、RCNN 等模型已經取得較好的識別結果,有些甚至逼近臨床醫師的工作水平[19]。
CNN 在醫學圖像分析方面的研究廣泛,包括圖像識別、分割、配準、重建、融合等,但其技術主要集中在圖像識別和圖像分割兩個方面。因此,本節從醫學圖像識別和分割兩個方面總結,以期為臨床醫護人員提供幫助。
4.1 醫學圖像識別
醫學圖像識別是醫學圖像處理的主要方面,通過圖像識別,可分辨人體組織器官中腫瘤的良惡性、檢測結節等。本節從 CNN 模型的改進和 CNN 與其他方法的結合兩個角度對醫學圖像識別方法進行總結,如圖 5 所示。

(1)CNN 模型改進
CNN 識別醫學圖像逐漸成為一種主流方法,目前單純采用 CNN 模型的方法較少,大多是基于模型的改進。相關學者為了增加醫學領域的數據集,通過 Gabor 變換、引入多通道等方法優化輸入層;在卷積層,采用增加卷積層數、使卷積核參數自適應于網絡、增加乘法或加法層等改進模型;在下采樣層,使用均值采樣、最大采樣、最小采樣、均方采樣等改進下采樣層;在全連接層,通過費希爾準則、角點回歸、跨連全連接等方法進行改進。在醫學領域中,CNN 模型的改進主要有:同層多尺度核 CNN、多輸入 CNN、多列 CNN 模型等。Shen 等[20]提出多通路 CNN 模型,利用多個通路分別提取多尺度醫學圖像信息,得到了較好的實驗效果;郝占龍等[21]提出同層多尺度卷積層 CNN,將傳統卷積核改為兩個并列卷積核,改進后的卷積大小不同,再將分別卷積的結果進行最大池化,得以有效分類單細胞圖像。
(2)CNN 與其他方法融合
除了對 CNN 本身的改進方法,還存在很多將 CNN 與其他方法相融合的識別方法。Gao 等[22]為解決計算機斷層掃描(computed tomography, CT)圖像歸類問題,將 CNN 與分類器結合,利用顱腦 CT 圖像數據進行測試,從而顯示出深度學習技術在分類任務中存在的價值;Mishra 等[23]提出基于 CNN 定量評估肝腫瘤細胞株的線粒體結構分離情況,該方法對健康組織和不同腫瘤細胞中的線粒體結構實現了較高的分類精度。
4.2 醫學圖像分割
CNN 在圖像分割中的應用是醫學圖像處理的另一領域,由于醫學圖像具有一定的復雜性,傳統的分割算法難以精確處理圖像,目前對醫學圖像分割主要采用 CNN 模型,如圖 6 所示。

醫學圖像分割是圖像分割領域的難題,由于其像素比較單一,病變的部位、界限、大小、形狀等信息較模糊,因此完成醫學圖像的精確分割往往需要與其他方法相結合,如 CNN 與增強算法結合對醫學圖像進行語義分割等。秦志光等[24]用拉普拉斯算法等處理腦部 CT 血管造影圖像,處理后與原圖像一起輸入多并行 CNN,通過線性回歸融合分割結果從而提取腦血管。
通過圖像與計算機技術相結合,能夠輔助臨床醫師發現病灶,并將其顯示分離出來,提高診斷的精確性。醫院本身具有收集和儲存大數據的能力,但是目前困擾研究型人員的仍是數據的獲取、標注以及醫學知識的轉化問題。Chen 等[25]提出的 CNN 診斷胸部疾病方法,通過匹配圖像間的相似點,擴大數據集,然后使用高斯尺度空間理論,采用擴大的數據集訓練 CNN 并進行診斷。
5 總結
CNN 在深度學習領域一直吸引研究人員的關注,本文從 CNN 的基本原理出發,詳細綜述了 CNN 在網絡結構和學習算法方面的研究進展。在網絡結構方面,本文以時間序列為軸,總結經典模型近 60 年的發展,以結構為基點,按層次分別總結模型的改進方法;在學習算法方面,分別以算法優化和算法融合為基點,按照優化目的總結其改進,根據 CNN 模型結構分層總結融合算法,并將 CNN 映射到醫學圖像領域,從醫學圖像識別和分割兩個方面總結 CNN 在醫學圖像中的應用,為臨床計算機輔助診斷提供參考。
引言
機器學習是人工智能(artificial intelligence, AI)領域發展最快,也是最體現智能的一個分支,以學習算法為研究基礎,通過提供先驗知識產生相應的模型,當提出新問題時,該模型會自動做出相應的判斷。其中的深度學習算法通過訓練樣本,得到具有多個層級的深度神經網絡結構,結合多重非線性變換及映射算法,可發現數據的分布特點[1]。目前廣泛應用的深度學習方法主要包括:限制玻爾茲曼機、卷積神經網絡(convolutional neural network, CNN)和堆棧自編碼器,其中 CNN 的應用最為廣泛。CNN 是一種基于感知器的模型結構,其優點在于可以直接輸入原始圖像,避免對圖像的過度預處理,同時還具有權值共享功能,降低了學習的復雜度。CNN 的網絡結構主要包括輸入層、卷積層、下采樣層、全連接層以及分類輸出層,而在隱藏層中,卷積層和下采樣層交替進行。
CNN 是深度學習中較為成熟的模型,相關的學術性研究相對較多,改進方法層出不窮。目前 CNN 的優化主要集中在模型和算法兩個方面,本文從這兩個方面對 CNN 的發展進行總結,首先歸納了 CNN 的經典模型,并以時間順序梳理其發展進程;其次從算法優化和融合兩個方面總結 CNN 在學習算法方面的進展;最后從醫學圖像識別和分割兩個角度介紹 CNN 在醫學圖像分析方面的應用現狀。本文梳理了 CNN 的發展進程,詳細概括了目前的改進方法,能夠使讀者清晰地了解當前 CNN 的發展現狀及趨勢,在一定程度上提供 CNN 優化的方向。
1 CNN 基本原理
CNN 是一種有監督的深度學習模型,包含卷積層和下采樣層兩種特殊的結構層,CNN 通過結合局部感受野、權值共享、時間或空間亞采樣來實現對輸入數據的位移變化、尺度變化、形狀變化等不變性。CNN 的隱藏層(卷積層和下采樣層)是特征提取的核心,在卷積層,每個神經元的輸入與前一層的局部感受野相連,并提取該局部的特征。卷積層的形式如式(1)所示:
![]() |
其中,I 表示層數,Mj 代表輸入層的感受野,b 表示偏置系數。在下采樣層,上層輸入的特征圖經過采樣后其個數不變,輸出的特征圖大小為原圖一半,下采樣層的形式如式(2)所示:
![]() |
其中,p(.) 為下采樣函數,β 為權重系數,b 為偏置系數。
2 CNN 網絡結構的改進
CNN 通過結構重組、減少權值等將特征提取融入多層感知器,是一種不同神經元和學習規則的組合,具有良好的容錯、并行處理和自我學習能力,且運行速度較快。本節從經典模型和結構優化兩個維度總結 CNN 在網絡結構方面的進展。
2.1 基于模型的改進
按照生物神經元的結構和工作原理,1943 年心理學家 McCulloch 和數學家 Pitts 提出一個簡化的麥卡洛克-皮茨(McCulloch-Pitts, M-P)神經元模型[2],該模型是神經網絡的基本元素,為以后 CNN 發展做出鋪墊。在基本神經元的基礎上勒奈網(LeNet)和勒奈 5(LeNet-5)模型誕生,這是 CNN 模型的開始,LeNet 和 LeNet-5 具備完備的模型結構,而亞歷克斯網(AlexNet)模型和谷歌網(GoogLeNet)模型通過不斷優化 CNN,成為 CNN 模型史上的里程碑。
如圖 1 所示,是將 CNN 模型的改進進程映射到二維空間的示意圖,橫軸以方法為指針綜述其改進,縱軸以時間順序探索其發展脈絡。縱觀 CNN 的發展,以 M-P 神經元模型為起點,以 LeNet 和 LeNet-5 模型[3]為發展,直到 2012 年 Krizhevsky 等[4]提出了 AlexNet 模型,成為歷史性突破點。本文對經典模型的發展進行總結,其中以 AlexNet 模型為基礎,總結了其在 4 個方向(加深網絡、加強卷積功能、從分類到檢測、新增模塊功能)的改進。
如圖 1 所示,圖中涉及的模型還有:可變形部件模型(deformable part model, DPM)、視覺幾何組(visual geometry group, VGG)模型、丹西雷桑網絡(Dan Ciresan Net)、網中網(network-in-network, NIN)模型、區域卷積神經網絡(regions with convolutional neural network features, RCNN)、空間金字塔池化網絡(spatial pyramid pooling-net, SPP-Net)、全卷積網絡(fully convolutional network, FCN)、循環神經網絡(recurrent neural network, RNN)、長短期記憶(long short-term memory, LSTM)網絡模型、多功能框架模型(Overfeat)、殘差網絡(residual networks, ResNet)、高效神經網絡(efficient neural network, ENet)模型以及壓縮網絡(SqueezeNet)模型。

2.2 基于結構的優化
CNN 在各個領域都有應用價值,其改進更是層出不窮,CNN 網絡結構包括輸入層、卷積層、下采樣層以及全連接層,由于各層的作用不同,本節分別總結每層的改進,結果如圖 2 所示。

(1)輸入層
輸入層作為 CNN 的首要層次,傳統方法是將所研究的對象統一輸入網絡中。而輸入層的改進有多模態輸入、多通道輸入、多尺度分塊輸入等 11 種方法,其主要改進目的是為了擴大數據集,增加訓練樣本量。例如:基于伽柏(Gabor)CNN 是利用不同尺度和不同方向的濾波器對圖像濾波處理,擴大數據集,再將濾波后的圖像與卷積核卷積,得到相應的梯度特征,最后將梯度特征輸入 CNN 識別[5]。
(2)卷積層
卷積核的本質是特征提取,每個卷積層都包含多個特征映射,每個特征映射又由多個神經元構成,通過卷積核對輸入圖像的特征進行卷積,從而達到特征提取的目的。本節總結了 10 種改進方法,如增加卷積層數、引入乘法層或加法層、變換步幅卷積層等。卷積層改進的目的往往希望獲得特點更突出的特征圖,如楊格蘭等[6]在視頻識別模型中擴展 CNN 的卷積層,使每一幀都能得到卷積處理,同時引入乘法層和加法層,分別計算兩個特征映射之間逐元素相乘和相加的值,使獲得的信息量更大。
(3)下采樣層
下采樣層是對上層的特征進行二次提取。將卷積層的輸出直接作為采樣層的輸入,下采樣則通過壓縮使特征圖變小,簡化網絡計算的復雜度。其改進主要有分段下采樣、多尺度下采樣、多類型動態池化等 7 種方法。分段 CNN 是對文本句子進行分段池化操作,為獲取不同結構的關鍵特征,將 CNN 分為若干段,對每段均取卷積向量的最大值,將這些最大值拼接為新向量,再對新向量進行非線性運算得到最終向量[7]。
(4)全連接層
全連接層是連接下采樣后的所有特征,上一層任何神經元與下一層所有神經元均連接,能達到訓練分類器、學習目標的全局特征的目的,主要有跨層全連接、引入費希爾(Fisher)準則、增加哈希層等 7 種改進方法。基于聯合層特征 CNN 構造了主網絡和輔網絡,主網絡進行卷積和池化,輔網絡主要是全連接,將主網絡中每個池化層的輸出作為輔網絡的輸入,從而增加分類層的訓練樣本[8]。
(5)整個網絡
傳統 CNN 模型的改進主要是對模型參數的調整,但也有些文獻是對整體結構的改進,如基于遞進的 CNN、AlexNet、支持向量機(support vector machine, SVM)及快速特征嵌入的卷積結構(convolutional architecture for fast feature embedding, Caffe)結合等 9 種改進方法,結合 AlexNet 模型及 SVM,在 Caffe 平臺上使用多層網絡結構可達到人臉表情特征的分類預測,王偉凝等[9]提出并行 CNN 模型,通過兩個通路分別輸入原圖像和亮度變換矩陣,每個單通路分別進行特征提取。
3 CNN 學習算法的改進
CNN 的優化不僅體現在網絡結構方面,學習算法上也很多,本節從兩個方面總結學習算法的改進:一是以提高準確率、防止過擬合、防止局部最值以及提高收斂速度等為目的,對算法的優化進行總結;二是根據 CNN 的網絡結構,總結其與算法的融合。
3.1 算法的優化
算法優化是為了提高 CNN 性能,本節以提高準確率、防止局部最值、提高收斂速度以及防止過擬合共 4 個目的,分別總結算法的優化,如圖 3 所示。

(1)提高準確率
準確率是評價 CNN 模型及算法優劣的重要指標,目前的算法主要有感興趣區域 K-鄰近(region of interest k-nearest neighbor, ROI-KNN)算法、帶有修正線性單元 (rectified linear unit, ReLU) 函數的 CNN 算法、超像素區域的 CNN 模型等。超像素是將圖像中一些具有相似特性的像素聚集為一個具有代表性的新元素,作為其他圖像處理算法的基本單位。超像素可降低圖像的維度,并且能夠剔除異常的像素點。劉占文等[10]構造了基于超輪廓圖中超像素區域的圖模型,提出層次檢測方法,獲取上層顯著圖的大尺度結構信息,并融合局部區域的細節和結構信息以提高識別率。
(2)防止過擬合
模型訓練時需要防止過擬合,提高泛化能力。基于這種目的,研究人員通過截斷迭代次數、數據集擴增、正則化方法、引入以某個概率刪減神經元等方法進行改善。其中以概率刪減神經元的主要思想是訓練 CNN,以概率 p 舍棄部分神經元,使其他神經元以概率 q = 1 ? p 保留下來,這種算法是通過使其他隱藏單元存在不可靠性來防止過擬合。鄔美銀等[11]在 CNN 的基本結構上引入正負例均衡化和自適應學習速率,對圖像塊進行局部對比歸一化后輸入 CNN,避免了因樣本分布不均導致分類準確率的下降,從而達到防止過擬合的目的。
(3)防止局部最值
一個算法的波動存在多個峰值時,計算機往往會陷入局部最優問題,為防止這種現象發生,很多啟發式算法應運而生,它們誕生于自然界現象的啟發,如布谷鳥搜索(cuckoo search, CS)算法,粒子群優化(particle swarm optimization, PSO)算法等,PSO 算法是模擬鳥群捕食行為的算法,每個優化問題的解都是一顆粒子,所有粒子都具有一個被優化函數決定的適應值,通過不斷更新粒子速度和位置,尋找整個區域最優粒子。陳耀丹等[12]提出一種基于 CNN 的人臉識別方法,通過批量梯度下降法和以一定概率刪減神經元的方法訓練特征提取器,從而防止局部最值問題。
(4)提高收斂速度
算法達到一定的迭代次數后,輸出值與真實值的差別穩定在閾值區間,此時算法就收斂了,速度是迭代次數的一個表征,通過提高收斂的速度,可以評價算法的優劣。改變訓練函數、優化初始權值等都可提高算法的收斂性。劉冶等[13]提出有監督快速圖像檢索哈希算法,將原始圖像作為哈希算法的輸入,并用哈希碼進行學習,得到了較好的收斂速度。
3.2 方法融合
單一 CNN 算法往往不能得到滿意的效果,研究人員常結合其他方法達到研究目的,在算法融合方面,CNN 可與許多方法結合,如分數階理論、主成分分析法、模擬退火粒子群算法等,本節根據 CNN 的結構特點總結融合方法,如圖 4 所示。

(1)輸入層
圖像在輸入 CNN 模型前通常要經過一系列處理,達到一定標準后,才運用 CNN 進行特征提取,處理方法有運動特征提取(3 種)、形變特征提取(10 種)、多尺度特征提取(3 種)以及其他特征提取方法(10 種)等。李寰宇等[14]提出易于初始化的類 CNN 視覺跟蹤算法,采用仿射變換處理原始圖像,并結合粒子濾波對分類實現跟蹤。Guan 等[15]引入顯著性探測方法,從大量信息中選擇感興趣區域作為先驗知識,利用主成分分析表達影像塊,使得 CNN 訓練時間減少。
(2)卷積層
卷積層的操作主要依賴于卷積核,因此很多學者對其改進,如分層進行主成分分析(principal component analysis, PCA)學習特征向量,改變卷積核大小,通過自編碼器訓練等,通過對卷積層的優化能夠提取出更具有代表性的特征圖。吳素雯等[16]用多個小卷積核代替大卷積核,結合搜索算法得到候選區域,用 Gabor 濾波器作為權值矩陣,以增強網絡泛化能力。
(3)下采樣層
下采樣層的改進通常是在傳統采樣,如均值采樣、隨機采樣、最大值采樣、均方采樣、歸一化采樣以及概率最大化采樣等基礎上,再從數學的角度進行改進。劉萬軍等[17]分析了傳統下采樣的不足,并提出一種動態自適應池化模型,根據特征圖和池化域內容的不同自適應地調整池化過程,從而提高 CNN 特征提取的準確度。
(4)全連接層
全連接層直接連接下采樣層,將學習到的分布式特征映射到樣本標記空間,起到分類器的作用,其改進方法有引入 L2 范數、改變激活函數以及采用流形排序等。張力等[8]提出聯合層特征的 CNN 模型,將不同層提取出來的特征聯合輸入到全連接層,多次訓練分類器,以提高分類識別的準確率。
(5)輸出層
輸出層直接輸出的數據并不是研究所需要的結果,往往還要對這些數據進行一定變換處理,如通過多分類器分類、運用極限學習機以及粒子濾波等。Huang 等[18]提出一種綜合方法以解決在訓練和測試條件之間的性能退化問題,通過在原來的 CNN 結構中添加一個或多個較小的輔助輸出層,從而使錯誤率降低。
4 CNN 在醫學圖像方面的應用
隨著 CNN 模型和學習算法的改進,其應用也逐漸多元化,比如可將 CNN 模型應用于醫學圖像領域。醫學圖像是以不同的灰度來反映器官或組織對射線的吸收程度,因此對醫學圖像的特征提取等操作相對較難。隨著計算機水平的提高,醫學影像的計算機輔助診斷技術也得到快速發展,目前 GoogLeNet、Resnet、U 型網絡、RCNN 等模型已經取得較好的識別結果,有些甚至逼近臨床醫師的工作水平[19]。
CNN 在醫學圖像分析方面的研究廣泛,包括圖像識別、分割、配準、重建、融合等,但其技術主要集中在圖像識別和圖像分割兩個方面。因此,本節從醫學圖像識別和分割兩個方面總結,以期為臨床醫護人員提供幫助。
4.1 醫學圖像識別
醫學圖像識別是醫學圖像處理的主要方面,通過圖像識別,可分辨人體組織器官中腫瘤的良惡性、檢測結節等。本節從 CNN 模型的改進和 CNN 與其他方法的結合兩個角度對醫學圖像識別方法進行總結,如圖 5 所示。

(1)CNN 模型改進
CNN 識別醫學圖像逐漸成為一種主流方法,目前單純采用 CNN 模型的方法較少,大多是基于模型的改進。相關學者為了增加醫學領域的數據集,通過 Gabor 變換、引入多通道等方法優化輸入層;在卷積層,采用增加卷積層數、使卷積核參數自適應于網絡、增加乘法或加法層等改進模型;在下采樣層,使用均值采樣、最大采樣、最小采樣、均方采樣等改進下采樣層;在全連接層,通過費希爾準則、角點回歸、跨連全連接等方法進行改進。在醫學領域中,CNN 模型的改進主要有:同層多尺度核 CNN、多輸入 CNN、多列 CNN 模型等。Shen 等[20]提出多通路 CNN 模型,利用多個通路分別提取多尺度醫學圖像信息,得到了較好的實驗效果;郝占龍等[21]提出同層多尺度卷積層 CNN,將傳統卷積核改為兩個并列卷積核,改進后的卷積大小不同,再將分別卷積的結果進行最大池化,得以有效分類單細胞圖像。
(2)CNN 與其他方法融合
除了對 CNN 本身的改進方法,還存在很多將 CNN 與其他方法相融合的識別方法。Gao 等[22]為解決計算機斷層掃描(computed tomography, CT)圖像歸類問題,將 CNN 與分類器結合,利用顱腦 CT 圖像數據進行測試,從而顯示出深度學習技術在分類任務中存在的價值;Mishra 等[23]提出基于 CNN 定量評估肝腫瘤細胞株的線粒體結構分離情況,該方法對健康組織和不同腫瘤細胞中的線粒體結構實現了較高的分類精度。
4.2 醫學圖像分割
CNN 在圖像分割中的應用是醫學圖像處理的另一領域,由于醫學圖像具有一定的復雜性,傳統的分割算法難以精確處理圖像,目前對醫學圖像分割主要采用 CNN 模型,如圖 6 所示。

醫學圖像分割是圖像分割領域的難題,由于其像素比較單一,病變的部位、界限、大小、形狀等信息較模糊,因此完成醫學圖像的精確分割往往需要與其他方法相結合,如 CNN 與增強算法結合對醫學圖像進行語義分割等。秦志光等[24]用拉普拉斯算法等處理腦部 CT 血管造影圖像,處理后與原圖像一起輸入多并行 CNN,通過線性回歸融合分割結果從而提取腦血管。
通過圖像與計算機技術相結合,能夠輔助臨床醫師發現病灶,并將其顯示分離出來,提高診斷的精確性。醫院本身具有收集和儲存大數據的能力,但是目前困擾研究型人員的仍是數據的獲取、標注以及醫學知識的轉化問題。Chen 等[25]提出的 CNN 診斷胸部疾病方法,通過匹配圖像間的相似點,擴大數據集,然后使用高斯尺度空間理論,采用擴大的數據集訓練 CNN 并進行診斷。
5 總結
CNN 在深度學習領域一直吸引研究人員的關注,本文從 CNN 的基本原理出發,詳細綜述了 CNN 在網絡結構和學習算法方面的研究進展。在網絡結構方面,本文以時間序列為軸,總結經典模型近 60 年的發展,以結構為基點,按層次分別總結模型的改進方法;在學習算法方面,分別以算法優化和算法融合為基點,按照優化目的總結其改進,根據 CNN 模型結構分層總結融合算法,并將 CNN 映射到醫學圖像領域,從醫學圖像識別和分割兩個方面總結 CNN 在醫學圖像中的應用,為臨床計算機輔助診斷提供參考。