自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

無需手工設(shè)計,從零開始搜索損失函數(shù)

新聞 機器學(xué)習(xí)
針對各種任務(wù)設(shè)計合適的損失函數(shù)往往需要消耗一定的人力成本,一種名為AutoLoss-Zero的新型通用框架可以從零開始搜索損失函數(shù),使成本大大降低。

 [[390709]]

近年來,自動機器學(xué)習(xí)(AutoML)在模型結(jié)構(gòu)、訓(xùn)練策略等眾多深度學(xué)習(xí)領(lǐng)域取得了進展。然而,損失函數(shù)作為深度學(xué)習(xí)模型訓(xùn)練中不可或缺的部分,仍然缺乏良好的探索。目前,多數(shù)研究工作仍然使用交叉熵損失(Cross-Entropy Loss)、范數(shù)損失(L1/L2 Loss)來監(jiān)督網(wǎng)絡(luò)訓(xùn)練。盡管這類損失函數(shù)在多數(shù)情況下可以取得不錯的效果,但它們與網(wǎng)絡(luò)在測試時使用的評估指標之間大多存在差異,而這種差異會對模型訓(xùn)練效果造成損傷。

目前對于損失函數(shù)進行改進的工作可以分為兩類:

手工設(shè)計。手工設(shè)計損失函數(shù)依賴于設(shè)計者對特定任務(wù)和評價指標的專業(yè)知識和理解,因此很難在不同任務(wù)上進行推廣。

自動設(shè)計。自動設(shè)計損失函數(shù)的工作嘗試自動搜索較優(yōu)的損失函數(shù),但當(dāng)前的工作都僅僅關(guān)注于某個特定任務(wù)(如語義分割)或特定評價指標(如mAP),對特定情形進行了針對性設(shè)計,因此其可推廣性也存在疑問。

為了盡可能減少針對各種任務(wù)設(shè)計合適的損失函數(shù)時所需的人力成本,來自香港中文大學(xué)、商湯科技等機構(gòu)的研究者設(shè)計了一個通用的損失函數(shù)搜索框架AutoLoss-Zero。為了確保通用性,該方法的搜索空間由一些基本的數(shù)學(xué)運算組成,而不包括對于某個評價指標的針對性設(shè)計。由于此類搜索空間中有效的損失函數(shù)十分稀疏,研究者提出了高效且通用的拒絕機制和梯度等價性檢測,以提高搜索的效率。給定任意任務(wù)和評價指標,AutoLoss-Zero可以以合理的開銷(4張V100,48h內(nèi))從隨機初始化開始,搜索到與手工設(shè)計的損失函數(shù)表現(xiàn)相似或更優(yōu)的損失函數(shù)。

無需手工設(shè)計,從零開始搜索損失函數(shù)

論文地址:
https://arxiv.org/abs/2103.14026

該研究的主要貢獻包括:

AutoLoss-Zero是首個通用于各種任務(wù)的損失函數(shù)搜索框架,其搜索空間由基本數(shù)學(xué)運算構(gòu)成,無需先驗知識,可以極大地減少損失函數(shù)設(shè)計所需的人力。該研究在多項計算機視覺任務(wù)(目標檢測、語義分割、實例分割、姿態(tài)估計)上驗證了AutoLoss-Zero的有效性;

該研究提出了高效的拒絕機制,從而快速地篩選掉絕大多數(shù)沒有希望的損失函數(shù)。同時,該研究提出了一個基于梯度的等價性檢測,以避免對于彼此等價的損失函數(shù)進行重復(fù)的評估;

實驗表明,該方法搜索出的損失函數(shù)可以很好地遷移到不同數(shù)據(jù)集和網(wǎng)絡(luò)結(jié)構(gòu)上。

搜索空間

該研究首先定義了搜索目標。給定任意任務(wù)上的評價指標 ξ ,該方法嘗試搜索一個最優(yōu)的損失函數(shù) L(y ̂,y;N_ω ),其中N_ω表示參數(shù)為ω的網(wǎng)絡(luò),y ̂表示網(wǎng)絡(luò)的預(yù)測,y表示網(wǎng)絡(luò)的訓(xùn)練目標。因此,搜索目標可以表示為一個嵌套優(yōu)化(nested optimization):

無需手工設(shè)計,從零開始搜索損失函數(shù)

其中優(yōu)化目標 f(L;ξ) 表示損失函數(shù) L 在評價指標 ξ 上的得分,ω^* (L) 表示使用損失函數(shù)L訓(xùn)練的網(wǎng)絡(luò)參數(shù),E(⋅) 表示數(shù)學(xué)期望,S_train 和S_eval 表示搜索過程中使用的訓(xùn)練集和驗證集。

