色婷五一,精品亚洲欧美一区二区三区日产 ,精选国产AV剧情,无码丰满少妇2在线观看

18600329666

咨詢技術(shù)專家

掃一掃
與技術(shù)專家在線溝通

Menu
數(shù)據(jù)有限時人工智能如何使用深度學(xué)習(xí)

     人工智能的核心是機(jī)器學(xué)習(xí),深度學(xué)習(xí)需要大量的數(shù)據(jù),那么當(dāng)數(shù)據(jù)有限是如何進(jìn)行深度學(xué)習(xí)?
你精通機(jī)器學(xué)習(xí)的相關(guān)概念,并能將其應(yīng)用于機(jī)器學(xué)習(xí)模型。打開瀏覽器搜索相關(guān)數(shù)據(jù),很可能會找到一系列數(shù)據(jù)以及上百幅相關(guān)照片。

你會想起大部分流行的數(shù)據(jù)集擁有數(shù)以千計的圖片(甚至更多)。你也會想起有人曾說過擁有大規(guī)模的數(shù)據(jù)集對性能至關(guān)重要。你會感到失望,非常想知道:在有限的數(shù)據(jù)量下,頂級神經(jīng)網(wǎng)絡(luò)能不能很好地工作?

深度學(xué)習(xí)

回答是肯定的,但在見證奇跡之前,我們需要思考一些基本問題。

為什么需要大量的數(shù)據(jù)

數(shù)據(jù)增強(qiáng):數(shù)據(jù)有限時如何使用深度學(xué)習(xí) ? (續(xù))

常用的神經(jīng)網(wǎng)絡(luò)的參數(shù)數(shù)量。

當(dāng)你訓(xùn)練一個機(jī)器學(xué)習(xí)模型時,你實(shí)際做工作的是調(diào)參,以便將特定的輸入(一副圖像)映像到輸出(標(biāo)簽)。我們優(yōu)化的目標(biāo)是使模型的損失最小化, 以正確的方式調(diào)節(jié)優(yōu)化參數(shù)即可實(shí)現(xiàn)這一目標(biāo)。

成功的神經(jīng)網(wǎng)絡(luò)擁有數(shù)以百萬計的參數(shù)!

自然,如果你有大量參數(shù),就需要提供你的機(jī)器學(xué)習(xí)模型同比例的實(shí)例,以獲得優(yōu)秀的性能。你需要的參數(shù)數(shù)量與需要執(zhí)行的任務(wù)復(fù)雜性也成比例。

在沒有大量數(shù)據(jù)情況下,如何獲取更多數(shù)據(jù)?

其實(shí),你并不需要添加大量的圖像到你的數(shù)據(jù)集,為什么? 因?yàn)?,神?jīng)網(wǎng)絡(luò)從一開始就不是智能的,例如,缺乏訓(xùn)練的神經(jīng)網(wǎng)絡(luò)會認(rèn)為下面這3個網(wǎng)球是不同的、獨(dú)立的圖像。

數(shù)據(jù)增強(qiáng):數(shù)據(jù)有限時如何使用深度學(xué)習(xí) ? (續(xù))

完全一樣的網(wǎng)球,神經(jīng)網(wǎng)絡(luò)的解釋卻不同。

所以,為了獲得更多數(shù)據(jù),我們僅需要對已有的數(shù)據(jù)集做微小的調(diào)整。比如翻轉(zhuǎn)、平移或旋轉(zhuǎn)。神經(jīng)網(wǎng)絡(luò)會認(rèn)為這些數(shù)據(jù)是不同的。

數(shù)據(jù)增強(qiáng):數(shù)據(jù)有限時如何使用深度學(xué)習(xí) ? (續(xù))

運(yùn)動中的數(shù)據(jù)增強(qiáng)

一個卷積神經(jīng)網(wǎng)絡(luò)有一個稱作不變性的性質(zhì),即使卷積神經(jīng)網(wǎng)絡(luò)被放在不同方向上,它也能進(jìn)行對象分類。更具體的說,卷積神經(jīng)網(wǎng)絡(luò)對平移、視角、尺寸或照度(或以上組合)保持不變性。

