丁香五月天婷婷久久婷婷色综合91|国产传媒自偷自拍|久久影院亚洲精品|国产欧美VA天堂国产美女自慰视屏|免费黄色av网站|婷婷丁香五月激情四射|日韩AV一区二区中文字幕在线观看|亚洲欧美日本性爱|日日噜噜噜夜夜噜噜噜|中文Av日韩一区二区

您正在使用IE低版瀏覽器,為了您的雷峰網(wǎng)賬號(hào)安全和更好的產(chǎn)品體驗(yàn),強(qiáng)烈建議使用更快更安全的瀏覽器
此為臨時(shí)鏈接,僅用于文章預(yù)覽,將在時(shí)失效
人工智能開發(fā)者 正文
發(fā)私信給AI研習(xí)社-譯站
發(fā)送

0

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

本文作者: AI研習(xí)社-譯站 2018-05-07 11:36
導(dǎo)語:對(duì)深度學(xué)習(xí)數(shù)據(jù)增強(qiáng)技術(shù)的全面回顧

雷鋒網(wǎng)按:本文為雷鋒字幕組編譯的技術(shù)博客,原標(biāo)題Data Augmentation | How to use Deep Learning when you have Limited Data?—?Part 2,作者Ralph Fehrer。

翻譯 | 趙朋飛  涂世文      整理 |  吳璇

這篇文章是對(duì)深度學(xué)習(xí)數(shù)據(jù)增強(qiáng)技術(shù)的全面回顧,具體到圖像領(lǐng)域。這是《在有限的數(shù)據(jù)下如何使用深度學(xué)習(xí)》的第2部分。點(diǎn)擊這里查看第1部分《NanoNets :數(shù)據(jù)有限時(shí)如何應(yīng)用深度學(xué)習(xí)?》

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

這些情況我們都經(jīng)歷過。你精通機(jī)器學(xué)習(xí)的相關(guān)概念,并能將其應(yīng)用于機(jī)器學(xué)習(xí)模型。打開瀏覽器搜索相關(guān)數(shù)據(jù),很可能會(huì)找到一系列數(shù)據(jù)以及上百幅相關(guān)照片。

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

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

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

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

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

當(dāng)你訓(xùn)練一個(gè)機(jī)器學(xué)習(xí)模型時(shí),你實(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ù)以百萬計(jì)的參數(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ò)會(huì)認(rèn)為下面這3個(gè)網(wǎng)球是不同的、獨(dú)立的圖像。

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

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

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

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

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

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

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

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

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

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

假設(shè)數(shù)據(jù)集中的兩個(gè)類。左邊的代表品牌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ù)有限時(shí)如何使用深度學(xué)習(xí) ? (續(xù))

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

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

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

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

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

準(zhǔn)備開始

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

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

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

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

第二個(gè)選項(xiàng)稱為在線增強(qiáng),或稱為動(dòng)態(tài)增強(qiáng)。主要應(yīng)用于規(guī)模較大的數(shù)據(jù)集,因?yàn)槟銦o法負(fù)擔(dān)數(shù)據(jù)量爆炸性增長(zhǎng)。反而,你可以通過對(duì)即將輸入模型的小批量數(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ù)之前,為簡(jiǎn)單起見,讓我們做一個(gè)假設(shè),即我們不需要關(guān)心圖片邊界之外的東西。如果使用下面的技術(shù),我們的假設(shè)將是有效的。

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

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

1. 翻轉(zhuǎn)

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

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

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

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

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

2. 旋轉(zhuǎn)

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

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

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

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

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

3. 縮放

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

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

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

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

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

4. 裁剪

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

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

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

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

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

5. 平移

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

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

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

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

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

6. 高斯噪聲

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

用CycleGAN 改變季節(jié)

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

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

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

數(shù)據(jù)增強(qiáng):數(shù)據(jù)有限時(shí)如何使用深度學(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)。

插值簡(jiǎn)介

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

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

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

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

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

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

它們的定義如下:

1. 常量填充

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

2. 邊緣擴(kuò)展

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

3. 反射

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

4. 對(duì)稱

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

5. 包裹

在超出圖像邊界的部分重復(fù)填充圖像,仿佛在進(jìn)行圖像平鋪。這種方法不像其他的那樣普遍使用, 因?yàn)樗鼘?duì)很多場(chǎng)景都沒有意義。

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

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

如果你用的是正確的方法,那這個(gè)問題的答案是 Yes ! 什么?你問正確方法是什么?嗯,有時(shí)不是所有的增強(qiáng)技術(shù)都對(duì)數(shù)據(jù)集有意義。再考慮一下我們的汽車?yán)?。下面是可以修改圖像的一些方法。

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

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

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

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

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

這樣做真的值得嗎?

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

讓我們創(chuàng)建兩個(gè)神經(jīng)網(wǎng)絡(luò), 將數(shù)據(jù)分類到四類中的一個(gè): 貓、獅子、豹或者老虎。區(qū)別在于,一個(gè)不會(huì)使用數(shù)據(jù)增強(qiáng),而另一個(gè)將使用數(shù)據(jù)增強(qiáng)??梢詮拇?a target="_blank" rel=nofollow>鏈接下載數(shù)據(jù)集。

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

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

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

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

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

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

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

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

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

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

(來源: DenseNet

雷鋒網(wǎng)雷鋒網(wǎng)

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

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

雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。

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

分享:
相關(guān)文章

知情人士

AI研習(xí)社(yanxishe.com)譯站頻道,傳播前沿人工智能知識(shí),讓語言不再成為學(xué)習(xí)知識(shí)的門檻。(原雷鋒字幕組)
當(dāng)月熱門文章
最新文章
請(qǐng)?zhí)顚懮暾?qǐng)人資料
姓名
電話
郵箱
微信號(hào)
作品鏈接
個(gè)人簡(jiǎn)介
為了您的賬戶安全,請(qǐng)驗(yàn)證郵箱
您的郵箱還未驗(yàn)證,完成可獲20積分喲!
請(qǐng)驗(yàn)證您的郵箱
立即驗(yàn)證
完善賬號(hào)信息
您的賬號(hào)已經(jīng)綁定,現(xiàn)在您可以設(shè)置密碼以方便用郵箱登錄
立即設(shè)置 以后再說