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

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

0

司法鑒定牽手深度學(xué)習(xí):Kaggle 相機(jī)型號(hào)識(shí)別大賽深度分析

本文作者: MrBear 編輯:汪思穎 2018-12-14 17:08
導(dǎo)語:看深度學(xué)習(xí)如何被用于司法鑒定領(lǐng)域,大顯神通!

司法鑒定牽手深度學(xué)習(xí):Kaggle 相機(jī)型號(hào)識(shí)別大賽深度分析

圖片來源:https://habr.com/company/ods/blog/415571/

雷鋒網(wǎng) AI 科技評(píng)論按:大約一年前,Kaggle 舉辦了一個(gè)名為「相機(jī)型號(hào)識(shí)別」(https://www.kaggle.com/c/sp-society-camera-model-identification)的計(jì)算機(jī)視覺挑戰(zhàn)賽,任務(wù)是確定出用來拍攝某張圖像的照相機(jī)的型號(hào)。比賽結(jié)束后,Arthur Kuzin, Artur Fattakhov, Ilya Kibardin, Ruslan Dutov 和 Vladimir Iglovikov 決定寫一篇科技報(bào)告,向大家介紹如何解決這個(gè)問題,并分享他們?cè)诖诉^程中獲得的心得體會(huì)。這篇文章被在西雅圖舉辦的第二屆網(wǎng)絡(luò)犯罪調(diào)查大數(shù)據(jù)分析國(guó)際研討會(huì)(http://folk.ntnu.no/andriis/bdaccip2018/)接受,而 Vladimir Iglovikov 將于 2018 年 12 月 10 日在大會(huì)上對(duì)這篇論文進(jìn)行報(bào)告。以下是他對(duì)報(bào)告內(nèi)容(https://arxiv.org/abs/1810.02981)的擴(kuò)展版。

本文的作者共有 5 人:

Arthur Fattakhov, Arthur Kuzin, 以及 Ilya Kibrdin 是本次比賽亞軍團(tuán)隊(duì),他們的最終得分為 0.987。Vladimir Iglovikov 是獲得第 9 名的團(tuán)隊(duì)的成員,最終得分為 0.985。這兩支團(tuán)隊(duì)的解決方案非常相似,因此他們決定寫一份技術(shù)報(bào)告。Ruslan 是深圳大學(xué)大數(shù)據(jù)研究院的一名研究生,他幫助完成了文本方面的工作,這對(duì)于這篇論文的順利發(fā)表至關(guān)重要。

在本文接下來的部分,作者會(huì)把亞軍團(tuán)隊(duì)所使用的方法稱為「我們」的解決方案。此外,也將跳過一些不重要的技術(shù)細(xì)節(jié)。亞軍的解決方案的代碼可以在 GitHub( https://github.com/ikibardin/kaggle-camera-model-identification)上獲得。比賽結(jié)束后,他們還根據(jù)自己的認(rèn)識(shí)進(jìn)行了一組單獨(dú)實(shí)驗(yàn)。本文主要是關(guān)于進(jìn)一步的研究。

正文如下,雷鋒網(wǎng) AI 科技評(píng)論編譯整理:

相機(jī)型號(hào)檢測(cè)是圖像處理的眾多應(yīng)用之一。例如,在司法鑒定領(lǐng)域,判斷出一幅圖片是使用谷歌 Pixel 還是 iPhone 拍攝或許會(huì)非常重要,這可以進(jìn)一步確定出誰可能是非法圖像的所有者,甚至確定誰是知識(shí)產(chǎn)權(quán)的合法所有者,這種系統(tǒng)甚至可以用于在「誹謗或傳播假新聞」的案件中發(fā)現(xiàn)犯罪嫌疑人。

計(jì)算機(jī)將圖像存儲(chǔ)為數(shù)字矩陣和相應(yīng)的元數(shù)據(jù),在最簡(jiǎn)單的情況下,相機(jī)型號(hào)通常會(huì)被存儲(chǔ)在圖像元數(shù)據(jù)中,此時(shí)對(duì)型號(hào)的識(shí)別就成為一個(gè)非常簡(jiǎn)單的問題。但是圖像元數(shù)據(jù)可能不可靠,而且很容易被不法用戶操縱。

還有一種更復(fù)雜、但更可靠的方法。圖像采集完成后,數(shù)碼相機(jī)將在一系列后續(xù)處理步驟之后,創(chuàng)建一個(gè)針對(duì)圖像的保真度和內(nèi)存占用進(jìn)行優(yōu)化后的圖像。這些算法是一些高度非線性、極其復(fù)雜的方法,例如去馬賽克、噪聲濾波、修正鏡頭畸變等。不同型號(hào)的相機(jī)使用不同的算法,這意味著每個(gè)算法在特定的型號(hào)上都會(huì)給出特定的輸出,我們可以將這些數(shù)據(jù)作為機(jī)器學(xué)習(xí)工作流中使用的特征。

當(dāng)然,目前已經(jīng)有很多關(guān)于這個(gè)主題的文獻(xiàn),大多數(shù)現(xiàn)有的文獻(xiàn)在此基礎(chǔ)上提出了基于 SVM 或類似的分類算法的人工特征提取步驟。例如,當(dāng)我碰到這個(gè)問題時(shí),我腦海中出現(xiàn)的第一個(gè)想法就是取一張圖像,用它減去自身經(jīng)過平滑處理后的圖像,然后計(jì)算出這種差異的不同統(tǒng)計(jì)量(比如均值、中值、標(biāo)準(zhǔn)差、不同的分位數(shù)),然后利用他們作為輸入訓(xùn)練 xgboost 集成學(xué)習(xí)模型。關(guān)于如何進(jìn)行相機(jī)模型檢測(cè)的第一篇論文所使用的方法與我剛才描述的方法非常接近,其它后續(xù)的論文提出了一些更復(fù)雜的模型,但方法非常相似。方法無外乎:基于領(lǐng)域知識(shí)的人工特征提取,在此基礎(chǔ)上加入邏輯回歸、決策樹或支持向量機(jī)等等。

將這種方法擴(kuò)展到新的相機(jī)型號(hào)也是一件很困難的事。假設(shè)我們想為一款新發(fā)布的相機(jī)進(jìn)行這種檢測(cè)。那么,專家應(yīng)該花多少時(shí)間來找出哪些特性將有助于將其與其他型號(hào)的相機(jī)區(qū)分開來?另一方面,深度學(xué)習(xí)方法可以同時(shí)解決這些問題。一般來說,深度學(xué)習(xí)就好比一種強(qiáng)大的野獸,如果你知道如何馴服它,它可能會(huì)幫助你創(chuàng)建高度精確的黑盒模型。

像往常一樣,你幾乎不可能通過翻閱文獻(xiàn)試圖找到「最好的方法」。幾乎每篇論文都會(huì)告訴你,他們和其他人不一樣,而他們的方法是最先進(jìn)的。想要解決這個(gè)問題,你就需要在同一數(shù)據(jù)集上對(duì)不同方法進(jìn)行評(píng)估。這樣的比較不會(huì)告訴你哪種算法總體上更好,但是你可以看出在給定的數(shù)據(jù)集上用某種特定的度量標(biāo)準(zhǔn)去評(píng)價(jià)時(shí)哪種算法更好。這并不意味著算法在類似的數(shù)據(jù)集上的性能排名一定是相同的,比如在 CIFAR 數(shù)據(jù)集上最先進(jìn)的架構(gòu)可能在 ImageNet 上表現(xiàn)不佳,反之亦然。但是有這樣一個(gè)標(biāo)準(zhǔn)一致的比較總比沒有好。

在這次的挑戰(zhàn)賽中,582 支參賽團(tuán)隊(duì)將在兩個(gè)月的時(shí)間內(nèi)在實(shí)時(shí)排行榜上比拼他們的算法。582 對(duì)于 kaggle 競(jìng)賽的參賽隊(duì)伍數(shù)來說是一個(gè)相對(duì)較大的數(shù)字,這就保證了這個(gè)問題將由一些有著不同專業(yè)背景和技能的人來解決。一些參賽人員在工業(yè)界和學(xué)術(shù)界從事司法鑒定的相關(guān)工作,還有一些像我一樣的參賽人員,則有著計(jì)算機(jī)視覺方面的經(jīng)驗(yàn),但我們對(duì)這樣的相機(jī)識(shí)別問題并沒有很深刻的認(rèn)識(shí),也不知道有人有興趣解決它。

大賽組織者準(zhǔn)備了一套由 10 個(gè)相機(jī)拍攝的 2750 張照片(每個(gè)相機(jī)拍攝了 275 張照片)組成的訓(xùn)練集。

我們需要區(qū)分的相機(jī)型號(hào)有:

1. Sony NEX-7

2. Motorola Moto X

3. Motorola Nexus 6

4. Motorola DROID MAXX

5. LG Nexus 5x

6. Apple iPhone 6

7. Apple iPhone 4s

8. HTC One M7

9. Samsung Galaxy S4

10. Samsung Galaxy Note 3

為了增加比賽難度,組織者共用了 20 部不同的手機(jī)來收集圖像,其中有 10 部被用于建立訓(xùn)練集,另外 10 部被用于建立測(cè)試集。這意味著在訓(xùn)練過程中,你的模型可能學(xué)習(xí)到的并不是與后續(xù)處理算法相關(guān)的針對(duì)特定相機(jī)型號(hào)的特性,而是會(huì)過擬合特定手機(jī)產(chǎn)生的特定的輸出。

測(cè)試集中的圖像是用 10 個(gè)與訓(xùn)練集中對(duì)應(yīng)相同型號(hào)的相機(jī)拍攝的,但使用的是相同型號(hào)的第二臺(tái)設(shè)備。例如,如果在訓(xùn)練數(shù)據(jù)中使用 iPhone6 拍攝的圖像是使用 Ben Hamner 的第一臺(tái) iPhone 6 拍的,那么在測(cè)試數(shù)據(jù)中使用 iPhone6 拍攝的圖像則是使用 Ben Hamner 的第二臺(tái) iPhone 6 拍的,因?yàn)樗谕骘L(fēng)箏時(shí)在海灣丟失了第一部手機(jī)。

此外。訓(xùn)練集中的圖像是完整全尺寸的,而在測(cè)試中只使用了圖像中央裁剪出的 512x512 像素的部分。之所以這樣處理,是因?yàn)閺较蚧冊(cè)趫D像的兩側(cè)更加明顯。一些論文僅僅基于徑向畸變特征就取得了較好的結(jié)果。然而,目前還尚不清楚它們能帶來多大的幫助,但組織者決定禁止參與者利用這些特征。

