DIP: Spectral Bias of DIP 頻譜偏置解釋DIP

On Measuring and Controlling the Spectral Bias of the Deep Image Prior

文章目錄

  • On Measuring and Controlling the Spectral Bias of the Deep Image Prior
    • 1. 方法原理
      • 1.1 動機
      • 1.2 相關概念
      • 1.3 方法原理
        • 頻帶一致度量與網絡退化
        • 譜偏移和網絡結構的關系
        • Lipschitz-controlled 卷積層
        • Gaussian-controlled 上采樣層
        • 自動停止迭代過程
    • 2. 實驗結果
    • 3. 總結

文章地址:https://arxiv.org/pdf/2107.01125.pdf

代碼地址: https://github.com/shizenglin/Measure-and-Control-Spectral-Bias

參考博客: https://zhuanlan.zhihu.com/p/598650125


1. 方法原理

1.1 動機

動機

  • Deep Image Prior已經被廣泛地應用于去噪、超分、圖像恢復等
  • 但是我們尚不清楚如何在網絡架構的選擇之外控制DIP
  • DIP存在性能達到峰值之后退化的問題 --> 需要early stopping

貢獻

  • 使用譜偏移度量和解釋 DIP的原理
    • DIP學習目標圖像低頻分量的效率比高頻分量高
  • 控制譜偏移
    • 使用Lipschitz-controlled 正則化和 Lipschitz 批歸一化加速和穩定優化過程
    • 使用 上采樣方法(bilinear upsampling)引入了傾向于恢復低頻分量的特點(譜偏移)
    • 使用了一種簡單的early stopping策略防止多余的計算

1.2 相關概念

譜偏移原則是指:神經網絡擬合低頻信息的效率比高頻信息快

相關文章參考:

  • On the Spectral Bias of Neural Networks
  • FREQUENCY PRINCIPLE: FOURIER ANALYSIS SHEDS LIGHT ON DEEP NEURAL NETWORKS

用其中的一些圖進行解釋:

  • 隨著迭代的進行,神經網絡的輸出(綠色線)首先擬合的是真實觀測數據的低頻,然后再去逐漸擬合高頻

在這里插入圖片描述


反(逆)問題根據觀測結果獲取真實模型的一種求解模式。具體的可以參考

  • Untrained Neural Network Priors for Inverse Imaging Problems: A Survey

注意反問題求解存在一個普遍的問題:多解性。也就是多個反演結果的合成數據都可以和觀測數據匹配。通常一個減少多解性的方法就是添加約束條件(在公式中表現為正則化約束)


1.3 方法原理

頻帶一致度量與網絡退化

??這篇文章是從頻率域的角度進行譜偏移分析的,用 { θ 1 , . . . , θ T } \{\theta^{1},...,\theta^{T}\} {θ1,...,θT}表示第對應迭代次數網絡的參數,用 { f θ 1 , . . . , f θ T } \{f_{\theta^{1}},...,f_{\theta^{T}}\} {fθ1?,...,fθT?}表示對應的網格過程。對圖片頻率分析需要使用傅里葉變換獲得 頻率域的信息,用 F ( f θ ( t ) ) F(f_{\theta^{(t)}}) F(fθ(t)?)表示。頻譜圖的表示如下:

如果對標簽圖片也做一次傅里葉變換,那么可以求解網絡輸出和這個結果的比值
H θ ( t ) = F { f θ ( t ) } F { y 0 } H_{\theta^{(t)}} = \frac{F\{f_{\theta^{(t)}}\}}{F\{y_0\}} Hθ(t)?=F{y0?}F{fθ(t)?}?

  • 這個比值越接近于1表示網絡輸出和標簽的相關性越高
  • H圖像是一個以中心對稱的圖像,這里為方便統計就將其分割成為多個同心圓環,求圓環中的平均值作為這個圈內的值。也就是將一個二維的度量變為了一個一維的度量
  • 文章中將頻率劃分為了:lowest、low、medium、high和highest五個部分

這個度量比值在DIP不同應用場景中隨著迭代次數的變化

  • 隨著DIP迭代次數的增加,PSNR會先達到最高然后緩慢降低(性能達到峰值之后會下降)
  • 在PSRN最高的時候(圖中綠線),恰好是lowest分量的頻帶一致性剛好最高的時候
  • 通過下圖驗證了 DIP也存在譜偏移的現象:低頻分量學得更快且頻帶一致性很高,而高頻分量學習相對較慢且頻帶一致性較低
  • 隨著高頻部分的頻帶一致性提高,PSNR下降