這就是數(shù)據(jù)增強(qiáng)的本質(zhì)前提。在現(xiàn)實(shí)世界中,我們可能會有一組在有限的條件下拍攝的圖像 。但是,我們的目標(biāo)應(yīng)用可能是在多變的環(huán)境中,例如,不同的方向、位置、比例、亮度等。我們通過使用經(jīng)綜合修改過的數(shù)據(jù)來訓(xùn)練神經(jīng)網(wǎng)絡(luò),以應(yīng)對這些情形。

即使擁有大量數(shù)據(jù),再增強(qiáng)數(shù)據(jù)也是有幫助的嗎?

當(dāng)然。這會有助于增加數(shù)據(jù)集中相關(guān)數(shù)據(jù)的數(shù)量。 這與神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)方法相關(guān),讓我通過一個例子來說明。

數(shù)據(jù)增強(qiáng):數(shù)據(jù)有限時如何使用深度學(xué)習(xí) ? (續(xù))

假設(shè)數(shù)據(jù)集中的兩個類。左邊的代表品牌A(福特),右邊的代表品牌B(雪佛蘭)。

假設(shè)完成了訓(xùn)練,并且輸入上面的圖像,即品牌A。但是你的神經(jīng)網(wǎng)絡(luò)輸出認(rèn)為它是品牌B的汽車!使用先進(jìn)的神經(jīng)網(wǎng)絡(luò)不是應(yīng)該有95%的正確率嗎?我不是夸大其詞,類似的事情在過去也發(fā)生過。

數(shù)據(jù)增強(qiáng):數(shù)據(jù)有限時如何使用深度學(xué)習(xí) ? (續(xù))

福特汽車(品牌A),但面向右側(cè)。

為什么會發(fā)生這種現(xiàn)象?因?yàn)檫@是大多數(shù)機(jī)器學(xué)習(xí)算法就是這么工作的。它會尋找區(qū)分一個類和另一個類的最明顯特征。在這個例子中 ,這個特征就是所有品牌A的汽車朝向左邊,所有品牌B的汽車朝向右邊。

神經(jīng)網(wǎng)絡(luò)的好壞取決于輸入的數(shù)據(jù)。

我們?nèi)绾晤A(yù)防這種現(xiàn)象發(fā)生? 我們需要減少數(shù)據(jù)集中不相關(guān)特征的數(shù)量。對上面的汽車類型分類器來說,一個最簡單的解決辦法就是為數(shù)據(jù)集中的每種類別都添加朝向不同方向的汽車照片。更好的辦法是,你只需要將現(xiàn)有的數(shù)據(jù)集中的照片水平翻轉(zhuǎn),使汽車朝向另一側(cè)?,F(xiàn)在,用新的數(shù)據(jù)集訓(xùn)練神經(jīng)網(wǎng)絡(luò),你就會得到你想要的結(jié)果。

通過增強(qiáng)數(shù)據(jù)集,可以防止神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)到不相關(guān)的模式,根本上提升整體性能。

準(zhǔn)備開始

在我們深入研究各種增強(qiáng)技術(shù)之前,我們必須先考慮一個問題。

在機(jī)器學(xué)習(xí)過程中的什么位置進(jìn)行數(shù)據(jù)增強(qiáng)?

答案相當(dāng)明顯:在向模型輸入數(shù)據(jù)之前增強(qiáng)數(shù)據(jù)集,對嗎?是的,但你有兩個選項(xiàng),一個是預(yù)先進(jìn)行所有必要的變換,從根本上增加數(shù)據(jù)集的規(guī)模。另外一個是小批量執(zhí)行變換,僅僅在輸入機(jī)器學(xué)習(xí)模型之前。

第一項(xiàng)被稱為離線增強(qiáng)。這個方法常被用于相對較小的數(shù)據(jù)集。因?yàn)槟阕罱K會通過一個與執(zhí)行的轉(zhuǎn)換數(shù)量相等的因子來增加數(shù)據(jù)集的大?。ɡ纾ㄟ^翻轉(zhuǎn)所有圖像,數(shù)據(jù)集數(shù)量會增加2倍)。

