日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

神经网络和有限元方法

發(fā)布時間:2023/12/16 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 神经网络和有限元方法 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

用神經(jīng)網(wǎng)絡(luò)來表示有限元函數(shù)

今天,我想分享的東西是許進超老師的一篇文章,ReLU Deep Neural Networks and Linear Finite Elements。你可以理解為,這是一篇譯文。

主要內(nèi)容

它主要是關(guān)于神經(jīng)元數(shù)與層數(shù),在用DNN表示線性有限元的時候。它告訴我們,當(dāng)維數(shù)大等于2的時候,我們至少需要兩個隱藏層,在用ReLu DNN表示線性有限元函數(shù)的時候。因為在其它的文獻(xiàn)中,?log2(d+1)?\lceil \text{log}_2(d+1)\rceil?log2?(d+1)?at most被介紹了,當(dāng)用ReLu DNN表示分片線性函數(shù)的時候。所以,當(dāng)d大等于2時,2層是必要且充分的,也就是說它是最優(yōu)的(optimal)。

另一方面,文章也給了我們一個估計,關(guān)于神經(jīng)元的數(shù)目that are need。

再一個,作者介紹了low bit-width的DNN模型,思想來自于用DNN去表示分片線性函數(shù)的特殊結(jié)構(gòu)。

最后,作者以一維的兩點邊值問題,做了一個數(shù)值實驗。

簡介

近年來,為什么DNN模型能work得這么好,依然是不清楚的。為了弄清楚它,我們可以研究DNN所表示的函數(shù)類的逼近屬性(approximation properties)和表達(dá)能力(expressive power)。

萬有逼近定理(Universal Approximation Theory)告訴我們,任何單隱層神經(jīng)網(wǎng)絡(luò)能夠逼近任何連續(xù)函數(shù)。萬有逼近定理見如下文章:

M. Leshno, V.Y. Lin, A. Pinkus and S. Schocken, Multilayer feedforward networks with a nonpolynomial activation function can approximate any function,Neural networks, 6(1993), 861-867.

另外,我們可以看到下面一個陳述是正確的:

Every ReLU DNN function in RdR^dRd represents a continuous piecewise linear (CPWL) function dened on a number of polyhedral subdomains.

近年來,上述statement相反(converse)的論述也被證明是正確的。

更近一步,關(guān)于神經(jīng)網(wǎng)絡(luò)去表示分片線性函數(shù)的一個層數(shù)的論述,被證明了,如下:

Every CPWL function in RdR^dRd can be represented by a ReLU DNN model with at most ?log2(d+1)?\lceil \text{log}_2(d + 1)\rceil?log2?(d+1)? hidden layers.

有了這些考慮,作者想要知道的就是:

  • How many numbers of neurons are needed?
  • What is the minimal number of layers that are needed?

結(jié)論是,我們需要用O(d2mm!)O(d2^{mm!})O(d2mm!)數(shù)目的神經(jīng)元去表示CPWL(continual piecewise linear),m表示子區(qū)域的數(shù)目。

進一步,為了得到更少數(shù)目的DNN表示,作者在文章中考慮了更特殊的一類函數(shù),叫做LFE(Linear Finit Element)

因為LFE是節(jié)點基函數(shù)(nodal basis funciotns)的一個線性組合,所以我們只需要研究節(jié)點基函數(shù)的DNN表示。

最后,作者證明了LFE能用O(dκdN)O(d\kappa ^d N)O(dκdN)數(shù)目的神經(jīng)元表示,用O(d)O(d)O(d)層的一個網(wǎng)絡(luò),這里的κ\kappaκ取決于網(wǎng)格的正則性。

另外一個問題,多少層呢?對于LFE而言,2 at least當(dāng)維數(shù)大于2時,?log2(d+1)?\lceil \text{log}_2(d+1)\rceil?log2?(d+1)?at most,那么,其實d=2,3時,?log2(d+1)?\lceil \text{log}_2(d+1)\rceil?log2?(d+1)?層就是最優(yōu)的。當(dāng)d更大是,是否是最優(yōu)的,仍然是一個開放的問題。

到底CPWL和LFE的區(qū)別是什么呢?剖分是否確定?不是,只不過是用兩種不同的角度看問題,得到的不同的網(wǎng)絡(luò)而已,它們的神經(jīng)元個數(shù)和層數(shù)是不同的。

作者還介紹了heavily quantized weights去壓縮神經(jīng)網(wǎng)絡(luò),比如binary和ternary權(quán)重模型。

最后,一個數(shù)值例子表明,使用 ReLU DNN 的Galerkin方法比適應(yīng)性有限元方法逼近結(jié)果要好。

一個普通標(biāo)題CPWLLFELFE(regularity)
神經(jīng)元數(shù)目O(d2mm!)O(d2^{mm!})O(d2mm!)O(khN)O(k_hN)O(kh?N)O(dκdN)O(d\kappa^dN)O(dκdN)
層數(shù)2 at least(d≥2d\geq 2d2,LFE),log2(d+1)\text{log}_2(d+1)log2?(d+1)at most?log2kh?+1\lceil \text{log}_2k_h\rceil +1?log2?kh??+1O(d)O(d)O(d)
ReLU DNN的基本性質(zhì)