譜偏移和網絡結構的關系

前面有研究表示Encoder-Decoder結構的DIP效果更好,這里作者對比了三種不同結構進行測試對比(a. 沒有Encoder部分的DIP; b. 沒有上采樣層的DIP;):

  • 不論什么結構譜偏移都存在
  • 去掉上采樣層的Decoder結構(ConvNet)擬合高頻的效率更高,這里表現為高頻部分的頻帶一致性高
  • 無上采樣層的ConvNet結構最大的PSNR比Decoder和DIP低

結論

  • 無訓練網絡UNNP可以解決逆圖像問題的原因是:低頻學習效率高,高頻學習效率相對較慢(譜偏移)
  • 高頻信息通常為為結構高頻信息和噪聲高頻信息,當網絡開始學習噪聲高頻信息的時候,網絡恢復的性能開始下降
  • 這里通過一個類似消融實驗的方法說明上采樣層是可以提高PSNR的,但是這會影響低頻的收斂速度

防止網絡退化,平衡性能與效率的方向

  • 保證性能的前提下,使用參數量更少的 Decoder結構 替代DIP的 Encoder-Decoder結構
  • 性能退化:抑制網絡對高頻噪聲的學習(使用上采樣層)
  • 加速收斂:使用更合適的上采樣層
  • 提前停止策略:自動檢測?

Lipschitz-controlled 卷積層

從頻率域理解卷積操作

  • 對一個時間域/空間域的變量做一個傅里葉變換其實是將作用域變換到了頻率域,這樣的其中一個作用是:
    • 將空間域的卷積操作 變為 頻率域的乘積操作,簡化計算
    • 當然對于信號處理還有更多的好處,比如FK變換可以用于濾波
  • 圖像和“卷積核”的作用在頻率域其實就是一個乘積過程
    • 在這里插入圖片描述

卷積核具有濾波的作用,但是什么樣的卷積核可以抑制高頻呢?


L-Lipschitz連續
這個概念很有意思,WGAN-GP中也用到了

其定義是:如果函數f在區間Q中,以常數L Lipschitz連續,那么對于 x , y ∈ Q x,y \in Q x,yQ有:
∣ ∣ f ( x ) ? f ( y ) ∣ ∣ ≤ L ∣ ∣ x ? y ∣ ∣ ||f(x)- f(y)|| \leq L||x - y|| ∣∣f(x)?f(y)∣∣L∣∣x?y∣∣

常數L就被稱為函數f在區間Q上的 Lipschitz常數。Lipschitz連續其實是限制了連續函數f的局部變動幅度不能超過某一個常量。我個人感覺一個非常更簡單地理解這個概念的方法就是將稍微變動一下這個公式:
∣ ∣ f ( x ) ? f ( y ) ∣ ∣ ∣ ∣ x ? y ∣ ∣ ≤ L \frac{||f(x)- f(y)||}{||x - y||} \leq L ∣∣x?y∣∣∣∣f(x)?f(y)∣∣?L
這個東西看起來就像是求導了,更多的可以參考https://blog.csdn.net/FrankieHello/article/details/105739610


結合Lipschitz和頻譜分析

假設卷積層的 f f f是符合C-Lipschitz的,存在:
∣ f ^ ( k ) ∣ ≤ C ∣ k ∣ 2 ≤ ∣ ∣ w ∣ ∣ s n ∣ k ∣ 2 |\hat{f}(k)| \leq \frac{C}{|k|^2} \leq \frac{||w||_{sn}}{|k|^2} f^?(k)k2C?k2∣∣wsn??

  • k表示頻率, ∣ f ^ ( k ) ∣ |\hat{f}(k)| f^?(k)表示傅里葉系數的模(有實部和虛部)
  • 分母是 k 2 k^2 k2表示在高頻的時候衰減很強,學習更高的頻率需要更高的頻譜范數(分子)
  • ∣ ∣ w ∣ ∣ s n ||w||_{sn} ∣∣wsn? 表示卷積層參數矩陣w的譜范數,可以通過限制譜范數的上限來限制卷積層學習更高頻率的能力
    • ∣ ∣ w ∣ ∣ w ∣ ∣ s n ∣ ∣ s n = 1 ||\frac{w}{||w||_{sn}}||_{sn} = 1 ∣∣∣∣wsn?w?sn?=1, ∣ ∣ w λ ∣ ∣ w ∣ ∣ s n ∣ ∣ s n = λ ||\frac{w\lambda}{||w||_{sn}}||_{sn} = \lambda ∣∣∣∣wsn?wλ?sn?=λ
    • w m a x ( 1 , ∣ ∣ w ∣ ∣ s n / λ ) \frac{w}{max(1,||w||_{sn}/\lambda)} max(1,∣∣wsn?/λ)w?

