天天看點

用狄拉克函數來構造非光滑函數的光滑近似

文章目錄

  • 狄拉克函數
  • 光滑近似
  • Relu激活
  • 取整函數
  • 文章小結
  • 轉載

在機器學習中,我們經常會碰到不光滑的函數,但我們的優化方法通常是基于梯度的,這意味着光滑的模型可能更利于優化(梯度是連續的),是以就有了尋找非光滑函數的光滑近似的需求。事實上,本部落格已經多次讨論過相關主題,比如

​​《尋求一個光滑的最大值函數》​​、

​​《函數光滑化雜談:不可導函數的可導逼近》​​等,但以往的讨論在方法上并沒有什麼通用性。

不過,筆者從最近的一篇論文​​《SAU: Smooth activation function using convolution with approximate identities》​​​學習到了一種比較通用的思路:用狄拉克函數來構造光滑近似。通用到什麼程度呢?理論上有可數個間斷點的函數都可以用它來構造光滑近似!個人感覺還是非常有意思的。

注:部分積分的計算可以參考​​​常見積分求解​​

狄拉克函數

在很早之前的文章​​《詭異的Dirac函數》​​中,我們就介紹過狄拉克函數了。在現代數學中,狄拉克函數被定義為一個“泛函”而不是“函數”,但對于大多數讀者來說,将它當作函數來了解是比較容易接受的。

簡單來說,狄拉克函數

滿足:

1、

2、

3、

直覺來看,

可以看成一個連續型的機率密度函數,采樣空間為全體實數

,但是隻有

處機率非零,也即均值為

、方差也為

,是以從中采樣必然隻能采樣到

,是以成立如下恒等式:

或者

這可謂是狄拉克函數最重要的性質,也是我們後面主要用到的恒等式。

光滑近似

如果我們能找到

的一個光滑近似

,那麼根據(2),我們就有

由于

是光滑的,是以

也是光滑的,這也就是說,

就是

的一個光滑近似!這便是借助狄拉克函數的光滑近似來建構

的光滑近似的核心思路了,在這個過程中,對

的形式和連續性都沒有太多限制,比如允許

有可數個間斷點(如取整函數

)。

那麼狄拉克函數的光滑近似有哪些呢?現成的也有不少,比如:

簡單來說,就是找一個像正态分布那樣鐘形曲線的非負函數,想辦法讓鐘形的寬度逐漸趨于0,但保持積分為1。還有另一個思路是留意到

也就是說,狄拉克函數的積分是“機關階躍函數”

,如果我們能找到

的光滑近似,那麼将它求導就得到狄拉克函數的光滑近似。而

的光滑近似,就是所謂的“S形”曲線了,比如sigmoid函數

,是以我們有

常用的就是式(4)和式(7)兩個近似。

Relu激活

現在,我們就以上述思路為工具,推導ReLU激活函數

的各種光滑近似。

比如利用式(7),得到

當t=1時,這便是SoftPlus激活函數。

如果換用式(4),那麼結果是

這個ReLU的光滑近似貌似還沒被研究過。

當然,如果僅僅是ReLU函數的光滑近似,那麼還有更簡單的思路,比如留意到

,這裡的θ(x)就是前面提到的機關階躍函數,是以問題可以轉變為求θ(x)的光滑近似,我們已經知道sigmoid便是其中之一,是以很快得到

時,這便是Swish激活函數。而如果用(4)進行計算

的光滑近似,那麼就得到

時,就是GeLU激活函數。

用狄拉克函數來構造非光滑函數的光滑近似

取整函數

可能讀者覺得還不夠意思,畢竟上面推導出來的都是現成的東西,而且不借助狄拉克函數也能推導出來。現在我們就來補充一個不怎麼平凡的例子:取整函數的光滑近似。

取整函數分上取整和下取整兩種,它們定義上有所不同,但是沒有本質差別,這裡以下取整為例子,我們記為

假設

為狄拉克函數的某個光滑近似,那麼

的原函數為

,那麼

關于

的原函數就是

,于是有

對于

我們有

,是以假設我們關心的範圍滿足

,那麼

,是以此時:

作為例子,取

,結果如下:

用狄拉克函數來構造非光滑函數的光滑近似

可以看到,确實與

蠻近似的,增大

能進一步提高近似程度。

文章小結

繼續閱讀