該搜索空間由一些基礎(chǔ)的數(shù)學(xué)運算組成,這個集合稱為 H,如下表所示。

無需手工設(shè)計,從零開始搜索損失函數(shù)

表1. 搜索空間候選運算

該方法將損失函數(shù)表示為一個計算圖 G。G 是一個有根樹(rooted tree),其中葉子節(jié)點表示損失函數(shù)的輸入(即網(wǎng)絡(luò)預(yù)測 y ^和訓(xùn)練目標 y),根節(jié)點表示損失函數(shù)的輸出 o,其他的中間節(jié)點從表中的數(shù)學(xué)運算里采樣得到。此外,該方法還添加一個常數(shù) 1 作為損失函數(shù)的候選輸入,以增加其表示能力。在整個運算圖內(nèi),所有的張量(tensor)都保持同樣的形狀 (N,C,H,W),分別代表(batch, channel, height, width)四個維度的尺寸。計算圖 G 的輸出 o 會被融合(aggregate)為最終的損失值:

無需手工設(shè)計,從零開始搜索損失函數(shù)

在一些任務(wù)中,損失函數(shù)由多個分支組成(如目標檢測中的分類和邊框回歸分支)。在這種情況下,我們將每個分支表示為一個獨立的計算圖 G,并將它們的損失值求和作為最終的損失值。搜索對所有的分支同時進行。

搜索算法

該方法使用進化算法對損失函數(shù)進行搜索。圖1為整個搜索算法的流程圖。

無需手工設(shè)計,從零開始搜索損失函數(shù)

圖 1. 搜索算法流程圖

在搜索初始化階段,我們首先隨機生成 K(默認K=20)個損失函數(shù)作為初始種群。此后,每一次更新隨機采樣當(dāng)前種群內(nèi) T(默認T=5%)比例的損失函數(shù),并對其中在代理任務(wù)上得分最高的一個進行變異(mutation),得到后代個體,并加入種群。在種群的更新過程中,只有最新的 P=2500 個個體會被保留。

由于搜索空間中有效的損失函數(shù)十分稀疏,盡管代理任務(wù)相對于最終的網(wǎng)絡(luò)訓(xùn)練已經(jīng)相當(dāng)簡化,但對于每個候選的損失函數(shù)都進行代理任務(wù)上的評估,時間成本仍然是不可接受的。為此,研究者設(shè)計了一個損失函數(shù)拒絕機制(loss-rejection protocol),對候選的損失函數(shù)進行初步篩選。在損失函數(shù)的隨機生成和變異過程中,如果候選子代個體無法通過篩選,則重新進行隨機生成/變異,直到得到可以通過篩選的損失函數(shù),用于代理任務(wù)上的評估。此外,該方法在對候選的損失函數(shù)進行評估前,會先檢測其是否與已評估過的損失函數(shù)等價(
gradient-equivalence-check strategy),若等價則跳過代理任務(wù)的網(wǎng)絡(luò)訓(xùn)練,復(fù)用之前相同個體的分數(shù)。

接下來,我們來看下搜索算法中的幾個關(guān)鍵部分。

隨機初始化

損失函數(shù)隨機初始化的過程如圖2所示。計算圖從根節(jié)點開始,遞歸地從候選運算集合 H 中隨機采樣運算符作為其子節(jié)點。每個節(jié)點的子節(jié)點數(shù)由這個節(jié)點所代表的運算的操作數(shù)決定。該方法固定隨機初始化的計算圖深度為 D(默認D=3),在當(dāng)前節(jié)點深度達到 D 后,其從候選的輸入集合 中有放回地隨機采樣子節(jié)點,這些子節(jié)點即為計算圖的葉子節(jié)點。

無需手工設(shè)計,從零開始搜索損失函數(shù)

圖2. 損失函數(shù)隨機初始化

變異

基于該研究提出的損失函數(shù)表示形式,研究者定義了三種不同的變異類型:插入(Insertion),刪除(Deletion)及替換(Replacement)。三種變異類型的示意圖如圖3所示。

無需手工設(shè)計,從零開始搜索損失函數(shù)

圖3. 變異類型

在每次產(chǎn)生子代的過程中,存在10%的概率不進行變異,而直接復(fù)制父代個體。此外,為了鼓勵算法進行探索,在變異時,損失函數(shù)有50%的概率被重新隨機初始化。

損失函數(shù)拒絕機制

搜索的目標是找到可以盡可能最大化評價指標ξ的損失函數(shù) L?;诖耍芯空咛岢鲆粋€損失函數(shù)L和評價指標ξ之間的相關(guān)性分數(shù) g(L;ξ),來衡量一個損失函數(shù)對評價指標進行優(yōu)化的能力。