在許多情況下,通常存儲(chǔ)在計(jì)算機(jī)上的圖像會(huì)受到不同類型的圖像變換的影響,如 jpeg 壓縮、伽馬變換、對(duì)比度、亮度、大小等方面的變換。

從實(shí)用的角度來看,模型最好能對(duì)這些變換具有很強(qiáng)的魯棒性,組織者對(duì)一半的測(cè)試圖像進(jìn)行了類似的變換,如下所示:

1. JPEG 壓縮質(zhì)量因子 = 70

2. JPEG 壓縮質(zhì)量因子 = 90 

3. 通過因子 = 0.5 的雙三次插值進(jìn)行縮放

4. 通過因子 = 0.8 的雙三次插值進(jìn)行縮放

5. 通過因子 = 1.5 的雙三次插值進(jìn)行縮放

6. 通過因子 = 2.0 的雙三次插值進(jìn)行縮放

7. 使用 gamma = 0.8 的伽馬校正

8. 使用 gamma = 1.2 的伽馬校正

司法鑒定牽手深度學(xué)習(xí):Kaggle 相機(jī)型號(hào)識(shí)別大賽深度分析

如上文所述,不同型號(hào)的相機(jī)拍出來的圖片的規(guī)模在千兆字節(jié),我們可以利用這些數(shù)據(jù)提取出相應(yīng)相機(jī)型號(hào)。Kaggle 上的不同競(jìng)賽對(duì)于使用外部數(shù)據(jù)有不同的規(guī)則,但在本項(xiàng)比賽中,Kaggle 允許我們使用外部的圖像數(shù)據(jù)訓(xùn)練模型。一般來說,所有允許使用外部數(shù)據(jù)的競(jìng)賽都有一個(gè)規(guī)則,Kaggle 規(guī)定所有其他的參賽者也可以訪問這些數(shù)據(jù)。在任何此類競(jìng)賽中,Kaggle 論壇上都會(huì)專門設(shè)有一個(gè)論壇,參與者可以在其中分享他們將使用的數(shù)據(jù)和預(yù)訓(xùn)練的模型。