首先,我們需要介紹一些記號。

我們把Θ\ThetaΘ定義為:

定義作用于向量的激活函數(shù)σ\sigmaσ為:

那么,給定d,c,k∈N+d,c,k\in \mathbb{N}^+d,c,kN+,并且:

那么,一般的從Rd\mathbb{R}^dRdRc\mathbb{R}^cRc可以寫為:

這里我們假定f0(x)=Θ(x)f^0(x)=\Theta(x)f0(x)=Θ(x)。更簡單地,我們可以寫為:

這里的Θi\Theta^iΘi是表示第i層到第i+1層的。一般我們稱這樣的DNN為k+1層DNN,或者說有k個隱藏層。

ReLU(rectified linear unit)的定義如下:

容易看到ReLU函數(shù)是CPWL的,自然它們的線性組合也是CPWL的。那么,我們會有如下一個引理:

我們把J個隱藏層且輸出為一個變量的ReLu DNN,用一個記號來表示,即:

首先,讓我們來看一下DNN1DNN_1DNN1?,也就是有一個隱藏層的ReLu DNN,也就是:

這里的上標(biāo)m表示隱藏層神經(jīng)元的數(shù)目。

restrict DNN1mDNN_1^mDNN1m?Ω\OmegaΩ,我們用如下的記號:

一些文獻(xiàn)已經(jīng)證明了,DNN1(Ω)DNN_1(\Omega)DNN1?(Ω)C0(Ω)C^0(\Omega)C0(Ω)上是稠密的(dense)。

當(dāng)然,關(guān)于ReLu DNN,我們還有一個漸近(asymptotic)誤差估計:

這里的hat是表示傅里葉變換。

另外,我們還有一個定理:

LFE的ReLu DNN表示

我們知道,CPWL能被ReLu DNN表示出來。線性有限元函數(shù)(Linear Finite Element Function,LFE)是一類特殊的CPWL。它也能被ReLu DNN表示出來。

為了說明這一點,我們先回顧一下有限元方法的相關(guān)知識,以及引入我們的符號。

有限元網(wǎng)格Th={τk}T_h = \{\tau_k\}Th?={τk?},節(jié)點表示為NhN_hNh?,那么分片線性函數(shù)空間可以寫為:

節(jié)點基函數(shù)(nodal basis function)為:

對任何v∈Vhv\in V_hvVh?,我們有:

NiN_iNi?表示與i節(jié)點有關(guān)的單元的標(biāo)號,即:

我們用khk_hkh?表示和節(jié)點有關(guān)的單元數(shù)目的最大值(maximum),也就是:

第i個節(jié)點的支集表示為:

我們說ThT_hTh?是局部凸(locally convex),如果每個支集是凸的。


下面我們來看看局部凸網(wǎng)格的LFE的ReLU DNN表示。

因為分片線性函數(shù)可以用節(jié)點基函數(shù)線性表出,所以我們我們只需要研究節(jié)點基函數(shù)的ReLU DNN表出。

一維情況下,我們有:

對于多維的情況,我們先介紹一個引理:

這里的gkg_kgk?是節(jié)點基函數(shù)的不同“片”,在整個定義域上的一個延伸。把它們?nèi)€最小,就得到了節(jié)點基函數(shù)。這個證明有點繁瑣(Tedious)。讓我們skip it。

關(guān)于這個引理有個remark:

下面我們介紹一個重要的定理:

證明如下:

我們可以將取最小值寫成單隱藏層ReLU NN,如下:

我可以check it,雖然我不知道是怎么想到它的。其實,這是一個單隱層的ReLU DNN。兩個到四個,再到一個。

根據(jù)之前那個引理,我們有:

為了方便,我們把N(i)N(i)N(i)寫為:

那么,我們有:

我們可以對split出來的兩項繼續(xù)做劃分,直到最后為1項或者2項。然后,我們利用:

根據(jù)以上的過程,我們知道,我們可以將基函數(shù)寫成?log2kh?+1\lceil \text{log}_2 k_h\rceil+1?log2?kh??+1個隱藏層的DNN。WHY + 1?每一次劃分不應(yīng)該加兩層嗎?

考慮二叉樹的結(jié)構(gòu),k層的二叉樹總共有2k?12^k -12k?1個節(jié)點,那么神經(jīng)元的個數(shù)大概(至多)為:

根據(jù)CWPL和節(jié)點基函數(shù)的表出關(guān)系,我們能得到分片線性函數(shù)能用?log2kh?+1\lceil \text{log}_2 k_h\rceil+1?log2?kh??+1的隱藏層表出。神經(jīng)元的數(shù)目最多為O(khN)O(k_hN)O(kh?N)