該研究從訓(xùn)練數(shù)據(jù)集中隨機選擇 B 個樣本(在實驗中統(tǒng)一使用B=5),使用一個隨機初始化的網(wǎng)絡(luò) N_(ω_0 ) 對這 B 個樣本進行計算,并將網(wǎng)絡(luò)預(yù)測 y ^ 和對應(yīng)的訓(xùn)練目標 y 存儲下來,記作 {(y ^_b,y_b )}_(b=1)^B。接下來,通過梯度下降的方式,使用候選的損失函數(shù) L(y ^,y) 對網(wǎng)絡(luò)預(yù)測 y ^ 直接進行優(yōu)化,并計算優(yōu)化結(jié)果 y ^* 在評價指標 ξ上的得分,即

無需手工設(shè)計,從零開始搜索損失函數(shù)

g(L;ξ) 即為優(yōu)化結(jié)果相對于初始預(yù)測的提升。這個分數(shù)越高,意味著損失函數(shù)對評價指標的優(yōu)化能力越強。因此,該研究設(shè)置了一個閾值 η(實驗中默認η=0.6),相關(guān)性分數(shù) g(L;ξ) 低于此閾值的損失函數(shù)被認為是沒有希望(unpromising)的,會被直接拒絕。在此過程中并沒有網(wǎng)絡(luò)計算的參與,而是直接對輸入進行優(yōu)化,這使得該損失函數(shù)拒絕機制十分高效。實驗表明,在一個 GPU 上,每分鐘可以篩選 500~1000 個候選損失函數(shù)。這大大提高了算法探索搜索空間的能力。

梯度等價性檢測

為了避免對于相互等價的損失函數(shù)進行重復(fù)的代理任務(wù)評估,對于每個評估過的損失函數(shù),該方法記錄其相對于上文「損失函數(shù)拒絕機制」中使用的B個樣本的梯度的二范數(shù),即。若兩個損失函數(shù)對于這B個樣本,其梯度二范數(shù)均相同(取兩位有效數(shù)字),則我們認為這兩個損失函數(shù)是等價的,并將較早的損失函數(shù)的代理任務(wù)分數(shù)復(fù)用于新的損失函數(shù)。

實驗

該研究在語義分割、目標檢測、實例分割和姿態(tài)估計等四項計算機視覺任務(wù)上從隨機初始化開始進行了搜索。此外,該研究對搜索得到的損失函數(shù)的泛化性進行了研究,并對前文所提到搜索算法中的各項技術(shù)對于搜索效率的影響進行了分析。

語義分割

該研究使用 PASCAL VOC 數(shù)據(jù)集對語義分割任務(wù)中主流的 6 個評價指標進行了搜索,并使用得到的損失函數(shù)對 DeepLab V3+ 網(wǎng)絡(luò)進行了重新訓(xùn)練(re-train)。表 2 為該研究的實驗結(jié)果。該研究將搜索得到的損失函數(shù)與常見的基于手工設(shè)計的損失函數(shù)及自動搜索的損失函數(shù)(ASL, Auto Seg-Loss)進行了比較。結(jié)果表明,在主流的幾個評價指標上,AutoLoss-Zero 搜索到的損失函數(shù)達到或超過了當(dāng)前最好的結(jié)果,僅在 BIoU 這一指標上略低于為專門關(guān)注語義分割任務(wù)的 ASL 方法,但也大大超過了現(xiàn)有基于手工設(shè)計的損失函數(shù)。

無需手工設(shè)計,從零開始搜索損失函數(shù)

表2. 語義分割實驗結(jié)果

該研究還對搜索得到的損失函數(shù)的在不同數(shù)據(jù)集和不同網(wǎng)絡(luò)結(jié)構(gòu)上的泛化性進行了驗證。表3中,該研究使用ResNet50-DeepLabV3+ 網(wǎng)絡(luò)在PASCAL VOC上搜索,并將得到的損失函數(shù)應(yīng)用于不同數(shù)據(jù)集(Cityscapes)和不同網(wǎng)絡(luò)結(jié)構(gòu)(PSPNet)。表3中的結(jié)果表明,該方法搜索得到的損失函數(shù)具有良好的泛化性。

無需手工設(shè)計,從零開始搜索損失函數(shù)

表3. 語義分割泛化性

目標檢測

