網(wǎng)絡(luò)(CNN)核心原理:從特征提取到醫(yī)學(xué)圖像分割實戰(zhàn))
1. 從“看”到“理解”為什么我們需要卷積神經(jīng)網(wǎng)絡(luò)如果你在十年前問我計算機(jī)如何“看懂”一張圖片我可能會跟你扯一大堆關(guān)于邊緣檢測、顏色直方圖、SIFT特征點的復(fù)雜算法。但今天任何一個接觸過深度學(xué)習(xí)的人都會脫口而出用CNN。CNN也就是卷積神經(jīng)網(wǎng)絡(luò)已經(jīng)徹底改變了機(jī)器“視覺”的范式。它不再是我們手動設(shè)計規(guī)則去告訴計算機(jī)“什么是貓”而是讓計算機(jī)自己從海量的圖片中學(xué)習(xí)到“貓”這個概念應(yīng)該由哪些像素組合模式來定義。這背后的驅(qū)動力源于一個根本性的難題圖像數(shù)據(jù)的“維度災(zāi)難”與“平移不變性”。一張100x100像素的彩色圖片如果直接拉平成一個向量輸入傳統(tǒng)的全連接神經(jīng)網(wǎng)絡(luò)ANN意味著輸入層就有100100330,000個神經(jīng)元。這會導(dǎo)致兩個致命問題第一參數(shù)量爆炸假設(shè)下一層有1000個神經(jīng)元僅這一層就需要3000萬個參數(shù)訓(xùn)練幾乎不可能第二它完全破壞了圖像的二維空間結(jié)構(gòu)一個在左上角的貓耳朵和一個在右下角的貓耳朵對網(wǎng)絡(luò)來說是完全不同的特征網(wǎng)絡(luò)需要為每個位置都重新學(xué)習(xí)一遍“耳朵”是什么效率極低且無法處理物體位置的變化。CNN的誕生正是為了解決這兩個核心痛點。它通過“卷積”這一核心操作實現(xiàn)了參數(shù)共享和局部連接讓網(wǎng)絡(luò)能夠以極少的參數(shù)量高效地提取圖像中無論出現(xiàn)在何處的相同特征。你可以把它想象成一個拿著小放大鏡卷積核的偵探在整張圖片上系統(tǒng)地滑動尋找特定的局部模式如邊緣、紋理、角點然后將這些局部模式組合成更高級的抽象概念如眼睛、鼻子、車輪最終識別出完整的物體。從AlexNet在2012年ImageNet競賽中一鳴驚人到后來VGG、GoogLeNet、ResNet的不斷演進(jìn)CNN不僅在圖像分類上達(dá)到了超越人類的水平更滲透到了目標(biāo)檢測YOLO, Faster R-CNN、語義分割U-Net、圖像生成GAN等幾乎所有計算機(jī)視覺任務(wù)中。甚至它的思想還被遷移到了自然語言處理文本卷積、生物信息學(xué)蛋白質(zhì)結(jié)構(gòu)預(yù)測等領(lǐng)域。理解CNN不僅是進(jìn)入深度學(xué)習(xí)的敲門磚更是掌握現(xiàn)代人工智能核心思想的一把鑰匙。2. 卷積核CNN的“特征探測器”是如何工作的要理解CNN必須首先吃透“卷積”這個操作。很多初學(xué)者會被數(shù)學(xué)公式嚇退其實它的物理意義非常直觀。我們暫時忘掉復(fù)雜的積分在圖像處理的語境下卷積就是一個濾波器Filter或卷積核Kernel在輸入圖像上滑動并進(jìn)行局部加權(quán)求和的過程。想象你有一張灰度圖片一個二維數(shù)字矩陣和一個3x3的小矩陣卷積核。把這個3x3的小窗口扣在圖片的左上角3x3區(qū)域上將對應(yīng)位置的像素值與小窗口里即卷積核的數(shù)值相乘然后把9個乘積全部加起來得到一個數(shù)字。這個數(shù)字就是輸出特征圖Feature Map在左上角第一個位置的值。接著把這個小窗口向右滑動一個像素步長Stride1重復(fù)同樣的乘加操作得到第二個值。如此這般滑過整張圖片你就得到了一個新的、通常尺寸會變小的矩陣這就是卷積后的輸出。那么這個卷積核里的數(shù)值代表什么呢它代表了這個濾波器想要檢測的特定局部模式。我舉個例子一個經(jīng)典的邊緣檢測卷積核可能是這樣的[-1, 0, 1] [-2, 0, 2] [-1, 0, 1]這個核稱為Sobel算子對水平方向的亮度變化非常敏感。當(dāng)它滑過一個從左到右由暗變亮的邊緣區(qū)域時左側(cè)的負(fù)權(quán)重乘以暗像素右側(cè)的正權(quán)重乘以亮像素乘積求和會得到一個很大的正數(shù)表明這里檢測到了一個強(qiáng)烈的右邊緣。如果滑過一片亮度均勻的區(qū)域正負(fù)抵消輸出接近0。所以這個卷積核的輸出特征圖實際上是一張“邊緣強(qiáng)度圖”。在CNN中我們并不手動設(shè)計這些卷積核如Sobel、Prewitt。相反我們隨機(jī)初始化一大堆這樣的小矩陣比如64個3x3的核作為網(wǎng)絡(luò)的參數(shù)。在訓(xùn)練過程中通過反向傳播和梯度下降網(wǎng)絡(luò)會自動學(xué)習(xí)到哪些局部模式可能是各種角度的邊緣、不同頻率的紋理、特定顏色的斑點對最終的分類任務(wù)有幫助并相應(yīng)地調(diào)整這些卷積核里的數(shù)值。第一層卷積學(xué)到的往往是類似Gabor濾波器的簡單邊緣和紋理檢測器更深層的卷積則會將底層的邊緣組合成更復(fù)雜的模式比如車輪的圓形、眼睛的橢圓形等。這里有一個關(guān)鍵的計算細(xì)節(jié)通道Channel。對于彩色RGB圖像輸入是3個通道的矩陣高x寬x3。此時我們的卷積核也必須具有對應(yīng)的深度。一個用于處理RGB圖像的卷積核其尺寸是[高度 寬度 輸入通道數(shù)]例如3x3x3。卷積操作時卷積核在每一個通道上獨立進(jìn)行二維卷積然后將三個通道的結(jié)果相加再加上一個偏置Bias才得到輸出特征圖的一個點。一個卷積層通常有多個這樣的卷積核比如64個每個核獨立產(chǎn)生一張二維的特征圖64個核就輸出64張?zhí)卣鲌D堆疊起來就是新的、深度為64的特征張量。注意卷積核的權(quán)重是共享的。同一個3x3x3的核在圖像的所有位置進(jìn)行滑動計算時使用的都是同一套9個參數(shù)。這就是“參數(shù)共享”它極大地減少了參數(shù)量并賦予了CNN平移不變性——無論貓耳朵出現(xiàn)在圖片的哪個角落都由同一個“耳朵檢測器”去發(fā)現(xiàn)它。3. 從特征提取到分類決策CNN的經(jīng)典層結(jié)構(gòu)剖析一個典型的CNN架構(gòu)并非只有卷積層。它是由幾種不同類型的層精心堆疊而成的流水線每一層都有其明確的分工。下面我們以經(jīng)典的VGG16網(wǎng)絡(luò)為例拆解這個流水線的每一個環(huán)節(jié)。3.1 卷積層核心特征提取引擎如上節(jié)所述卷積層是網(wǎng)絡(luò)的骨干。在VGG中大量使用了3x3的小卷積核。為什么是3x3兩個3x3的卷積層堆疊其感受野Receptive Field即輸出一個像素點所能“看到”的輸入圖像區(qū)域大小相當(dāng)于一個5x5的卷積層但參數(shù)量更少2*(33C^2) vs 55C^2當(dāng)C較大時優(yōu)勢明顯并且中間多了一層非線性激活使得模型的表達(dá)能力更強(qiáng)。卷積層之后必定會緊跟一個非線性激活函數(shù)最經(jīng)典的就是ReLU。它的作用是引入非線性讓網(wǎng)絡(luò)能夠擬合復(fù)雜的函數(shù)。沒有它再多層的線性變換堆疊起來也還是一個線性變換無法解決復(fù)雜問題。3.2 池化層降維與空間不變性的關(guān)鍵池化層通常緊跟在卷積激活之后。它的目的非常直接降采樣壓縮數(shù)據(jù)和參數(shù)數(shù)量同時保持特征的不變性。最常見的池化是最大池化。一個2x2的窗口步長為2滑過特征圖每次只保留窗口內(nèi)4個數(shù)值中最大的那個。這個過程會丟棄75%的激活值將特征圖的高和寬縮小一半。這樣做的好處有三點第一顯著減少后續(xù)層的計算量和參數(shù)量。第二擴(kuò)大感受野。經(jīng)過池化后下一層卷積的一個點對應(yīng)池化前更大的一片區(qū)域有助于網(wǎng)絡(luò)整合更大范圍的上下文信息。第三也是最重要的它提供了一定程度的平移、旋轉(zhuǎn)和尺度不變性。因為池化操作只保留最顯著的特征最大值即使目標(biāo)物體在圖像中輕微移動只要這個最強(qiáng)激活值還在同一個池化窗口內(nèi)輸出就不會改變。這模擬了人類視覺系統(tǒng)對物體位置不敏感的特性。3.3 全連接層從特征空間到?jīng)Q策空間經(jīng)過數(shù)輪“卷積-激活-池化”的循環(huán)我們得到了一組高度抽象但空間尺寸很小的特征圖例如VGG16最后是7x7x512。在進(jìn)入最終的分類器之前需要將這些三維的特征圖“拍平”成一個一維的長向量7751225088維然后輸入到一個或幾個全連接層中。全連接層的作用可以理解為“特征加權(quán)投票委員會”。它將前面提取的所有局部、抽象的特征進(jìn)行全局性的綜合與權(quán)衡。最后一個全連接層的神經(jīng)元數(shù)量通常等于分類的類別數(shù)如ImageNet是1000類每個神經(jīng)元輸出一個分?jǐn)?shù)代表輸入圖片屬于該類別的“證據(jù)”強(qiáng)弱。這個過程是將高維特征空間映射到?jīng)Q策空間類別分?jǐn)?shù)。然而全連接層參數(shù)量巨大25088 - 4096的全連接層就有超過1億個參數(shù)容易過擬合并且破壞了空間結(jié)構(gòu)。因此在現(xiàn)代架構(gòu)如ResNet、GoogLeNet中全局平均池化逐漸取代了末端的全連接層。全局平均池化是對最后一層特征圖的每個通道直接取平均值得到一個通道數(shù)長度的向量再送入分類層。這大大減少了參數(shù)并強(qiáng)制特征圖與類別之間建立更直接的聯(lián)系有一定正則化效果。3.4 輸出層與損失函數(shù)給出最終答案最后一個全連接層的輸出通過一個Softmax函數(shù)將各類別的分?jǐn)?shù)轉(zhuǎn)換為概率分布所有類別概率之和為1。網(wǎng)絡(luò)預(yù)測的類別就是概率最高的那個。訓(xùn)練時我們使用交叉熵?fù)p失函數(shù)來衡量網(wǎng)絡(luò)預(yù)測的概率分布與真實標(biāo)簽one-hot編碼之間的差距并通過反向傳播將這個誤差信號逐層傳遞回去指導(dǎo)卷積核和全連接層權(quán)重的更新。4. 超越基礎(chǔ)現(xiàn)代CNN的核心演進(jìn)與變體基礎(chǔ)的LeNet-5或AlexNet結(jié)構(gòu)奠定了CNN的范式但深度學(xué)習(xí)的研究從未止步。為了訓(xùn)練更深的網(wǎng)絡(luò)、提升性能與效率一系列關(guān)鍵的創(chuàng)新被提出它們構(gòu)成了現(xiàn)代CNN的基石。4.1 殘差網(wǎng)絡(luò)讓網(wǎng)絡(luò)深度突破百層的鑰匙隨著網(wǎng)絡(luò)層數(shù)加深一個反直覺的問題出現(xiàn)了56層的網(wǎng)絡(luò)在訓(xùn)練集和測試集上的表現(xiàn)反而比20層的網(wǎng)絡(luò)更差。這顯然不是過擬合因為訓(xùn)練集誤差也高了而是退化問題。這表明更深的網(wǎng)絡(luò)并沒有更容易地學(xué)習(xí)到恒等映射讓輸出等于輸入反而優(yōu)化難度劇增。ResNet的殘差學(xué)習(xí)框架天才地解決了這個問題。它不再讓堆疊的層直接去擬合一個目標(biāo)映射H(x)而是去擬合殘差映射F(x) H(x) - x。這樣原始映射就變成了 H(x) F(x) x。這個“快捷連接”或“跳躍連接”操作將輸入x直接加到層的輸出上。這樣做有什么好處第一如果最優(yōu)的映射就是恒等映射即更深層什么也不學(xué)最好那么將殘差F(x)學(xué)習(xí)為0比讓一堆非線性層去擬合恒等映射要容易得多。第二它緩解了梯度消失問題。在反向傳播時梯度可以通過快捷連接這條“高速公路”直接傳回更淺的層確保了深層網(wǎng)絡(luò)能夠被有效訓(xùn)練。正是憑借殘差結(jié)構(gòu)ResNet成功將網(wǎng)絡(luò)深度推向了152層、甚至1000層以上性能大幅提升。4.2 注意力機(jī)制讓網(wǎng)絡(luò)學(xué)會“看重點”注意力機(jī)制源于自然語言處理但其思想在視覺領(lǐng)域同樣威力巨大。傳統(tǒng)的CNN對所有區(qū)域“一視同仁”但人類看圖片時是有重點的。注意力機(jī)制讓網(wǎng)絡(luò)能夠動態(tài)地、根據(jù)任務(wù)需求對特征圖的不同空間位置或不同通道賦予不同的權(quán)重。通道注意力如SENet模塊它通過全局平均池化將每個通道的二維特征壓縮成一個標(biāo)量然后經(jīng)過兩個全連接層形成一個瓶頸結(jié)構(gòu)學(xué)習(xí)出每個通道的重要性權(quán)重一個0到1之間的數(shù)最后用這個權(quán)重去縮放原始特征圖的對應(yīng)通道。這相當(dāng)于讓網(wǎng)絡(luò)自己決定“紅色通道”和“邊緣通道”哪個對當(dāng)前任務(wù)更重要。空間注意力它學(xué)習(xí)一個二維的權(quán)重矩陣告訴網(wǎng)絡(luò)特征圖的哪個區(qū)域比如圖片中央還是角落更值得關(guān)注。通常通道注意力和空間注意力可以組合使用形成強(qiáng)大的CBAM等模塊。引入注意力機(jī)制后網(wǎng)絡(luò)的特征提取過程從“無差別掃描”變成了“有重點地審視”通常能以較小的計算代價帶來明顯的精度提升。這在細(xì)粒度分類區(qū)分不同鳥種、醫(yī)學(xué)圖像分析聚焦病灶區(qū)域等任務(wù)中尤為有效。4.3 輕量化網(wǎng)絡(luò)在移動端和嵌入式設(shè)備上運(yùn)行CNN將龐大的CNN模型如VGG16有138M參數(shù)部署到手機(jī)、攝像頭或物聯(lián)網(wǎng)設(shè)備上面臨著內(nèi)存、算力和功耗的嚴(yán)峻挑戰(zhàn)。輕量化網(wǎng)絡(luò)設(shè)計應(yīng)運(yùn)而生。深度可分離卷積這是MobileNet系列的核心。它將標(biāo)準(zhǔn)卷積分解為兩步1.深度卷積一個卷積核只負(fù)責(zé)一個輸入通道進(jìn)行輕量化的空間濾波。2.逐點卷積使用1x1的卷積來組合深度卷積輸出的通道。這樣能將計算量減少為原來的近1/9對于3x3卷積核而精度損失很小。模型剪枝與量化訓(xùn)練一個大型模型然后“修剪”掉其中不重要的連接權(quán)重接近0的或整個神經(jīng)元得到一個小而精的模型。量化則是將模型參數(shù)和激活值從32位浮點數(shù)轉(zhuǎn)換為8位整數(shù)甚至更低位數(shù)大幅減少模型存儲空間和推理時的計算開銷。神經(jīng)架構(gòu)搜索用算法自動搜索在特定硬件約束如延遲、功耗下最優(yōu)的網(wǎng)絡(luò)結(jié)構(gòu)代替人工設(shè)計。這催生了如EfficientNet等系列模型在精度和效率的帕累托前沿上取得了最佳平衡。5. CNN的疆域從圖像識別到廣闊的應(yīng)用世界CNN的能力早已不局限于“識別貓狗”。其強(qiáng)大的空間特征提取能力使其成為處理任何具有網(wǎng)格拓?fù)浣Y(jié)構(gòu)數(shù)據(jù)的利器。醫(yī)學(xué)圖像分析這是CNN大放異彩的領(lǐng)域。正如熱詞中提到的“使用CNN來對TEM圖像進(jìn)行結(jié)構(gòu)識別標(biāo)記出不同的晶體區(qū)域、缺陷位置、材料的相界面”在材料科學(xué)中CNN可以像專家一樣在透射電鏡圖像中自動分割和分類不同的相結(jié)構(gòu)。在醫(yī)療領(lǐng)域基于U-Net一種編碼器-解碼器結(jié)構(gòu)的CNN的模型在MRI、CT影像的病灶分割如腫瘤、血管中達(dá)到了極高的精度如熱詞中提到的“基于中心線MPR的CNN分割流水線可達(dá)DSC 0.87(真腔)和0.89(假腔)”DSC是衡量分割重疊度的指標(biāo)超過0.8通常就認(rèn)為是非常優(yōu)秀的結(jié)果能極大輔助醫(yī)生診斷。目標(biāo)檢測與分割從YOLO、SSD這樣的單階段檢測器到Faster R-CNN這樣的兩階段檢測器CNN使得實時、高精度的物體定位和分類成為可能。而語義分割為每個像素分類和實例分割區(qū)分不同個體則進(jìn)一步細(xì)化了視覺理解的能力是自動駕駛、機(jī)器人視覺的核心。超越圖像的處理時序信號將一維的音頻信號、傳感器信號視為“一維圖像”使用一維卷積進(jìn)行處理可用于語音識別、異常振動檢測。文本處理將句子中的詞嵌入向量排列成二維矩陣序列長度 x 詞向量維度使用一維卷積在序列長度方向上滑動可以提取N-gram局部短語特征在文本分類、情感分析中很有效。圖卷積網(wǎng)絡(luò)這是對CNN思想的進(jìn)一步泛化用于處理非歐幾里得數(shù)據(jù)的圖結(jié)構(gòu)如社交網(wǎng)絡(luò)、分子結(jié)構(gòu)。它定義了圖上的“卷積”操作通過聚合鄰居節(jié)點的信息來學(xué)習(xí)節(jié)點表示。生成式模型CNN不僅是優(yōu)秀的判別者也可以是創(chuàng)造者。在生成對抗網(wǎng)絡(luò)中生成器通常是一個反卷積網(wǎng)絡(luò)可以理解為卷積的逆過程能夠從隨機(jī)噪聲中生成逼真的圖像。6. 實戰(zhàn)中的精要構(gòu)建與訓(xùn)練CNN的避坑指南了解了原理最終要落地。在實際動手搭建和訓(xùn)練CNN時有幾個細(xì)節(jié)決定了項目的成敗。6.1 數(shù)據(jù)準(zhǔn)備比模型更重要的基石“Garbage in, garbage out.” 對于數(shù)據(jù)驅(qū)動的深度學(xué)習(xí)尤為如此。數(shù)據(jù)增強(qiáng)這是解決數(shù)據(jù)稀缺、防止過擬合的最有效手段之一。對于圖像基礎(chǔ)的增強(qiáng)包括隨機(jī)水平翻轉(zhuǎn)、隨機(jī)旋轉(zhuǎn)小角度、隨機(jī)裁剪、顏色抖動亮度、對比度、飽和度微調(diào)。更高級的還有MixUp、CutMix等它們混合兩張圖像和標(biāo)簽?zāi)苓M(jìn)一步提升模型魯棒性。關(guān)鍵是要選擇符合任務(wù)先驗的增強(qiáng)例如對于數(shù)字識別垂直翻轉(zhuǎn)可能就不合適對于醫(yī)學(xué)圖像過度的顏色扭曲可能破壞重要的病理信息。歸一化將輸入數(shù)據(jù)像素值歸一化到零均值、單位方差例如對ImageNet常用mean[0.485, 0.456, 0.406], std[0.229, 0.224, 0.225]。這能加速訓(xùn)練收斂提升模型穩(wěn)定性。通常這個均值和標(biāo)準(zhǔn)差是在大型數(shù)據(jù)集如ImageNet上統(tǒng)計得到的對于新任務(wù)用自己的訓(xùn)練集統(tǒng)計是更好的選擇。6.2 優(yōu)化器與學(xué)習(xí)率策略訓(xùn)練過程的“方向盤”優(yōu)化器選擇SGD with Momentum和Adam是兩大主流。SGD with Momentum通常能收斂到更尖銳的最小值泛化性能可能更好但需要精心調(diào)節(jié)學(xué)習(xí)率。Adam自適應(yīng)調(diào)整每個參數(shù)的學(xué)習(xí)率初期收斂快調(diào)參簡單是很多人的默認(rèn)選擇。對于追求極致精度的大項目從Adam開始后期切換到SGD精調(diào)是一個常見策略。學(xué)習(xí)率調(diào)度這是最重要的超參數(shù)之一。最常見的是步進(jìn)衰減每N個epoch衰減為原來的γ倍。更平滑的有余弦退火它像余弦曲線一樣從初始學(xué)習(xí)率下降到0。還有One Cycle Policy它先從一個較小的學(xué)習(xí)率線性升溫到一個很大的值再余弦退火下降配合動量的反向變化能實現(xiàn)極快的訓(xùn)練。學(xué)習(xí)率預(yù)熱也是一個實用技巧在訓(xùn)練開始的幾個epoch或step里將學(xué)習(xí)率從0線性增加到預(yù)設(shè)值這有助于穩(wěn)定訓(xùn)練初期。6.3 正則化對抗過擬合的武器庫當(dāng)模型在訓(xùn)練集上表現(xiàn)很好在驗證集上卻很差時就是過擬合了。Dropout在訓(xùn)練時隨機(jī)“丟棄”全連接層或卷積層的一部分神經(jīng)元將其輸出置0迫使網(wǎng)絡(luò)不依賴于任何單個神經(jīng)元從而學(xué)習(xí)到更魯棒的特征。測試時所有神經(jīng)元都參與但輸出要乘以保留概率或權(quán)重在訓(xùn)練時已做縮放。權(quán)重衰減在損失函數(shù)中加入L2正則化項懲罰大的權(quán)重鼓勵模型學(xué)習(xí)更簡單、平滑的函數(shù)。早停持續(xù)監(jiān)控驗證集損失當(dāng)其在連續(xù)多個epoch內(nèi)不再下降時就停止訓(xùn)練并回滾到驗證損失最低的那個模型 checkpoint。標(biāo)簽平滑將硬標(biāo)簽如[0, 0, 1, 0]軟化如[0.01, 0.01, 0.97, 0.01]可以減輕模型對標(biāo)簽的過度自信起到正則化效果通常能提升一點最終精度。6.4 可視化與調(diào)試打開黑箱理解模型模型不work時盲目調(diào)參是下策。學(xué)會可視化是上策。特征圖可視化將中間某層卷積輸出的特征圖顯示出來。你可以看到淺層網(wǎng)絡(luò)學(xué)習(xí)到的邊緣、紋理以及深層網(wǎng)絡(luò)學(xué)習(xí)到的復(fù)雜模式。如果特征圖一片空白或噪聲說明該層可能沒學(xué)到東西。卷積核可視化將第一層卷積核顯示為圖像它們應(yīng)該看起來像各種方向、頻率的邊緣和顏色斑點。如果訓(xùn)練后它們還是雜亂無章的隨機(jī)噪聲說明訓(xùn)練可能有問題。梯度可視化/梯度消失爆炸檢查檢查反向傳播過程中梯度的范數(shù)。如果梯度在淺層變得極小消失或極大爆炸就需要調(diào)整初始化、激活函數(shù)或引入殘差連接。類激活圖如Grad-CAM它能高亮出圖像中對網(wǎng)絡(luò)做出最終決策貢獻(xiàn)最大的區(qū)域。這對于模型可解釋性、發(fā)現(xiàn)模型是否關(guān)注了錯誤區(qū)域例如根據(jù)背景而不是物體本身做判斷至關(guān)重要。從我個人的項目經(jīng)驗來看一個成功的CNN項目往往遵循“簡單到復(fù)雜”的路徑先用一個極小的數(shù)據(jù)集和迷你模型如3層卷積跑通整個數(shù)據(jù)流和訓(xùn)練流程確保代碼無誤。然后使用標(biāo)準(zhǔn)架構(gòu)如ResNet-18和完整數(shù)據(jù)訓(xùn)練一個基線模型。最后再在這個基線上去嘗試數(shù)據(jù)增強(qiáng)策略、學(xué)習(xí)率調(diào)度和更復(fù)雜的模型改進(jìn)。切忌一開始就上最復(fù)雜的模型和技巧那樣會讓調(diào)試變成噩夢。記住在深度學(xué)習(xí)里一個干凈、可復(fù)現(xiàn)的數(shù)據(jù)流水線和訓(xùn)練循環(huán)其價值常常超過一個花哨的新模型結(jié)構(gòu)。