閱讀筆記
論文貢獻:
1. 指出Origin Darts中存在的兩個現象: 即搜索的後期skip-connection數量過多,與由連續近似到離散結構的過程中存在性能差距的gap;
2. 分別根據上述兩個問題,給出對應的解決方法: 包括將操作權重的篩選獨立,提出一個新的loss來抑制近似過程中的性能差距;
3. 較爲系統地總結了自Darts橫空出世來各種對其性能的改進與分析;
論文方法:
1. Darts的性能瓶頸在哪裏?
作者觀察到,Darts在搜索的後期會出現大量的skip connection操作,skip connection對其他操作有着較爲明顯的抑制。雖然在search階段的性能可能仍有小幅上漲,但在對提取出的離散結構重新進行完整訓練時卻發生精度的下降。
作者認爲,大量skip connection操作的出現與在結構輸出處使用的 有關,這是因爲會以犧牲其他成員的權重爲代價來增加某一成員的權重。這意味着,如果某個成員在早期擁有比其他成員更好的表現(哪怕是極輕微的優勢),它也可能會被一直強化,從而逐漸佔據主導地位。而在設計時所採用的加權和形式,本質上與殘差連接 的思想接近。這一block的設計思路也在一定程度上放大了skip connect的優勢。在由搜索切換到完全訓練階段,只選取top-2的操作,也使得其他操作無法得到篩選。
本文分析的第二個性能瓶頸在於由連續到離散結構的近似過程存在性能差距的gap。在NAS領域,幾乎所有的搜索策略都會面臨一個問題,即搜索階段的結構表現與重新獨立訓練的結構表現之間的相關性。NAS任務需要將該相關性做的很高才能使得整個工作有意義,否則,隨機搜索可能都會取得一個比較好的結果。
也面臨相同情況,即由退化到會帶來性能的gap。作者認爲,在最壞的情況下,搜索和重訓練之間的gap甚至會影響操作的選擇。同時,在實驗中也觀察到,所謂的“優勢”和“劣勢”操作之間的權重差微乎其微。權重本身並不能拉開差距,可能我們選擇了權重爲0.25的op,但並不代表權重0.24的op操作就不可取。
2. 如何突破性能的瓶頸
1)將權重操作的歸一化獨立開
既然要歸一化權重,又要讓權重之間獨立互不干擾,那麼將替換爲就是一個相對自然的選擇;作者也在系統回顧時說明了這一改變與其他論文中思路的對比,包括先驗地約束skip connection的數量、在操作後加入dropout操作以及引入早停止機制等等。
2) 提出一個新的zero-one loss作爲正則項引入損失函數
在上面關於性能gap的分析中,也可以看到,op與op之間的weight差距不夠大,不能顯著地引導區分所謂的好操作和壞操作。爲此,作者設計了一個新的損失函數,作爲正則項加入最終的損失函數,來引導將權重區分得更加明顯。該設計的初衷就在於,假如理想情況下搜索到最後得到的就是一個獨熱碼向量,那麼gap也就不存在了。
總的損失函數爲:
論文結果:
在CIFAR-10上:
在ImageNet上:
結論:
通過研究存在的兩個性能瓶頸,分別提出了獨立權重參數和設計新的損失函數的思路,在分類任務上能夠取得SOTA的結果。