這次比賽是個(gè)例外,管理員忘記在規(guī)則中添加關(guān)于共享數(shù)據(jù)的條款,這就改變了游戲規(guī)則。

深度學(xué)習(xí)模型的優(yōu)勢(shì)在于,它們可以從大量的訓(xùn)練數(shù)據(jù)中獲取知識(shí)。此外,我們還應(yīng)該特別注意到,許多訓(xùn)練標(biāo)簽可能是錯(cuò)誤的,但這個(gè)問題也比較好解決,只要錯(cuò)誤標(biāo)簽的百分比小于某個(gè)閾值(比如百分之十五),這個(gè)訓(xùn)練數(shù)據(jù)集就是一個(gè)好的數(shù)據(jù)集。使用的數(shù)據(jù)越多,你的模型就越好。

參與者可能并不是司法鑒定專家,但他們肯定知道更多的數(shù)據(jù)對(duì)深度學(xué)習(xí)來說是更好的。通常,在競(jìng)賽中,你試圖從給定的數(shù)據(jù)集中獲取最多的信息,在進(jìn)行了一些實(shí)驗(yàn)之后,你會(huì)選擇一個(gè)性能良好的模型,巧妙地選擇數(shù)據(jù)增強(qiáng)的方式,探索相關(guān)領(lǐng)域知識(shí),花時(shí)間開發(fā)一個(gè)智能訓(xùn)練計(jì)劃,訓(xùn)練損失函數(shù)等等。如果你沒有更好的選擇,完成所有這些步驟都很重要。

