首頁 科技週邊 人工智慧 達摩院開源低成本大規模分類架構FFC

達摩院開源低成本大規模分類架構FFC

Apr 11, 2023 pm 09:31 PM
框架 開源

達摩院開源低成本大規模分類架構FFC

論文連結:https://arxiv.org/pdf/2105.10375.pdf

應用& 程式碼:

背景

影像分類是目前AI 最為成功的實際應用技術之一,已經融入了人們的日常生活。被廣泛應用於電腦視覺的大部分任務中,例如影像分類、影像搜尋、OCR、內容審核、辨識認證等領域。目前已形成一個普遍共識:「當資料集越大 ID 越多時,只要訓練得當,相應分類任務的效果就會越好」。但當面對千萬 ID 甚至上億 ID 時,當下流行的 DL 框架,很難低成本的直接進行如此超大規模的分類訓練。

解決這個問題最直觀的方式是透過叢集的方式消耗更多的顯示卡資源,但即便如此,海量ID 下的分類問題,依然會有以下幾個問題:

1)成本問題:分散式訓練框架海量資料情況下,記憶體開銷、多機通訊、資料儲存與載入都會消耗更多的資源。

2)長尾問題:實際場景中,當資料集達到上億ID 時,往往其絕大部分ID 內的圖片樣本數量會很少,資料長尾分佈非常明顯,直接訓練難以獲得較好效果。

本文餘下章節將聚焦在超大規模分類架構現有解決方案,以及低成本分類架構 FFC 的相應原理及 trick 介紹。

方法

達摩院開源低成本大規模分類架構FFC在介紹方法之前,本文首先回顧了目前超大規模分類存在的主要挑戰點:

挑戰點1:成本居高不下

ID 數目越大分類器顯存需求越大,如下示意圖所示:

顯存越大所需機器卡數越多,成本就越高,對應多機協同的硬體基礎設施成本也越高。同時,當分類 ID 數目達到極超大規模的時候,主要計算量將浪費在最後一層分類器上,骨架網路消耗的時間可忽略不計。

挑戰點2:長尾學習困難

達摩院開源低成本大規模分類架構FFC在實際場景下,上億ID 中的絕大部分ID 內的圖片樣本數會很少,長尾資料分佈非常明顯,直接訓練難以收斂。如果按照同等權重訓練,則長尾樣本會被淹沒學習不充分。此時,一般採用 imbalanced sample,在這個研究課題上,有非常多的方法可以藉鑑,採取怎樣的方式融入到簡易超大規模分類框架上較為合適呢?

帶著上述兩個挑戰點,首先來看下現有可行的方案有哪些,是否能很好的解決上述兩個挑戰。

######可行方法1:度量學習############################可行方法2:PFC 框架##########

達摩院開源低成本大規模分類架構FFC

可行方法3:VFC 框架

達摩院開源低成本大規模分類架構FFC

本論文方法:FFC 框架

大規模分類採用FC 訓練時損失函數如下:


達摩院開源低成本大規模分類架構FFC

在每一次反傳過程中,所有的類別中心都會更新:

達摩院開源低成本大規模分類架構FFC

但FC 太大了,直覺的想法是合理地選擇一定比例的類別中心,即如下Vj 為1 部分:

達摩院開源低成本大規模分類架構FFC

##由上述動機,引出如下初步的方案:

達摩院開源低成本大規模分類架構FFC

首先,為了解決長尾帶來的影響,本文引進兩個loaders,分別是基於id取樣的id_loader 和基於取樣的instance_loader,有了這兩個loader。在每個 epoch 當中,樣本多的類別和樣本少的(few-shot)類別能夠有機會被訓練到。

其次,在訓練開始之前,先將一部分樣本送入 id group,這裡假設放入 10% id 的樣本進入 group。這時候 gallery 用的是隨機參數。

然後,訓練開始時,batch 樣本挨個進入 probe net。然後對於每個 batch 裡面的樣本就有兩種情況:1.)group 中存在此樣本同樣 id 的特徵,2.)group 中不存在同類樣本的特徵。對於這兩種情況,分別稱為 existing id 和 fresh id。對於 existing 的樣本,用特徵和 group 裡面的特徵做內積,計算與標籤的交叉熵損失函數,然後再回傳。對於 fresh 的樣本,與 group 裡面的樣本進行最小化餘弦相似度。

最後,對 group 裡面特徵更新,採取新類別中心替換,依據現有類別中心加權的原則。對於 gallery net,採用 moving average 策略把 probe 裡面的參數漸進式更新進去。

本論文方法:trick 介紹

1.)引入的ID Group,其size 為可調參數,一般預設為3 萬。