注意這里我們想要達到的一個效果就是:限制最高可以學習的頻率。可以選擇一個合適的 λ \lambda λ在保證恢復效果的同時不去恢復噪聲信號。

其他網絡層對Lipschitz常數的影響


Gaussian-controlled 上采樣層

插值、鄰近上采樣層的平滑操作會讓DIP網絡收斂速度變慢,但是上采樣層對于抑制高頻信息又有一定的作用,為了平衡二者作者引入了 gaussian-controlled上采樣層。

方法就是:轉置卷積 + 高斯核

  • 轉置卷積可以自定義上采樣的卷積核
  • 為了控制平滑程度,卷積核最簡單的就是高斯核
  • 實驗不同的高斯核 σ \sigma σ越小收斂越快,但是PSNR越小

自動停止迭代過程

  • 利用Lipschitz方法限制了網絡學習的最高頻率噪聲,避免了網絡的退化
  • 當高頻部分到達了上界限,也就意味著網絡在之前就已經收斂了
  • 怎么評估高頻到達了上界限
    • r = B l u r r i n e s s S h a r p n e s s r = \frac{Blurriness}{Sharpness} r=SharpnessBlurriness?
    • 即當模糊度/銳度之間的導數小于預先設置的閾值的時候,停止迭代
    • r ( f θ ) = B ( f θ ) / S ( f θ ) r(f_{\theta}) = B(f_{\theta})/S(f_{\theta}) r(fθ?)=B(fθ?)/S(fθ?)
    • Δ r ( f θ ( t ) ) = ∣ 1 n ∑ i = 1 n r ( f θ ( t ? n ? i ) ) ? 1 n ∑ i = 1 n r ( f θ ( t ? n ? i ) ) ∣ \Delta r(f_{\theta ^{(t)}}) = |\frac{1}{n}\sum_{i=1}^{n}r(f_{\theta}^{(t-n-i)}) - \frac{1}{n}\sum_{i=1}^{n}r(f_{\theta}^{(t-n-i)})| Δr(fθ(t)?)=n1?i=1n?r(fθ(t?n?i)?)?n1?i=1n?r(fθ(t?n?i)?)

2. 實驗結果

  • 去噪

  • Image deblockign

    • 在這里插入圖片描述
  • Image Inpainting

  • 在這里插入圖片描述

3. 總結

研究思路

  1. 從譜偏置方向分析DIP的工作,網絡先擬合低頻信息,逐漸擬合高頻信息
  2. 怎么控制擬合高頻信息?–> 高頻截斷 --> 應用Lipschitz理論控制,解決網絡層退化的問題
  3. 網絡訓練慢怎么解決?–>分析發現常規的上采樣層相當于一個低通濾波器,引入了過多的低頻分量導致很多時候收斂非常慢,所以使用 gaussian 核控制的轉置卷積方法 平衡網絡收斂效率的問題。
  4. 怎么Early stopping 減少迭代次數? --> 使用模糊度與銳度的比值的導數進行衡量

優點

  • 將GAN 譜優化的策略放到DIP之中,在頻率域中分析各個層的性質:低頻收斂快,高頻收斂慢。
  • 用譜偏置的思路解釋了網絡退化問題
  • 提出頻帶一致性模糊度和銳度比值梯度 平衡了DIP收斂效率和效果