第二個選項(xiàng)稱為在線增強(qiáng),或稱為動態(tài)增強(qiáng)。主要應(yīng)用于規(guī)模較大的數(shù)據(jù)集,因?yàn)槟銦o法負(fù)擔(dān)數(shù)據(jù)量爆炸性增長。反而,你可以通過對即將輸入模型的小批量數(shù)據(jù)的執(zhí)行相應(yīng)的變化。很多機(jī)器學(xué)習(xí)架構(gòu)已經(jīng)支持在線增強(qiáng),并可以利用GPU進(jìn)行加速。

常用的增強(qiáng)技術(shù)

在這一節(jié),我們將介紹一些基礎(chǔ)但功能強(qiáng)大的增強(qiáng)技術(shù),這些技術(shù)目前被廣泛應(yīng)用。在我們講述這些技術(shù)之前,為簡單起見,讓我們做一個假設(shè),即我們不需要關(guān)心圖片邊界之外的東西。如果使用下面的技術(shù),我們的假設(shè)將是有效的。

如果使用的技術(shù)關(guān)注圖像邊界之外的區(qū)域,將會發(fā)生什么呢?在這種情況下,我們需要插入一些信息。在討論完數(shù)據(jù)增強(qiáng)的類型后我們在詳細(xì)討論這一問題。

我們?yōu)槊總€技術(shù)都定義了一個增強(qiáng)因子,用以增強(qiáng)數(shù)據(jù)集(也成為數(shù)據(jù)增強(qiáng)因子)。

1. 翻轉(zhuǎn)

你可以水平或垂直翻轉(zhuǎn)圖像。一些架構(gòu)并不支持垂直翻轉(zhuǎn)圖像。但,垂直翻轉(zhuǎn)等價于將圖片旋轉(zhuǎn)180再水平翻轉(zhuǎn)。下面就是圖像翻轉(zhuǎn)的例子。

數(shù)據(jù)增強(qiáng):數(shù)據(jù)有限時如何使用深度學(xué)習(xí) ? (續(xù))

從左側(cè)開始分別是:原始圖像,水平翻轉(zhuǎn)圖像,垂直翻轉(zhuǎn)圖像。

可以通過執(zhí)行下面的命令完成圖像翻轉(zhuǎn)。

數(shù)據(jù)增強(qiáng):數(shù)據(jù)有限時如何使用深度學(xué)習(xí) ? (續(xù))

2. 旋轉(zhuǎn)

關(guān)于這個操作,需要注意的一個關(guān)鍵問題是,在旋轉(zhuǎn)之后,圖像維度可能不會被保留。如果是正方型圖像,旋轉(zhuǎn)90度之后圖像的尺寸會被保存。如果圖像是長方形,旋轉(zhuǎn)180度之后圖像尺寸也會保存。 但用更小的角度旋轉(zhuǎn)圖像,將會改變最終圖像的尺寸。在下面的章節(jié)中我們將會看到如何解決這個問題。下面是方形圖像旋轉(zhuǎn)90度的例子。

數(shù)據(jù)增強(qiáng):數(shù)據(jù)有限時如何使用深度學(xué)習(xí) ? (續(xù))

當(dāng)我們從左到右移動時,圖像相對于前一個圖像順時針旋轉(zhuǎn)90度。

你可以執(zhí)行下面的任一命令完成圖像旋轉(zhuǎn)。 數(shù)據(jù)增強(qiáng)因子 = 2 到 4x

數(shù)據(jù)增強(qiáng):數(shù)據(jù)有限時如何使用深度學(xué)習(xí) ? (續(xù))

3. 縮放

圖像可以被放大或縮小。放大時,放大后的圖像尺寸會大于原始尺寸。大多數(shù)圖像處理架構(gòu)會按照原始尺寸對放大后的圖像進(jìn)行裁切。我們將在下一章節(jié)討論圖像縮小,因?yàn)閳D像縮小會減小圖像尺寸,這使我們不得不對圖像邊界之外的東西做出假設(shè)。下面是圖像縮放的例子。