2.)為達到穩定訓練,參考moco 類別方法,引入moving average,對應收斂情況分別為:

達摩院開源低成本大規模分類架構FFC

實驗結果

1. 雙重Loader 消融實驗

達摩院開源低成本大規模分類架構FFC

達摩院開源低成本大規模分類架構FFC

############# 2. SOTA 方法效果比較##################

3. 顯存與樣本吞吐對比

達摩院開源低成本大規模分類架構FFC

##

以上是達摩院開源低成本大規模分類架構FFC的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
威爾R.E.P.O.有交叉遊戲嗎?
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

如何評估Java框架商業支援的性價比 如何評估Java框架商業支援的性價比 Jun 05, 2024 pm 05:25 PM

評估Java框架商業支援的性價比涉及以下步驟:確定所需的保障等級和服務等級協定(SLA)保證。研究支持團隊的經驗和專業知識。考慮附加服務,如昇級、故障排除和效能最佳化。權衡商業支援成本與風險緩解和提高效率。

PHP 框架的學習曲線與其他語言框架相比如何? PHP 框架的學習曲線與其他語言框架相比如何? Jun 06, 2024 pm 12:41 PM

PHP框架的學習曲線取決於語言熟練度、框架複雜性、文件品質和社群支援。與Python框架相比,PHP框架的學習曲線較高,而與Ruby框架相比,則較低。與Java框架相比,PHP框架的學習曲線中等,但入門時間較短。

PHP 框架的輕量級選項如何影響應用程式效能? PHP 框架的輕量級選項如何影響應用程式效能? Jun 06, 2024 am 10:53 AM

輕量級PHP框架透過小體積和低資源消耗提升應用程式效能。其特點包括:體積小,啟動快,記憶體佔用低提升響應速度和吞吐量,降低資源消耗實戰案例:SlimFramework創建RESTAPI,僅500KB,高響應性、高吞吐量

golang框架文件最佳實踐 golang框架文件最佳實踐 Jun 04, 2024 pm 05:00 PM

編寫清晰全面的文件對於Golang框架至關重要。最佳實踐包括:遵循既定文件風格,例如Google的Go程式設計風格指南。使用清晰的組織結構,包括標題、子標題和列表,並提供導覽。提供全面且準確的信息,包括入門指南、API參考和概念。使用程式碼範例說明概念和使用方法。保持文件更新,追蹤變更並記錄新功能。提供支援和社群資源,例如GitHub問題和論壇。建立實際案例,如API文件。

如何為不同的應用場景選擇最佳的golang框架 如何為不同的應用場景選擇最佳的golang框架 Jun 05, 2024 pm 04:05 PM

根據應用場景選擇最佳Go框架:考慮應用類型、語言特性、效能需求、生態系統。常見Go框架:Gin(Web應用)、Echo(Web服務)、Fiber(高吞吐量)、gorm(ORM)、fasthttp(速度)。實戰案例:建構RESTAPI(Fiber),與資料庫互動(gorm)。選擇框架:效能關鍵選fasthttp,靈活Web應用選Gin/Echo,資料庫互動選gorm。

golang框架開發實戰詳解:問題答疑 golang框架開發實戰詳解:問題答疑 Jun 06, 2024 am 10:57 AM

在Go框架開發中,常見的挑戰及其解決方案是:錯誤處理:利用errors套件進行管理,並使用中間件集中處理錯誤。身份驗證和授權:整合第三方庫並建立自訂中間件來檢查憑證。並發處理:利用goroutine、互斥鎖和通道來控制資源存取。單元測試:使用gotest包,模擬和存根隔離,並使用程式碼覆蓋率工具確保充分性。部署和監控:使用Docker容器打包部署,設定資料備份,透過日誌記錄和監控工具追蹤效能和錯誤。

Golang框架學習過程中常見的迷思有哪些? Golang框架學習過程中常見的迷思有哪些? Jun 05, 2024 pm 09:59 PM

Go框架學習的迷思有以下5種:過度依賴框架,限制彈性。不遵循框架約定,程式碼難以維護。使用過時庫,帶來安全和相容性問題。過度使用包,混淆程式碼結構。忽視錯誤處理,導致意外行為和崩潰。

golang框架效能比較:做出明智選擇的指標 golang框架效能比較:做出明智選擇的指標 Jun 05, 2024 pm 10:02 PM

選擇Go框架時,關鍵效能指標(KPI)包括:回應時間、吞吐量、並發能力和資源使用。透過基準測試和比較框架的KPI,開發人員可以根據應用程式需求進行明智的選擇,考慮預期負載、效能關鍵部分和資源限制。

See all articles