Transformer-Based Learned Optimization

語言: CN / TW / HK

前言 本文為學習優化器提出一種新的神經網路體系結構,其靈感來自經典的BFGS演算法。和BFGS一樣,將預條件矩陣估計為一級更新的和,但使用基於transformer的神經網路來預測這些更新以及步長和方向。與以往幾種優化方法相比,能在目標問題的引數空間的不同維度之間進行條件反射,同時仍然適用於變維度的優化任務,無需再訓練。

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聯絡和對比

Visual Attention Network

TensorRT教程(一)初次介紹TensorRT

TensorRT教程(二)TensorRT進階介紹

從零搭建Pytorch模型教程(一)資料讀取

從零搭建Pytorch模型教程(二)搭建網路

從零搭建Pytorch模型教程(三)搭建Transformer網路

從零搭建Pytorch模型教程(四)編寫訓練過程--引數解析

從零搭建Pytorch模型教程(五)編寫訓練過程--一些基本的配置

從零搭建Pytorch模型教程(六)編寫訓練過程和推理過程

從零搭建Pytorch模型教程(七)單機多卡和多機多卡訓練

從零搭建pytorch模型教程(八)實踐部分(一)微調、凍結網路

從零搭建pytorch模型教程(八)實踐部分(二)目標檢測資料集格式轉換

【技術文件】《從零搭建pytorch模型教程》122頁PDF下載

入門必讀系列(十五)神經網路不work的原因總結

入門必讀系列(十四)CV論文常見英語單詞總結

入門必讀系列(十三)高效閱讀論文的方法

入門必讀系列(十二)池化各要點與各方法總結

入門必讀系列(十一)Dropout原理解析

入門必讀系列(十)warmup及各主流框架實現差異

入門必讀系列(九)徹底理解神經網路

入門必讀系列(八)優化器的選擇

入門必讀系列(七)BatchSize對神經網路訓練的影響

入門必讀系列(六)神經網路中的歸一化方法總結

入門必讀系列(五)如何選擇合適的初始化方法

入門必讀系列(四)Transformer模型

入門必讀系列(三)輕量化模型

入門必讀系列(二)CNN經典模型

入門必讀系列(一)欠擬合與過擬合總結