數(shù)據(jù)增強(qiáng):數(shù)據(jù)有限時如何使用深度學(xué)習(xí) ? (續(xù))

從左邊開始分別為:原始圖像,圖像向外縮放10%,圖像向外縮放20%。

通過下面的命令執(zhí)行圖像縮放。數(shù)據(jù)增強(qiáng)因子=任意。

數(shù)據(jù)增強(qiáng):數(shù)據(jù)有限時如何使用深度學(xué)習(xí) ? (續(xù))

4. 裁剪

與縮放不同,我們隨機(jī)從原始圖像中采樣一部分。然后將這部分圖像調(diào)整為原始圖像大小。這個方法更流行的叫法是隨機(jī)裁剪。下面是隨機(jī)裁剪的例子。如果你靠近了看,你會注意到裁剪和縮放兩種技術(shù)之間的區(qū)別。

數(shù)據(jù)增強(qiáng):數(shù)據(jù)有限時如何使用深度學(xué)習(xí) ? (續(xù))

從左側(cè)開始分別為:原始圖像,從左上角裁剪出一個正方形部分,然后從右下角裁剪出一個正方形部分。剪裁的部分被調(diào)整為原始圖像大小。

通過下面的TensorFlow命令你可以執(zhí)行隨機(jī)裁剪。 數(shù)據(jù)增強(qiáng)因子=任意。

數(shù)據(jù)增強(qiáng):數(shù)據(jù)有限時如何使用深度學(xué)習(xí) ? (續(xù))

5. 平移

平移是將圖像沿X或Y方向(或者同時沿2個方向)移動。在下面的例子中, 我們假設(shè)在圖像邊界之外是黑色的背景,也同步被移動。這一數(shù)據(jù)增強(qiáng)方法非常有用,因?yàn)榇蠖鄶?shù)對象有可能分布在圖像的任何地方。這迫使你的卷積神經(jīng)網(wǎng)絡(luò)需要看到所有地方。

數(shù)據(jù)增強(qiáng):數(shù)據(jù)有限時如何使用深度學(xué)習(xí) ? (續(xù))

從左側(cè)開始分別為:原始圖像,圖像翻轉(zhuǎn)到右側(cè),圖像向上翻轉(zhuǎn)。

在TensorFlow中,可以通過如下命令完成圖像平移。數(shù)據(jù)增強(qiáng)因子=任意。

數(shù)據(jù)增強(qiáng):數(shù)據(jù)有限時如何使用深度學(xué)習(xí) ? (續(xù))

6. 高斯噪聲

過擬合(Overfitting)經(jīng)常會發(fā)生在神經(jīng)網(wǎng)絡(luò)試圖學(xué)習(xí)高頻特征(即非常頻繁出現(xiàn)的無意義模式)的時候,而學(xué)習(xí)這些高頻特征對模型提升沒什么幫助。

那么如何處理這些高頻特征呢?一種方法是采用具有零均值特性的高斯噪聲,它實(shí)質(zhì)上在所有頻率上都能產(chǎn)生數(shù)據(jù)點(diǎn),可以有效的使高頻特征失真,減弱其對模型的影響。

但這也意味著低頻的成分(通常是你關(guān)心的特征)同時也會受到影響,但是神經(jīng)網(wǎng)絡(luò)能夠通過學(xué)習(xí)來忽略那些影響。事實(shí)證明,通過添加適量的噪聲能夠有效提升神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)能力。

一個“弱化”的版本是椒鹽噪聲,它以隨機(jī)的白色和黑色像素點(diǎn)呈現(xiàn)并鋪滿整個圖片。這種方式對圖像產(chǎn)生的作用和添加高斯噪聲產(chǎn)生的作用是一樣的,只是效果相對較弱。

數(shù)據(jù)增強(qiáng):數(shù)據(jù)有限時如何使用深度學(xué)習(xí) ? (續(xù))

從左側(cè)開始分別為:原始圖像,增加了高斯噪聲的圖像,添加了椒鹽噪聲的圖像。

