0
本文作者: skura | 2019-09-07 19:23 |
雷鋒網(wǎng) AI 科技評(píng)論按,本文作者是 Kanda 的機(jī)器學(xué)習(xí)工程師 Daniel Rothmann,他對(duì)一切具有變革性的事物都感興趣,這里是他在和客戶合作的過(guò)程中總結(jié)出的小數(shù)據(jù)處理方法。雷鋒網(wǎng)整理。
我們經(jīng)常聽(tīng)說(shuō)大數(shù)據(jù)是構(gòu)建成功的機(jī)器學(xué)習(xí)項(xiàng)目的關(guān)鍵。這里有一個(gè)大問(wèn)題:許多組織沒(méi)有你需要的這么多數(shù)據(jù)。
在沒(méi)有最基本的數(shù)據(jù)的情況下,我們?nèi)绾尾拍茉突万?yàn)證機(jī)器學(xué)習(xí)的想法?當(dāng)資源稀缺時(shí),我們?nèi)绾斡行У孬@取和利用數(shù)據(jù)創(chuàng)造價(jià)值?
在我的工作場(chǎng)所,我們?yōu)榭蛻羯a(chǎn)了許多功能原型。因此,我經(jīng)常需要使用小數(shù)據(jù)。在本文中,我將分享 7 個(gè)改進(jìn)使用小數(shù)據(jù)集進(jìn)行原型設(shè)計(jì)結(jié)果的小技巧。
1 .認(rèn)識(shí)到你的模型不能很好地泛化
這應(yīng)該是第一步。你正在構(gòu)建一個(gè)模型,它是建立在宇宙的一小部分知識(shí)之上的,而這應(yīng)該是唯一一個(gè)可以期望它能很好地工作的情境。
如果你正在建立一個(gè)基于室內(nèi)照片選擇的計(jì)算機(jī)視覺(jué)原型,不要期望它在室外工作得很好。如果你有一個(gè)基于聊天室的語(yǔ)言模型,不要指望它適用于幻想小說(shuō)。
確保你的經(jīng)理或客戶理解這一點(diǎn)。這樣,每個(gè)人都可以根據(jù)你的模型應(yīng)該提供的結(jié)果,調(diào)整實(shí)際期望。它還創(chuàng)造了一個(gè)機(jī)會(huì)來(lái)提出一個(gè)新的有用的關(guān)鍵指標(biāo),以量化原型范圍內(nèi)外的模型性能。
2 .建立良好的數(shù)據(jù)基礎(chǔ)架構(gòu)
在許多情況下,客戶機(jī)沒(méi)有你需要的數(shù)據(jù),公共數(shù)據(jù)也不合適。如果原型的一部分需要收集和標(biāo)記新數(shù)據(jù),請(qǐng)確?;A(chǔ)架構(gòu),盡可能減少摩擦。
你要確保數(shù)據(jù)標(biāo)簽對(duì)技術(shù)和非技術(shù)人員來(lái)說(shuō)都是非常容易的。我們已經(jīng)開(kāi)始使用 Prodigy,我認(rèn)為這是一個(gè)很好的工具:既可訪問(wèn)又可擴(kuò)展。根據(jù)項(xiàng)目的大小,你可能還需要設(shè)置一個(gè)自動(dòng)數(shù)據(jù)接收功能,它可以接收新數(shù)據(jù)并自動(dòng)將其輸入到標(biāo)簽系統(tǒng)。
如果將新數(shù)據(jù)導(dǎo)入系統(tǒng)既快捷又簡(jiǎn)單,你將獲得更多數(shù)據(jù)。
3 .做一些數(shù)據(jù)擴(kuò)充
你通??梢酝ㄟ^(guò)增加所擁有的數(shù)據(jù)來(lái)擴(kuò)展數(shù)據(jù)集。但這只是對(duì)數(shù)據(jù)進(jìn)行細(xì)微更改,它不應(yīng)顯著地改變模型的輸出。例如,如果旋轉(zhuǎn) 40 度,貓的圖像仍然是貓的圖像。
在大多數(shù)情況下,增強(qiáng)技術(shù)允許你生成更多的「半唯一」數(shù)據(jù)點(diǎn)來(lái)訓(xùn)練你的模型。首先,你可以嘗試在你的數(shù)據(jù)中加入少量的高斯噪聲。
對(duì)于計(jì)算機(jī)視覺(jué),有許多簡(jiǎn)潔的方法來(lái)增強(qiáng)圖像。我對(duì) Albumentations 庫(kù)有過(guò)豐富的使用經(jīng)驗(yàn),它可以在保持標(biāo)簽不受損的同時(shí)進(jìn)行許多有用的圖像轉(zhuǎn)換。
圖片來(lái)源:Github 上的 Albumentations
許多人認(rèn)為另一種有用的增強(qiáng)技術(shù)是「Mixup」。這種技術(shù)實(shí)際上是將兩個(gè)輸入圖像混合在一起并組合它們的標(biāo)簽。
圖片由 Cecilia Summers 和 Michael J.Dinneen 拍攝
在擴(kuò)充其他輸入數(shù)據(jù)類型時(shí),需要考慮哪些轉(zhuǎn)換會(huì)損害標(biāo)簽,哪些不會(huì)。
4. 生成一些合成數(shù)據(jù)
如果你已經(jīng)用盡了增加真實(shí)數(shù)據(jù)的方法,你可以開(kāi)始考慮創(chuàng)建一些假數(shù)據(jù)。生成合成數(shù)據(jù)也是一種很好的方法,它可以用來(lái)覆蓋一些實(shí)際數(shù)據(jù)集中不會(huì)出現(xiàn)的邊緣情況。
例如,許多機(jī)器人強(qiáng)化學(xué)習(xí)系統(tǒng)在部署到真正的機(jī)器人之前,都是在模擬的 3D 環(huán)境中進(jìn)行訓(xùn)練的。對(duì)于圖像識(shí)別系統(tǒng),你可以類似地構(gòu)建 3D 場(chǎng)景,它可以提供數(shù)千個(gè)新的數(shù)據(jù)點(diǎn)。
15 個(gè)模擬的 Dactyl 并行訓(xùn)練實(shí)例
創(chuàng)建合成數(shù)據(jù)有許多方法。在 Kanda,我們正在開(kāi)發(fā)一個(gè)基于轉(zhuǎn)盤(pán)的解決方案來(lái)創(chuàng)建用于對(duì)象檢測(cè)的數(shù)據(jù)。如果你有非常高的數(shù)據(jù)需求,你可以考慮使用通用的生成對(duì)抗網(wǎng)絡(luò)來(lái)創(chuàng)建合成數(shù)據(jù)。要知道 GAN 是出了名的難以訓(xùn)練,所以你要確保它是值得的。
NVIDIAs GauGAN
有時(shí)你可以結(jié)合使用這些方法:蘋(píng)果有一個(gè)非常聰明的方法,用一個(gè) GAN 來(lái)處理 3D 模型人臉的圖像,使其看起來(lái)更逼真。如果有時(shí)間的話,可以使用這個(gè)擴(kuò)展數(shù)據(jù)集的絕妙技術(shù)。
5. 小心「幸運(yùn)的分割」
在訓(xùn)練機(jī)器學(xué)習(xí)模型時(shí),通常將數(shù)據(jù)集按一定比例隨機(jī)分割成訓(xùn)練集和測(cè)試集。通常情況下,這很好。但是,在處理小數(shù)據(jù)集時(shí),由于訓(xùn)練示例數(shù)量較少,因此噪音風(fēng)險(xiǎn)較高。
在這種情況下,你可能會(huì)意外地得到一個(gè)幸運(yùn)的分割:一個(gè)特定的數(shù)據(jù)集分割,在這個(gè)分割中,你的模型將很好地執(zhí)行并在測(cè)試集中效果很好。然而,在現(xiàn)實(shí)中,這可能僅僅是因?yàn)闇y(cè)試集中沒(méi)有困難的例子(巧合)。
在這種情況下,k-fold 交叉驗(yàn)證是一個(gè)更好的選擇。本質(zhì)上,你將數(shù)據(jù)集拆分為 k 個(gè)「folds」,并為每個(gè) k 訓(xùn)練一個(gè)新的模型,其中一個(gè) fold 用于測(cè)試集,其余的用于訓(xùn)練。這可以控制你看到的測(cè)試結(jié)果,而不僅僅是由于幸運(yùn)(或不幸運(yùn))的拆分。
6 .使用遷移學(xué)習(xí)
如果你使用的是某種標(biāo)準(zhǔn)化的數(shù)據(jù)格式,如文本、圖像、視頻或聲音,那么你可以使用其他人在這些域中用遷移學(xué)習(xí)所做的所有先前工作。這就像站在巨人的肩膀上。
當(dāng)你進(jìn)行遷移學(xué)習(xí)時(shí),你會(huì)采用其他人建立的模型(通常,「其他人」是 google、Facebook 或一些主要的大學(xué)),并根據(jù)你的特殊需求對(duì)它們進(jìn)行微調(diào)。
遷移學(xué)習(xí)之所以有效,是因?yàn)榇蠖鄶?shù)與語(yǔ)言、圖像或聲音有關(guān)的任務(wù)都具有許多共同的特征。例如,對(duì)于計(jì)算機(jī)視覺(jué)來(lái)說(shuō),它可能是檢測(cè)某些類型的形狀、顏色或圖案。
最近,我為客戶開(kāi)發(fā)了一個(gè)目標(biāo)檢測(cè)原型,這個(gè)客戶對(duì)精度的要求非常高。我可以通過(guò)微調(diào)一個(gè) MobileNet 單鏡頭探測(cè)器來(lái)大大加快開(kāi)發(fā)速度,該探測(cè)器已經(jīng)在 google 的開(kāi)放式圖像 v4 數(shù)據(jù)集(約 900 萬(wàn)張標(biāo)簽圖像)上接受過(guò)訓(xùn)練。. 經(jīng)過(guò)一天的訓(xùn)練,我能夠使用大約 1500 張標(biāo)記圖像生成一個(gè)相當(dāng)健壯的目標(biāo)檢測(cè)模型。
7. 試一試「weak learners」
有時(shí)候,你只需要面對(duì)這樣一個(gè)事實(shí):你沒(méi)有足夠的數(shù)據(jù)去做任何想做的事情。幸運(yùn)的是,有許多傳統(tǒng)的機(jī)器學(xué)習(xí)算法,你可以考慮使用這些算法,它們對(duì)數(shù)據(jù)集的大小不太敏感。
當(dāng)數(shù)據(jù)集較小,數(shù)據(jù)點(diǎn)維數(shù)較高時(shí),支持向量機(jī)等算法是一種很好的選擇。
不幸的是,這些算法并不總是像最先進(jìn)的方法那樣精確。這就是他們之所以被稱為「weak learners」的原因,至少與高度參數(shù)化的神經(jīng)網(wǎng)絡(luò)相比是如此。
提高性能的一種方法是將這些「weak learners」(這可能是一組支持向量機(jī)或決策樹(shù))組合在一起,以便它們「協(xié)同工作」生成預(yù)測(cè)。這就是組合學(xué)習(xí)的全部意義。
via: https://www.kdnuggets.com/2019/07/7-tips-dealing-small-data.html
雷鋒網(wǎng)雷鋒網(wǎng)
雷峰網(wǎng)版權(quán)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見(jiàn)轉(zhuǎn)載須知。