改進方向

  • 就個人觀點:噪聲這里假設都是高頻的,但是低頻噪聲、結構噪聲是否會有影響?
  • 該研究給實際應用DIP提供了很大的可能性,但是就實驗效果來看并沒有提升,甚至有所下降。所以基于這種方法怎么去同時提高效果?
  • 就我個人想法:繼續減少參數化網絡的參數量(PIP等工作),并且提高恢復的效果(持續研究方向) 是現在的研究方向。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/37778.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/37778.shtml
英文地址,請注明出處:http://en.pswp.cn/news/37778.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Linux常規操作命令

日升時奮斗,日落時自省 目錄 1、vim 1.1、工作模式 1.2、末行模式操作相關命令 1.2.1、保存退出操作 1.2.2、查找替換 1.3、輸入模式操作相關命令 1.3.1、移動相關命令 1.3.2、刪除和剪切命令 1.3.3、復制操作 1.3.4、撤銷 2、head 3、tail 4、ps 5、…

數據結構算法--2 冒泡排序,選擇排序,插入排序

基礎排序算法 冒泡排序 思想就是將相鄰元素兩兩比較,當一個元素大于右側相鄰元素時,交換他們的位置,小于右側元素時,位置不變,最終序列中的最大元素,像氣泡一樣,到了最右側。 這時冒泡排序第一…

linux Socket簡單編程實例

服務端 網絡編程中服務端接受連接的套接字創建過程如下: 1.調用socket函數創建套接字 2.調用bind函數分配IP地址和端口號 3.調用listen函數轉為可接收請求狀態 4.調用accept函數受理連接請求 #include <stdio.h> #include <stdlib.h> #include <sys/types.h>…

Java實現根據姓名生成頭像(釘釘樣式)

頭像生成器代碼如下&#xff1a; package com.hua.util;import org.apache.commons.lang3.StringUtils;import javax.imageio.ImageIO; import java.awt.*; import java.awt.geom.RoundRectangle2D; import java.awt.image.BufferedImage; import java.io.File; import java.i…

配置listener tcps加密 enable SSL encryption for Oracle SQL*Net

一 配置客戶端和服務端的wallet 2端配置方法一致&#xff0c;相互添加證書 orapki wallet create -wallet “/u01/oracle/wallet” -pwd Wdkf984jkkgekj434FKFD -auto_login_local orapki wallet add -wallet “/u01/oracle/wallet” -pwd Wdkf984jkkgekj434FKFD -dn “CNho…

Zabbix監控MySQL數據庫實戰

zabbix監控mysql的方式 只是安裝agent 啟用模板監控 啟用自定義腳本的模板監控 使用zabbix模版及結合shell腳本監控mysql 創建mysql的zabbix授權用戶 mysql> grant all PRIVILEGES on *.* to zabbixlocalhost identified by zabbix; ###創建一個有權限的訪問用戶lqb密碼設…

es1.7.2 按照_type先聚合,再按照時間二次聚合

// 設置查詢條件if (this.query ! null) {this.searchbuilder.setQuery(this.query);}TermsBuilder typeAggregation AggregationBuilders.terms("agg_type").field("_type");DateHistogramBuilder dateTermsBuilder AggregationBuilders.dateHistogram(…

[Android] 通過JNI 讓 JAVA 調用 android native 接口

前言&#xff1a; JNI (java native interface) 是一個庫&#xff0c;可以讓 java 代碼和其他語言互動&#xff0c;比如 java 通過 JNI 調用融合了 jni庫的 c/c 代碼&#xff0c;注意&#xff0c;這里要求 c/c代碼中必須通過鏈接 jni 庫并按照 JNI 規范定義一套可供 JAVA 調用…

STM32自帶的DSP庫的濾波初體驗(一)

最近在弄STM32自帶的DSP庫里的濾波&#xff0c;記錄一下&#xff1a; arm_fir_instance_q15 instance_q15_S; #define NUM_TAPS 16 //濾波系數的個數 #define BLOCK_SIZE 32 q15_t firStateF32[BLOCK_SIZE NUM_TAPS]; q15_t Fir_Coeff[NUM_TAPS] {-79, -136, 312, 6…

【02】基礎知識:typescript數據類型

1、布爾類型 boolean let flag: boolean false2、數字類型 number let num: number 6 //十進制 let num2: number 0xf00d //十六進制 let num3: number 0b1010 //二進制 let num4: number 0o744 //八進制3、字符串類型 string 用雙引號&#xff08;“&#xff09;或單引…