我們?cè)?Flickr、Yandex、Fotki、Wikipedia 上爬到了一些數(shù)據(jù),而在這種情況下,我們的團(tuán)隊(duì)擁有的原始圖像數(shù)據(jù)總量約為 500GB。我們可以使用所有這些數(shù)據(jù),但是為了加速訓(xùn)練,并潛在地提高模型質(zhì)量,我們進(jìn)行對(duì)數(shù)據(jù)進(jìn)行了過濾。

在訓(xùn)練過程中,我們需要的是未經(jīng)處理的數(shù)據(jù),即不受 Photoshop 、LightRoom 或類似圖像編輯軟件的影響,不進(jìn)行縮放的高質(zhì)量圖像。

司法鑒定牽手深度學(xué)習(xí):Kaggle 相機(jī)型號(hào)識(shí)別大賽深度分析

不同型號(hào)相機(jī)的數(shù)據(jù)集樣本數(shù)。上表給出了包含外部和組織者提供的數(shù)據(jù)集的最終數(shù)據(jù)集。

司法鑒定牽手深度學(xué)習(xí):Kaggle 相機(jī)型號(hào)識(shí)別大賽深度分析

首先,我們刪除掉了元數(shù)據(jù)中包含 Photoshop 和 LightRoom 的圖像。接著,我們刪除了 JPEG 質(zhì)量低于 95 的圖像。第三,我們讓不同的相機(jī)拍攝固定尺寸的照片。如果圖像的大小與我們預(yù)期的不匹配,我們就會(huì)認(rèn)為這些圖像是經(jīng)過了縮放的。我們刪除了不滿足這些條件的圖像。

這并不意味著我們得到的所有圖像都是未經(jīng)處理的,比如有人可能使用質(zhì)量為 10% 的 JPEG壓縮,然后再應(yīng)用質(zhì)量為 99% 的 JPEG 壓縮。實(shí)際上,壓縮后的質(zhì)量仍然是 10%,但是對(duì)于軟件來說,很難分析出壓縮因子是 10 而不是 99。我認(rèn)為這是不可能做到的。但我在研究這個(gè)問題時(shí),我看到一些論文也試圖識(shí)別出這種「二次 JPEG 壓縮」。再說一次,我甚至不知道存在這樣的問題。

