❶ 如何通過人工神經網路實現圖像識別
人工神經網路(Artificial Neural Networks)(簡稱ANN)系統從20 世紀40 年代末誕生至今僅短短半個多世紀,但由於他具有信息的分布存儲、並行處理以及自學習能力等優點,已經在信息處理、模式識別、智能控制及系統建模等領域得到越來越廣泛的應用。尤其是基於誤差反向傳播(Error Back Propagation)演算法的多層前饋網路(Multiple-Layer Feedforward Network)(簡稱BP 網路),可以以任意精度逼近任意的連續函數,所以廣泛應用於非線性建模、函數逼近、模式分類等方面。
目標識別是模式識別領域的一項傳統的課題,這是因為目標識別不是一個孤立的問題,而是模式識別領域中大多數課題都會遇到的基本問題,並且在不同的課題中,由於具體的條件不同,解決的方法也不盡相同,因而目標識別的研究仍具有理論和實踐意義。這里討論的是將要識別的目標物體用成像頭(紅外或可見光等)攝入後形成的圖像信號序列送入計算機,用神經網路識別圖像的問題。
一、BP 神經網路
BP 網路是採用Widrow-Hoff 學習演算法和非線性可微轉移函數的多層網路。一個典型的BP 網路採用的是梯度下降演算法,也就是Widrow-Hoff 演算法所規定的。backpropagation 就是指的為非線性多層網路計算梯度的方法。一個典型的BP 網路結構如圖所示。
六、總結
從上述的試驗中已經可以看出,採用神經網路識別是切實可行的,給出的例子只是簡單的數字識別實驗,要想在網路模式下識別復雜的目標圖像則需要降低網路規模,增加識別能力,原理是一樣的。
❷ 圖像壓縮編碼論文
數字圖像壓縮技術的研究及進展
摘要:數字圖像壓縮技術對於數字圖像信息在網路上實現快速傳輸和實時處理具有重要的意義。本文介紹了當前幾種最為重要的圖像壓縮演算法:JPEG、JPEG2000、分形圖像壓縮和小波變換圖像壓縮,總結了它們的優缺點及發展前景。然後簡介了任意形狀可視對象編碼演算法的研究現狀,並指出此演算法是一種產生高壓縮比的圖像壓縮演算法。關鍵詞:JPEG;JPEG2000;分形圖像壓縮;小波變換;任意形狀可視對象編碼一 引 言 隨著多媒體技術和通訊技術的不斷發展,多媒體娛樂、信息高速公路等不斷對信息數據的存儲和傳輸提出了更高的要求,也給現有的有限帶寬以嚴峻的考驗,特別是具有龐大數據量的數字圖像通信,更難以傳輸和存儲,極大地制約了圖像通信的發展,因此圖像壓縮技術受到了越來越多的關注。圖像壓縮的目的就是把原來較大的圖像用盡量少的位元組表示和傳輸,並且要求復原圖像有較好的質量。利用圖像壓縮,可以減輕圖像存儲和傳輸的負擔,使圖像在網路上實現快速傳輸和實時處理。 圖像壓縮編碼技術可以追溯到1948年提出的電視信號數字化,到今天已經有50多年的歷史了[1]。在此期間出現了很多種圖像壓縮編碼方法,特別是到了80年代後期以後,由於小波變換理論,分形理論,人工神經網路理論,視覺模擬理論的建立,圖像壓縮技術得到了前所未有的發展,其中分形圖像壓縮和小波圖像壓縮是當前研究的熱點。本文對當前最為廣泛使用的圖像壓縮演算法進行綜述,討論了它們的優缺點以及發展前景。二 JPEG壓縮 負責開發靜止圖像壓縮標準的「聯合圖片專家組」(Joint Photographic Expert Group,簡稱JPEG),於1989年1月形成了基於自適應DCT的JPEG技術規范的第一個草案,其後多次修改,至1991年形成ISO10918國際標准草案,並在一年後成為國際標准,簡稱JPEG標准。1.JPEG壓縮原理及特點 JPEG演算法中首先對圖像進行分塊處理,一般分成互不重疊的 大小的塊,再對每一塊進行二維離散餘弦變換(DCT)。變換後的系數基本不相關,且系數矩陣的能量集中在低頻區,根據量化表進行量化,量化的結果保留了低頻部分的系數,去掉了高頻部分的系數。量化後的系數按zigzag掃描重新組織,然後進行哈夫曼編碼。JPEG的特點優點:(1)形成了國際標准;(2)具有中端和高端比特率上的良好圖像質量。缺點:(1)由於對圖像進行分塊,在高壓縮比時產生嚴重的方塊效應;(2)系數進行量化,是有損壓縮;(3)壓縮比不高,小於50。 JPEG壓縮圖像出現方塊效應的原因是:一般情況下圖像信號是高度非平穩的,很難用Gauss過程來刻畫,並且圖像中的一些突變結構例如邊緣信息遠比圖像平穩性重要,用餘弦基作圖像信號的非線性逼近其結果不是最優的。2. JPEG壓縮的研究狀況及其前景 針對JPEG在高壓縮比情況下,產生方塊效應,解壓圖像較差,近年來提出了不少改進方法,最有效的是下面的兩種方法:(1)DCT零樹編碼 DCT零樹編碼把 DCT塊中的系數組成log2N個子帶,然後用零樹編碼方案進行編碼。在相同壓縮比的情況下,其PSNR的值比 EZW高。但在高壓縮比的情況下,方塊效應仍是DCT零樹編碼的致命弱點。(2)層式DCT零樹編碼 此演算法對圖像作 的DCT變換,將低頻 塊集中起來,做 反DCT變換;對新得到的圖像做相同變換,如此下去,直到滿足要求為止。然後對層式DCT變換及零樹排列過的系數進行零樹編碼。 JPEG壓縮的一個最大問題就是在高壓縮比時產生嚴重的方塊效應,因此在今後的研究中,應重點解決 DCT變換產生的方塊效應,同時考慮與人眼視覺特性相結合進行壓縮。三 JEPG2000壓縮 JPEG2000是由ISO/IEC JTCISC29標准化小組負責制定的全新靜止圖像壓縮標准。一個最大改進是它採用小波變換代替了餘弦變換。2000年3月的東京會議,確定了彩色靜態圖像的新一代編碼方式—JPEG2000圖像壓縮標準的編碼演算法。1.JPEG2000壓縮原理及特點 JPEG2000編解碼系統的編碼器和解碼器的框圖如圖1所示。編碼過程主要分為以下幾個過程:預處理、核心處理和位流組織。預處理部分包括對圖像分片、直流電平(DC)位移和分量變換。核心處理部分由離散小波變換、量化和熵編碼組成。位流組織部分則包括區域劃分、碼塊、層和包的組織。 JPEG2000格式的圖像壓縮比,可在現在的JPEG基礎上再提高10%~30%,而且壓縮後的圖像顯得更加細膩平滑。對於目前的JPEG標准,在同一個壓縮碼流中不能同時提供有損和無損壓縮,而在JPEG2000系統中,通過選擇參數,能夠對圖像進行有損和無損壓縮。現在網路上的JPEG圖像下載時是按「塊」傳輸的,而JPEG2000格式的圖像支持漸進傳輸,這使用戶不必接收整個圖像的壓縮碼流。由於JPEG2000採用小波技術,可隨機獲取某些感興趣的圖像區域(ROI)的壓縮碼流,對壓縮的圖像數據進行傳輸、濾波等操作。2.JPEG2000壓縮的前景 JPEG2000標准適用於各種圖像的壓縮編碼。其應用領域將包括Internet、傳真、列印、遙感、移動通信、醫療、數字圖書館和電子商務等。JPEG2000圖像壓縮標准將成為21世紀的主流靜態圖像壓縮標准。四 小波變換圖像壓縮1.小波變換圖像壓縮原理小波變換用於圖像編碼的基本思想就是把圖像根據Mallat塔式快速小波變換演算法進行多解析度分解。其具體過程為:首先對圖像進行多級小波分解,然後對每層的小波系數進行量化,再對量化後的系數進行編碼。小波圖像壓縮是當前圖像壓縮的熱點之一,已經形成了基於小波變換的國際壓縮標准,如MPEG-4標准,及如上所述的JPEG2000標准 。2.小波變換圖像壓縮的發展現狀及前景 目前3個最高等級的小波圖像編碼分別是嵌入式小波零樹圖像編碼(EZW),分層樹中分配樣本圖像編碼(SPIHT)和可擴展圖像壓縮編碼(EBCOT)。(1)EZW編碼器 1993年,Shapiro引入了小波「零樹」的概念,通過定義POS、NEG、IZ和ZTR四種符號進行空間小波樹遞歸編碼,有效地剔除了對高頻系數的編碼,極大地提高了小波系數的編碼效率。此演算法採用漸進式量化和嵌入式編碼模式,演算法復雜度低。EZW演算法打破了信息處理領域長期篤信的准則:高效的壓縮編碼器必須通過高復雜度的演算法才能獲得,因此EZW編碼器在數據壓縮史上具有里程碑意義。(2)SPIHT編碼器 由Said和Pearlman提出的分層小波樹集合分割演算法(SPIHT)則利用空間樹分層分割方法,有效地減小了比特面上編碼符號集的規模。同EZW相比,SPIHT演算法構造了兩種不同類型的空間零樹,更好地利用了小波系數的幅值衰減規律。同EZW編碼器一樣,SPIHT編碼器的演算法復雜度低,產生的也是嵌入式比特流,但編碼器的性能較EZW有很大的提高。(3)EBCOT編碼器優化截斷點的嵌入塊編碼方法(EBCOT)首先將小波分解的每個子帶分成一個個相對獨立的碼塊,然後使用優化的分層截斷演算法對這些碼塊進行編碼,產生壓縮碼流,結果圖像的壓縮碼流不僅具有SNR可擴展而且具有解析度可擴展,還可以支持圖像的隨機存儲。比較而言,EBCOT演算法的復雜度較EZW和SPIHT有所提高,其壓縮性能比SPIHT略有提高。
小波圖像壓縮被認為是當前最有發展前途的圖像壓縮演算法之一。小波圖像壓縮的研究集中在對小波系數的編碼問題上。在以後的工作中,應充分考慮人眼視覺特性,進一步提高壓縮比,改善圖像質量。並且考慮將小波變換與其他壓縮方法相結合。例如與分形圖像壓縮相結合是當前的一個研究熱點。
五 分形圖像壓縮 1988年,Barnsley通過實驗證明分形圖像壓縮可以得到比經典圖像編碼技術高幾個數量級的壓縮比。1990年,Barnsley的學生A.E.Jacquin提出局部迭代函數系統理論後,使分形用於圖像壓縮在計算機上自動實現成為可能。1. 分形圖像壓縮的原理 分形壓縮主要利用自相似的特點,通過迭代函數系統(Iterated Function System, IFS)實現。其理論基礎是迭代函數系統定理和拼貼定理。 分形圖像壓縮把原始圖像分割成若干個子圖像,然後每一個子圖像對應一個迭代函數,子圖像以迭代函數存儲,迭代函數越簡單,壓縮比也就越大。同樣解碼時只要調出每一個子圖像對應的迭代函數反復迭代,就可以恢復出原來的子圖像,從而得到原始圖像。2.幾種主要分形圖像編碼技術 隨著分形圖像壓縮技術的發展,越來越多的演算法被提出,基於分形的不同特徵,可以分成以下幾種主要的分形圖像編碼方法。(1)尺碼編碼方法 尺碼編碼方法是基於分形幾何中利用小尺度度量不規則曲線長度的方法,類似於傳統的亞取樣和內插方法,其主要不同之處在於尺度編碼方法中引入了分形的思想,尺度 隨著圖像各個組成部分復雜性的不同而改變。(2)迭代函數系統方法 迭代函數系統方法是目前研究最多、應用最廣泛的一種分形壓縮技術,它是一種人機交互的拼貼技術,它基於自然界圖像中普遍存在的整體和局部自相關的特點,尋找這種自相關映射關系的表達式,即仿射變換,並通過存儲比原圖像數據量小的仿射系數,來達到壓縮的目的。如果尋得的仿射變換簡單而有效,那麼迭代函數系統就可以達到極高的壓縮比。(3)A-E-Jacquin的分形方案 A-E-Jacquin的分形方案是一種全自動的基於塊的分形圖像壓縮方案,它也是一個尋找映射關系的過程,但尋找的對象域是將圖像分割成塊之後的局部與局部的關系。在此方案中還有一部分冗餘度可以去除,而且其解碼圖像中存在著明顯的方塊效應。3.分形圖像壓縮的前景 雖然分形圖像壓縮在圖像壓縮領域還不佔主導地位,但是分形圖像壓縮既考慮局部與局部,又考慮局部與整體的相關性,適合於自相似或自仿射的圖像壓縮,而自然界中存在大量的自相似或自仿射的幾何形狀,因此它的適用范圍很廣。六 其它壓縮演算法 除了以上幾種常用的圖像壓縮方法以外,還有:NNT(數論變換)壓縮、基於神經網路的壓縮方法、Hibert掃描圖像壓縮方法、自適應多相子帶壓縮方法等,在此不作贅述。下面簡單介紹近年來任意形狀紋理編碼的幾種演算法[10]~ [13]。(1)形狀自適應DCT(SA-DCT)演算法 SA-DCT把一個任意形狀可視對象分成 的圖像塊,對每塊進行DCT變換,它實現了一個類似於形狀自適應Gilge DCT[10][11]變換的有效變換,但它比Gilge DCT變換的復雜度要低。可是,SA-DCT也有缺點,它把像素推到與矩形邊框的一個側邊相平齊,因此一些空域相關性可能丟失,這樣再進行列DCT變換,就有較大的失真了[11][14][15]。(2)Egger方法 Egger等人[16][17]提出了一個應用於任意形狀對象的小波變換方案。在此方案中,首先將可視對象的行像素推到與邊界框的右邊界相平齊的位置,然後對每行的有用像素進行小波變換,接下來再進行另一方向的小波變換。此方案,充分利用了小波變換的局域特性。然而這一方案也有它的問題,例如可能引起重要的高頻部分同邊界部分合並,不能保證分布系數彼此之間有正確的相同相位,以及可能引起第二個方向小波分解的不連續等。(3)形狀自適應離散小波變換(SA-DWT) Li等人提出了一種新穎的任意形狀對象編碼,SA-DWT編碼[18]~[22]。這項技術包括SA-DWT和零樹熵編碼的擴展(ZTE),以及嵌入式小波編碼(EZW)。SA-DWT的特點是:經過SA-DWT之後的系數個數,同原任意形狀可視對象的像素個數相同;小波變換的空域相關性、區域屬性以及子帶之間的自相似性,在SA-DWT中都能很好表現出來;對於矩形區域,SA-DWT與傳統的小波變換一樣。SA-DWT編碼技術的實現已經被新的多媒體編碼標准MPEG-4的對於任意形狀靜態紋理的編碼所採用。 在今後的工作中,可以充分地利用人類視覺系統對圖像邊緣部分較敏感的特性,嘗試將圖像中感興趣的對象分割出來,對其邊緣部分、內部紋理部分和對象之外的背景部分按不同的壓縮比進行壓縮,這樣可以使壓縮圖像達到更大的壓縮比,更加便於傳輸。七 總結 圖像壓縮技術研究了幾十年,取得了很大的成績,但還有許多不足,值得我們進一步研究。小波圖像壓縮和分形圖像壓縮是當前研究的熱點,但二者也有各自的缺點,在今後工作中,應與人眼視覺特性相結合。總之,圖像壓縮是一個非常有發展前途的研究領域,這一領域的突破對於我們的信息生活和通信事業的發展具有深遠的影響。
參考文獻:[1] 田青. 圖像壓縮技術[J]. 警察技術, 2002, (1):30-31.[2] 張海燕, 王東木等. 圖像壓縮技術[J]. 系統模擬學報, 2002, 14(7):831-835.[3] 張宗平, 劉貴忠. 基於小波的視頻圖像壓縮研究進展[J]. 電子學報, 2002, 30(6):883-889.
[4] 周寧, 湯曉軍, 徐維朴. JPEG2000圖像壓縮標准及其關鍵演算法[J]. 現代電子技術, 2002, (12):1-5.[5] 吳永輝, 俞建新. JPEG2000圖像壓縮演算法概述及網路應用前景[J]. 計算機工程, 2003, 29(3):7-10.[6] J M Shaprio. Embedded image coding using zerotree of wavelet coefficients[J]. IEEE Trans. on Signal Processing, 1993, 41(12): 3445-3462.[7] A Said, W A Pearlman. A new fast and efficient image codec based on set partitioning in hierarchical trees[J]. IEEE Trans. on Circuits and Systems for Video Tech. 1996, 6(3): 243-250.[8] D Taubman. High performance scalable image compression with EBCOT[J]. IEEE Transactions on Image Processing, 2000, 9(7): 1158–1170.[9] 徐林靜, 孟利民, 朱建軍. 小波與分行在圖像壓縮中的比較及應用. 中國有線電視, 2003, 03/04:26-29.[10] M Gilge, T Engelhardt, R Mehlan. Coding of arbitrarily shaped image segments based on a generalized orthogonal transform[J]. Signal Processing: Image Commun., 1989, 1(10): 153–180.[11] T Sikora, B Makai. Shape-adaptive DCT for generic coding of video[J]. IEEE Trans. Circuits Syst. Video Technol., 1995, 5(1): 59–62.[12] T Sikora, S Bauer, B Makai. Efficiency of shape-adaptive 2-D transforms for coding of arbitrarily shaped image segments[J]. IEEE Trans. Circuits Syst. Video Technol., 1995, 5(3): 254–258.[13]鄧家先 康耀紅 編著 《資訊理論與編碼》
❸ 卷積神經網路為什麼適合圖像處理
神經網路的本質就在於做信息形式的變換,而要想做數據的處理,首要解決的問題就是如何將數據張量化,問題就在於卷積神經網路要處理的數據必須是向量形式,對於圖像這種數據類型來說,如果將其展開成一維的向量,且不說得到向量的維數過高,網路太深導致網路中參數太多,圖像中的空間信息也會丟失。
而卷積神經網路能夠用卷積的方式從原信息中提取"部分特定的信息(信息跟卷積核相關)",且對於二維的圖像來說是原生支持的(不需要處理),這就保留了圖像中的空間信息,而空間信息是具有可平移性質的.。
並且卷積神經網路的參數就只是卷積核的參數以及偏置(Bias),而卷積核的參數可以做到共享,卷積核也可以用多個,從多個角度對原圖像解讀。
這就是卷積神經網路的幾個特點:局部感知,參數共享,多核,平移不變性正是因為這些特點,在圖像領域處理上,卷積神經網路取代了人工神經網路。
卷積神經網路 (CNN) 是當今最流行的模型之一。這種神經網路計算模型使用多層感知器的變體,並包含一個或多個可以完全連接或池化的卷積層。這些卷積層創建了記錄圖像區域的特徵圖,該區域最終被分成矩形並發送出去進行非線性處理。
優點:
圖像識別問題的非常高的准確性。自動檢測重要特徵,無需任何人工監督。權重共享。
缺點:
CNN 不對物體的位置和方向進行編碼。缺乏對輸入數據空間不變的能力。需要大量的訓練數據。
❹ 神經網路的關鍵是什麼
神經網路的關鍵是什麼
相對於傳統的線性和非線性方法,為什麼神經網路會如此強大?
當你有一個線性模型,每一個功能要麼對你有幫助,要麼對你有傷害,這種假設是線性模型中固有的。因此線性模型要麼功能異常強大,用類1表示;要麼則毫無用處,用類2表示。所有的解決方案,要麼導致該功能獲得巨大的價值;要麼價值變得微不足道。你永遠不會有這么一個狀態說,在這個區間,該功能就是代表類1;但是在另一個區間,它代表類2。
線性和非線性方法局限性很大。也就是說,如果你分析圖片,舉個例子,尋找狗狗的照片,它很可能會進入到一個特定的子集裡面,比如只顯示有一隻狗的照片,或是顯示某一像素和其他類型的圖片。在線性模式裡面,你無法確定復雜的關系集。相比於線性模型,非線性模型可能會顯得更強大一些,但是這種模式同樣難以訓練。我們會再一次進入到所謂最優化理論的問題之中,這也是我們在很長一段時間里認為神經網路還不是足夠好的原因之一,因為他們會「過擬合」,通俗的說,就是太過強大。我們無法做預測,也無法確保最優化方案。或許,這可能就是為什麼神經網路從當下暫時消失的原因吧。
在神經網路理論中,機器學習有很多分支和方法,你能總結一些關鍵方法嗎?
到目前為止,最成功的方法是監督學習方法,它使用了一個比較老的演算法,稱為反向傳播,構建了一個擁有許多不同輸出的神經網路。
讓我們看下一個神經網路構建,這個網路已經非常流行了,叫做卷積神經網路。這個理念是機器學習研究人員構建了一個多層架構的模型,每一層都可以用不同的方法處理之前一層的連接。
在第一層,你有一個窗口,上面會給圖像分配權值,它也變成了該層的輸入。由於權值「卷積」,該層也被稱為卷積層,它會自我重疊。接著後面會有若干個不同類型的層,每層都有不同的屬性,絕大多數都是非線性的。
最後一層會有1萬個潛在神經元輸入,那些激活的神經輸出,每一個都對應了一個特殊的標簽,可以用來識別圖像。第一類可能是一隻貓,第二類可能是一輛車,以此推到所有一萬個類,這樣一張「圖像網」就出來了。如果第一個神經元(一隻貓)與1萬個神經元中絕大多數都匹配,那麼這張圖像就能被識別出來,是一張貓的圖像。
這種監督學習方法的缺點是,在訓練的時候,你必須要在圖像上應用標簽,這是一輛車,這是一個動物園等。
沒錯,那麼無監督學習方法呢?
無監督學習方法還不是那麼受歡迎,它涉及到「自編碼器」。這種神經網路不會用來分類圖像,但是可以壓縮圖像。同我剛才提及的方法來讀取圖像,識別一個權值,並在一個卷積層內用像素填滿。其他若干層也這樣,包括相比於其它層小的多的中間層。這樣做的話,相關的神經元會變得很少,基本上,你讀取圖像時會進入到一個瓶頸,之後從另一邊走出來,並嘗試重新構建該圖像。
在無監督學習訓練下,不需要打標簽,因為你所做的就是把圖像放入到神經網路的兩端,然後訓練網路適應圖像,特別是訓練中間層。一旦你這么做了,那麼就擁有了一個知道如何壓縮圖像的神經網路。無監督學習方法可以給你提供能應用在其他分類器的功能,因此如果你有哪怕一點點標簽訓練數據,沒問題,它一樣可以為你提供大量圖像。你可以把這些圖像看做是無標簽訓練數據,並使用這些圖像構建一個「自編輯器」,然後從這個自編輯器中導出一些功能,這些功能適合使用一些訓練數據,以此找到對特殊模型敏感的自動編碼神經網路中的神經元。
❺ 卷積神經網路CNN在圖像識別問題應用綜述(20191219)
這兩天在公司做PM實習,主要是自學一些CV的知識,以了解產品在解決一些在圖像識別、圖像搜索方面的問題,學習的主要方式是在知網檢索了6.7篇國內近3年計算機視覺和物體識別的碩博士論文。由於時間關系,後面還會繼續更新圖片相似度計算(以圖搜圖)等方面的學習成果
將這兩天的學習成果在這里總結一下。你將會看到計算機視覺在解決特定物體識別問題(主要是卷積神經網路CNNs)的基礎過程和原理,但這里不會深入到技術的實現層面。
計算機視覺(Computer vision)是一門研究如何使機器「看」的科學,更進一步的說,就是指用攝影機和計算機代替人眼對目標進行識別、跟蹤和測量等機器視覺,並進一步做圖像處理,用計算機處理成為更適合人眼觀察或傳送給儀器檢測的圖像。
————維基網路
通常而言,計算機視覺的研究包括三個層次:
(1)底層特徵的研究:
這一層次的研究主要聚焦如何高效提取出圖像對象具有判別性能的特徵,具體的研究內容通常包括:物體識別、字元識別等
(2)中層語義特徵的研究:
該層次的研究在於在識別出對象的基礎上,對其位置、邊緣等信息能夠准確區分。現在比較熱門的:圖像分割;語義分割;場景標注等,都屬於該領域的范疇
(3)高層語義理解:
這一層次建立在前兩層的基礎上,其核心在於「理解」一詞。 目標在於對復雜圖像中的各個對象完成語義級別的理解。這一層次的研究常常應用於:場景識別、圖像摘要生成及圖像語義回答等。
而我研究的問題主要隸屬於底層特徵和中層語義特徵研究中的物體識別和場景標注問題。
人類的視覺工作模式是這樣的:
首先,我們大腦中的神經元接收到大量的信息微粒,但我們的大腦還並不能處理它們。
於是接著神經元與神經元之間交互將大量的微粒信息整合成一條又一條的線。
接著,無數條線又整合成一個個輪廓。
最後多個輪廓累加終於聚合我們現在眼前看到的樣子。
計算機科學受到神經科學的啟發,也採用了類似的工作方式。具體而言,圖像識別問題一般都遵循下面幾個流程
(1)獲取底層信息。獲取充分且清潔的高質量數據往往是圖像識別工作能否成功的關鍵所在
(2)數據預處理工作,在圖像識別領域主要包括四個方面的技術:去噪處理(提升信噪比)、圖像增強和圖像修復(主要針對不夠清晰或有破損缺失的圖像);歸一化處理(一方面是為了減少開銷、提高演算法的性能,另一方面則是為了能成功使用深度學習等演算法,這類演算法必須使用歸一化數據)。
(3)特徵提取,這一點是該領域的核心,也是本文的核心。圖像識別的基礎是能夠提取出足夠高質量,能體現圖像獨特性和區分度的特徵。
過去在10年代之前我們主要還是更多的使用傳統的人工特徵提取方法,如PCALCA等來提取一些人工設計的特徵,主要的方法有(HOG、LBP以及十分著名的SIFT演算法)。但是這些方法普遍存在(a)一般基於圖像的一些提層特徵信息(如色彩、紋理等)難以表達復雜的圖像高層語義,故泛化能力普遍比較弱。(b)這些方法一般都針對特定領域的特定應用設計,泛化能力和遷移的能力大多比較弱。
另外一種思路是使用BP方法,但是畢竟BP方法是一個全連接的神經網路。這以為這我們非常容易發生過擬合問題(每個元素都要負責底層的所有參數),另外也不能根據樣本對訓練過程進行優化,實在是費時又費力。
因此,一些研究者開始嘗試把諸如神經網路、深度學習等方法運用到特徵提取的過程中,以十幾年前深度學習方法在業界最重要的比賽ImageNet中第一次戰勝了SIFT演算法為分界線,由於其使用權重共享和特徵降采樣,充分利用了數據的特徵。幾乎每次比賽的冠軍和主流都被深度學習演算法及其各自改進型所佔領。其中,目前使用較多又最為主流的是CNN演算法,在第四部分主要也研究CNN方法的機理。
上圖是一個簡易的神經網路,只有一層隱含層,而且是全連接的(如圖,上一層的每個節點都要對下一層的每個節點負責。)具體神經元與神經元的作用過程可見下圖。
在諸多傳統的神經網路中,BP演算法可能是性能最好、應用最廣泛的演算法之一了。其核心思想是:導入訓練樣本、計算期望值和實際值之間的差值,不斷地調整權重,使得誤差減少的規定值的范圍內。其具體過程如下圖:
一般來說,機器學習又分成淺層學習和深度學習。傳統的機器學習演算法,如SVM、貝葉斯、神經網路等都屬於淺層模型,其特點是只有一個隱含層。邏輯簡單易懂、但是其存在理論上缺乏深度、訓練時間較長、參數很大程度上依賴經驗和運氣等問題。
如果是有多個隱含層的多層神經網路(一般定義為大於5層),那麼我們將把這個模型稱為深度學習,其往往也和分層訓練配套使用。這也是目前AI最火的領域之一了。如果是淺層模型的問題在於對一個復雜函數的表示能力不夠,特別是在復雜問題分類情況上容易出現分類不足的弊端,深度網路的優勢則在於其多層的架構可以分層表示邏輯,這樣就可以用簡單的方法表示出復雜的問題,一個簡單的例子是:
如果我們想計算sin(cos(log(exp(x)))),
那麼深度學習則可分層表示為exp(x)—>log(x)—>cos(x)—>sin(x)
圖像識別問題是物體識別的一個子問題,其魯棒性往往是解決該類問題一個非常重要的指標,該指標是指分類結果對於傳入數據中的一些轉化和扭曲具有保持不變的特性。這些轉化和扭曲具體主要包括了:
(1)噪音(2)尺度變化(3)旋轉(4)光線變化(5)位移
該部分具體的內容,想要快速理解原理的話推薦看[知乎相關文章] ( https://www.hu.com/search?type=content&q=CNN ),
特別是其中有些高贊回答中都有很多動圖和動畫,非常有助於理解。
但核心而言,CNN的核心優勢在於 共享權重 以及 感受野 ,減少了網路的參數,實現了更快的訓練速度和同樣預測結果下更少的訓練樣本,而且相對於人工方法,一般使用深度學習實現的CNN演算法使用無監督學習,其也不需要手工提取特徵。
CNN演算法的過程給我的感覺,個人很像一個「擦玻璃」的過程。其技術主要包括了三個特性:局部感知、權重共享和池化。
CNN中的神經元主要分成了兩種:
(a)用於特徵提取的S元,它們一起組成了卷積層,用於對於圖片中的每一個特徵首先局部感知。其又包含很關鍵的閾值參數(控制輸出對輸入的反映敏感度)和感受野參數(決定了從輸入層中提取多大的空間進行輸入,可以簡單理解為擦玻璃的抹布有多大)
(b)抗形變的C元,它們一起組成了池化層,也被稱為欠采樣或下采樣。主要用於特徵降維,壓縮數據和參數的數量,減小過擬合,同時提高模型的容錯性。
(c*)激活函數,及卷積層輸出的結果要經過一次激勵函數才會映射到池化層中,主要的激活函數有Sigmoid函數、Tanh函數、ReLU、Leaky ReLU、ELU、Maxout等。
也許你會抱有疑問,CNN演算法和傳統的BP演算法等究竟有什麼區別呢。這就會引出區域感受野的概念。在前面我們提到,一個全連接中,較高一層的每個神經元要對低層的每一個神經元負責,從而導致了過擬合和維度災難的問題。但是有了區域感受野和,每個神經元只需要記錄一個小區域,而高層會把這些信息綜合起來,從而解決了全連接的問題。
了解區域感受野後,你也許會想,區域感受野的底層神經元具體是怎麼聚合信息映射到上一層的神經元呢,這就要提到重要的卷積核的概念。這個過程非常像上面曾提到的「神經元與神經元的聯系」一圖,下面給大家一個很直觀的理解。
上面的這個過程就被稱為一個卷積核。在實際應用中,單特徵不足以被系統學習分類,因此我們往往會使用多個濾波器,每個濾波器對應1個卷積核,也對應了一個不同的特徵。比如:我們現在有一個人臉識別應用,我們使用一個卷積核提取出眼睛的特徵,然後使用另一個卷積核提取出鼻子的特徵,再用一個卷積核提取出嘴巴的特徵,最後高層把這些信息聚合起來,就形成了分辨一個人與另一個人不同的判斷特徵。
現在我們已經有了區域感受野,也已經了解了卷積核的概念。但你會發現在實際應用中還是有問題:
給一個100 100的參數空間,假設我們的感受野大小是10 10,那麼一共有squar(1000-10+1)個,即10的六次方個感受野。每個感受野中就有100個參數特徵,及時每個感受野只對應一個卷積核,那麼空間內也會有10的八次方個次數,,更何況我們常常使用很多個卷積核。巨大的參數要求我們還需要進一步減少權重參數,這就引出了權重共享的概念。
用一句話概括就是,對同一個特徵圖,每個感受野的卷積核是一樣的,如這樣操作後上例只需要100個參數。
池化是CNN技術的最後一個特性,其基本思想是: 一塊區域有用的圖像特徵,在另一塊相似的區域中很可能仍然有用。即我們通過卷積得到了大量的邊緣EDGE數據,但往往相鄰的邊緣具有相似的特性,就好像我們已經得到了一個強邊緣,再擁有大量相似的次邊緣特徵其實是沒有太大增量價值的,因為這樣會使得系統里充斥大量冗餘信息消耗計算資源。 具體而言,池化層把語義上相似的特徵合並起來,通過池化操作減少卷積層輸出的特徵向量,減少了參數,緩解了過擬合問題。常見的池化操作主要包括3種:
分別是最大值池化(保留了圖像的紋理特徵)、均值池化(保留了圖像的整體特徵)和隨機值池化。該技術的弊端是容易過快減小數據尺寸,目前趨勢是用其他方法代替池化的作用,比如膠囊網路推薦採用動態路由來代替傳統池化方法,原因是池化會帶來一定程度上表徵的位移不變性,傳統觀點認為這是一個優勢,但是膠囊網路的作者Hinton et al.認為圖像中位置信息是應該保留的有價值信息,利用特別的聚類評分演算法和動態路由的方式可以學習到更高級且靈活的表徵,有望沖破目前卷積網路構架的瓶頸。
CNN總體來說是一種結構,其包含了多種網路模型結構,數目繁多的的網路模型結構決定了數據擬合能力和泛化能力的差異。其中的復雜性對用戶的技術能力有較高的要求。此外,CNN仍然沒有很好的解決過擬合問題和計算速度較慢的問題。
該部分的核心參考文獻:
《深度學習在圖像識別中的應用研究綜述》鄭遠攀,李廣陽,李曄.[J].計算機工程與應用,2019,55(12):20-36.
深度學習技術在計算機圖像識別方面的領域應用研究是目前以及可預見的未來的主流趨勢,在這里首先對深度學習的基本概念作一簡介,其次對深度學習常用的結構模型進行概述說明,主要簡述了深度信念網路(DBN)、卷積神經網路(CNN)、循環神經網路(RNN)、生成式對抗網路(GAN)、膠囊網路(CapsNet)以及對各個深度模型的改進模型做一對比分析。
深度學習按照學習架構可分為生成架構、判別架構及混合架構。
其生成架構模型主要包括:
受限波爾茲曼機、自編碼器、深層信念網路等。判別架構模型主要包括:深層前饋網路、卷積神經網路等。混合架構模型則是這兩種架構的集合。深度學習按數據是否具有標簽可分為非監督學習與監督學習。非監督學習方法主要包括:受限玻爾茲曼機、自動編碼器、深層信念網路、深層玻爾茲曼機等。
監督學習方法主要包括:深層感知器、深層前饋網路、卷積神經網路、深層堆疊網路、循環神經網路等。大量實驗研究表明,監督學習與非監督學習之間無明確的界限,如:深度信念網路在訓練過程中既用到監督學習方法又涉及非監督學習方法。
[1]周彬. 多視圖視覺檢測關鍵技術及其應用研究[D].浙江大學,2019.
[2]鄭遠攀,李廣陽,李曄.深度學習在圖像識別中的應用研究綜述[J].計算機工程與應用,2019,55(12):20-36.
[3]逄淑超. 深度學習在計算機視覺領域的若干關鍵技術研究[D].吉林大學,2017.
[4]段萌. 基於卷積神經網路的圖像識別方法研究[D].鄭州大學,2017.
[5]李彥冬. 基於卷積神經網路的計算機視覺關鍵技術研究[D].電子科技大學,2017.
[6]李衛. 深度學習在圖像識別中的研究及應用[D].武漢理工大學,2014.
[7]許可. 卷積神經網路在圖像識別上的應用的研究[D].浙江大學,2012.
[8]CSDN、知乎、機器之心、維基網路
❻ bp神經網路 圖像壓縮
籠統的說,遇到這種情況,你可以調整隱含層神經元的個數或增加隱含層數。不過應該具體情況具體分析,如果方便的話,請你將你的程序貼出來,我可以幫你分析一下。謝謝。
❼ 請問一下如何用BP神經網路來實現bmp真彩色圖像壓縮演算法的編程
請問一下如何用BP神經網路來實現bmp真彩色圖像壓縮演算法的編程
❽ 手機上運行的深度神經網路模型-MobileNet
文章引用自《 從MobileNet看輕量級神經網路的發展 》,詳情請點擊原文觀看
前 言
隨著深度學習的火熱,計算機視覺領域內的卷積神經網路模型也層出不窮。從1998年的LeNet,到2012年引爆深度學習熱潮的AlexNet,再到後來2014年的VGG,2015年的ResNet,深度學習網路模型在圖像處理中應用的效果越來越好。神經網路體積越來越大,結構越來越復雜,預測和訓練需要的硬體資源也逐步增多,往往只能在高算力的伺服器中運行深度學習神經網路模型。移動設備因硬體資源和算力的限制,很難運行復雜的深度學習網路模型。
深度學習領域內也在努力促使神經網路向小型化發展。在保證模型准確率的同時體積更小,速度更快。到了2016年直至現在,業內提出了SqueezeNet、ShuffleNet、NasNet、MnasNet以及MobileNet等輕量級網路模型。這些模型使移動終端、嵌入式設備運行神經網路模型成為可能。而MobileNet在輕量級神經網路中較具代表性。
谷歌在2019年5月份推出了最新的MobileNetV3。新版MobileNet使用了更多新特性,使得MobileNet非常具有研究和分析意義,本文將對MobileNet進行詳細解析。
MobileNet的優勢
MobileNet網路擁有更小的體積,更少的計算量,更高的精度。在輕量級神經網路中擁有極大的優勢。
1
更小的體積
MobileNet相比經典的大型網路,參數量明顯更少,參數量越少模型體積越小。
2
更少的計算量
MobileNet優化網路結構使模型計算量成倍下降。
3
更高的准確率
MobileNet憑借網路結構優化,在更少的參數及更少的計算量情況下,網路精度反而超過了部分大型神經網路。在最新的MobileNetV3-Large中,實現ImageNet數據集Top1准確率達到75.2%。
4
更快的速度
使用Google Pixel-1手機測試,MobileNet各版本都能保持運行時間在120ms以下,最新版MobileNetV3-Large運行時間達到66ms,參數量和計算量更低的MobileNetV3-Small更是能達到22ms;GoogleNet運行速度約為250ms,而VGG-16由於一次性需要載入至內存的空間已超過500MB,手機系統會報內存溢出錯誤導致無法運行。
5
多種應用場景
MobileNet可以在移動終端實現眾多的應用,包括目標檢測,目標分類,人臉屬性識別和人臉識別等。
MobileNet各版本介紹
1
MobileNetV1網路結構
整個網路不算平均池化層與softmax層,共28層;
在整個網路結構中步長為2的卷積較有特點,卷積的同時充當下采樣的功能;
第一層之後的26層都為深度可分離卷積的重復卷積操作;
每一個卷積層(含常規卷積、深度卷積、逐點卷積)之後都緊跟著批規范化和ReLU激活函數;
最後一層全連接層不使用激活函數。
2
MobileNetV2網路結構
MobileNetV2中主要引入線性瓶頸結構和反向殘差結構。
MobileNetV2網路模型中有共有17個Bottleneck層(每個Bottleneck包含兩個逐點卷積層和一個深度卷積層),一個標准卷積層(conv),兩個逐點卷積層(pw conv),共計有54層可訓練參數層。MobileNetV2中使用線性瓶頸(Linear Bottleneck)和反向殘差(Inverted Resials)結構優化了網路,使得網路層次更深了,但是模型體積更小,速度更快了。
3
MobileNetV3網路結構
MobileNetV3分為Large和Small兩個版本,Large版本適用於計算和存儲性能較高的平台,Small版本適用於硬體性能較低的平台。
Large版本共有15個bottleneck層,一個標准卷積層,三個逐點卷積層。
Small版本共有12個bottleneck層,一個標准卷積層,兩個逐點卷積層。
MobileNetV3中引入了5×5大小的深度卷積代替部分3×3的深度卷積。引入Squeeze-and-excitation(SE)模塊和h-swish(HS)激活函數以提高模型精度。結尾兩層逐點卷積不使用批規范化(Batch Norm),MobileNetV3結構圖中使用NBN標識。
(圖片來源https://arxiv.org/pdf/1905.02244.pdf)
網路結構上相對於MobileNetV2的結尾部分做了優化,去除三個高階層,如上圖所示。去除後減少了計算量和參數量,但是模型的精度並沒有損失。
值得一提的是,不論是Large還是Small版本,都是使用神經架構搜索(NAS)技術生成的網路結構。
4
MobileNet各版本特性
MobileNet實現計算量減小、參數量減少的同時保證了較高的准確率,這和其擁有的特性息息相關:
MobileNetV1提出的特性
MobileNetV2提出的特性
MobileNetV3提出的特性
MobileNet各個版本擁有的特性匯總
下文將對上表中的各個特性詳細闡述。
MobileNet的特性詳解
1
深度可分離卷積
從MobileNetV1開始,到V2、V3的線性瓶頸結構都大量使用了深度可分離卷積。
深度可分離卷積(Depthwise Separable Convolution)是一種卷積結構。它是由一層深度卷積(Depthwise convolution)與一層逐點卷積(Pointwise Convolution)組合而成的,每一層卷積之後都緊跟著批規范化和ReLU激活函數。跟標准卷積的區別就是精度基本不變的情況下,參數與計算量都明顯減少。
深度卷積
深度卷積(Depthwise convolution, DW)不同於常規卷積操作,深度卷積中一個卷積核只有一維,負責一個通道,一個通道只被一個卷積核卷積;常規卷積每個卷積核的維度與輸入維度相同,每個通道單獨做卷積運算後相加。
以一張5x5x3(長和寬為5,RGB3通道)的彩色圖片舉例。每層深度卷積卷積核的數量與上一層的通道數相同(通道和卷積核一一對應)。設padding=1,stride=1,一個三通道的圖像經過運算後生成了3個特徵圖,如下圖所示:
深度卷積完成後的輸出特徵圖通道數與輸入層的通道數相同,無法擴展通道數。而且這種運算對輸入層的每個通道獨立進行卷積運算,沒有有效的利用不同通道在相同空間位置上的特徵信息。因此需要逐點卷積來將生成的特徵圖進行組合生成新的特徵圖。
逐點卷積
逐點卷積(Pointwise Convolution, PW)的運算與標准卷積運算非常相似。
逐點卷積卷積核大小為1×1xM(M為輸入數據的維度),每次卷積一個像素的區域。逐點卷積運算會將上一層的特徵圖在深度方向上進行加權組合,生成新的特徵圖,新的特徵圖的大小與輸入數據大小一致;然後組合各通道的特徵圖,以較少的計算量進行降維或升維操作(改變輸出數據的維度)。
以一張5x5x3(長和寬為5,RGB3通道)的彩色圖片舉例,使用4個1x1x3的逐點卷積核進行卷積,逐點卷積運算後生成了4個特徵圖。這個例子是使用逐點卷積進行升維的操作,特徵圖從5x5x3 升維到5x5x4。如下圖所示:
深度可分離卷積結構解析
將深度卷積和逐點卷積組成深度可分離卷積後的示意圖,如下圖所示:
首先進行深度卷積操作,得出的特徵圖各通道之間是不關聯的。接著進行逐點卷積把深度卷積輸出的特徵圖各通道關聯起來。
深度可分離卷積使用了更小的空間代價(參數減少)和更少的時間代價(計算量更少)實現了標准卷積層一樣的效果(提取特徵)。
一般的設Df為輸入特徵圖邊長,Dk為卷積核邊長,特徵圖和卷積核均為長寬一致,輸入通道數為M,輸出通道數為N,則:
標准卷積計算量為:Df×Df×Dk×Dk×M×N
深度卷積的計算量為:Df×Df×Dk×Dk×M
逐點卷積的計算量為:Df×Df×M×N
上圖所示實現輸入特徵圖大小為5×5×3,輸出特成圖大小為5×5×4,設padding=1,stride=1,深度卷積卷積核大小為3×3,標准卷積也使用3×3尺寸卷積核。實現相同的卷積效果,參數量(不包含偏置)與計算量對比如下表所示:
深度可分離卷積的演變
事實上深度可分離卷積不是在MobileNetV1中第一次提出的,而是在2016年由谷歌的Xception網路結構中提出的。MobileNetV1在Xception的基礎上,對深度可分離卷積進行了改進,做到了計算量與參數量的下降:
假定M為輸入層的通道數,N為輸出層的通道數。
Xcenption的深度可分離卷積是由輸入參數開始,使用1x1xMxN卷積將輸入層的通道數轉換為目標通道數,再通過3x3x1卷積核對每個通道進行卷積,每次卷積過後使用ReLU進行激活。
MobileNetV1的深度可分離卷積則是先使用3x3x1xM對輸入層的每個通道分別卷積,之後通過1x1xMxN將輸入層通道數轉換為輸出層通道數,每次卷積過後做一次批規范化操作,再使用ReLU進行激活。
這里我們使用MobileNetV1網路結構的第一個深度可分離卷積層來舉例,輸入層維度為112x112x32,輸出層維度為112x112x64,Xception與MobileNet的深度可分離卷積的計算量與參數個數對比如下表:
由此可知將PW卷積與DW卷積的順序調整後,優化了網路的空間復雜度和時間復雜度。
2
寬度因子
MobileNet本身的網路結構已經比較小並且執行延遲較低,但為了適配更定製化的場景,MobileNet提供了稱為寬度因子(Width Multiplier)的超參數給我們調整。寬度因子在MobileNetV1、V2、V3都可以運用。
通過寬度因子,可以調整神經網路中間產生的特徵的大小,調整的是特徵數據通道數大小,從而調整了運算量的大小。
寬度因子簡單來說就是新網路中每一個模塊要使用的卷積核數量相較於標準的MobileNet比例。對於深度卷積結合1x1方式的卷積核,計算量為:
算式中α即為寬度因子,α常用的配置為1,0.75,0.5,0.25;當α等於1時就是標準的MobileNet。通過參數α可以非常有效的將計算量和參數數量約減到α的平方倍。
下圖為MobileNetV1使用不同α系數進行網路參數的調整時,在ImageNet上的准確率、計算量、參數數量之間的關系(每一個項中最前面的數字表示α的取值)。
(數據來源https://arxiv.org/pdf/1704.04861.pdf)
可以看到當輸入解析度固定為224x224時,隨著寬度因子的減少,模型的計算量和參數越來越小。從上表可以看到, 0.25 MobileNet的正確率比標准版1.0MobileNet低20%,但計算量和參數量幾乎只有標准版1.0MobileNet計算量、參數量的10%!對於計算資源和存儲資源都十分緊張的移動端平台,可以通過α寬度因子調節網路的餐數量是非常實用的,在真正使用時我們可以按需調整α寬度因子達到准確率與性能的平衡。
3
解析度因子
MobileNet還提供了另一個超參數解析度因子(Resolution Multiplier)供我們自定義網路結構,解析度因子同樣在MobileNetV1、V2、V3都可以運用。
解析度因子一般用β來指代,β的取值范圍在(0,1]之間,是作用於每一個模塊輸入尺寸的約減因子,簡單來說就是將輸入數據以及由此在每一個模塊產生的特徵圖都變小了,結合寬度因子α,深度卷積結合1x1方式的卷積核計算量為:
下圖為MobileNetV1使用不同的β系數作用於標准MobileNet時,在ImageNet上對精度和計算量的影響(α固定1.0)
(數據來源https://arxiv.org/pdf/1704.04861.pdf)
上圖中的 224、192、160、128 對應的解析度因子分別為 1、 6/7、5/7、4/7。
β=1時,輸入圖片的解析度為224x224,卷積後的圖像大小變化為: 224x224 、112x112、56x56、28x28、14x14、7x7。
β= 6/7時,輸入圖片的解析度為192x192,卷積後各層特徵圖像大小變化為:192x192、96x96、48x48、24x24、12x12、6x6。
卷積特徵圖像的大小變化不會引起參數量的變化,只改變模型M-Adds計算量。上圖中 224解析度模型測試ImageNet數據集准確率為70.6%,192解析度的模型准確率為69.1%,但是M-Adds計算量減少了151M,對移動平台計算資源緊張的情況下,同樣可以通過β解析度因子調節網路輸入特徵圖的解析度,做模型精度與計算量的取捨。
4
規范化
深度學習中的規范化操作(Normalization),有助於加快基於梯度下降法或隨機梯度下降法模型的收斂速度,提升模型的精度,規范化的參數能夠提升模型泛化能力,提高模型的可壓縮性。
按照規范化操作涉及對象的不同可以分為兩大類,一類是對輸入值進行規范化操作,比如批規范化(Batch Normalization)、層規范化(Layer Normalization)、實例規范化(Instance Normalization)、組規范化(Group Normalization)方法都屬於這一類。另外一類是對神經網路中參數進行規范化操作,比如使用L0,L1范數。
批規范化
批規范化(Batch Normalization)幾乎存在於MobileNetV1、V2、V3的每個卷積層的後面,目的是加快訓練收斂速度,提升准確率。
批規范化是一種對數值的特殊函數變換方法,也就是說假設原始的某個數值是 x,套上一個起到規范化作用的函數,對規范化之前的數值 x 進行轉換,形成一個規范化後的數值,即:
所謂規范化,是希望轉換後的數值滿足一定的特性,至於對數值具體如何變換,跟規范化目標有關,不同的規范化目標導致具體方法中函數所採用的形式不同。通過自適應的重新參數化的方法,克服神經網路層數加深導致模型難以訓練的問題。
參數規范化
參數規范化(Weight Normalization, WN)是規范化的一種, 通過人為的設定稀疏演算法,去除模型中多餘的參數(置為0)使得模型參數稀疏化,可以通過L1範式實現。
參數規范化是防止模型過分擬合訓練數據。當訓練一批樣本的時候,隨著訓練的推移模型會越來越趨向於擬合樣本數據。因為參數太多,會導致模型復雜度上升,容易過擬合。
需要保證模型"簡單"的基礎上最小化訓練誤差,這樣得到的參數才具有好的泛化性能(也就是測試誤差也小),而模型"簡單"就是通過規則函數來實現的。
如上圖所示,左側分類明顯的是欠擬合,模型並沒有能夠擬合數據。中間圖示為合適的擬合,右邊圖示是過擬合,模型在訓練樣本中擬合度是很好的,但是卻違背了特徵分類規律,在新的測試樣本中表現糟糕,影響模型的泛化能力。顯然右側模型在訓練是受到額外參數干擾。參數規則化能夠使參數稀疏,減少額外參數的干擾,提高泛化能力。
模型擁有稀疏的參數(模型中有大量參數為0),也有利於通過壓縮演算法壓縮模型的大小。
5
線性瓶頸
線性瓶頸英文為Linear Bottleneck,是從Bottleneck結構演變而來的,被用於MobileNetV2與V3。
Bottleneck結構首次被提出是在ResNet網路中。該結構第一層使用逐點卷積,第二層使用3×3大小卷積核進行深度卷積,第三層再使用逐點卷積。MobileNet中的瓶頸結構最後一層逐點卷積使用的激活函數是Linear,所以稱其為線性瓶頸結構(Linear Bottleneck)。線性瓶頸結構有兩種,第一種是步長為1時使用殘差結構,第二種是步長為2時不使用殘差結構。
其中輸入通道數為M,擴大倍數系數為T。T的值為大於0 的正數,當 0<T<1時,第一層逐點卷積起到的作用是降維。當 1<T時,第一層逐點卷積起到的作用是升維。
第二層為深度卷積,輸入通道數 = 輸出通道數 = M×T。
第三層為逐點卷積,作用是關聯深度卷積後的特徵圖並輸出指定通道數N。
線性瓶頸結構相對標准卷積能夠減少參數數量,減少卷積計算量。從空間和時間上優化了網路。
6
反向殘差
MobileNetV2中以ResNet的殘差(Resials)結構為基礎進行優化,提出了反向殘差(Inverted Resials)的概念,之後也同樣運用與MobileNetV3中。
ResNet中提出的殘差結構解決訓練中隨著網路深度增加而出現的梯度消失問題,使反向傳播過程中深度網路的淺層網路也能得到梯度,使淺層網路的參數也可訓練,從而增加特徵表達能力。
ResNet的殘差結構實際是在線性瓶頸結構的基礎上增加殘差傳播。如下圖所示:
ResNet中的殘差結構使用第一層逐點卷積降維,後使用深度卷積,再使用逐點卷積升維。
MobileNetV2版本中的殘差結構使用第一層逐點卷積升維並使用Relu6激活函數代替Relu,之後使用深度卷積,同樣使用Relu6激活函數,再使用逐點卷積降維,降維後使用Linear激活函數。這樣的卷積操作方式更有利於移動端使用(有利於減少參數與M-Adds計算量),因維度升降方式與ResNet中的殘差結構剛好相反,MobileNetV2將其稱之為反向殘差(Inverted Resials)。
7
5x5 的深度卷積
MobileNetV3中,深度卷積大量使用5x5大小的卷積核。這是因為使用神經結構搜索(NAS)技術計算出的MobileNetV3網路結構的過程中,發現了在深度卷積中使用5x5大小的卷積核比使用3x3大小的卷積核效果更好,准確率更高。關於NAS技術將會在下文的單獨章節中做介紹。
8
Squeeze-and-excitation 模塊
Squeeze-and-Excitation模塊(簡稱SE模塊)的首次提出是在2017年的Squeeze-and-Excitation Networks(SENet)網路結構中,在MNasNet中進行了改進,之後在MobileNetV3中大量使用。研究人員期望通過精確的建模卷積特徵各個通道之間的作用關系來改善網路模型的表達能力。為了達到這個期望,提出了一種能夠讓網路模型對特徵進行校準的機制,使得有效的權重大,無效或效果小的權重小的效果,這就是SE模塊。
(圖片來源https://arxiv.org/pdf/1905.02244.pdf)
如上圖,MobileNetV3的SE模塊被運用在線性瓶頸結構最後一層上,代替V2中最後的逐點卷積,改為先進行SE操作再逐點卷積。這樣保持了網路結構每層的輸入和輸出,僅在中間做處理,類似於軟體開發中的鉤子。
SE模塊結構詳解
下圖表示一個SE 模塊。主要包含Squeeze和Excitation兩部分。W,H表示特徵圖寬,高。C表示通道數,輸入特徵圖大小為W×H×C。
壓縮(Squeeze)
第一步是壓縮(Squeeze)操作,如下圖所示
這個操作就是一個全局平均池化(global average pooling)。經過壓縮操作後特徵圖被壓縮為1×1×C向量。
激勵(Excitation)
接下來就是激勵(Excitation)操作,如下圖所示
由兩個全連接層組成,其中SERatio是一個縮放參數,這個參數的目的是為了減少通道個數從而降低計算量。
第一個全連接層有C*SERatio個神經元,輸入為1×1×C,輸出1×1×C×SERadio。
第二個全連接層有C個神經元,輸入為1×1×C×SERadio,輸出為1×1×C。
scale操作
最後是scale操作,在得到1×1×C向量之後,就可以對原來的特徵圖進行scale操作了。很簡單,就是通道權重相乘,原有特徵向量為W×H×C,將SE模塊計算出來的各通道權重值分別和原特徵圖對應通道的二維矩陣相乘,得出的結果輸出。
這里我們可以得出SE模塊的屬性:
參數量 = 2×C×C×SERatio
計算量 = 2×C×C×SERatio
總體來講SE模塊會增加網路的總參數量,總計算量,因為使用的是全連接層計算量相比卷積層並不大,但是參數量會有明顯上升,所以MobileNetV3-Large中的總參數量比MobileNetV2多了2M。
MobileNetV3中的SE模塊
SE模塊的使用是很靈活的,可以在已有網路上添加而不打亂網路原有的主體結構。
ResNet中添加SE模塊形成SE-ResNet網路,SE模塊是在bottleneck結構之後加入的,如下圖左邊所示。
MobileNetV3版本中SE模塊加在了bottleneck結構的內部,在深度卷積後增加SE塊,scale操作後再做逐點卷積,如上圖右邊所示。MobileNetV3版本的SERadio系數為0.25。使用SE模塊後的MobileNetV3的參數量相比MobileNetV2多了約2M,達到5.4M,但是MobileNetV3的精度得到了很大的提升,在圖像分類和目標檢測中准確率都有明顯提升。
9
h-swish激活函數
MobileNetV3中發現swish激活函數能夠有效提高網路的精度,但是swish的計算量太大了,並不適合輕量級神經網路。MobileNetV3找到了類似swish激活函數但是計算量卻少很多的替代激活函數h-swish(hard version of swish)如下所示:
sigmoid、h-sigmoid、swish、h-swish激活函數的比較:
(圖片來源https://arxiv.org/pdf/1905.02244.pdf)
這種非線性在保持精度的情況下帶來了很多優勢,首先ReLU6在眾多軟硬體框架中都可以實現,其次量化時避免了數值精度的損失,運行快。這一非線性改變將模型的延時增加了15%。但它帶來的網路效應對於精度和延時具有正向促進,剩下的開銷可以通過融合非線性與先前層來消除。
❾ 圖像壓縮編碼中常用哪些數學方法
RLE(Run Length Encoding)壓縮演算法,又稱行程編碼。
哈夫曼編碼。
LZW壓縮演算法。
DiscreteCosineTransform(DCT,離散餘弦變換)屬於變換編碼。
分形。
小波變換。
人工神經網路。
5,6,7屬於較新的方法,這些演算法詳細的可以看一下相關的文獻!
❿ 求助,幫忙下載CSDN代碼!
已下載
BP神經網路實現圖像壓縮.zip