在 TensorFlow 中,你可以使用以下的代碼給圖片添加高斯噪聲。數(shù)據(jù)增強(qiáng)因子(Data Augmentation Factor)= 2x。

數(shù)據(jù)增強(qiáng):數(shù)據(jù)有限時如何使用深度學(xué)習(xí) ? (續(xù))

高級增強(qiáng)技術(shù)

現(xiàn)實(shí)世界中,自然狀態(tài)下的數(shù)據(jù),存在于各種各樣的狀況之中, 不能用上述簡單的方法來處理。例如, 進(jìn)行照片中的景觀識別的任務(wù)。景觀可以是任何自然中的東西:冰凍寒帶草原、草原、森林等等。聽起來像是個很直接的分類任務(wù)對吧?基本沒問題,除了一件事外。我們忽略了照片中的一個關(guān)鍵特征, 而這個特征將會影響到模型的表現(xiàn)——照片拍攝的季節(jié)。

如果我們的神經(jīng)網(wǎng)絡(luò)不明白某些景觀可以存在于各種條件下(雪、潮濕、明亮等), 它可能會錯誤地將冰凍的湖畔標(biāo)記為冰川或者把沼澤標(biāo)記為濕地。

緩解這種情況的一種方法是添加更多的圖片,這樣我們就可以解釋所有季節(jié)性變化。但這是一項(xiàng)艱巨的任務(wù)。擴(kuò)展我們的數(shù)據(jù)增強(qiáng)概念,想象一下,人為地產(chǎn)生不同季節(jié)的效果會有多酷?

條件型生成對抗網(wǎng)絡(luò),了解一下

并不用深入了解繁雜的細(xì)節(jié),條件型生成對抗網(wǎng)絡(luò)就能將一張圖片從一個領(lǐng)域轉(zhuǎn)換到另一個領(lǐng)域中去。假如你覺得這聽上去太模棱兩可了,它本身并不是這樣;事實(shí)上這是一種強(qiáng)大的神經(jīng)網(wǎng)絡(luò) ! 下面是一個應(yīng)用條件型生成對抗網(wǎng)絡(luò)(Conditional GANs)將夏日風(fēng)光的圖片轉(zhuǎn)換為冬季風(fēng)景的例子。

數(shù)據(jù)增強(qiáng):數(shù)據(jù)有限時如何使用深度學(xué)習(xí) ? (續(xù))