經(jīng)過過濾,我們得到了 78,807 張爬取的圖像,我們認(rèn)為這些圖像是原始的,未經(jīng)處理的。這些圖像的類別分布是不均勻的。正如你可以想到的那樣,并非所有手機(jī)都同樣受歡迎,或者說手機(jī)型號(hào)與用戶拍照并上傳至互聯(lián)網(wǎng)的頻率之間存在相關(guān)性。因此,對(duì)于某些類別的手機(jī)所得到的圖像,我們所得到的樣本就相對(duì)較少一些:

總的來說,這個(gè)機(jī)器學(xué)習(xí)工作流類似于利用 ImageNet 進(jìn)行遷移學(xué)習(xí),你會(huì)使用預(yù)訓(xùn)練的網(wǎng)絡(luò),去掉最后一個(gè)預(yù)測(cè) 1000 個(gè)類的層,用一個(gè)預(yù)測(cè)你所需要的類別的層替換它。在本例中,這個(gè)層的輸出類別數(shù)是10。在此之后,你可以使用分類交叉熵作為損失函數(shù)并訓(xùn)練網(wǎng)絡(luò)。有很多方法可以做到這一點(diǎn),而第 1 名的解決方案和第 50 名的解決方案之間的區(qū)別通常不在他們使用的網(wǎng)絡(luò)類型,而在于訓(xùn)練過程以及進(jìn)行訓(xùn)練的人。從實(shí)踐的角度來看,與其說深度學(xué)習(xí)是科學(xué),不如說更像是煉金術(shù)。因此,當(dāng)一個(gè)人從事不同的工作時(shí),直覺是至關(guān)重要的。

Remi Cadene 在 GitHub 上的代碼庫(https://github.com/Cadene/pretrained-models.pytorch)提供了一個(gè) PyTorch 框架下的帶權(quán)重的網(wǎng)絡(luò)列表,人們可以使用類似的 API 獲得不同的網(wǎng)絡(luò)和預(yù)訓(xùn)練的權(quán)重,從而使他們的實(shí)驗(yàn)?zāi)軌蚩焖龠M(jìn)行。這個(gè)代碼庫被參賽人員廣泛使用。各個(gè)參賽隊(duì)伍用 Resnet、VGG、DPN 和所有其它類型的網(wǎng)絡(luò)進(jìn)行了實(shí)驗(yàn)。

對(duì)于這個(gè)問題,一個(gè)經(jīng)驗(yàn)性的結(jié)論是:DenseNet(https://arxiv.org/abs/1608.06993) 的性能會(huì)稍好一些,但是團(tuán)隊(duì)之間的差異非常小,所以不清楚這樣的說法是否為真。什么是 DenseNet 呢?DenseNet是一種架構(gòu),它進(jìn)一步推動(dòng)了在 Resnet 類型的網(wǎng)絡(luò)中使用跳躍連接的想法。

司法鑒定牽手深度學(xué)習(xí):Kaggle 相機(jī)型號(hào)識(shí)別大賽深度分析

更多的跳躍連接!

DenseNet 論文的作者將卷積塊中的所有層連接起來,跳躍連接簡(jiǎn)化了梯度流,使得訓(xùn)練深層網(wǎng)絡(luò)成為可能。在跳躍連接成為主流之前,處理只有 19 層的 VGG19 網(wǎng)絡(luò)是一件痛苦的事情,但是在引入它們之后,使用具有 100 多個(gè)層的網(wǎng)絡(luò)處理高度抽象特性就不再是一個(gè)困難的問題了。

研究人員相信,這樣做會(huì)使得損失表面更加平滑,防止基于梯度下降的訓(xùn)練過程陷入許多局部最小值。

 

司法鑒定牽手深度學(xué)習(xí):Kaggle 相機(jī)型號(hào)識(shí)別大賽深度分析

圖片來源:https://arxiv.org/abs/1712.09913

除此之外,網(wǎng)絡(luò)是相對(duì)標(biāo)準(zhǔn)的,它使用了一組具有批量歸一化和 ReLu 層的卷積塊,卷積塊之間使用了最大池化層,最后是全局平均池化和全連接層。需要注意的是,全局平均池化層允許我們使用不同大小的圖像作為輸入。

研究社區(qū)中的一些人認(rèn)為 DenseNet 的性能總是優(yōu)于 Resnet,因?yàn)樗窍鄬?duì)較后提出的,并成為了 CVPR 2017 最佳論文。然而,事實(shí)并非如此!在原始論文中,DenseNet 在 CIFAR 上取得了良好的結(jié)果,但在數(shù)據(jù)更多樣化的 ImageNet 數(shù)據(jù)集上,更深的DenseNet 才能得到與更淺的 ResNet 網(wǎng)絡(luò)相當(dāng)?shù)臏?zhǔn)確率。 