我們現(xiàn)在考慮一類所謂的形狀規(guī)則的有限元網(wǎng)格,滿足:

那么,我們有如下推論:


DNN方法的一個誤差估計,考慮DNN1DNN_1DNN1?,有如下結(jié)論:

事實上,后面會提到,單隱層的DNN是沒有辦法表示線性有限元函數(shù)的。

我們可以找到一個DNN的結(jié)構(gòu),使得用其去逼近有限元函數(shù)的結(jié)果更好:

維數(shù)大于1時,單隱層ReLU DNN無法表示LFE

淺層的ReLU DNN是無法精確地表示某些有限元函數(shù)的,精確描述如下:

這個證明啊,really a trifle。作者用了三頁紙來完成這個證明。我這里就不提了。

這也是這篇文章的一個主要結(jié)果之一。

一般CPWL的ReLU DNN逼近(approach)

一般的方法,相比于前面提到的逼近方法,需要更少的層數(shù),但是需要多得多(significantly,extremely)的神經(jīng)元。

下面先不帶證明地列出一些主要的結(jié)果:

這里的fif_ifi?是分片線性函數(shù)在片Ωi\Omega_iΩi?上的值。

我們也有l(wèi)attice表示定理,如下:

進一步,我們有這樣一個結(jié)果:

這個定理告訴我們,我們可以用不超過log2?d+1?\text{log}_2\lceil d+1 \rceillog2??d+1?的隱藏層去表示它。

這個結(jié)果和前面的LFE的表示結(jié)果相比起來,雖然需要的層數(shù)降低了一些,但是需要的神經(jīng)元多了非常多。

至此,對于一個局部凸的有限元網(wǎng)格,我們現(xiàn)在又兩種不同的方式來表示它。

我們用這種表示CPWL的一般方式來表示FEL,有如下的一個結(jié)果:

由此,我們就可以比較出兩個網(wǎng)絡(luò)結(jié)構(gòu)來表示分片線性函數(shù)的一個差異,一個需要?log2(d+1)?\lceil \text{log}_2(d+1)\rceil?log2?(d+1)?隱層O(d2(d+1)kh)O(d2^{(d+1)k_h})O(d2(d+1)kh?)的神經(jīng)元,一個需要?log2kh?+1\lceil \text{log}_2k_h\rceil +1?log2?kh??+1隱層O(khN)O(k_hN)O(kh?N)的神經(jīng)元。前者雖然層數(shù)少,但是需要多得多的神經(jīng)元。

低位寬的DNN模型

這部分介紹了一種特殊的ReLU DNN模型,它能表示所有的CPWL函數(shù)。它的參數(shù)要么是0,要么是2的次方,也就是說:

By our results in previous sections, we find a special family of ReLU DNN which has at most one general layers and all other layers with low bit-width parameters.

不加證明,我們有如下結(jié)果:

數(shù)值算例

DNN方法求解PDE,考慮如下模型問題:

一般使用DNN求解PDE用的是配點方法,也就是一個最小二乘問題:

這里的uNu_NuN?是DNN的輸出,使用平滑的激活函數(shù),比如說sigmoid函數(shù)。

當(dāng)然,還有一些其他的方法。

有限元方法一般采用適應(yīng)有限元方法和移動網(wǎng)格方法。

適應(yīng)網(wǎng)格方法有如下的誤差估計:

DNN方法一般不需要網(wǎng)格,但是也需要離散點。DNN-Galerkin方法連點都不需要。

單隱層DNN的誤差估計如下所示:

這里u^\hat uu^是將函數(shù)延拓到整個(entire)區(qū)間上后做的傅里葉變換。


我們來做一個一維的兩點邊值問題的例子。考慮如下模型問題:

剖分網(wǎng)格如下:

定義單隱層ReLU DNN為:

這里的θi\theta_iθi?表示區(qū)間[ti?1,ti][t_{i-1},t_i][ti?1?,ti?]上的斜率。

為了滿足邊界條件,我們需要有約束(上標(biāo)到N,文中寫錯了):

我們最小化能量函數(shù):

交替以下兩個步驟:

結(jié)論

足夠多層的ReLU DNN是可以重構(gòu)有限元函數(shù)的,文中討論了兩種不同的逼近方式。

One theoretically interesting question addressed in this paper concerns the minimal number of layers that are needed in a DNN model to reproduce general continuous piecewise linear functions.

作者證明了維數(shù)大于1是,最小需要兩個隱藏層來表示分片函數(shù),由于上限log2(d+1)\text{log}_2(d+1)log2?(d+1)的約束,二三維的時候,log2(d+1)\text{log}_2(d+1)log2?(d+1)就是最優(yōu)的,更高維的時候,是否是最優(yōu)的,還不知道。

不說消耗的事情,一維例子表明DNN的Galerkin逼近是比適應(yīng)有限元方法是更精確的。但是呢,computational cost is a serious issue。

總結(jié)

以上是生活随笔為你收集整理的神经网络和有限元方法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。