MongoDB 簡介

什么是MongoDB ? MongoDB 是由C語言編寫的&#xff0c;是一個基于分布式文件存儲的開源數據庫系統。 在高負載的情況下&#xff0c;添加更多的節點&#xff0c;可以保證服務器性能。 MongoDB 旨在為WEB應用提供可擴展的高性能數據存儲解決方案。 MongoDB 將數據存儲為一個…

mqttfx連上OneNET生成token時的一大坑,報用戶名或密碼錯誤

整個流程如下連接&#xff1a; MQTT.fx和MQTTX 鏈接ONENET物聯網開發平臺避坑細節干貨。 其中在生成token時&#xff0c;搞了半天在連接后都會報用戶名密碼錯誤 最后發現是格式問題&#xff0c;輸入所有字符后一定要雙擊看是否可以全選中&#xff0c;可以全選中說明字符的格式…

java spring cloud 企業工程管理系統源碼+二次開發+定制化服務 em

Java版工程項目管理系統 Spring CloudSpring BootMybatisVueElementUI前后端分離 功能清單如下&#xff1a; 首頁 工作臺&#xff1a;待辦工作、消息通知、預警信息&#xff0c;點擊可進入相應的列表 項目進度圖表&#xff1a;選擇&#xff08;總體或單個&#xff09;項目顯…

springBoot中service層查詢使用多線程CompletableFuture(有返回值)

重點&#xff1a; 1. 創建線程池 Executor executor Executors.newCachedThreadPool();//保存線程List<CompletableFuture<Void>> futures new ArrayList<>();2.使用 //這里可以是多個看下面代碼是在for中使用的 CompletableFuture<Void> future …

深入解析路由與網絡:網絡的脈絡

目錄 路由 廣域網 公網 外網 局域網 內網 以太網 Wi-Fi CDN IPv4和IPv6 IP地址分類 無類別域間路由&#xff08;CIDR&#xff09; 路由 路由是指在計算機網絡中&#xff0c;將數據包從源地址傳遞到目標地址的過程。在一個復雜的網絡中&#xff0c;數據包需要經過多…

冶金作業VR虛擬仿真廠家

對于高風險行業來說&#xff0c;開展安全教育培訓是企業的重點工作&#xff0c;傳統培訓逐漸跟不上時代變化和工人需求&#xff0c;冶金安全VR模擬仿真培訓系統作為一種新型的教育和培訓工具&#xff0c;借助VR虛擬現實技術為冶金行業的工人提供一個安全、高效的培訓環境。 冶金…

Angular中的管道Pipes

Angular中的管道&#xff08;Pipes&#xff09;是一種強大的工具&#xff0c;它可以處理和轉換數據&#xff0c;然后將其呈現在視圖中。它們可以被用于排序、格式化和過濾數據等任務。在本文中&#xff0c;我們將介紹Angular中的管道以及如何使用它們來簡化開發過程。 管道的基…

Ansible Service模塊,使用 Ansible Service模塊進行服務管理

Ansible 是一種自動化工具&#xff0c;它可以簡化配置管理、應用程序部署和任務自動化等操作。Ansible 的 Service 模塊是其中一個重要的模塊&#xff0c;它提供了管理服務的功能&#xff0c;使得在遠程主機上啟動、停止、重啟和重新加載服務變得簡單和可靠。本文將介紹 Ansibl…

大疆秋招指南,網申測評和面試攻略

大疆秋招內容簡介 這是一個非常卷的時代&#xff0c;一到畢業季&#xff0c;各種各樣規模不一的公司&#xff0c;紛紛向社會招聘&#xff0c;競爭實力強&#xff0c;知名度越高的企業&#xff0c;往往越能得到能力出眾的人才的青睞&#xff0c;也正是在一批批新血液的注入下&a…

戶外組網擺脫布線困擾,工業5G網關實現無人值守、遠程實時監控

在物聯網通信技術發達的2023&#xff0c;網絡覆蓋對所及之處的全面覆蓋&#xff0c;科技發展的促使下很多高危戶外場景也在思考如何利用無線技術提高人員安全及現場無人化管理。 煤礦是我們國家不可缺少的重要能源&#xff0c;其開采過程的危險系數也是眾所皆知的&#xff0c;…