用CycleGAN 改變季節(jié)

 (Github: https://junyanz.github.io/CycleGAN/)

上述方法是魯棒的(Robust), 但是屬于計算密集型,需要耗費(fèi)大量的計算性能。一個更廉價的選擇是所謂的神經(jīng)風(fēng)格遷移(Neural Style Transfer)。它抓住了一個圖像的紋理/氣氛/外觀 (又名, "風(fēng)格"), 并將其與其他內(nèi)容混合在一起。使用這種強(qiáng)大的技術(shù), 我們產(chǎn)生的效果類似于我們的條件型生成對抗網(wǎng)絡(luò)所產(chǎn)生的效果(事實(shí)上, 這個方法是在 cGANs 發(fā)明之前就被提出來了?。?。 

這種方法唯一的缺點(diǎn)在于輸出結(jié)果看起來太有藝術(shù)感了,以至于顯得不那么真實(shí)。但是,在譬如深度學(xué)習(xí)的圖像風(fēng)格轉(zhuǎn)換方面還是具有獨(dú)特的優(yōu)勢,至少它的輸出結(jié)果給人留下了深刻印象。

數(shù)據(jù)增強(qiáng):數(shù)據(jù)有限時如何使用深度學(xué)習(xí) ? (續(xù))

深度照片風(fēng)格轉(zhuǎn)移。

注意如何在數(shù)據(jù)集上產(chǎn)生我們想要的效果。

(來源:https://arxiv.org/abs/1703.07511)

由于我們并不關(guān)注其內(nèi)部的工作原理,所以我們沒有深入探索這些技術(shù)。事實(shí)上,我們可以使用現(xiàn)有訓(xùn)練好的模型再加上一點(diǎn)遷移學(xué)習(xí)的“神奇力量”來進(jìn)行數(shù)據(jù)增強(qiáng)。

插值簡介

如果想平移一個沒有黑色背景的圖像時候該怎么辦?向內(nèi)部縮放呢?旋轉(zhuǎn)一個特定的角度?在完成這些變換之后,我們需要保持原始圖像的大小。由于我們的圖像沒有包含其邊界之外的區(qū)域的任何信息,我們得做一些假設(shè)。一般來說,我們會假定圖像邊界之外的部分的每一個像素點(diǎn)的值都是常數(shù) 0 (RGB值為 0 表示黑色)。這樣,在對圖像進(jìn)行變換之后,在圖像沒有覆蓋的地方會得到一塊黑色的區(qū)域。

數(shù)據(jù)增強(qiáng):數(shù)據(jù)有限時如何使用深度學(xué)習(xí) ? (續(xù))

從左側(cè)開始分別為:逆時針旋轉(zhuǎn)45度的圖像,右側(cè)翻轉(zhuǎn)的圖像和向內(nèi)縮放的圖像。

但是,那個假設(shè)是不是就一定正確呢?在現(xiàn)實(shí)世界中,大多數(shù)情況下那個假設(shè)是不適用的。圖像處理和機(jī)器學(xué)習(xí)框架提供的一些標(biāo)準(zhǔn)的處理方式,你可以決定如何填充未知的空間。

數(shù)據(jù)增強(qiáng):數(shù)據(jù)有限時如何使用深度學(xué)習(xí) ? (續(xù))

從左側(cè)開始分別為:常數(shù),邊緣,反射,對稱和包裹模式。

它們的定義如下:

1. 常量填充

最簡單的插值方法是用某個常量值填充未知區(qū)域。這可能不適用于自然圖像, 但可以用于在單色背景下拍攝的圖像。

2. 邊緣擴(kuò)展

將圖像邊緣的值擴(kuò)展到邊界以外。這個方法可用于輕微的平移的圖像。

3. 反射

圖像像素值沿圖像邊界進(jìn)行反射。這種方法對于包含樹木、山脈等的連續(xù)或自然背景是有用的。

4. 對稱

此方法類似于反射,除了在反射邊界上進(jìn)行邊緣像素拷貝。通常,反射和對稱可以交替使用,但在處理非常小的圖像或圖案時,差異將是可見的。

5. 包裹

在超出圖像邊界的部分重復(fù)填充圖像,仿佛在進(jìn)行圖像平鋪。這種方法不像其他的那樣普遍使用, 因?yàn)樗鼘芏鄨鼍岸紱]有意義。

除此之外,你還可以設(shè)計自己的方法來處理未定義的空間, 但通常以上這些方法對大多數(shù)分類問題都有很好的效果。

使用了這些所有的技術(shù),能保證機(jī)器學(xué)習(xí)算法的魯棒性嗎?

如果你用的是正確的方法,那這個問題的答案是 Yes ! 什么?你問正確方法是什么?嗯,有時不是所有的增強(qiáng)技術(shù)都對數(shù)據(jù)集有意義。再考慮一下我們的汽車?yán)印O旅媸强梢孕薷膱D像的一些方法。

數(shù)據(jù)增強(qiáng):數(shù)據(jù)有限時如何使用深度學(xué)習(xí) ? (續(xù))

第一個圖像(從左邊開始)是原始圖像,第二個圖像是水平翻轉(zhuǎn)的,第三個圖像旋轉(zhuǎn)了180度,最后一個圖像旋轉(zhuǎn)了90度(順時針)。

當(dāng)然, 他們是同一輛車的照片, 但你的目標(biāo)應(yīng)用可能永遠(yuǎn)不會看到在這些方向的汽車。

例如,如果你要分類在路上的隨機(jī)車輛,只有第二個圖像對數(shù)據(jù)集來說是有意義的。但是,如果你擁有一家處理車禍的保險公司,而你也想識別車禍中顛倒的、撞壞的車, 那么第三張圖片是有意義的。最后一個圖像可能對上述兩種情況都沒有意義。