該研究使用 Faster R-CNN 在 COCO 數(shù)據(jù)集上進行實驗。對于 Faster R-CNN 中的四個損失函數(shù)分支(RPN 網(wǎng)絡(luò)的分類、回歸,F(xiàn)ast R-CNN 子網(wǎng)絡(luò)的分類、回歸),該方法同時進行搜索。表 4 給出了該方法與常用的 IoULoss、GIoULoss,以及針對目標檢測任務(wù)進行損失函數(shù)搜索的工作 CSE-AutoLoss-A 進行比較的 結(jié)果。實驗表明,該方法搜索到的損失函數(shù)與這些損失函數(shù)表現(xiàn)相似。

無需手工設(shè)計,從零開始搜索損失函數(shù)

表4. 目標檢測實驗結(jié)果

該研究也對目標檢測搜索得到的損失函數(shù)的泛化性進行了實驗。表 5 為實驗結(jié)果。

無需手工設(shè)計,從零開始搜索損失函數(shù)

表5. 目標檢測泛化性

實例分割

該研究使用 Mask R-CNN 在 COCO數(shù) 據(jù)集上進行實驗,并對五個損失函數(shù)分支同時進行搜索。表 6 表明該方法搜索到的損失函數(shù)與手工設(shè)計的損失函數(shù)表現(xiàn)相近。

無需手工設(shè)計,從零開始搜索損失函數(shù)

表 6. 實例分割實驗結(jié)果

姿態(tài)估計

該研究在 COCO 上對姿態(tài)估計任務(wù)進行了實驗。表 7 為實驗結(jié)果。該研究與姿態(tài)估計中常用的均方誤差損失(MSE Loss)進行了比較,實驗表明,AutoLoss-Zero 從零開始搜索到的損失函數(shù)表現(xiàn)略好于 MSE Loss。

無需手工設(shè)計,從零開始搜索損失函數(shù)

表7. 姿態(tài)估計實驗結(jié)果

搜索效率

該搜索算法基于進化算法。為了提高搜索效率,研究者設(shè)計了損失函數(shù)拒絕機制(Loss-Rejection Protocol)和梯度等價性檢測(
Gradient-Equivalence-Check Strategy)
。如圖 4 所示,研究者發(fā)現(xiàn)這些模塊可以有效地提高搜索的效率。尤其是在目標檢測任務(wù)上,由于同時對 4 個分支進行搜索,搜索空間尤為稀疏,這使得在沒有損失函數(shù)拒絕機制的情況下,搜索過程無法在合理的時間內(nèi)(約 400 次代理任務(wù)評估)找到任何分數(shù)大于 0 的損失函數(shù)。這表明高效的拒絕機制是搜索有效的關(guān)鍵。

無需手工設(shè)計,從零開始搜索損失函數(shù)

圖4. 搜索效率對比

研究者在表 8 中進一步分析了各個模塊給搜索效率帶來的提升。“滿血”的 AutoLoss-Zero 可以在 48 小時內(nèi)(使用 4 塊 V100 GPU)探索超過10^6 個候選損失函數(shù),這使得它可以在龐大而稀疏的搜索空間內(nèi)有效地探索。

無需手工設(shè)計,從零開始搜索損失函數(shù)

表8. 目標檢測任務(wù)的搜索效率分析。(“# Explored Losses”表示算法在48小時內(nèi)探索的損失函數(shù)數(shù)量。“Stop Training for Invalid Loss Values”表示網(wǎng)絡(luò)在代理任務(wù)的前20輪更新內(nèi)即由于出現(xiàn)NaN或Inf而停止了訓(xùn)練。)

 

責(zé)任編輯:張燕妮 來源: 機器之心Pro
相關(guān)推薦

2020-07-02 15:32:23

Kubernetes容器架構(gòu)

2024-12-06 17:02:26

2015-11-17 16:11:07

Code Review

2018-04-18 07:01:59

Docker容器虛擬機

2019-01-18 12:39:45

云計算PaaS公有云

2022-02-10 10:10:03

數(shù)據(jù)庫表權(quán)限表數(shù)據(jù)庫操作

2024-05-15 14:29:45

2018-05-28 13:12:49

深度學(xué)習(xí)Python神經(jīng)網(wǎng)絡(luò)

2010-05-26 17:35:08

配置Xcode SVN

2018-09-14 17:16:22

云計算軟件計算機網(wǎng)絡(luò)

2011-06-09 10:17:17

jQuery

2020-08-19 11:31:30

設(shè)計UIUX

2024-11-28 10:35:47

2024-04-10 07:48:41

搜索引擎場景

2015-10-15 14:16:24

2011-04-06 15:55:50

開發(fā)webOS程序webOS

2023-11-01 08:35:56

Python函數(shù)

2017-09-04 13:51:29

Android

2025-01-06 00:38:12

2017-02-10 09:30:33

數(shù)據(jù)化運營流量
點贊
收藏

51CTO技術(shù)棧公眾號