司法鑒定牽手深度學(xué)習(xí):Kaggle 相機(jī)型號(hào)識(shí)別大賽深度分析

DenseNet比Resnet更好/更差嗎?這個(gè)問題得視情況而定。在「Planet: Understanding the Amazon from Space challenge」競(jìng)賽(https://www.kaggle.com/c/planet-understanding-the-amazon-from-space)中,我們團(tuán)隊(duì)使用  DenseNet,從 900 多支團(tuán)隊(duì)中奪得第 7 名,這一網(wǎng)絡(luò)在這次比賽中表現(xiàn)得更好,但它在 ImageNet 上的表現(xiàn)較差。

我和我的合作者對(duì)此進(jìn)行了深入的討論,有人認(rèn)為跳躍連接不僅平滑了損失表面,而且還降低了模型容量。這也許可以解釋為什么 DenseNet 在像 CIFAR 這樣的非多樣化問題中表現(xiàn)更好,但是需要在 ImageNet 這樣的多樣化的數(shù)據(jù)集上增加網(wǎng)絡(luò)的深度,以補(bǔ)償容量的損失?;谶@種推測(cè),我們可以認(rèn)為當(dāng)數(shù)據(jù)集不是非常多樣化且不需要大容量的網(wǎng)絡(luò)時(shí),DenseNet 的性能會(huì)很好。但是當(dāng)判別特性高度抽象時(shí),我們就可能需要非常深的網(wǎng)絡(luò)。

相機(jī)檢測(cè)任務(wù)屬于這一類問題嗎?我不知道。從經(jīng)驗(yàn)上說它確實(shí)是的,但我們并沒有足夠的證據(jù)證明這一點(diǎn)。

在訓(xùn)練過程中加入智能的正則化標(biāo)準(zhǔn)方法是使用數(shù)據(jù)增強(qiáng)。不同的問題可能受益于不同的數(shù)據(jù)增強(qiáng)方法。同樣的,如果你擁有更好的直覺,你可能會(huì)選出更好的數(shù)據(jù)增強(qiáng)方法和參數(shù)。

對(duì)于這個(gè)問題,我們使用了:

1. Dihedral Group D4 變換:將圖像旋轉(zhuǎn) 90、180、270 度,以及進(jìn)行翻轉(zhuǎn)操作。

2. 伽馬變換:我們?cè)?[80,120] 的范圍內(nèi)均勻地選擇了伽馬參數(shù)。

3. 質(zhì)量因子參數(shù)從 70 到 90 均勻采樣的 JPEG 壓縮。

4. 縮放因子在 [0.5,2] 的范圍內(nèi)的變換。