關(guān)鍵是, 在使用增強(qiáng)技術(shù)的同時,我們必須確保不增加無關(guān)的數(shù)據(jù).。 

這樣做真的值得嗎?

你也許正期待著能有一些結(jié)果來。有道理,我也做了這一點(diǎn)。讓我先通過一個小示例來證明數(shù)據(jù)增強(qiáng)的確能夠產(chǎn)生作用。不信的話,你可以復(fù)現(xiàn)這個實(shí)驗(yàn)來驗(yàn)證。

讓我們創(chuàng)建兩個神經(jīng)網(wǎng)絡(luò), 將數(shù)據(jù)分類到四類中的一個: 貓、獅子、豹或者老虎。區(qū)別在于,一個不會使用數(shù)據(jù)增強(qiáng),而另一個將使用數(shù)據(jù)增強(qiáng)??梢詮拇讼螺d數(shù)據(jù)集。

如果你查看了數(shù)據(jù)集,你會發(fā)現(xiàn)里面訓(xùn)練集和測試集中每一類都只有50張圖片。很明顯,我們不能對特定的一個分類器使用增強(qiáng)技術(shù)。公平起見,我們使用遷移學(xué)習(xí)讓模型能夠應(yīng)對數(shù)據(jù)稀缺問題。

數(shù)據(jù)增強(qiáng):數(shù)據(jù)有限時如何使用深度學(xué)習(xí) ? (續(xù))

數(shù)據(jù)庫里的四個分類

對于沒有進(jìn)行數(shù)據(jù)增強(qiáng)的神經(jīng)網(wǎng)絡(luò),我們將使用  VGG19 網(wǎng)絡(luò)結(jié)構(gòu)。在參考這個VGG19 實(shí)現(xiàn)的基礎(chǔ)上,我用TensorFlow實(shí)現(xiàn)了我們的第一個神經(jīng)網(wǎng)絡(luò)。一旦你克隆了我的, 你就可以從這里 下載 VGG19. npy (用于遷移學(xué)習(xí)) 。完成上述工作后,就可以運(yùn)行模型來驗(yàn)證性能了。

不過, 為數(shù)據(jù)增強(qiáng)編寫額外的代碼確實(shí)是費(fèi)時費(fèi)力的工作。所以, 構(gòu)建我們的第二個模型過程中,我使用了 Nanonets。它內(nèi)部實(shí)現(xiàn)了轉(zhuǎn)移學(xué)習(xí)和數(shù)據(jù)擴(kuò)充,可以用最少的數(shù)據(jù)量提供最佳的結(jié)果。所有你需要做的只是上傳的數(shù)據(jù)到他們的網(wǎng)站,并等待他們的服務(wù)器訓(xùn)練完畢就可以了(通常約30分鐘)。你要知道,這對我們進(jìn)行對比實(shí)驗(yàn)多么完美。

完成訓(xùn)練后,你可以對其 API 請求調(diào)用來計算測試的準(zhǔn)確性。你可以在GitHub repo中找到對應(yīng)的示例代碼片段 (不要忘記在代碼段中插入模型的 ID)。

數(shù)據(jù)增強(qiáng):數(shù)據(jù)有限時如何使用深度學(xué)習(xí) ? (續(xù))

對比結(jié)果令人印象深刻不是嗎?事實(shí)上,大多數(shù)模型在更多的數(shù)據(jù)上可以表現(xiàn)更良好。為了提供一個具體的證明,可仔細(xì)看看下面這張表。它顯示了 Cifar 10 (C10) 和 Cifar 100 (C100) 數(shù)據(jù)集上常用的神經(jīng)網(wǎng)絡(luò)的錯誤率。C10+ 和 C100+ 列是進(jìn)行數(shù)據(jù)增強(qiáng)后的錯誤率。

數(shù)據(jù)增強(qiáng):數(shù)據(jù)有限時如何使用深度學(xué)習(xí) ? (續(xù))

Cifar 10 和 Cifar 100 數(shù)據(jù)集上的表現(xiàn)