Transformer-Based Learned Optimization
前言 本文為學習優化器提出一種新的神經網路體系結構,其靈感來自經典的BFGS演算法。和BFGS一樣,將預條件矩陣估計為一級更新的和,但使用基於transformer的神經網路來預測這些更新以及步長和方向。與以往幾種優化方法相比,能在目標問題的引數空間的不同維度之間進行條件反射,同時仍然適用於變維度的優化任務,無需再訓練。
歡迎關注公眾號CV技術指南,專注於計算機視覺的技術總結、最新技術跟蹤、經典論文解讀、CV招聘資訊。
論文:https://arxiv.org/pdf/2212.01055.pdf
程式碼:https://github.com/google/learned_optimization
背景
本文提出了一種新的優化方法。它通過一個表達函式(如多層感知器)表示優化器更新步驟,然後在一組訓練優化任務上確定該函式的引數。由於學習到的優化器的更新功能是從資料中估計的,原則上它可以學習各種理想的行為,如學習速率計劃和多個區域性極小值。這與傳統的優化器形成對比,後者是人為設計的,是硬編碼的。
對於需要反覆解決相關優化任務的應用程式,學習優化器能起到很好的效果。例如,三維人體姿態估計通常被表述為特定損失函式的最小值。對於這種方法,估計不同影象觀測的三維姿態需要對許多密切相關的問題反覆優化相同的目標函式。傳統的優化方法將這些問題視為獨立的,而這可能是次優的,因為它沒有聚集解決多個相關優化任務的經驗。
如圖1所示,對基準優化方法的經典優化目標以及基於物理的人體姿態重構的現實任務上對Optimus進行評估。
圖1。第一行:評估結果,顯示優化器為第一行對應的目標函式所達到的平均目標值(y軸)與目標函式的維度(x軸)的對比。最下面一行:用於評估本文方法的目標函式的例子。
本文的主要貢獻
1. 介紹了一種用於學習優化的新型神經網路體系結構。
2. 元訓練速度明顯加快,與BFGS相比,重建質量更好,並且在最小化損失方面更快。
方法
基於transformer的學習優化器Optimus受到BFGS秩一近似方法的啟發,該方法用於估計逆Hessian,用作預處理矩陣,以獲得下降方向。引數更新是由獨立操作每個引數的學習優化器和學習前處理器(Bk)產生的下降方向(sk)的乘積,完整更新如下
Optimus的概述示意圖如圖2所示。
圖2。左:基於transformer的學習型優化器Optimus迭代最小化損失L的概述示意圖。右:Optimus的架構由L個堆疊的Transformer編碼器組成,在給定的特徵向量zk下預測引數更新∆xk。
使用兩個元件來預測引數更新∆,獨立地預測向量x的每個維度的更新方向和幅度。MLP將特徵向量作為輸入,並輸出兩個值
引入一種機制來耦合x的每個維度的優化過程,並使優化演算法能夠跨迭代儲存資訊。將這些更新定義為低秩更新
它通過編碼器的自我注意力機制實現了單個引數更新之間的耦合。這使得很容易就能擴充套件到不同維度的問題。並且它允許優化器跨迭代積累資訊,類似於BFGS如何隨著優化的進行逐步逼近逆Hessian矩陣。本文方法通過學習在其他學習優化器(如Adafactor MLP)中估計的一階更新的預條件來實現。雖然這種預處理方法大大提高了步長,但其計算成本隨引數數量的增加呈二次增長。
實驗
圖4。Optimus與Adam、BFGS和Adafactor MLP在達到目標函式預定義最小值所需的相對迭代次數的比較。
圖6。在DiffPhy方法的基礎上介紹的物理損失概述。優化變數x對應於物理模擬人體的關節力矩,其目標是最小化物理特徵與觀察到的視覺證據之間的姿勢重建損失。
圖7。左:Optimus和Adafactor MLP訓練過程中驗證損失的比較。中:在tab中“in domain”示例優化過程中損失曲線的比較。右:tab中“域外”示例優化過程中的損失曲線。
表1。針對Human3.6M驗證集的運動捕捉資料進行軌跡優化的不同方法的比較。
表2。對Human3.6M驗證集的定量結果比較。
表3。泛化到新資料集的定量結果。
結論
本文引入了一種新的學習過的優化器,它具有可表達的體系結構,可以捕獲引數空間中的複雜依賴項。此外,還證明了Optimus對於基於物理的三維重建的現實任務以及經典優化問題的基準測試的有效性。且Optimus適合於損失函式主導優化計算複雜度的任務(例如,基於物理的重構)。
歡迎關注公眾號CV技術指南,專注於計算機視覺的技術總結、最新技術跟蹤、經典論文解讀、CV招聘資訊。
【技術文件】《從零搭建pytorch模型教程》122頁PDF下載
QQ交流群:444129970。群內有大佬負責解答大家的日常學習、科研、程式碼問題。
模型部署交流群:732145323。用於計算機視覺方面的模型部署、高效能運算、優化加速、技術學習等方面的交流。
ECCV2022 | 重新思考單階段3D目標檢測中的IoU優化
Vision Transformer和MLP-Mixer聯絡和對比
從零搭建Pytorch模型教程(三)搭建Transformer網路
從零搭建Pytorch模型教程(四)編寫訓練過程--引數解析
從零搭建Pytorch模型教程(五)編寫訓練過程--一些基本的配置
從零搭建pytorch模型教程(八)實踐部分(一)微調、凍結網路
從零搭建pytorch模型教程(八)實踐部分(二)目標檢測資料集格式轉換
- 普通段位玩家的CV演算法崗上岸之路(2023屆秋招)
- 用於超大影象的訓練策略:Patch Gradient Descent
- 關於知識蒸餾,你一定要了解的三類基礎演算法
- 深度理解變分自編碼器(VAE) | 從入門到精通
- CUDA 教程(一) GPU 程式設計概述和 CUDA 環境搭建
- 一文總結當下常用的大型 transformer 效率優化方案
- 多模態學習有哪些架構?MBZUAI最新《多模態表示學習》綜述,29頁詳述多模態表示學習的演化、預訓練及其應用綜述
- Transformer-Based Learned Optimization
- U-Net在2022年相關研究的論文推薦
- ECCV 2022 | 新方案: 先剪枝再蒸餾
- CVPR2022 | 簡單高效的語義分割體系結構
- CVPR 2022 | 網路中批處理歸一化估計偏移的深入研究
- CVPR2022 | 通過目標感知Transformer進行知識蒸餾
- 經典論文 | 300FPS,超快結構感知的深度車道檢測
- YOLO系列梳理(九)初嘗新鮮出爐的YOLOv6
- CVPR2022 | 長期行動預期的Future Transformer
- CVPR2022 | 可精簡域適應
- CVPR2022 | 弱監督多標籤分類中的損失問題
- 計算機視覺中的論文常見單詞總結
- CVPR2022 | A ConvNet for the 2020s & 如何設計神經網路總結