使用 albumentations 程序庫(https://github.com/albu/albumentations)的代碼如下:

 import albumentations as albu

def train_transform(image, p=1):
   aug = albu.Compose([albu.RandomRotate90(p=0.5),
                       albu.HorizontalFlip(p=0.5),
                       albu.RandomGamma(gamma_limit=(80, 120), p=0.5),
                       albu.JpegCompression(quality_lower=70, quality_upper=90, p=0.5),
                       albu.RandomScale(scale_limit=(0.5, 2), interpolation=cv2.INTER_CUBIC, p=1)
                       ], p=p)
   return aug(image=image)['image']

司法鑒定牽手深度學(xué)習(xí):Kaggle 相機(jī)型號(hào)識(shí)別大賽深度分析

左圖是我最近去 Bishop 攀巖時(shí)的原始照片;右圖是翻轉(zhuǎn)過來的結(jié)果,其顏色深一些。后者是進(jìn)行了伽馬變換得到的結(jié)果。在這里我們也應(yīng)用了 JPEG 壓縮,但由于這類圖像的質(zhì)量 [70:90] 相對(duì)較高,肉眼很難看出它的效果。

組織者告訴我們他們用三次插值來進(jìn)行縮放,如果不知道使用三次插值,我們會(huì)交替使用不同的插值方式。一般來說,機(jī)器學(xué)習(xí)競(jìng)賽社區(qū)中經(jīng)常會(huì)使用這種技巧,但是我還沒在文獻(xiàn)中看到對(duì)這樣的方法的描述。

如果我們想要添加這些替代方法,代碼將會(huì)更復(fù)雜一些,但思路仍然是相對(duì)直觀的。

import albumentations as albu

def train_transform(image, p=1):
   scale_limit = (0.5, 2)    aug = albu.Compose([
       albu.RandomRotate90(p=0.5),
       albu.HorizontalFlip(p=0.5),
       albu.RandomGamma(gamma_limit=(80, 120), p=0.5),
       albu.JpegCompression(quality_lower=70, quality_upper=90, p=0.5),
       albu.OneOf([albu.RandomScale(scale_limit=scale_limit, interpolation=cv2.INTER_NEAREST, p=0.5),
                   albu.RandomScale(scale_limit=scale_limit, interpolation=cv2.INTER_LINEAR, p=0.5),
                   albu.RandomScale(scale_limit=scale_limit, interpolation=cv2.INTER_CUBIC, p=0.5),
                   albu.RandomScale(scale_limit=scale_limit, interpolation=cv2.INTER_AREA, p=0.5),
                   albu.RandomScale(scale_limit=scale_limit, interpolation=cv2.INTER_LANCZOS4, p=0.5),
                   ], p=0.5),
   ], p=p)
   return aug(image=image)['image']

原圖的分辨率很大,在全分辨率上對(duì)它們進(jìn)行縮放是不明智的,因此我們進(jìn)行了兩次連續(xù)裁剪(縮放前后各一次)。

import albumentations as albu

def train_transform(image, p=1):
   aug = albu.Compose([
       albu.RandomCrop(height=960, width=960, p=1),
       albu.RandomRotate90(p=0.5),
       albu.HorizontalFlip(p=0.5),
       albu.RandomGamma(gamma_limit=(80, 120), p=0.5),
       albu.JpegCompression(quality_lower=70, quality_upper=90, p=0.5),
       albu.RandomScale(scale_limit=(0.5, 2), interpolation=cv2.INTER_CUBIC, p=1)
       albu.RandomCrop(height=480, width=480, p=1),
   ], p=p)
   return aug(image=image)['image']

我們使用 Adam 優(yōu)化器對(duì)網(wǎng)絡(luò)進(jìn)行了 100 個(gè) epoch 的訓(xùn)練,初始學(xué)習(xí)率為 0.001。

為了獲得更高的準(zhǔn)確率,當(dāng)學(xué)習(xí)速率在不同的值之間振蕩時(shí),我們還采用了循環(huán)學(xué)習(xí)速率方法進(jìn)行改進(jìn)。 

司法鑒定牽手深度學(xué)習(xí):Kaggle 相機(jī)型號(hào)識(shí)別大賽深度分析

你從這張圖中可以猜到,學(xué)習(xí)速率在第 17 個(gè) epoch 前后降低了。圖中存在兩個(gè)連續(xù)衰減的損失峰,一個(gè)大約在第 42 個(gè) epoch 左右,另一個(gè)大約在第 53 個(gè) epoch 左右。在訓(xùn)練過程中,網(wǎng)絡(luò)容易陷入局部極小值,而這些振蕩有助于跳出這些局部最小值。

在進(jìn)行推斷時(shí),我們對(duì)測(cè)試圖像進(jìn)行增強(qiáng),對(duì)在不同的 480x480 的裁剪圖像上的預(yù)測(cè)結(jié)果進(jìn)行平均。

我們還想評(píng)估不同的變換是如何降低模型準(zhǔn)確率的。 

司法鑒定牽手深度學(xué)習(xí):Kaggle 相機(jī)型號(hào)識(shí)別大賽深度分析

我們通過綠色的部分顯示了訓(xùn)練中使用的參數(shù)的范圍。正如預(yù)期的那樣,在特定的參數(shù)范圍內(nèi),準(zhǔn)確率沒有顯著下降。這表明,如果我們使用深度學(xué)習(xí)方法,并擁有足夠的數(shù)據(jù),加強(qiáng)數(shù)據(jù)增強(qiáng)可能會(huì)提升模型的魯棒性。

我們想要回答的另一個(gè)問題是,如果我們?cè)跍y(cè)試時(shí)減小輸入到網(wǎng)絡(luò)中的裁剪圖像的大小,準(zhǔn)確率會(huì)如何變化?

司法鑒定牽手深度學(xué)習(xí):Kaggle 相機(jī)型號(hào)識(shí)別大賽深度分析

我認(rèn)為網(wǎng)絡(luò)正在學(xué)習(xí)的特性是局部的,所以不需要進(jìn)行大的裁剪,但似乎事實(shí)并非如此。要想在 10 個(gè)類上獲得 90% 以上的精度,就必須有至少 250x250 的裁剪圖片作為輸入,這可能意味著后續(xù)處理算法在網(wǎng)絡(luò)捕獲的像素之間創(chuàng)建了遠(yuǎn)距離的相關(guān)性聯(lián)系。

我們還想證實(shí):當(dāng)訓(xùn)練數(shù)據(jù)量增加時(shí),模型的準(zhǔn)確率也會(huì)提高。正如你在上圖中看到的,這樣的情況并沒有發(fā)生。我想 25k 圖片對(duì)于一個(gè)高質(zhì)量的模型來說已經(jīng)足夠了。如果我們需要檢測(cè)的不是 10 個(gè)類,而是 1000 個(gè)類,那么模型質(zhì)量的提升可能會(huì)更加顯著。

總結(jié):

1. 利用 ImageNet 預(yù)訓(xùn)練模型進(jìn)行的遷移學(xué)習(xí)在相機(jī)檢測(cè)等使用低級(jí)特征的任務(wù)中,可以取得很好的性能。

2. DenseNet 的性能更好,但我們相信,如果我們從 Cadene 提供的代碼列表中任意選擇預(yù)訓(xùn)練好的網(wǎng)絡(luò),它的表現(xiàn)也會(huì)類似。

3. 在訓(xùn)練中使用數(shù)據(jù)增強(qiáng)技術(shù)會(huì)幫助模型提升魯棒性。

4. 如果你能獲取到更多的帶標(biāo)簽的數(shù)據(jù),盡量去獲取吧。在大多數(shù)情況下,盡管利用領(lǐng)域知識(shí)可以提供額外的重要幫助,「暴力」地處理大量數(shù)據(jù)可能比使用復(fù)雜的解決方案提高模型性能更容易。

文中略過的內(nèi)容:

1. 是否有必要添加額外的輸出來顯示出圖像是否被修改過?

2. checkpoint averaging 等技巧。

3. 其他架構(gòu)的性能如何?

4. 如何將集成學(xué)習(xí)技術(shù)應(yīng)用到這個(gè)問題上。

5. 測(cè)試集中的類是平衡的,我們可以如何利用。

6. 如何將偽標(biāo)記技術(shù)(一種半監(jiān)督學(xué)習(xí)技術(shù))應(yīng)用于此任務(wù)。

7. 對(duì)那些我們嘗試過、但是沒有成功的方法進(jìn)行討論。

8. 解釋網(wǎng)絡(luò)學(xué)習(xí)到的特征是什么?

9. 評(píng)價(jià)指標(biāo)的細(xì)微差別。

所有這些議題都很重要,但我不認(rèn)為它們有太大的影響,或者我更愿意就每一個(gè)議題單獨(dú)進(jìn)行討論。

注:本文作者將于 2018 年 12 月 10-13 日在美國(guó)西雅圖舉行的 IEEE 2018 大數(shù)據(jù)國(guó)際會(huì)議「第二屆網(wǎng)絡(luò)犯罪調(diào)查與預(yù)防大數(shù)據(jù)分析國(guó)際研討會(huì)」上做與本文相關(guān)的報(bào)告。

(完)

via towardsdatascience

雷鋒網(wǎng) AI 科技評(píng)論編譯整理

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

司法鑒定牽手深度學(xué)習(xí):Kaggle 相機(jī)型號(hào)識(shí)別大賽深度分析

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

知情人士

當(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è)置 以后再說