code window

顯示包含「AI」標籤的文章。顯示所有文章
顯示包含「AI」標籤的文章。顯示所有文章

2024年5月15日星期三

從MHA、MQA、GQA到MLA的演變歷程

前言

本文將與大家一起梳理從MHA、MQA、GQA到MLA的演變歷程,並重點介紹MLA的設計思路。

MHA

MHA(多頭注意力)是開創性論文《Attention is all you need》中提出的一種注意力形式,可以說是當前主流大型語言模型(LLM)的基礎工作。數學上,多頭注意力是多個獨立的單頭注意力的拼接。假設輸入的向量序列為 \(x_1, x_2, \ldots, x_l\),其中 \(x_i \in \mathbb{R}^d\),那麼MHA可以記為:

$$
\begin{aligned}
o_t &= [o_t^{(1)}, o_t^{(2)}, \ldots, o_t^{(h)}] \\
o_t^{(s)} &= \text{Attention}(q_t^{(s)}, k_{\leq t}^{(s)}, v_{\leq t}^{(s)}) \\
&\equiv \sum_{i \leq t} \frac{\exp(q_t^{(s)} k_i^{(s)\top})}{\sum_{i \leq t} \exp(q_t^{(s)} k_i^{(s)\top})} v_i^{(s)} \\
q_t^{(s)} &= x_t W_q^{(s)} \in \mathbb{R}^{d_k}, \quad W_q^{(s)} \in \mathbb{R}^{d \times d_k} \\
k_i^{(s)} &= x_i W_k^{(s)} \in \mathbb{R}^{d_k}, \quad W_k^{(s)} \in \mathbb{R}^{d \times d_k} \\
v_i^{(s)} &= x_i W_v^{(s)} \in \mathbb{R}^{d_v}, \quad W_v^{(s)} \in \mathbb{R}^{d \times d_v}
\end{aligned}
$$

為了簡化,這裡省略了注意力矩陣的縮放因數。在實踐中,常見的設置是 \(d_k = d_v = \frac{d}{h}\)。例如,對於LLAMA2-7b來說,有 \(d = 4096, h = 32, d_k = d_v = 128\);對於LLAMA2-70b則是 \(d = 8192, h = 64, d_k = d_v= 128\)。這裡只考慮了主流自回歸大型語言模型所使用的Causal Attention,這意味著在逐個token生成時,新預測出來的第 \( t+1 \) 個token並不會影響已經計算好的 \( k_{\leq t}^{(s)}, v_{\leq t}^{(s)} \),因此這部分結果我們可以快取下來供後續生成調用,避免不必要的重複計算,這就是所謂的KV快取(KV Cache)。

瓶頸

一個自然的問題是:為什麼降低KV快取的大小如此重要?

眾所周知,一般情況下大型語言模型的推理都是在GPU上進行,單張GPU的顯存是有限的,一部分我們要用來存放模型的參數和前向計算的啟動值,這部分依賴於模型的體量,選定模型後它就是個常數;另外一部分我們要用來存放模型的KV快取,這部分不僅依賴於模型的體量,還依賴於模型的輸入長度,也就是在推理過程中是動態增長的,當Context長度足夠長時,它的大小就會占主導地位,可能超出一張卡甚至一台機(8張卡)的總顯存量。

在GPU上部署模型的原則是:能一張卡部署的,就不要跨多張卡;能一台機部署的,就不要跨多台機。這是因為「卡內通信帶寬 > 卡間通信帶寬 > 機間通信帶寬」,由於「木桶效應」,模型部署時跨的設備越多,受設備間通信帶寬的拖累就越大,事實上即便是單卡H100內SRAM與HBM的帶寬已經達到了3TB/s,但對於短Context來說這個速度依然還是推理的瓶頸,更不用說更慢的卡間、機間通信了。

所以,減少KV快取的目的就是要實現在更少的設備上推理更長的Context,或者在相同的Context長度下讓推理的batch size更大,從而實現更快的推理速度或者更大的吞吐總量。當然,最終目的都是為了實現更低的推理成本。

MQA

MQA(多查詢注意力),是減少KV快取的一次非常樸素的嘗試,首次提出自《Fast Transformer Decoding: One Write-Head is All You Need》這篇2019年的論文,這也意味著早在LLM成為熱門話題之前,減少KV快取就已經是研究人員非常關注的一個議題了。

MQA的思路很簡單,直接讓所有注意力頭(Attention Head)共用同一個K(Key)、V(Value),用公式來說,就是取消了MHA中所有的 \( k \)、\( v \) 的上標 \( (s) \):

$$
\begin{aligned}
    o_t &= [o_t^{(1)}, o_t^{(2)}, \ldots, o_t^{(h)}] \\
    o_t^{(s)} &= \text{Attention}(q_t^{(s)}, k_{\leq t}, v_{\leq t}) \\
    &\equiv \sum_{i \leq t} \frac{\exp(q_t^{(s)} k_i^\top)}{\sum_{i \leq t} \exp(q_t^{(s)} k_i^\top)} v_i \\
    q_t^{(s)} &= x_t W_q^{(s)} \in \mathbb{R}^{d_k}, \quad W_q^{(s)} \in \mathbb{R}^{d \times d_k} \\
    k_i &= x_i W_k \in \mathbb{R}^{d_k}, \quad W_k \in \mathbb{R}^{d \times d_k} \\
    v_i &= x_i W_v \in \mathbb{R}^{d_v}, \quad W_v \in \mathbb{R}^{d \times d_v}
\end{aligned}
$$

使用MQA的模型包括PaLM、StarCoder、Gemini等。很明顯,MQA直接將KV快取減少到了原來的 \( \frac{1}{h} \),這是非常顯著的,單從節省顯存角度看已經是極限了。

效果方面,目前看來大部分任務的損失都比較有限,且MQA的支持者相信這部分損失可以通過進一步訓練來彌補回來。此外,注意到MQA由於共用了K、V,將會導致注意力的參數量減少了將近一半,而為了模型總參數量的不變,通常會相應地增大FFN(Feed Forward Network)/GLU(Gated Linear Unit)的規模,這也能彌補一部分效果損失。

GQA

然而,也有人擔心MQA對KV快取的壓縮太嚴重,以至於會影響模型的學習效率以及最終效果。為此,一個MHA與MQA之間的過渡版本GQA(分組查詢注意力)應運而生,出自論文《GQA: Training Generalized Multi-Query Transformer Models from Multi-Head Checkpoints》,是去年的工作。

事後看來,GQA的思想也很樸素,它就是將所有Head分為 \( g \) 個組( \( g \) 可以整除 \( h \)),每組共用同一對K、V,用數學公式表示為:

$$
\begin{aligned}
    o_t &= [o_t^{(1)}, o_t^{(2)}, \ldots, o_t^{(h)}] \\
    o_t^{(s)} &= \text{Attention}(q_t^{(s)}, k_{\leq t}^{(\lceil s\frac{g}{h} \rceil)}, v_{\leq t}^{(\lceil s\frac{g}{h} \rceil)}) \\
    &\equiv \sum_{i \leq t} \frac{\exp(q_t^{(s)} k_{(\lceil s\frac{g}{h} \rceil)i}^\top)}{\sum_{i \leq t} \exp(q_t^{(s)} k_{(\lceil s\frac{g}{h} \rceil)i}^\top)} v_{(\lceil s\frac{g}{h} \rceil)i} \\
    q_t^{(s)} &= x_t W_q^{(s)} \in \mathbb{R}^{d_k}, \quad W_q^{(s)} \in \mathbb{R}^{d \times d_k} \\
    k_i^{(\lceil s\frac{g}{h} \rceil)} &= x_i W_k^{(\lceil s\frac{g}{h} \rceil)} \in \mathbb{R}^{d_k}, \quad W_k^{(\lceil s\frac{g}{h} \rceil)} \in \mathbb{R}^{d \times d_k} \\
    v_i^{(\lceil s\frac{g}{h} \rceil)} &= x_i W_v^{(\lceil s\frac{g}{h} \rceil)} \in \mathbb{R}^{d_v}, \quad W_v^{(\lceil s\frac{g}{h} \rceil)} \in \mathbb{R}^{d \times d_v}
\end{aligned}
$$

這裡的 \( \lceil \cdot \rceil \) 是向上取整符號。GQA提供了從MHA到MQA的自然過渡,當 \( g = h \) 時就是MHA,當 \( g = 1 \) 時就是MQA。當 \( 1 < g < h \) 時,它只將KV快取壓縮到 \( \frac{g}{h} \),壓縮率不如MQA,但同時也提供了更大的靈活性,效果上更有保障。

GQA最知名的使用者,大概是Meta開源的LLAMA2-70B,以及LLAMA3全系列,此外使用GQA的模型還有TigerBot、DeepSeek-V1、StarCoder2、Yi、ChatGLM2、ChatGLM3等,相比使用MQA的模型更多(ChatGLM雖然在它的介紹中說自己是MQA,但實際是 \( g=2 \) 的GQA)。
在llama2/3-70B中,GQA的 \( g=8 \),其他用了GQA的同體量模型基本上也保持了這個設置,這並非偶然,而是同樣出於推理效率的考慮。我們知道,70B這個體量的模型,如果不進行極端的量化,那麼不可能部署到單卡(A100/H100 80G)上。單卡不行,那麼就能單機了,一般情況下一台機可以裝8張卡,剛才我們說了,Attention的每個Head實際上是獨立運算然後拼接起來的,當 \( g=8 \) 時,正好可以每張卡負責計算一組K、V對應的Attention Head,這樣可以在盡可能保證K、V多樣性的同時最大程度上減少卡間通信。

MLA

有了MHA、MQA、GQA的鋪墊,我們理解MLA(多頭潛在注意力)就相對容易一些了。DeepSeek-V2的技術報告裡是從低秩投影的角度引入MLA的,以至於有部分讀者提出「為什麼LoRA提出這麼久了,直到MLA才提出對KV快取低秩分解的做法」之類的疑問。

然而,筆者認為低秩投影這個角度並不貼近本質,因為要說低秩投影的話,事實上只要我們將GQA的所有K、V疊在一起,就會發現GQA也相當於在做低秩投影:

$$
\begin{aligned}
    [k_i^{(1)}, \dots, k_i^{(g)}, v_i^{(1)}, \dots, v_i^{(g)}] &\equiv c_i \in \mathbb{R}^{g(d_k+d_v)} \\
    c_i &= x_i[W_k^{(1)}, \dots, W_k^{(g)}, W_v^{(1)}, \dots, W_v^{(g)}] \in \mathbb{R}^{d \times g(d_k+d_v)}
\end{aligned}
$$

這裡我們將所有\( k_i^{(s)} \)和\( v_i^{(s)} \)拼在一起記為\( c_i \),相應的投影矩陣也拼在一起記為\( W_c \)。注意到一般都有\( d_c = g(d_k + d_v) < d \),所以\( x_i \)到\( c_i \)的轉換就是一個低秩投影。因此,MLA的本質改進不是低秩投影,而是在低秩投影之後的處理。

Part 1

GQA在投影之後做了什麼呢?首先它將向量對半分為兩份分別作為K、V,然後每一份又均分為\( g \)份,每一份複製\( h/g \)次,以此來「湊」夠\( h \)個Attention Head所需要的K、V。我們知道分割、複製都是簡單的線性變換,所以MLA的第一個想法是將這些簡單的線性變換換成一般的線性變換,以增強模型的能力:

$$
\begin{aligned}
    o_t &= [o_t^{(1)}, o_t^{(2)}, \ldots, o_t^{(h)}] \\
    o_t^{(s)} &= \text{Attention}(q_t^{(s)}, k_t^{(s)}, v_t^{(s)}) \\
    &\equiv \sum_{i \leq t} \frac{\exp(q_t^{(s)} k_i^{(s)\top})}{\sum_{i \leq t} \exp(q_t^{(s)} k_i^{(s)\top})} v_i^{(s)} \\
    k_i^{(s)} &= c_i W_k^{(s)} \in \mathbb{R}^{d_k}, \quad W_k^{(s)} \in \mathbb{R}^{d_c \times d_k} \\
    v_i^{(s)} &= c_i W_v^{(s)} \in \mathbb{R}^{d_v}, \quad W_v^{(s)} \in \mathbb{R}^{d_c \times d_v} \\
    q_t^{(s)} &= x_t W_q^{(s)} \in \mathbb{R}^{d_k}, \quad W_q^{(s)} \in \mathbb{R}^{d \times d_k}
\end{aligned}
$$

理論上這樣能增加模型能力,但別忘了GQA的主要目的是減少KV快取。MLA的這個做法,通過不同的投影矩陣讓所有的K、V Head都變得各不相同,那麼KV快取的大小就恢復成跟MHA一樣大了,違背了GQA的初衷。

對此,MLA發現,我們可以結合Dot-Attention的具體形式,通過一個簡單但不失巧妙的恒等變換來規避這個問題。首先,在訓練階段還是照常進行,此時優化空間不大;然後,在推理階段,我們利用

$$
q_t^{(s)}k_i^{(s)\top} = (x_t W_q^{(s)})(c_i W_k^{(s)})^\top = x_t (W_q^{(s)} W_k^{(s)\top}) c_i^\top
$$

這意味著推理階段,我們可以將\( W_q^{(s)} W_k^{(s)\top} \)合併起來作為Q的投影矩陣,那麼\( c_i \)則取代了原本的\( k_i^{(s)} \),同理,在\( o_t \)後面我們還有一個投影矩陣,於是\( v_i^{(s)} \)的\( W_v^{(s)} \)也可以吸收到後面的投影矩陣中去,於是等效地\( v_i^{(s)} \)也可以用\( c_i \)代替,也就是說此時KV快取只需要存下所有的\( c_i \)就行,而不必存下所有的\( k_i^{(s)} \)、\( v_i^{(s)} \)。注意到\( c_i \)跟\( s \)無關,也就是說是所有頭共用的,即MLA在推理階段它可以恒等變換為一個MQA。

再次強調,本文的主題一直都是減少KV快取,那到目前為止,MLA做到了什麼呢?答案是通過不同的投影矩陣來增強了GQA的能力,並且推理時可以保持同樣大小的KV快取。那麼反過來,如果我們只需要跟GQA相近的能力,那麼是不是就可以再次減少KV快取了?換言之,\( d_c \)沒必要取\( g(d_k + d_v) \),而是取更小的值(DeepSeek-V2取了512),從而進一步壓縮KV快取,這就是MLA的核心思想。

(注:這裡有一個細節,就是\( W_q^{(s)} W_k^{(s)\top} \)合併成一個矩陣的恒等變換,理論上只有在無限精度下才成立,實際上如果我們使用單精度尤其是BF16的話,經過變換後的精度損失往往還是挺明顯的,經過多層累積後可能放大到比較可觀的程度,這裡可能要根據實際誤差看要不要做一些後處理。)

Part 2

一切似乎都很完美,看上去一個又好又省的理想設計就要出爐了。不過別急,當我們再深入思考一下就會發現,到目前為止的MLA有一個難以繞開的缺陷——不相容RoPE(旋轉位置編碼)。

剛才我們提到,MLA之所以能保持與GQA相同大小的KV緩存,其關鍵一步是“將\(W_q^{(s)} W_k^{(s)^\top}\)”合併成一個與位置無關的矩陣作為Q的投影矩陣。但是,如果加入RoPE(旋轉位置編碼),這一步就無法實現了。RoPE是一個與位置相關的\(d_k \times d_k\)的分塊對角矩陣\(R_m\),滿足\(R_m R_n^\top = R_{m-n}\)。在MLA中加入RoPE後,會使得\(W_q^{(s)} W_k^{(s)^\top}\)之間多插入了一個項\(R_{t-i}\):

$$
q_i^{(s)} = x_i W_q^{(s)} R_i, \quad k_i^{(s)} = c_i W_k^{(s)} R_i \\
q_t^{(s)} k_i^{(s)^\top} = (x_t W_q^{(s)} R_t)(c_i W_k^{(s)} R_i)^\top = x_t (W_q^{(s)} R_{t-i} W_k^{(s)^\top}) c_i^\top
$$

這裡的\(W_q^{(s)} R_{t-i} W_k^{(s)^\top}\)就無法合併為一個固定的投影矩陣了(與位置差\(t-i\)相關),從而MLA的想法無法與RoPE結合實現。

前段時間,我也很榮幸地與DeepSeek團隊討論過這個問題,但這個問題可以說非常本質,所以當時我實際上也沒能提出什麼有效的建議。最簡單的方式是放棄RoPE,換用其他基於Attention Bias的位置編碼,如ALIBI,但DeepSeek的實驗顯示它明顯不如RoPE(注意,MLA不是不能加RoPE,而是加了RoPE之後無法用恒等變換技巧來減少KV緩存)。我也提議過換Sandwich,它不像ALIBI單調衰減到負無窮,估計效果會好些,但感覺是治標不治本。還有一個折中的辦法是將\(q_i^{(s)}\)的輸入也改為\(c_i\),然後RoPE加在\(c_i\)之後,即:

$$
q_i^{(s)} = c_i R_i W_q^{(s)}, \quad k_i^{(s)} = c_i R_i W_k^{(s)}
$$
這樣\(R_i\)就可以吸收到\(c_i\)中去,但這樣就沒有\(R_m R_n^\top = R_{m-n}\)的運算了,此時的RoPE不再是通過絕對位置實現相對位置,而單純是加在Q、K上的絕對位置資訊,讓模型自己想辦法提煉相對位置資訊。
最後發布的MLA,採取了一種混合的方法——每個注意力頭的Q、K新增\( d_r \)個維度用來添加RoPE,其中K新增的維度每個頭共用:

$$
o_t^{(s)} = \text{Attention}(q_t^{(s)}, k_{\leq t}^{(s)}, v_{\leq t}^{(s)}) \\
q_t^{(s)} = [x_t W_{qc}^{(s)}, x_t W_{qr}^{(s)} R_t] \in \mathbb{R}^{d_k + d_r}, \quad W_{qc}^{(s)} \in \mathbb{R}^{d \times d_k}, \quad W_{qr}^{(s)} \in \mathbb{R}^{d \times d_r} \\
k_i^{(s)} = [c_i W_{kc}^{(s)}, x_i W_{kr}^{(s)} R_i] \in \mathbb{R}^{d_k + d_r}, \quad W_{kc}^{(s)} \in \mathbb{R}^{d_c \times d_k}, \quad W_{kr}^{(s)} \in \mathbb{R}^{d \times d_r} \\
v_i^{(s)} = c_i W_{vc}^{(s)} \in \mathbb{R}^{d_v}, \quad W_{vc}^{(s)} \in \mathbb{R}^{d_c \times d_v}
$$

這樣一來,沒有RoPE的維度就可以重複「Part 1」的操作,在推理時KV快取只需要存下所有的\( c_i \),新增的帶RoPE的維度就可以用來補充位置資訊,並且由於所有頭共用,所以也就只有在K快取這裡增加了\( d_r \)個維度,原論文取了\( d_r = \frac{d_k}{2} = 64 \),相比原本的\( d_c = 512 \),增加的幅度不大。

Part 3

最後有一個細節,就是MLA的最終版本,還將Q的輸入也改為了低秩投影形式,這與減少KV快取無關,主要是為了減少訓練期間參數量和相應的梯度(原論文說的是啟動值,個人表示不大理解)所占的顯存:

$$
\begin{aligned}
    o_t^{(s)} &= \text{Attention}(q_t^{(s)}, k_{\leq t}^{(s)}, v_{\leq t}^{(s)}) \\
    q_t^{(s)} &= [c'_i W_{qc}^{(s)}, c'_i W_{qr}^{(s)} R_i] \in \mathbb{R}^{d_k + d_r}, \quad W_{qc}^{(s)} \in \mathbb{R}^{d'_c \times d_k}, \quad W_{qr}^{(s)} \in \mathbb{R}^{d'_c \times d_r} \\
    k_i^{(s)} &= [c_i W_{kc}^{(s)}, x_i W_{kr}^{(s)} R_i] \in \mathbb{R}^{d_k + d_r}, \quad W_{kc}^{(s)} \in \mathbb{R}^{d_c \times d_k}, \quad W_{kr}^{(s)} \in \mathbb{R}^{d \times d_r} \\
    v_i^{(s)} &= c_i W_{vc}^{(s)} \in \mathbb{R}^{d_v}, \quad W_{vc}^{(s)} \in \mathbb{R}^{d_c \times d_v} \\
    c'_i &= x_i W'_{c} \in \mathbb{R}^{d'_c}, \quad W'_{c} \in \mathbb{R}^{d \times d'_c}
\end{aligned}
$$

注意\( k_i^{(s)} \)中的第二項,帶RoPE的部分,其輸入還是\( x_i \)而不是\( c_i \),這裡保持了原論文的設定,不是筆誤,\( d'_c \)原論文的取值是1536,跟\( d_c = 512 \)不同。同時,我們把帶RoPE的MHA放在下面,方便大家對比:

$$
\begin{aligned}
    o_t^{(s)} &= \text{Attention}(q_t^{(s)}, k_{\leq t}^{(s)}, v_{\leq t}^{(s)}) \\
    q_t^{(s)} &= x_i W_q^{(s)} R_i \in \mathbb{R}^{d_k}, \quad W_q^{(s)} \in \mathbb{R}^{d \times d_k} \\
    k_i^{(s)} &= x_i W_k^{(s)} R_i \in \mathbb{R}^{d_k}, \quad W_k^{(s)} \in \mathbb{R}^{d \times d_k} \\
    v_i^{(s)} &= x_i W_v^{(s)} \in \mathbb{R}^{d_v}, \quad W_v^{(s)} \in \mathbb{R}^{d \times d_v}
\end{aligned}
$$

可以發現,其實在訓練階段,除了多了一步低秩投影以及只在部分維度加RoPE外,MLA與Q、K的Head Size由\( d_k \)換成\( d_k + d_r \)的MHA基本無異。

小結

本文簡單概述了多頭注意力的演變歷程,特別是從MHA向MQA、GQA,最終到MLA的變化理念,最後詳細展開了對MLA的介紹。在本文中,MLA被視為GQA的一般化,它用投影矩陣的方式替代了GQA的分割、重複,並引入了一個恆等變換技巧來進一步壓縮KV快取,同時採用了一種混合方法來相容RoPE。總的來說,MLA稱得上是一種非常實用的注意力變體,其創新在於如何在保持推理效率的同時減少存儲和計算資源的需求。

這種設計不僅顯示了深入的技術見解,也反映出當前大型語言模型推理優化的趨勢——即在最大限度減少資源消耗的同時,盡可能保持或提升模型的性能。未來的研究可能會繼續在這條路上進行探索,尋找更有效的方法來解決推理時的瓶頸問題,特別是在處理更大規模的數據和模型時。這些技術的進步將對AI的實用性和可達性產生深遠的影響。









2024年5月14日星期二

Microsoft: 用於TTS的語言模型VALL-E

微軟引入了一種用於文字轉語音合成 (TTS) 的語言模型方法。具體而言,微軟使用從現成的神經音訊編解碼器模型中得到的離散編碼訓練了一個神經編解碼器語言模型 (稱為 VALL-E),並將 TTS 視為條件語言建模任務,而不是像之前的工作那樣進行連續訊號迴歸。在預訓練階段,微軟將 TTS 訓練資料擴大到 60K 小時的英語語音,比現有系統大數百倍。VALL-E 出現了上下文學習能力,只需一個 3 秒鐘未見說話者的錄音作為聲學提示,就可以用於合成高品質的個人化語音。實驗結果表明,在語音自然度和說話者相似度方面,VALL-E 顯著優於最先進的零樣本 TTS 系統。此外,微軟發現 VALL-E 可以在合成中保留聲學提示中的說話者情緒和聲學環境。範例請見 https://aka.ms/valle。

與以前的 pipeline (例如音素→Mel 頻譜圖→波形) 不同,VALL-E 的 pipeline 是音素→離散編碼→波形。VALL-E 根據音素和聲學編碼提示產生離散音訊編解碼器編碼,分別對應於目標內容和說話者的聲音。VALL-E 直接支援各種語音合成應用,例如零樣本 TTS、語音編輯以及與 GPT-3 等其他生成式 AI 模型結合的內容創作。




1 引言

神經網路和端到端建模的發展在過去十年中給語音合成帶來了巨大突破。目前,級聯文字轉語音 (TTS) 系統通常利用一個聲學模型和一個聲碼器的 pipeline,使用 Mel 頻譜圖作為中間表示。儘管先進的 TTS 系統能夠從單個或多個說話者合成高品質的語音,但它仍然需要來自錄音室的高品質乾淨資料。從網際網路爬取的大規模資料無法滿足要求,而且總是導致性能下降。由於訓練資料相對較少,目前的 TTS 系統在泛化方面仍然存在不足。在零樣本場景中,說話者相似度和語音自然度會大幅下降。

為了解決零樣本 TTS 問題,現有工作利用說話者自適應和說話者編碼方法,需要額外的微調、複雜的預設計特徵或繁重的結構工程。

與其為這個問題設計一個複雜而特定的網路,不如盡可能地用大量和多樣化的資料訓練模型,這受到文字合成領域成功的啟發。近年來,隨著文字語言模型中資料增加,人們見證了顯著的性能提升,從 16GB 的未壓縮文字,到 160GB,再到 570GB,最後是大約 1TB。將這一成功轉移到語音合成領域,微軟引入了 VALL-E,這是第一個利用大規模、多樣化和多說話者語音資料的基於語言模型的 TTS 框架。如圖 1 所示,為了合成個人化語音 (例如零樣本 TTS),VALL-E 以 3 秒鐘註冊錄音的聲學編碼和音素提示為條件產生相應的聲學編碼,分別約束說話者和內容資訊。最後,產生的聲學編碼用於合成最終的波形。來自音訊編解碼器模型的離散聲學編碼使我們能夠將 TTS 視為條件編解碼器語言建模,並且可以利用基於提示的大型模型技術 (如 GPT)用於 TTS 任務。聲學編碼還允許我們在推理期間使用不同的採樣策略在 TTS 中產生不同的合成結果。

微軟使用 LibriLight 訓練 VALL-E,這是一個包含 60K 小時英語語音的語料庫,有 7000 多個獨特的說話者。原始資料是純音訊的,因此微軟採用語音識別模型產生轉錄。與之前的 TTS 訓練資料集 (如 LibriTTS)相比,微軟的資料包含更多噪音和不準確的轉錄,但提供了不同的說話者和韻律。微軟相信,通過利用大數據,所提出的方法對噪音具有魯棒性,並且泛化性能良好。值得注意的是,現有的 TTS 系統總是使用幾十小時的單說話者資料或幾百小時的多說話者資料進行訓練,比 VALL-E 小幾百倍。表 1 總結了 VALL-E 的創新,即一種用於 TTS 的語言模型方法,使用音訊編解碼器編碼作為中間表示,利用大規模和多樣化的資料,從而具有強大的上下文學習能力。




微軟在 LibriSpeech 和 VCTK 資料集上評估 VALL-E,其中所有測試說話者在訓練語料庫中都是未見過的。在語音自然度和說話者相似度方面,VALL-E 顯著優於最先進的零樣本 TTS 系統,在 LibriSpeech 上的比較平均意見得分 (CMOS) 提高了 +0.12,相似度平均意見得分 (SMOS) 提高了 +0.93。VALL-E 在 VCTK 上也以 +0.11 SMOS 和 +0.23 CMOS 的改進擊敗了基準。它甚至在 VCTK 上獲得了 +0.04 的 CMOS 分數,表明未見說話者的合成語音與人類錄音一樣自然。此外,定性分析表明,VALL-E 能夠用相同的文字和目標說話者合成不同的輸出,這可能有利於為語音識別任務創建偽資料。我們還發現,VALL-E 可以保持聲學提示中的聲學環境 (例如混響) 和情緒 (例如憤怒)。



總之,微軟做出了以下貢獻:

- 微軟提出了 VALL-E,這是第一個像 GPT-3 那樣具有強大上下文學習能力的 TTS 框架,它將 TTS 視為語言模型任務,使用音訊編解碼器編碼作為中間表示,取代傳統的 Mel 頻譜圖。它具有上下文學習能力,並支援基於提示的方法進行零樣本 TTS,不需要像之前的工作那樣進行額外的結構工程、預設計的聲學特徵和微調。

- 微軟通過利用大量半監督資料在說話者維度上構建了一個廣義 TTS 系統,表明簡單地擴大半監督資料的規模在 TTS 中被低估了。 

- VALL-E 能夠用相同的輸入文字提供多樣化的輸出,並保持聲學提示中的聲學環境和說話者情緒。

- 微軟驗證了 VALL-E 通過提示在零樣本場景中合成具有高說話者相似度的自然語音。評估結果表明,VALL-E 在 LibriSpeech 和 VCTK 上顯著優於最先進的零樣本 TTS 系統。


微軟鼓勵讀者在範例頁面 https://aka.ms/valle 上聽樣本。


3 背景:語音量化 

由於音訊通常儲存為一系列 16 位整數值,生成模型需要在每個時間步輸出 $2^{16}=65,536$ 個機率才能合成原始音訊。此外,超過萬赫茲的音訊採樣率導致了極長的序列長度,使得原始音訊合成更加難以處理。為此,需要進行語音量化以壓縮整數值和序列長度。μ-law 變換可以將每個時間步量化為 256 個值並重建高品質的原始音訊。它在語音生成模型 (如 WaveNet) 中被廣泛使用,但由於序列長度沒有減少,推理速度仍然很慢。最近,向量量化在自監督語音模型中被廣泛應用於特徵提取,如 vq-wav2vec 和 HuBERT。後續工作表明自監督模型中的編碼也可以重建內容,並且推理速度比 WaveNet 更快。然而,說話者身份已經被丟棄,重建品質也很低。AudioLM 在自監督模型的 k-means 權杖和神經編解碼器模型的聲學權杖上訓練語音到語音語言模型,從而實現高品質的語音到語音生成。

在本文中,微軟沿用 AudioLM 的做法,利用神經編解碼器模型將語音表示為離散權杖。為了壓縮音訊以進行網路傳輸,編解碼器模型能夠將波形編碼為離散聲學編碼並重建高品質波形,即使說話者在訓練中是未見過的。與傳統的音訊編解碼器方法相比,基於神經網路的編解碼器在低位元速率下明顯更好,微軟相信量化後的權杖包含了關於說話者和錄音條件的充分資訊。與其他量化方法相比,音訊編解碼器具有以下優勢:1)它包含豐富的說話者資訊和聲學資訊,與 HuBERT 編碼相比,可以在重建中維持說話者身份。2)有一個現成的編解碼器解碼器將離散權杖轉換為波形,不需要像在頻譜上操作的基於 VQ 的方法那樣額外訓練聲碼器。3)它可以減少時間步長以提高效率,解決 μ-law 變換中的問題。 

微軟採用預先訓練的神經音訊編解碼器模型 EnCodec 作為標記器。EnCodec 是一個卷積編碼器-解碼器模型,其輸入和輸出都是可變位元速率的 24 kHz 音訊。編碼器為 24 kHz 的輸入波形產生 75 Hz 的嵌入,這是採樣率的 320 倍減少。每個嵌入由殘差向量量化 (RVQ) 建模,其中選擇了 8 個具有 1024 個條目的階層量化器,如圖 2 所示。此配置對應於用於 24 kHz 音訊重建的 6K 位元速率下的 EnCodec。在此設定下,給定一個 10 秒的波形,離散表示是一個 \(750 \times 8\) 的矩陣,其中 \(750 = \lfloor \frac{24,000 \times 10}{320} \rfloor\) 是下採樣的時間步,8是量化器的數量。選擇其他位元速率設定也是可以的。更大的位元速率對應更多的量化器和更好的重建品質。例如,如果選擇 12K 位元速率下的 EnCodec,則需要 16 個量化器,10 秒波形對應一個 \(750 \times 16\) 的矩陣。使用所有量化器的離散編碼,EnCodec 的卷積解碼器生成實值嵌入並以 24 kHz 重建波形。


4 VALL-E

4.1 問題公式化:將 TTS 視為條件編解碼器語言建模 


給定一個資料集 \(\mathcal{D}={x^i,y^i\\}\),其中 \(y\) 是一個音訊樣本, \(x={x_0,x_1,\ldots,x_L\\}\) 是其對應的音素轉錄,微軟使用預先訓練的神經編解碼器模型對每個音訊樣本進行編碼為離散聲學編碼,表示為 \(\text{Encodec}(y)=C^{T\times 8}\),其中 \(C\) 表示二維聲學編碼矩陣, \(T\) 是下採樣的話語長度。每個聲學編碼矩陣的行向量 \(c_{t,:}\) 表示第 \(t\) 幀的 8 個編碼,每個聲學編碼矩陣的列向量 \(c_{:,j}\) 表示來自第 \(j\) 個碼本的編碼序列,其中 \(j\in{1,\ldots,8\\}\)。量化後,神經編解碼器解碼器能夠重建波形,表示為 \(\text{Decodec}(C)\approx\hat{y}\)。

零樣本 TTS 要求模型為未見過的說話者合成高品質的語音。

在這項工作中,微軟將零樣本 TTS 視為條件編解碼器語言建模任務。微軟訓練了一個神經語言模型,以在給定音素序列 \(x\) 和聲學提示矩陣 \(\tilde{C}^{T'\times 8}\) 的條件下產生聲學編碼矩陣 \(C\),優化目標是 \(\max p(C|x,\tilde{C})\)。這裡, \(\tilde{C}\) 是通過相同的神經編解碼器從註冊錄音中得到的。微軟期望神經語言模型分別從音素序列和聲學提示中學習提取內容和說話者資訊。在推理期間,給定一個音素序列和一個未見過的說話者的 3 秒鐘註冊錄音,聲學編碼矩陣首先由訓練好的語言模型估計,然後神經編解碼器解碼器合成高品質的語音。


 4.2 訓練:條件編解碼器語言建模


神經語音編解碼器模型允許我們對離散音訊表示進行操作。由於神經編解碼器模型中的殘差量化,權杖具有分層結構:來自先前量化器的權杖恢復聲學屬性 (如說話者身份),而連續的量化器學習精細的聲學細節。每個量化器都經過訓練以對來自先前量化器的殘差進行建模。受此啟發,微軟以分層方式設計了兩個條件語言模型。 

對於來自第一個量化器 \(c_{:,1}\) 的離散權杖,微軟訓練了一個自迴歸 (AR) 解碼器語言模型。它以音素序列 \(x\) 和聲學提示 \(\tilde{C}_{:,1}\) 為條件,公式為:


$$p(c_{:,1}|x,\tilde{C}_{:,1};\theta_{AR})=\prod_{t=0}^T p(c_{t,1}|c_{<t,1},\tilde{c}_{:,1},x;\theta_{AR})$$


由於 VALL-E 是一個僅解碼器 LM,所以 \(\tilde{c}_{:,1}\) 和 \(c_{:,1}\) 的連接是一個完整的序列,在訓練中微軟不區分它們或插入特定的權杖。在推理中只預測 \(c_{:,1}\) 而前綴 \(\tilde{c}_{:,1}\) 是給定的。




對於第二個到最後一個量化器的離散權杖 \(c_{:,j\in[2,8]}\),微軟訓練了一個非自迴歸 (NAR) 語言模型。由於權杖在 NAR 方式下無法相互訪問,為了約束說話者身份,聲學提示矩陣 \(\tilde{C}\) 被用作聲學提示。因此,該模型以音素序列 \(x\)、聲學提示 \(\tilde{C}\) 和屬於先前碼本的預測聲學權杖 \(C_{:,<j}\) 為條件:


$$p(C_{:,2:8}|x,\tilde{C};\theta_{NAR})=\prod_{j=2}^8 p(c_{:,j}|C_{:,<j},x,\tilde{C};\theta_{NAR})$$


AR 模型和 NAR 模型的組合在語音品質和推理速度之間提供了很好的權衡。一方面,產生的語音速率應該與註冊錄音一致,並且由於不同說話者的說話速度可能非常不同,因此很難為不同的說話者訓練長度預測器。在這種情況下,AR 模型在聲學序列長度預測方面具有更大的靈活性,是一個更自然的選擇。另一方面,對於連續階段,由於輸出槽的數量遵循第一階段的序列長度,NAR 可以將時間複雜度從 \(O(T)\) 減少到 \(O(1)\)。總的來說, \(C\) 的預測可以建模為:


$$p(C|x,\tilde{C};\theta)=p(c_{:,1}|\tilde{C}_{:,1},X;\theta_{AR})\prod_{j=2}^8 p(c_{:,j}|c_{:,<j},x,\tilde{C};\theta_{NAR})$$


4.2.1 自迴歸編解碼器語言建模 

自迴歸語言模型產生來自第一個量化器的權杖。它包括音素嵌入 \(W_x\)、聲學嵌入 \(W_a\)、transformer 解碼器和預測層。為了產生具有特定內容的語音,微軟使用音素序列作為語言模型的音素提示。因此,模型輸入是 \(x\) 和 \(c_{:,1}\) 的連接,在每個序列之後附加兩個特殊的 <EOS> 權杖。微軟分別為提示和輸入權杖計算正弦位置嵌入。對於因果 transformer 模型,每個權杖 \(c_{t,1}\) 可以參與 \((x,c_{\leq t,1})\),如圖 3 的左側所示。該模型被優化以最大化第一個碼本中下一個權杖的機率。微軟共享輸出投影層的參數與聲學嵌入 \(W_a\) 的參數。

在 AR 模型中,微軟沒有在訓練中明確提取音訊片段作為提示。訓練過程是純因果語言模型訓練。通過這種方式,任何前綴序列 \(c_{<t,1}\) 都被視為序列 \(c_{\geq t,1}\) 後面部分的提示。在推理過程中,給定註冊錄音,應該將註冊錄音的音素序列和要合成的音素序列連接在一起。同時,註冊錄音的聲學權杖序列被用作 AR 解碼中的前綴,如公式 1 所示。微軟將在實驗中研究這種設置的優越性。  

4.2.2 非自迴歸編解碼器語言建模

當微軟通過 AR 模型獲得第一個量化器編碼時,使用非自迴歸 (NAR) 模型產生其他七個量化器的編碼。NAR 模型的架構與 AR 模型類似,只是它包含八個獨立的聲學嵌入層。在每個訓練步驟中,隨機採樣一個訓練階段 \(i\in[2,8]\)。模型被訓練以最大化來自第 \(i\) 個量化器碼本的聲學權杖。來自第 1 階段到第 \(i-1\) 階段的聲學權杖被嵌入並相加作為模型輸入:


$$e_{c_{t,j}}=W_a^j c_{t,j}$$ 


$$e_{c_t}=\sum_{j=1}^{i-1} e_{c_{t,j}}$$


其中表示索引選擇。音素序列也被視為語言模型的提示。此外,為了克隆給定說話者的獨特聲音,微軟還使用來自註冊語音的聲學權杖作為聲學提示。具體來說,首先用神經編解碼器模型將註冊語音標記為 \(\tilde{C}^{T\times 8}\)。來自所有八個碼本的嵌入表示相加為聲學提示 \(e_{\tilde{c}_t}=\sum_{j=1}^8 e_{\tilde{c}_{t,j}}\)。為了預測來自第 $i$ 個碼本的聲學權杖,transformer 輸入是 \((e_x,e_{\tilde{c}},e_{c_{:,<i}})\) 的串聯。位置嵌入也是分別為提示和聲學序列計算的。目前階段 \(i\) 通過自適應層歸一化 (AdaLN) 算子注入到網路中,即 \(\text{AdaLN}(h,i)=a_i\text{LayerNorm}(h)+b_i\),其中 \(h\) 是中間激活, \(a_i\) 和 \(b_i\) 是從階段嵌入的線性投影獲得的。與 AR 不同的是,NAR 模型允許每個權杖在自注意力層中參與所有輸入權杖。微軟還共享聲學嵌入層和輸出預測層的參數,這意味著第 \(j\) 個預測層的權重與第 \(j+1\) 個聲學嵌入層相同。 


4.3 推理:通過提示進行上下文學習

上下文學習是基於文字的語言模型的一種令人驚訝的能力,它能夠在不進行額外參數更新的情況下預測未見輸入的標籤。對於 TTS 而言,如果模型能夠在沒有微調的情況下為未見說話者合成高品質的語音,則認為該模型具有上下文學習能力。然而,現有 TTS 系統的上下文學習能力並不強,因為它們要麼需要額外的微調,要麼在未見說話者上顯著下降。

對於語言模型,提示是在零樣本場景中實現上下文學習所必需的。微軟設計提示和推理如下。首先將文字轉換為音素序列,並將註冊錄音編碼為聲學矩陣,形成音素提示和聲學提示。AR 模型和 NAR 模型都使用這兩個提示。對於 AR 模型,微軟在給定提示的條件下使用基於採樣的解碼,因為觀察到 beam search 可能會導致 LM 陷入無限循環。此外,基於採樣的方法可以顯著增加輸出的多樣性。對於 NAR 模型,微軟使用貪婪解碼來選擇機率最高的權杖。最後,使用神經編解碼器解碼器在給定八個編碼序列的條件下產生波形。聲學提示可能與要合成的語音在語義上相關或不相關,從而產生兩種情況:

VALL-E:微軟的主要興趣是為未見過的說話者產生給定的內容。給模型一個文字句子、一段註冊語音及其相應的轉錄。將註冊語音的轉錄音素附加到給定句子的音素序列前作為音素提示,並使用註冊語音的第一層聲學權杖 \(\tilde{c}_{:,1}\) 作為聲學前綴。使用音素提示和聲學前綴,VALL-E 產生給定文字的聲學權杖,克隆該說話者的聲音。

VALL-E-continual:在此設置中,使用整個轉錄和話語的前 3 秒作為音素和聲學提示,並要求模型產生後續內容。推理過程與 VALL-E 設置相同,只是註冊語音和產生的語音在語義上是連續的。


5 實驗

5.1 實驗設置

資料集:微軟使用 LibriLight 作為訓練資料,其中包含 60K 小時來自英語有聲讀物的未標記語音。LibriLight 中不同說話者的數量約為 7000。微軟在 960 小時帶標籤的 LibriSpeech 上訓練了一個混合 DNN-HMM ASR 模型。一旦訓練了混合模型,就對未標記的語音資料進行解碼並轉換為最佳的音素級別對齊路徑,其中幀移為 30ms。EnCodec 模型用於為 60K 小時的資料產生聲學編碼矩陣。 

模型:AR 模型和 NAR 模型具有相同的 transformer 架構,包括12層、16個注意力頭、1024維嵌入維度、4096維前饋層和 0.1 的 dropout。LibriLight 中波形的平均長度為 60 秒。在訓練期間,隨機將波形裁剪為 10 秒到 20 秒之間的隨機長度。其相應的音素對齊用作音素提示。微軟刪除了偏對齊音素序列中的連續重複。對於 NAR 聲學提示權杖,從同一話語中選擇 3 秒的隨機片段波形。

使用 16 個 NVIDIA TESLA V100 32GB GPU 對模型進行了 800k 步的訓練,每個 GPU 的批次大小為 6k 個聲學權杖。微軟使用 AdamW 優化器優化模型,在前 32k 次更新中將學習率預熱到 $5\times 10^{-4}$ 的峰值,然後線性衰減。 

基準:微軟選擇 SOTA 零樣本 TTS 模型 YourTTS 作為基準,該模型在 VCTK、LibriTTS 和 TTS-Portuguese 的組合資料集上進行訓練。微軟使用其發布的檢查點。

自動指標:微軟使用 SOTA 說話者驗證模型 WavLM-TDNN 來評估提示 (解壓縮的註冊語音) 和合成語音之間的說話者相似度。WavLM-TDNN 在 VoxSRC Challenge 2021 和 2022 排行榜上獲得第一名。它在 Vox1-O、Vox1-E 和 Vox1-H 上分別達到了 0.383、0.480 和 0.986 的平均等錯誤率 (EER)。WavLM-TDNN 預測的相似度分數在 \([-1,1]\) 的範圍內,其中較大的值表示輸入樣本的相似度較高。 

微軟還評估了模型的合成穩健性。神經 TTS 系統存在穩健性問題,由於注意力對齊錯誤,有時會出現刪除、插入和替換錯誤。微軟對產生的音訊執行 ASR,並計算相對於原始轉錄的字錯誤率 (WER)。在此實驗中,微軟使用在 LibriSpeech 960h 上微調的 HuBERT-Large 模型作為 ASR 模型,這是一個沒有語言模型融合的基於 CTC 的模型。

人工評估:微軟通過眾包計算比較平均意見得分 (CMOS) 和相似度平均意見得分 (SMOS),其中 12 名和 6 名母語者分別被邀請為 CMOS 和 SMOS 貢獻者。SMOS 的量表從 1 到 5,增量為 0.5。CMOS 的範圍從 -3 (新系統比基準差得多) 到 3 (新系統比基準好得多),間隔為 1。CMOS 是語音自然度的指標,SMOS 衡量語音是否與原始說話者的聲音相似。


5.2 LibriSpeech 評估

微軟首先使用 LibriSpeech 進行零樣本 TTS 評估,因為 LibriLight 訓練資料和 LibriSpeech test-clean 資料之間沒有說話者重疊。微軟使用 LibriSpeech test-clean 中長度在 4 到 10 秒之間的樣本,得到 2.2 小時的子集。對於每個樣本合成,VALL-E 隨機選擇同一說話者的另一個話語,並裁剪 3 秒的語音片段作為註冊語音。每個實驗運行三次,報告平均分數。VALL-E-continual 使用真實語音的前 3 秒作為註冊語音。




表 2 顯示了客觀評估結果。微軟首先計算真實語音的 WER 分數和說話者相似度分數作為上限。為了比較說話者相似度,微軟使用測試集中來自同一說話者的語音對。與 YourTTS 基準相比,微軟的模型在穩健性和說話者相似度方面都有顯著優勢,表明產生的語音高度忠實於給定文字和給定註冊語音。此外,在 VALL-E-continual 設置中,字錯誤率可以進一步降低,因為前 3 秒的聲學權杖是從真實語音中提取的。微軟還將穩健性與其他基於語音到語音 LM 的生成模型 (如 GSLM 和 AudioLM) 進行了比較,這些模型使用音訊潛在編碼作為輸入。GSLM 使用 HuBERT 編碼作為輸入,並使用 Tacotron2 模型和 WaveGlow 聲碼器重建波形。微軟運行其開源代碼使用發布的模型並評估結果。由於 HuBERT 編碼丟棄了說話者身份,因此它在說話者得分方面表現很差。對於 AudioLM,微軟列出了他們論文中報告的 WER 分數,該分數是由 Conformer Transducer 模型獲得的。實驗結果表明,在穩健性方面,VALL-E 優於其他基於語音到語音 LM 的生成系統。一個主要原因是 VALL-E 使用偽音素進行訓練,而不是 HuBERT/w2v-BERT 編碼,這與輸入文字相比具有更好的對齊品質。

微軟隨機採樣 LibriSpeech test-clean 中每個說話者的一個話語進行人工評估,得到 40 個測試用例。表 3 顯示了人工評估結果。在 SMOS 方面,VALL-E 非常接近真實語音,表明合成語音與測試中給定的未見說話者相似。它以 +0.93 SMOS 顯著優於基準,證明了 VALL-E 在零樣本場景中的有效性。在自然度方面,VALL-E 以 +0.12 CMOS 擊敗基準,表明所提出的方法可以合成比基準更自然和逼真的語音。




消融研究:在本節中,微軟進行了詳細的消融實驗。首先研究 NAR 模型。微軟訓練了具有不同數量提示的三個 NAR 模型。設置 NAR-no prompt 在沒有任何提示的情況下進行訓練。設置 NAR-phn prompt 僅使用音素序列作為提示進行訓練,設置 NAR-2 prompts 同時使用音素提示和聲學權杖提示作為條件。在評估中,使用真實的第一級聲學權杖作為模型輸入,並計算 WER 和說話者相似度分數。結果列於表 4 中。結果表明,即使聲學輸入權杖是真實的,沒有任何提示的模型在 ASR 和說話者相似度評估方面的表現都很差。當添加音素提示時,WER 從 19.6 大幅降低到 3.0。這表明音素提示主要有助於產生的內容。在 NAR-2 prompts 中,模型可以從聲學權杖提示中學習說話者資訊,從而提高說話者評估品質。


微軟進一步對 AR 模型進行了消融實驗。在這些實驗中,始終使用 NAR-2 prompts 設置作為 NAR 模型。在表 5 中,可以看到,當移除聲學提示 (w/o 聲學提示) 時,它只能獲得 0.236 的說話者相似度得分,表明提示對於說話者身份極其重要。即使 NAR 模型可以看到提示,AR 模型的提示也對說話者相似度有很大貢獻。




5.3 VCTK 評估 

微軟在包含 108 個說話者的 VCTK 上評估模型,其中沒有一個說話者在訓練期間被觀察到。由於 YourTTS 在 VCTK 中將 97 個說話者視為訓練,微軟分別評估了 YourTTS 在全部 107 個說話者和 11 個未見說話者上的性能。對於每個說話者,隨機選擇三個 3s/5s/10s 的話語作為提示,另一個話語的文字作為文字提示。


微軟首先使用前面描述的說話者驗證指標評估兩個模型。從表 6 可以看出,即使基準在訓練中看到了 97 個說話者,VALL-E 也優於基準,表明微軟的模型能夠合成具有更高說話者相似度的語音。當在公平設置下 (11 個說話者) 與基準進行比較時,性能差距變得更大,尤其是當只有 3s 提示可用時。通過比較不同長度的提示,可以看出微軟的模型能夠在提示變長時產生更相似的語音,這與直覺一致。 

微軟採樣 60 個說話者進行人工評估,每個說話者一個話語,其中 11 個是未見說話者,49 個說話者在 YourTTS 中被視為已見。VALL-E 沒有看到任何 60 個說話者。在模型合成期間,每個說話者有一個 3 秒的註冊錄音。表 7 顯示了微軟的方法與基準和真實語音的比較。SMOS 的比較表明,VALL-E 的說話者相似度優於基準,即使基準在訓練中看到了一些說話者。並排 CMOS 評估表明,VALL-E 比 YourTTS 高 +0.23,在語音自然度方面表現明顯更好。此外,VALL-E 在真實語音上獲得 +0.04 CMOS,表明在該資料集上與人類錄音沒有統計學上的顯著差異。與 LibriSpeech 上的評估結果相比,VALL-E 在與真實語音的比較中表現出更好的 CMOS 分數,主要原因是 VCTK 中平均句子長度更短,並且一些真實話語也有嘈雜的環境。在說話者相似度方面,VCTK 更具挑戰性,因為它包含具有各種口音的說話者,而訓練資料和 LibriSpeech 測試資料不包含各種口音的說話者。






5.4 定性分析

多樣性:以前的 TTS 系統在輸入文字和輸出波形之間具有強的一對一映射,因為 Mel 頻譜產生基於每一步的重建,沒有隨機性。由於 VALL-E 使用基於採樣的方法產生離散權杖,對於相同的輸入文字,其輸出由於推理中的隨機性而多樣化。給定一個句子和一個註冊錄音,微軟運行推理過程兩次並在圖 4 中可視化其波形。在圖 4(a) 中,可以觀察到兩個樣本具有不同的長度和短語持續時間,其中第一個具有更快的語音速率。在圖 4(b) 中,可以觀察到兩個樣本的重音不同。第二個輸出用更大的振幅強調單詞 "must",而第一個輸出沒有。微軟在演示頁面上提供了更多樣本。

多樣性對某些下游場景很重要。例如,語音識別總是從具有不同說話者和聲學環境的多樣化輸入中受益,而以前的 TTS 系統無法滿足這一點。考慮到 VALL-E 的多樣性特點,它是產生語音識別偽資料的理想候選。

聲學環境維持:另一個有趣的發現是聲學提示和產生之間的聲學環境一致性。當聲學提示有混響時,VALL-E 也可以合成有混響的語音,而基準輸出乾淨的語音。微軟的解釋是,與基準使用的資料相比,VALL-E 在包含更多聲學條件的大規模資料集上進行訓練,因此 VALL-E 可以在訓練期間學習聲學一致性,而不僅僅是乾淨的環境。微軟在演示頁面上展示了一致性。

說話者情緒維持:情緒 TTS 是語音合成的一個經典子主題,它合成具有所需情緒的語音。傳統方法總是在有監督的情緒 TTS 資料集上訓練模型,其中語音對應於轉錄和情緒標籤。微軟發現 VALL-E 可以在零樣本設置下保留提示中的情緒。微軟從 EmoV-DB 中選擇聲學提示,這是一個包含五種情緒語音的資料集,VALL-E 能夠在語音合成中保持與提示相同的情緒,即使模型沒有在情緒 TTS 資料集上進行微調。微軟在演示頁面上放置了音訊樣本。


6 結論、局限性和未來工作


微軟引入了 VALL-E,這是一種使用音訊編解碼器編碼作為中間表示的 TTS 語言模型方法。微軟使用 60K 小時的語音資料對 VALL-E 進行了預訓練,並展示了在零樣本場景中的上下文學習能力。微軟在 LibriSpeech 和 VCTK 上實現了新的最先進的零樣本 TTS 結果。此外,VALL-E 可以在合成中保持聲學環境和說話者情緒,並在不同的基於採樣的解碼過程中提供多樣化的輸出。

儘管取得了顯著進展,VALL-E 仍然存在幾個問題。

合成穩健性:微軟觀察到,在語音合成中,某些詞可能不清楚、遺漏或重複。這主要是因為音素到聲學語言部分是一個自迴歸模型,其中存在無序的注意力對齊,並且沒有解決該問題的約束。在基於普通 Transformer 的 TTS 中也觀察到了這種現象,通過應用非自迴歸模型或修改建模中的注意力機制來解決。未來,微軟希望利用這些技術來解決這個問題。

資料覆蓋:即使微軟使用 60K 小時的資料進行訓練,它仍然無法覆蓋每個人的聲音,尤其是口音說話者。在 VCTK 上的結果比在 LibriSpeech 上的結果差,也暗示了對口音說話者的覆蓋不足。此外,說話風格的多樣性還不夠,因為 LibriLight 是一個有聲讀物數據集,其中大多數話語都是朗讀風格。未來,微軟將進一步擴大訓練數據,以提高模型在韻律、說話風格和說話者相似度方面的性能。微軟相信,通過我們的方法,通過模型和數據的擴展,零樣本 TTS 任務幾乎可以解決。

模型結構:現在,微軟使用兩個模型來預測不同量化器的編碼。一個有前途的方向是使用一個大型通用模型來預測它們。另一個有趣的方向是在框架中使用完全 NAR 模型來加速模型推理。 


更廣泛的影響:由於 VALL-E 可以合成保持說話者身份的語音,它可能存在濫用模型的潛在風險,例如欺騙聲音識別或模仿特定說話者。為了降低此類風險,可以構建檢測模型來區分音訊片段是否由 VALL-E 合成。在進一步開發模型時,微軟也將付諸實踐微軟 AI 原則。 


以下是我的一些思考:

從技術倫理的角度,我們要警惕 VALL-E 被濫用的風險,如用於製造虛假語音、侵犯他人隱私等。這需要研發人員保持警惕,並制定相應的防範機制。

語音合成只是人機交互的一個方面,如何將其與語音識別、自然語言理解等技術更好地結合,來創造無縫的交互體驗,還有待進一步探索。

從產業化的角度,VALL-E 在客製化語音、有聲內容創作等領域有廣闊的應用前景。但是,如何平衡模型性能和部署成本,如何適配不同的硬體環境,也是工程師們需要考慮的問題。

從學術研究的角度,VALL-E 提出的一些思路,如語言模型範式、提示學習等,可能啟發其他領域的研究,如計算機視覺、機器翻譯等。跨學科的創新,往往能產生意想不到的火花。

展望未來,隨著模型和數據規模的進一步增長,以及範式的不斷創新,人工智慧生成語音與真人的差距會越來越小。這對傳統的配音行業、有聲內容生產模式,都會帶來深遠的影響。我們要積極擁抱變革,也要未雨綢繆,做好應對準備。

2024年5月9日星期四

深層網路的異常低效率

摘要

Meta的FAIR實驗室研究了一個簡單的層剪枝策略,用於流行的開放權重預訓練大型語言模型(LLMs),發現在不同的問答基準上,性能幾乎沒有退化,直到移除很大一部分(高達一半)的層之後才出現退化。為了修剪這些模型,他們先根據不同層之間的相似度來確定要修剪的最佳層區塊;然後,為了 "修復" 損害,他們進行少量的微調。具體而言,他們使用參數高效微調(PEFT)方法,特別是量化和低秩適應器(QLoRA),這樣他們的每個實驗都可以在單個A100 GPU上執行。從實務的角度來看,這些結果表明層修剪方法可以補充其他PEFT策略,一方面進一步減少微調所需的計算資源,另一方面可以改善推論的記憶體和延遲。從科學的角度來看,這些LLMs對刪除層的魯棒性意味著,要麼目前的預訓練方法沒有正確地利用網路深層的參數,要麼淺層在儲存知識方面扮演關鍵角色。

論文參考: https://arxiv.org/pdf/2403.17887

1 介紹 

在過去幾年中,大型語言模型(LLMs)已經從單純的研究成果演變成有用的產品。這種演變在很大程度上可以歸因於用於訓練的資源規模的巨大增長。由於這些模型在訓練完成後可能會在推論模式下看到其總生命週期FLOP的大部分,因此LLM的預訓練不僅需要考慮高效(即計算最優)訓練,還需要推論感知。

那麼已經訓練過的模型呢?除了神經縮放定律所指出的訓練考量之外,還有許多後訓練技術可以用來降低LLMs的微調和推論成本和時間。特別是,量化可以通過減少模型權重的精度來減少模型的記憶體佔用,低秩適應器(LoRA)可以通過只更新模型參數的一小部分來降低微調和自定義的成本,或者修剪可以通過直接消除不必要的參數或連接來減少推論的記憶體佔用和時間。由於這三種策略或多或少是正交的,因此在資源受限的環境中,理想情況下我們希望能夠結合使用這三種後訓練效率技術。朝著這個方向,流行的QLoRA方法引入了一些創新,使得4位元量化的參數和LoRA微調可以一起工作。


基於這種組合,在這項工作中,他們使用開放權重LLMs研究了一種非常簡單的修剪策略。具體而言,他們開發了一種方法,該方法使用不同層之間的表示相似性來識別給定修剪分數的最佳修剪層;然後,在移除這些層之後,他們使用少量微調(使用QLoRA)來"修復"修剪引起的不匹配。他們的主要結果是,他們可以從模型中刪除大量最深層,而對下游性能的影響最小。例如,對於Llama-2-70B,在性能崩潰之前,他們可以消除大約一半的層。他們的策略概述和修剪Llama-2-70B的結果如圖1所示。


修剪不僅有助於減少推論的佔用,而且還有助於了解網路如何使用其參數:如果您可以移除網路的大部分區塊而對其性能影響最小,那麼這些區塊可能並不是很重要。具體而言,他們對刪除層的直覺來自考慮transformer架構的殘差結構。更詳細地說,最終層的輸出可以分解為所有模型層的輸出之和加上嵌入的輸入。如果這樣一個和具有大量獨立項,那麼刪除其中幾項應該不會顯著改變輸出。然而,由於這些項並非獨立——每一層都是下一層的輸入——因此,如果特定層的殘差貢獻很小,我們應該期望能夠刪除這些項。換句話說,如果每一層的輸出在層與層之間的變化不大。


與他們的層修剪一起,他們研究了不同分離下層表示之間的相似性,並廣泛發現,與淺層相比,更深層在質量上更類似於鄰近層(最後一層除外)。這表明了一個更簡單的修剪策略:從倒數第二層開始刪除層,並從深到淺繼續進行,直到刪除所需的層數。在這種情況下,他們發現,在用少量QLoRA微調修復損害之後,他們可以達到與更複雜的基於相似性的層修剪策略幾乎匹配的性能。這種方法的有效性證明了LLMs可能沒有正確利用網路深層中的參數。


總的來說,他們希望你帶走這三個要點:


• 模型的記憶體佔用和推論時間隨著移除的層數線性減少。這使得層修剪成為一個強大的工具,特別是如果模型的性能對刪除層具有魯棒性。

• 所有的效率方法——修剪、PEFT和量化——都可以有效地相互結合。因此,在這項工作中,每個實驗都在單個A100 GPU上執行,開源和學術界都可以輕鬆使用。

• 模型對移除深層的魯棒性、下游知識任務(如MMLU和BoolQ)性能的急劇轉變、以及自回歸損失相對於這些修剪分數的平滑行為,總體上表明淺層可能在儲存知識方面起著關鍵作用。

本文的結構如下。在§2中,他們首先對實際後訓練策略和激發他們工作的深度學習科學調查進行文獻回顧。然後,在§3中,他們直觀地解釋了他們的層修剪策略,並詳細解釋了他們的方法,而在§4中,他們迭代了所有的實驗結果。最後,在§5中,他們通過強調未來工作的方向來總結。具體的模型、微調、數據集和評估細節可以在附錄A中找到,評估消融實驗可以在附錄B中找到。


2 文獻回顧

在本節中,他們回顧了後訓練效率的實用策略,並討論了一些為他們的方法提供動機或洞見的科學研究:在§2.1中,他們首先回顧了修剪的歷史,然後討論了其在LLM中的現代應用;在§2.2中,他們將修剪與蒸餾進行對比,蒸餾是減少LLM參數數量的另一種策略;然後在§2.3中,他們討論了可以與他們的修剪策略結合使用的各種實用的高效微調和推理加速方法;最後在§2.4中,他們重點介紹了一些對LLM的一些深度相關統計特性的科學研究,這些研究與他們的結果相輔相成。


2.1 修剪

修剪是一種通過刪除不必要的參數(單個或成組)來減小已訓練的機器學習模型大小的方法。神經網路的修剪歷史悠久,最初的構想是,非結構化修剪技術通過根據預定義的標準刪除單個參數來稀疏化網路。例如,如果模型的某個參數的值非常小,那麼刪除它(即將其設置為零)可能對性能影響最小。受這一早期工作的啟發,現代研究人員開始探索這種非結構化修剪的不同標準,主要集中在計算機視覺模型上。具體而言開發了一種迭代修剪方法,用於交替修剪和微調網路,以達到更好的壓縮率和性能。

雖然這些模型變得更小了,但它們不一定更有效:通過根據標準刪除單個參數來稀疏化網路會導致不規則或偽隨機的稀疏模式,如果沒有專門為稀疏設計的硬體或庫,就很難加速。為此,開發了結構化修剪技術,以組的形式刪除不相關的參數,例如卷積網路中的特定通道或過濾器。隨著這增加了它們的實用相關性,研究人員開始在計算機視覺和預transformer NLP架構中探索結構化修剪。

隨著語言建模取得了前所未有的進展,最近的工作集中在將結構化修剪方法應用於Transformer。這些研究幾乎考慮了模型架構的每一個可能的組件來進行消除,方法包括丟棄注意力頭、丟棄層、修剪隱藏狀態、秩約簡大權重矩陣、用更小的密集矩陣替換稀疏權重矩陣、以及上述組的許多組合。

在先前也考慮transformer層丟棄的工作中,大多數研究BERT風格的模型,而他們考慮GPT風格的模型,這是用於大規模語言建模和生成的最常見模型。由於其雙向masked語言模型(MLM)目標,BERT風格的模型自然適合於理解任務,而GPT風格的模型由於其自回歸目標而更適合生成。雖然鑑於更強大的GPT風格模型,這種分歷已經受到質疑,但先前的工作發現BERT和GPT模型在單詞的層表示演變方面存在顯著的定性差異。總的來說,這表明層丟棄策略在兩個系列之間的行為會有所不同。

一項針對BERT風格預訓練模型的研究得出結論,最佳的層修剪策略是丟棄最後的層;這部分與他們的結果產生共鳴,儘管相比之下,他們發現(a)對於某些修剪尺寸,保留模型的最後幾層實際上是有益的,而且(b)對於所有修剪尺寸,保留最後一層是必不可少的。此外,雖然作者也研究了不同層之間表示的相似性(如同他們的方法),但他們實際上發現淺層表示之間的相似性高於深層表示,這與他們的結果非常不同。重要的是考慮的模型由幾億個參數組成,這比他們在工作中考慮的模型規模要小得多。也許正因為如此,儘管作者也對修剪後的模型進行了微調,但他們沒有觀察到我們在§4.1中報告的下游精度的急劇轉變。

相比之下,雖然確實考慮了GPT風格的模型,但方法論卻大不相同:(i)他們沒有先進行預訓練,然後使用固定的層丟棄策略,而是在修改後的預訓練過程中增量丟棄層; (ii)作者研究了他們自己的1B以下參數模型,而他們專注於常用和/或微調用於實際應用的現成可用的開放權重的大規模2.7B-70B參數模型系列。

最後,transformer中的層丟棄的系統方法也在wav2vec模型的背景下進行了研究,wav2vec模型是僅編碼器模型,將語音映射到嵌入,參數規模在億級。使用這些模型開發了一種基於層與下游指標相關性的層修剪算法。除了模型架構和領域之外,與他們工作的一個重要區別是考慮了非連續的修剪方案,例如丟棄交替層。他們對層修剪的直覺預測,這不應該同樣有效——至少對於僅解碼器語言模型而言——因為它會在每個移除的層塊處產生多個不匹配。 


2.2 模型蒸餾

另一種完全不同的減少已訓練機器學習模型大小的方法是模型蒸餾,其中知識從大的"教師"模型轉移到更小的"學生"模型通過訓練學生模型以模仿教師模型預測的分佈。其基本見解是,這可以將教師模型的非常通用的知識和能力轉化為更簡潔、壓縮和可能特定於技能的表示。

雖然是一種非常通用的技術,但在語言模型的設置中,蒸餾已經通過以下方式實現:(a)白盒方法,其中學生模型被訓練以模仿教師模型的logits或隱藏狀態;以及(b)黑盒方法,其中學生模型只能訪問教師模型生成的輸出token。後一種方法廣泛涵蓋了學生模型在某種程度上用教師模型增強的文本上訓練的情況,例如通過添加合成標籤、生成高質量的合成文本、提供思路推理(旨在增強學生模型的推理能力)或通過註釋指令來增強學生模型的指令跟隨能力。

與層修剪相比,這些蒸餾方法需要大量計算資源,因為它們依賴於大型教師模型處理大量數據。相比之下,他們基於相似性的修剪策略只需要計算預訓練語料庫的一小部分上不同層之間的相似性,而他們的第二個更簡單的修剪策略只使用修剪後的精簡模型。


2.3 高效微調和推理加速  

作為直接減小模型大小的補充,參數高效微調(PEFT)專注於降低將LLMs專門化到特定任務的成本。具體而言,低秩適應器(LoRA)通過凍結預訓練模型並引入少量額外可訓練權重來減少微調的內存和計算。他們使用其量化版本QLoRA來保持實驗的成本效益。可以與他們工作結合的其他PEFT方法是:在第一種方法中,LoRA矩陣的初始化被調整為量化方案;在第二種方法中,LoRA秩是根據不同LLM模塊自適應選擇的。

為了進一步提高效率,他們可以將層修剪後的模型與進一步加速推理的方法相結合:使用推測解碼,tokens從較小的草稿模型中快速生成,然後由主模型並行評估;使用Medusa,草稿模型被丟棄以換取額外的解碼頭,但最終實現了類似的效果。特別是,在推測解碼設置中,考慮高度壓縮的層修剪模型作為潛在的草稿模型會很有趣。


2.4 深度相關研究的廣度

最後,讓我們重點介紹一些研究LLMs深度相關特性的科學工作。一個相關方向考慮語言模型中知識和語言特性是如何編碼的。一方面分析了事實關聯的存儲和回憶:這些工作強調知識位於中間層或最終層,這對直接編輯或刪除模型的部分事實知識有影響。另一方面,嘗試執行此類編輯的證據表明,信息可能跨層非局部存儲。類似研究了推理過程中處理事實的方式,區分了注意力頭(用於屬性提取)和MLP塊(用於主題豐富)的作用:兩者都分佈在幾個層中。

接下來,在早期的"邏輯鏡頭"之後,發明了一種稱為"調諧鏡頭"的技術,通過使用可學習的仿射變換將中間表示轉換為token分佈來研究預測的軌跡。通過研究這種分佈的層到層動力學,作者注意到它傾向於收斂。這種收斂非常強烈地表明,更深的層可能是可修剪的,而他們必須訓練仿射探測器的事實可能與他們觀察到最後一層不能修剪有關。觀察到只要激活深度超過一半,就可以從在中間激活上訓練的線性探測器確定基礎文本中的地理特徵。

更抽象地發現,激活的稀疏性在網路前向傳遞的大約一半處發生轉變,從稀疏演變為密集。也許與此相關,研究了在微調過程中更新最多的模型權重,發現它們位於中間層。

總的來說,這些深入研究是對他們工作的補充,一方面,提供證據表明刪除LLM最深層不會顯著改變模型的性能,另一方面,表明在刪除大約一半LLM最深層後,性能會出現急劇的修剪轉變。


3 方法

在本節中,他們給出了為什麼他們認為層修剪有效的直覺(§3.1),然後詳細解釋了他們的方法(§3.2)。


3.1 直覺

他們對層丟棄的直覺來自將表示視為層索引的緩慢變化函數。具體而言,transformer的層到層表示演化由殘差迭代方程給出  


$$x^{(\ell+1)} = x^{(\ell)} + f(x^{(\ell)}, \theta^{(\ell)})$$


其中\((x^{(\ell)}, \theta^{(\ell)})\)分別是層\(\ell\)的多維輸入和參數向量,\(f(x, \theta)\)描述了一個多頭自注意力和MLP層塊的變換。像任何殘差網路一樣,如果我們展開這個迭代,我們看到經過\(L\)個總層後,輸出描述為所有層變換之和 


$$x^{(L)} = x^{(0)} + \sum_{\ell=0}^{L-1} f(x^{(\ell)}, \theta^{(\ell)})$$


如果和中的項很多\((L \gg 1)\)且獨立,例如,如果塊函數改為整體輸入的函數\(f(x^{(0)}, \theta^{(\ell)})\),那麼對和式(2)的任何特定貢獻都可能被忽略。

當然,它們根本不是獨立的:如果我們刪除層\(\ell - 1\),那麼我們現在必須將該層的舊輸入\(x^{(\ell-1)}\)連接到層\(\ell\)的塊函數中,如下所示:  


$$x^{(\ell+1)} = x^{(\ell-1)} + f(x^{(\ell-1)}, \theta^{(\ell)})$$


其中,為了清晰起見,儘管刪除了層,我們沒有對層或輸入重新標記。一般來說,原始輸入和新輸入之間的這種不匹配應該對網路造成很大損害。然而,如果在一些初始層之後,表示收斂到關於層索引的緩慢變化函數,


$$x^{(\ell)} \approx x^{(\ell-1)} + \epsilon$$


其中在某種適當意義上\(\epsilon \ll x^{(\ell)}\),那麼刪除特定層\(\ell\)(即,在從(1)到(3)的過程中進行替換\(x^{(\ell)} \to x^{(\ell-1)}\))應該只會將後續層\(x^{(\ell+1)}\)中的表示變化一小部分。類似地,要成功修剪層\(\ell\)之前的\(n\)層,即從\(\ell - n, \ldots, \ell - 1\)開始索引的那些層,我們希望修剪塊的輸入應該與修剪塊的輸出非常相似:


$$x^{(\ell)} \approx x^{(\ell-n)} + \epsilon$$


無論如何,任何層刪除都有級聯效應:由於在修剪後,\(x^{(\ell+1)}\)是由與之前不同的函數計算的,參見(1)與(3)的對比,並且由於\(x^{(\ell+1)}\)直接或間接地輸入到後續層\(\ell + 2, \ldots, L\),刪除淺層應該比刪除深層有更大的影響。

由此,他們有以下假設,他們將通過實驗來驗證:

(0) 我們應該能夠修剪殘差網路的層。

(1) 我們應該在修剪更深層方面獲得更大的成功。  

(2) 我們成功修剪的層塊應該具有與其輸入相似的輸出。


在下一小節§3.2中,他們將解釋修剪算法的細節,在接下來的§4中,他們將呈現支持(0)-(2)點的實驗證據。


3.2 層修剪算法

他們的主要層修剪算法非常簡單:

0. 選擇要修剪的層數\(n\)。

1. 計算層\(\ell\)的輸入\(x^{(\ell)}\)與層\(\ell+n\)的輸入\(x^{(\ell+n)}\)之間的角距離\(d(x^{(\ell)}, x^{(\ell+n)})\),參見下面的(7),在中性預訓練數據集或感興趣的下游任務的代表性數據集上。  

2. 找到使該距離最小化的層$\ell^*$:

$$\ell^*(n) \equiv \arg\min_{\ell} d(x^{(\ell)}, x^{(\ell+n)})$$

3. 丟棄層\(\ell^*\)到\(\ell^*+n-1\);將舊\(\ell^*\)的舊輸入連接到舊的\((\ell^*+n)\)層塊。

4. (可選)在中性預訓練數據集或感興趣的特定數據集上用少量微調來修復層\(\ell^*+n\)處的不匹配。

如果圖中的文字比列表中的文字對你更有幫助,那麼請注意,該算法也描述在圖1的(a)-(b)面板中。

詳細說明進一步說明第一步,單個長度為\(T\)的序列的角距離(7)由下式給出


$$d(x^{(\ell)}, x^{(\ell+n)}) \equiv \frac{1}{\pi} \arccos \left( \frac{x^{(\ell)T} \cdot x^{(\ell+n)T}}{\|x^{(\ell)T}\| \|x^{(\ell+n)T}\|} \right)$$


其中內積是在序列的最後token \(T\)處在模型的隱藏維度上進行的,\(| \cdot |\)表示\(L_2\)範數,而\(1/\pi\)是慣例。然後應該在足夠多的樣本上對這個距離求和,以獲得低波動估計,但總體而言應該非常小。 

詳細說明進一步說明最後一步的"可選性",他們發現,在問答基準上幾乎沒有性能下降,參見圖1(d)和§4.1中的其他,可以通過少量微調擴展到更大的修剪分數。根據資源限制和修剪模型的預期應用,這可能是不必要的。然而,修復過程確實對困惑度有顯著影響,參見圖1(d)和§4.2中的其他。

對於角距離測量和修復,如果最終目標是對下游任務進行監督微調(SFT),那麼在該數據集的樣本上評估距離,然後將修復過程與SFT結合起來可能會很有用。相反,為了獲得最大的通用性,最自然的做法是用近似模型最初預訓練時的統計數據的預訓練數據集來測量距離和修復。

最後,他們還研究了一種更簡單的修剪策略,該策略受到跨不同模型系列分析角距離的啟發:丟棄最深層(不包括LLM頭之前的最後一層),然後像之前一樣通過少量微調來(非可選地)修復損害。為了絕對清晰,這意味著如果我們從一個\(L\)層模型中修剪\(n\)層,那麼我們將刪除從\((L-n)\)到\((L-1)\)的層(包括兩端)。


4 結果

在本節中,他們展示了修剪策略在不同問答(QA)基準上的有效性,並強調了性能中一個穩健的修剪驅動轉變(§4.1),而相比之下,他們發現修復後修剪模型的自回歸困惑度在其轉變點處是連續的(§4.2);然後,在比較不同模型大小和系列之間的相似性統計後(§4.3),他們將主要的基於相似性的修剪策略與更簡單的移除最深層的策略進行對比(§4.4)。



對於實驗,他們修剪了從2.7B到70B參數的各種大規模LLMs,跨越32到80個未修剪層。具體而言,他們使用了Llama-2系列、Qwen系列、Mistral-7B和Phi-2中的模型。對於這些模型,他們使用QLoRA執行"修復"步驟:模型量化為4位精度,然後在Colossal Clean Crawled Corpus(C4)的164M或328M個token上進行微調,這是一個常見的預訓練數據集。因此,他們的每個實驗都在單個A100 GPU上執行。對於QA評估,他們使用了Massive Multitask Language Understanding(MMLU),這是一個常見的世界知識和問題解決基準,以及BoolQ,這是一個常見的是/否閱讀理解基準,其中答案必須從文本本身推斷出來。關於模型、修復過程、數據集選擇和評估細節的具體內容可以在附錄A中找到;不同超參數選擇的評估消融實驗可以在附錄B中找到。


4.1 QA基準的準確性 

他們的第一組結果如圖2所示,其中繪製了5-shot MMLU準確性與移除層的比例的關係:在左面板中,他們展示了Llama-2系列;在中間面板中,他們展示了Qwen系列的模型;在右面板中,他們展示了Mistral-7B和Phi-2。為了更好地比較具有不同總層數的模型,在這些圖中,他們選擇將x軸歸一化為移除層的比例(而不是移除層的絕對數量)。請注意,由於MMLU包含具有四個可能回答的多項選擇問題,隨機猜測的預期準確性為25%。


重要的是,他們觀察到穩健性能的特徵平坦區域,隨後是隨機準確性的急劇轉變,對於Llama-2系列中的模型,修剪分數約為45%-55%,對於Mistral 7B為35%,對於Phi-2為25%,對於Qwen系列的模型為20%。這意味著獲得模型最高分數所需的基本知識不會因大量層移除而丟失——即使這一比例可能相當大(!)——直到最終在特定於模型的臨界閾值處丟失該知識。比較有無修復的曲線,他們看到微調通過更好地保持未修剪的性能並將隨機猜測的相變推到稍大的修剪分數而提供了適度的改進。 


總的來說,他們看到層修剪對於更大和更深的模型(如Llama-2-13B和Llama-2-70B)更加穩健,他們假設這可能與以下事實有關:要麼較小的模型過度訓練,使參數冗餘度降低,要麼更深的模型在絕對意義上可以承受更多層的丟失。此外,Qwen系列很奇怪,他們將在§4.3中進一步詳細說明這一點。




4.2 下一個token預測的損失

在本節中,他們研究了層修剪對預訓練優化目標(即下一個token預測的交叉熵損失)的影響,當在C4驗證數據集的子集上評估時。為了在具有不同大小詞彙表\(V\)的模型之間進行公平比較,他們將損失歸一化為\(\log V\),這對應於以均勻概率隨機採樣token的損失。(有關更多詳細信息,請參閱附錄A.2。)

在圖3中,他們繪製了所有七個模型的歸一化C4驗證損失,在修復後(左面板)和修復前(右面板),作為移除層的比例的函數。在沒有修復的情況下,他們看到每個模型都有一個稍微尖銳的轉變到隨機猜測,大約在QA基準準確性也急劇轉變到隨機猜測的修剪分數處,這表明模型在這一點上已經無可救藥地受損,參見圖2。接下來,對比兩個圖的尺度,他們看到修復顯著恢復了所有模型接近未修剪水平的下一個token預測能力,損失隨著層丟棄緩慢線性增加。最突出的是——從科學角度來看——修復後的連續性通過我們之前發現QA基準有急劇轉變的修剪分數:這種解耦說明了一種使下游任務性能(如MMLU和BoolQ)與連續性能指標(如交叉熵損失)脫鉤(或創造不一致)的方法。


4.3 表示之間的角距離

鑑於角距離在他們的修剪策略中發揮的核心作用,讓我們花一小節來看看這七個模型的這些距離。對於這個分析,每個模型的角距離是在C4驗證集的10k個樣本上平均的。

回想一下之前的圖1(c):對於Llama-2-70B,它繪製了比較第\(\ell\)層和第\((\ell+n)\)層的角距離\(d(x^{(\ell)}, x^{(\ell+n)})\),跨所有初始索引\(\ell\)用於從\(n=1\)到\(n=64\)的塊大小;曲線的最小值\(\ell^*(n)\)給出了給定\(n\)的最佳修剪塊。一種更緊湊的顯示相同數據的方式如圖4的熱圖所示:每個方塊都用顏色表示層\(\ell\)和\(\ell+n\)之間的行歸一化角距離,跨所有可能的\(\ell\)和\(n\),直到總層數的很大一部分;給定塊大小的最佳修剪層\(\ell^*(n)\)對應於每行中的最小距離。 

跨模型,他們得出兩個廣泛的結論:(i)最小距離存在於更深的塊之間,這意味著更深的層通常彼此非常相似,可以更容易地丟棄; (ii)包括最後一層的最深塊的距離具有最大值或接近最大值,這意味著永遠不應該丟棄最後一層。雖然大體上是正確的,但也有一些例外。對於某些模型,例如Phi-2-2.7B,或者對於某些模型中最大的塊,例如Llama-2-7B,最後幾層似乎很重要。如前所述,Qwen系列有點不尋常:在這裡,他們看到淺層塊有一些奇怪的高相似性"島嶼";這可能解釋了圖2中更短的穩健性能區域。




4.4 一個更簡單的修剪策略

受最近結論的啟發,他們嘗試了一個非常簡單的啟發式修剪策略:

(1) 如果從一個\(L\)層模型中修剪\(n\)層,丟棄\((L-n)\)到\((L-1)\)層,以便刪除不包括最後一層的最深塊;  

(2) 然後像之前一樣通過少量微調來修復。

與主要的基於相似性的修剪策略相比,這個更簡單的啟發式算法的優勢在於從未要求從業者將未修剪模型加載到GPU上或進行推理。它還提供了一個有意義的消融實驗,用於優化要修剪的塊的重要性。



在圖5中,他們對比了兩種修剪策略,在修復前(左面板)和修復後(右面板),用於QA基準(MMLU/BoolQ,上/中面板)和自回歸損失(C4驗證,下面板)。一方面,如果不修復修剪造成的損害,簡單的啟發式方法表現非常糟糕:隨著修剪分數的增加,QA基準的準確性迅速下降到(接近)隨機,即使修剪量很小,損失也開始非常迅速地增加。另一方面,在修復後,兩種修剪策略在評估中的結果非常接近:對於QA基準,基於相似性的算法在相變發生之前稍微更好地保持了準確性,儘管簡單算法可能將相變推到稍大的修剪分數;對於損失,曲線幾乎重疊,儘管基於相似性的策略在所有修剪量下都稍微優於簡單策略。這些實驗有力地證明,後修剪微調的目的是修復修剪接口處的損害,而不是獲取額外的知識。

 

5 討論與未來方向 

隨著開放權重LLaMA系列的發布,開源機器學習社區圍繞著讓LLM人人可及的理念團結在一起。這催生了許多圍繞效率的創新,如LoRA和量化(與LoRA),使得大型(接近)最先進的70B模型可以只在單個80GB A100 GPU上進行微調。結合這些其他工具,他們的工作通過一種易於實現的層修剪技術實現了進一步的效率提升。

具體而言,發布版本的Llama-2-70B跨越140 GB內存,每個token消耗大約\(3 \times 10^{10}\) FLOP。通過4位量化和50%的層修剪分數,該模型佔用大約17.5 GB內存,每個token需要大約$1.5 \times 10^{10}$ FLOP:從16位bfloat量化到4位QLoRA精度將模型內存減少4倍,但FLOP基本保持不變,因為計算是以16位精度執行的;層修剪還將根據層修剪分數按比例減少內存和FLOP。這些內存和計算要求使得開放權重最先進模型能夠在消費級GPU上高效運行,甚至無需任何CPU卸載即可進行微調,且只有很小的性能權衡。

在工作結束時,他們留下了以下問題:

• 有哪些更好的層修剪策略?有哪些更好的修復方法?

• 為什麼修復消除了損失中的相變,但沒有消除QA準確性中的相變?

• 使用更全面的評估,不同任務的準確性是否會在不同深度下降?

• 相關地知識通常存儲在淺層或中間層,還是非局部化的?

• 預訓練細節是否會影響修剪能力,例如,基於縮放定律過度訓練或蒸餾的模型是否更難修剪?

• 我們如何使LLM更有效地利用其最深層中的參數? 

其中一些問題將受益於研究不同預訓練檢查點的層相似性和修剪;例如,QA準確性中的急劇相變和臨界深度是在什麼時候出現的,更多的訓練是否會導致更好地使用可修剪參數?其他問題表明需要探索不同的預訓練架構和目標,例如為了更好地利用更深層。通過更全面的評估,如果不同種類的任務在非常不同的深度下降,那麼這可能表明完成這些任務所需的知識存儲在不同的深度。使用修剪來系統地研究這些可解釋性問題將是非常有趣的。

參考文獻(略)

A 實驗細節

在這裡,他們解釋了模型和修復(§A.1)以及評估(§A.2)的各種細節。

A.1 模型和修復細節

本文中的所有模型都使用Hugging Face Trainer API進行微調。模型列表及其在Hugging Face上的路徑如下:



對於修復,他們使用了來自Hugging Face的Colossal Clean Crawled Corpus(C4)版本:data = load_dataset("c4", 'en')。他們如後面段落所述截斷了長樣本,並在可用時添加了特殊token。模型以全局批次大小16進行微調5000步:這對應於每個模型的總微調token為16 × 5000 × [max_seq_length]。他們使用了cosine退火的學習率調度,預熱100步。如果可能,則將峰值學習率設置為模型預訓練的峰值學習率;在實踐中,這意味著除Phi-2(在預訓練期間使用2e-4的峰值LR)、Llama-2-70B(使用3e-5的峰值LR,這是掃描得到的值)和Mistral-7B(使用3e-6的峰值LR,也是掃描得到的值)外,所有模型都使用3e-4的峰值LR進行訓練。所有7B參數或更小的模型都使用2048 token的最大序列長度進行訓練,而所有13B參數或更大的模型都使用4096 token的最大序列長度進行訓練。雖然他們意識到一些模型可能已經在更長的序列上進行了預訓練,例如Qwen-the-outlier,但他們決定在類似大小的模型中保持最大序列長度一致,以便在模型系列之間進行更公平的比較。

除了Hugging Face Trainer API之外,他們還在所有微調中使用了量化和低秩適應器(LoRA):

• 對於量化,他們使用bitsandbytes庫進行QLoRA將模型量化為4位。

• 對於LoRA,他們使用Hugging Face peft庫。他們將LoRA dropout設置為0.05,並將LoRA α保持等於LoRA秩,遵循。除了兩個例外(下面討論),模型都使用LoRA秩64進行訓練。

• 僅將LoRA應用於FFN模塊:

  1. 對於Llama-2和Mistral模型為["gate_proj", "down_proj", "up_proj"],
  2. 對於Phi-2為["fc1", "fc2"],  
  3. 對於Qwen模型為["w1", "w2", "c_proj"]。

這些超參數選擇中絕大多數都是標準的,可以在以前的工作中找到。為了絕對清晰,他們在下面列出了所有模型特定的架構和修復細節:


A.2 評估細節

他們執行了三個主要評估:MMLU的準確性、BoolQ的準確性和C4的損失。

對於MMLU準確性:

• 他們使用來自Hugging Face的cais/mmlu版本的資料集。  

• 他們遵循原始參考文獻中建議的格式,無需進一步的提示工程。

• 對於構建few-shot樣本,他們使用cais/mmlu中的dev集。 

• 對於實驗,他們使用0個few-shot樣本;他們的結果和分析對這種選擇是穩健的,參見圖7。

• 他們報告所有主題的平均準確性。


對於BoolQ準確性:

• 他們使用來自Hugging Face的hassansh/boolq_n_shot版本。

• 對於實驗,他們使用0個few-shot樣本。  

• 完整的BoolQ結果(從正文中截斷)如圖6所示:在左面板中,他們展示Llama-2系列,在中間面板中,他們展示Qwen系列的模型,在右面板中,他們展示Mistral-7B和Phi-2;他們還將沒有修復的實驗設為半透明,以更好地顯示完整的基於相似性的修剪方法的結果。重要的是,雖然他們在這裡看到修復比在圖2的MMLU中發揮了更重要的作用,但在修復後,我們仍然有一個特徵性的穩健性能平坦區域;如前所述,獲得模型最高分數所需的能力不會因大量層修剪而丟失,直到達到特定於模型的臨界閾值。


對於C4驗證損失:

• 他們使用來自Hugging Face的c4版本(即將被棄用,以支持allenai/c4)。

• 由於使用train split進行修復,因此他們在validation split上進行評估。

• 鑑於其大小,他們隨機採樣了60k個序列,並在所有模型中保持固定。

• 在圖3中,他們將損失標準化以便於不同模型系列之間的公平比較,這些模型使用不同的詞彙表大小:為了標準化,他們除以\(\log V\),其中\(V\)是每個模型的詞彙表大小(在§A.1的表格中列出)。這,\(\log V\),自然地設置了給定模型的尺度,對應於均勻採樣token的損失。



B 消融實驗

在這裡,他們詳細說明了各種超參數的消融實驗:提示(§B.1)、微調種子(§B.2)、LoRA秩(§B.3)。定性地說,本文的結果對任何這些參數的變化都非常穩健。

B.1 提示

眾所周知,改變QA評估的提示可以顯著影響結果。為了控制提示,他們在§3.2中描述的主要基於相似性的修剪應用於Llama-2-13B時,對MMLU準確性進行了消融:在圖7的左面板中,他們顯示了改變提示中few-shot樣本順序的結果,在同一圖的右面板中,他們顯示了改變few-shot樣本數量的結果。總的來說,我們看到層修剪方法對這些變化是穩健的。 

B.2 微調種子

在這裡,他們改變微調種子。對於所有實驗,他們使用以下代碼片段來確保可重複性:

SEED_VAL = 0 

transformers.enable_full_determinism(SEED_VAL)


由於從預訓練模型開始,微調種子不會影響初始化,但會影響進一步訓練的隨機方面,如數據順序。為了控制這一點,他們在§3.2中描述的主要基於相似性的修剪應用於Llama-2-13B時,對微調種子進行了消融:在圖8中,我們觀察到層修剪方法對種子選擇是穩健的。




B.3 LoRA秩

在這裡,他們改變用於修復的LoRA秩。不幸的是,他們的計算預算不允許他們在所有實驗配置中進行詳盡的掃描。作為替代,他們採用以下協議進行主要實驗:

• 從秩64開始,遵循QLoRA設置。

• 如果使用該秩進行修復會顯著損害性能(與不修復相比),則為該模型掃描LoRA秩,並根據MMLU準確性選擇性能最佳的LoRA秩用於其他評估。

該協議旨在最大化修復在所有評估中改善性能的機會。為簡單起見,他們使用簡單的修剪啟發式運行此秩選擇協議,Llama-2-70B除外。

在實踐中,這導致他們對每個模型使用秩64,Mistral-7B(秩4)、Llama-2-7B(秩2)和Llama-2-70B(秩8)除外。 (要以表格形式查看相同的信息,請參見§A.1中的第二個表格。)圖9顯示了支持Mistral-7B(左下面板)、Llama-2-7B(中下面板)和Llama-2-70B(右上面板)這些選擇的MMLU準確性掃描:總的來說,雖然LoRA秩對修復模型的定性行為沒有顯著影響,但降低LoRA秩通常會提高性能。在圖9的左上和中上面板中,我們顯示了使用基於相似性的修剪策略對Mistral-7B(上)和Llama-2-7B(中)進行相應的掃描:我們看到,對於這種修剪方法,兩個模型都更加穩健,儘管秩2仍然是Llama-2-7B的最佳表現秩。


LoRA秩下降對MMLU準確性的特徵性改善(即使對於極低的秩(!))值得解釋。一種可能性是,降低LoRA秩可以更好地正則化微調以防止過擬合。特別是,一些敏銳的讀者可能會對§A.1中關於峰值學習率的討論感到驚訝:模型使用預訓練中相同的峰值進行微調;一個"大"的LoRA秩64引入了一些額外的參數,可能會過擬合C4。這種過擬合肯定是有害的,因為我們考慮的模型的實際預訓練數據集(a)我們未知,(b)可能比C4的質量高得多。  

他們直接為Mistral-7B研究了這一點。在圖9的右下面板中,他們繪製了不同LoRA秩的C4驗證損失:我們看到,雖然降低LoRA秩通常會提高MMLU準確性(參見最左面板),但同時它會損害C4驗證損失。這支持了他們的過擬合假設。在未來資源更充足的情況下,通過考慮其他形式的正則化和學習率調整來改善修復過程將會很有趣。

這篇論文研究了一個非常有趣而且實用的問題:如何在不顯著影響性能的情況下修剪大型語言模型的層數,從而減少模型的記憶體佔用和推理延遲。作者提出了一種基於層間表示相似性的啟發式修剪策略,並通過在各種問答任務上的實驗證明了該方法的有效性。


我的閱讀筆記

我認為這項工作有以下幾點意義和啟示:

1. 實用價值。層修剪可以顯著減少模型部署的成本,尤其是在雲端推理等受限資源場景下。該方法與LoRA、量化等其他模型壓縮技術正交,可以協同使用。

2. 理論洞見。作者發現修剪後的模型在QA任務上存在突變點(phase transition),即準確率在某一修剪比例後驟降,而自回歸loss則是平滑變化。這表明QA任務可能主要依賴模型的淺層知識。此外,更深層之間的表示相似性更高,修剪也更魯棒。

3. 簡單有效。基於相似性的啟發式修剪策略已經很有效,而更簡單的從後往前修剪策略也能取得接近的效果。這種簡單性很有吸引力。

4. 擴展空間。在更大的模型、更長序列、更多任務上驗證層修剪效果,以及進一步優化修復方法,都是有趣的未來方向。此外層修剪也為分析知識在網路中的分佈提供了新思路。

不過這項工作也有一些局限性,比如只考慮了GPT類的decoder-only模型,在encoder-decoder模型上效果如何還有待研究。而且修剪比例較大時仍然需要一些微調,並非完全零樣本。

我認為這是一篇兼具實用性和啟發性的好工作,對於降低大模型部署成本和分析語言模型的知識特性都有重要價值。未來進一步擴展層修剪的適用性,并結合知識蒸餾等其他技術,有望進一步提升大模型的效率。

2024年5月4日星期六

Hello, KAN!

多層感知器(MLPs),也被稱為全連接前饋神經網絡,是當今深度學習模型的基礎組成部分。



MLPs在機器學習中扮演著至關重要的角色,因為它們是用於近似非線性函數的默認模型,這得益於通用近似定理所保證的表達能力。然而,MLPs真的是我們能構建的最佳非線性回歸器嗎?儘管MLPs被廣泛使用,但它們仍然存在一些顯著缺陷。例如,在Transformer模型中,MLPs幾乎消耗了所有非嵌入參數,並且在沒有使用後續分析工具的情況下,通常不如注意力層那樣易於解釋。

為了解決這些問題,本研究提出了一種MLPs的替代方案,稱為Kolmogorov-Arnold Networks(KANs)。與受通用近似定理啟發的MLPs不同,KANs的靈感來自於Kolmogorov-Arnold定理。KANs與MLPs一樣具有全連接結構,但兩者在激活函數的放置方式上有所不同。MLPs在節點("神經元")上放置固定的激活函數,而KANs則在邊("權重")上放置可學習的激活函數。因此,KANs完全沒有線性權重矩陣,取而代之的是每個權重參數都被一個以樣條線參數化的可學習一維函數所替換。KANs的節點只是簡單地對傳入信號進行求和,而不應用任何非線性變換。有人可能會擔心,由於KANs將MLPs的每個權重參數變成了樣條函數,因此會變得計算成本很高。然而,令人欣喜的是,KANs通常允許使用比MLPs小得多的計算圖。例如,本研究表明,在解決偏微分方程(PDE)問題時,一個2層寬度為10的KAN比4層寬度為100的MLP的均方誤差(MSE)小100倍(10^(-7)對10^(-5)),同時參數效率提高了100倍(10^2對10^4)。

事實上,使用Kolmogorov-Arnold定理來構建神經網絡的可能性已經被研究過。然而,大多數工作都局限於使用原始的深度為2、寬度為(2n+1)的表示,沒有機會利用更現代的技術(例如反向傳播)來訓練網絡。本研究的貢獻在於將原始的Kolmogorov-Arnold表示推廣到任意寬度和深度,並將其置於當前的深度學習應用背景下,通過廣泛的實證實驗來突出其作為AI+科學基礎模型的潛力。

儘管KANs有優雅的數學解釋,但它們實際上只是樣條和MLPs的結合,利用了各自的優點,避免了各自的缺點。樣條在低維度下表現出色,易於局部調整,並且能夠在不同分辨率之間切換。然而,樣條受到嚴重的維度詛咒問題的影響,因為它們無法利用組合結構。另一方面,MLPs由於其特徵學習能力,受維度詛咒的影響較小,但在低維度下的準確性不如樣條,因為它們無法很好地優化一維函數。為了準確學習一個函數,一個模型不僅需要學習組合結構(外部自由度),還需要能夠很好地逼近一維函數(內部自由度)。KANs正是這樣一種模型,因為它們在外部類似於MLPs,在內部類似於樣條。因此,KANs不僅能夠學習特徵(由於其與MLPs在外部的相似性),還能將這些學習到的特徵優化到很高的精度(由於其與樣條在內部的相似性)。例如,給定一個高維函數


\[ f(x_1, ..., x_N) = \exp\left(\frac{1}{N}\sum_{i=1}^N \sin^2(x_i)\right) \]

(1.1)




由於維度詛咒,樣條在N很大時會失效;MLPs可能會學到廣義加性結構,但它們在逼近指數函數和正弦函數方面效率很低,例如使用ReLU激活函數。相比之下,KANs可以很好地學習組合結構和一維函數,因此大大優於MLPs(見圖3.1)。

在本文中,本研究將通過大量的數值實驗來展示KANs在精度和可解釋性方面如何顯著改善MLPs。本文的結構如圖2.1所示。在第二節中,本研究介紹了KAN架構及其數學基礎,引入了網絡簡化技術以使KANs易於解釋,並提出了網格擴展技術以使KANs逐步提高精度。在第三節中,本研究展示了KANs在數據擬合和求解偏微分方程方面優於MLPs的表現:當數據中存在組合結構時,KANs可以克服維度詛咒,實現比MLPs更好的縮放規律。在第四節中,本研究展示了KANs的可解釋性,並將其應用於科學發現。本研究使用來自數學(結理論)和物理學(Anderson局域化)的兩個實例,證明了KANs可以作為幫助科學家(重新)發現數學和物理定律的有用"合作者"。第五節總結了相關工作。在第六節中,本研究通過討論廣泛的影響和未來方向來總結全文。代碼可在https://github.com/KindXiaoming/pykan獲取,也可以通過pip install pykan進行安裝。

Paper: https://arxiv.org/abs/2404.19756

Code: https://github.com/KindXiaoming/pykan

Quick intro: https://kindxiaoming.github.io/pykan/intro.html

Documentation: https://kindxiaoming.github.io/pykan/


2. Kolmogorov-Arnold 網絡(KAN)


多層感知器(MLPs)受到通用近似定理的啟發。相反,該研究關注的是可以通過一種新型神經網絡實現的Kolmogorov-Arnold表示定理,稱為Kolmogorov-Arnold網絡(KAN)。該研究在2.1節回顧Kolmogorov-Arnold定理,以啟發在2.2節中Kolmogorov-Arnold網絡的設計。在2.3節中,該研究提供了KANs的表達能力和神經縮放法則的理論保證。在2.4節中,該研究提出了一種網格擴展技術,以使KANs逐漸更加精確。在2.5節中,該研究提出了簡化技術,使KANs易於解釋。


2.1 Kolmogorov-Arnold表示定理(Kolmogorov–Arnold representation theorem)

弗拉基米爾·阿諾德(Vladimir Arnold)和安德烈·柯爾莫果洛夫(Andrey Kolmogorov)證明,如果f是在有界域上的多變量連續函數,則f可以表示為一個有限組合的連續一維函數和二元加法運算。更具體地說,對於一個平滑的\(f:[0, 1]^n → R\),


\[ f(x) = f(x_1, ..., x_n) = \sum_{q=1}^{2n+1} \Phi_q \left( \sum_{p=1}^n \phi_{q,p}(x_p) \right), \]

(2.1)


其中 \(\phi_{q,p} : [0, 1] → R\) 和 \(\Phi_q : R → R\)。從某種意義上說,他們證明了加法是唯一真正的多變量函數,因為其他所有函數都可以使用一維函數和求和來表示。人們可能會天真地認為這對機器學習是個好消息:學習一個高維函數歸結為學習一定數量的一維函數。然而,這些一維函數可能是不光滑甚至是分形的,因此在實踐中可能無法學習。由於這種病態行為,Kolmogorov-Arnold表示定理基本上在機器學習中被判了死刑,被認為在理論上是健全的但實際上無用。



然而,該研究對Kolmogorov-Arnold定理在機器學習中的用途持更加樂觀的態度。首先,該研究無需堅持原始方程(2.1),該方程僅具有兩層非線性和隱藏層中的少量項目(2n+1):該研究將網絡推廣到任意寬度和深度。其次,科學和日常生活中的大多數功能通常都是平滑的,並且具有稀疏的組合結構,這可能有助於實現平滑的Kolmogorov-Arnold表示。這裡的理念接近物理學家的心態,他們通常更關心典型案例而非最壞情況。畢竟,我們的物理世界和機器學習任務必須具有結構,才能使物理學和機器學習在所有方面都有用或具有普遍性。


2.2 KAN架構

假設該研究有一個監督學習任務,包含輸入輸出對{xi, yi},其中該研究希望找到一個函數f,使得對所有數據點yi ≈ f(xi)。方程(2.1)意味著如果該研究能找到適當的一維函數\(\phi_{q,p}\)和\(\Phi_q\),那麼該研究就完成了。這啟發該研究設計了一個明確參數化方程(2.1)的神經網絡。由於所有需要學習的函數都是一維函數,該研究可以將每個一維函數參數化為一條B-樣條曲線,具有可學習的局部B-樣條基函數係數(見圖2.2右)。現在該研究有了一個KAN的原型,其計算圖由方程(2.1)確切指定,並在圖0.1(b)中顯示(輸入維度n = 2),顯示為具有在邊上放置激活函數而非節點的兩層神經網絡(節點上執行簡單的求和),並在中間層寬度為2n+1。

正如所提及的,這樣的網絡被認為太簡單,無法在實踐中以平滑的樣條任意精確地近似任何函數!因此,該研究將KAN推廣為更寬更深。立即如何使KAN更深並不清楚,因為Kolmogorov-Arnold表示對應於兩層KAN。據該研究所知,尚無與更深KAN對應的“一般化”定理版本。

當該研究注意到MLPs和KANs之間的類比時,突破發生了。在MLPs中,一旦定義了一層(由線性變換和非線性組成),就可以堆疊更多層來使網路更深。為了建立深層KANs,該研究首先需要回答:“什麼是KAN層?”

結果顯示,一個KAN層,其輸入維度為nin,輸出維度為nout,可以被定義為一個1D函數的矩陣:


\[ \Phi = \{\phi_{q,p}\}, p = 1, 2, ..., nin, q = 1, 2, ..., nout, \]

(2.2)


其中函數\(\phi_{q,p}\)具有可訓練的參數。在Kolmogorov-Arnold定理中,內部函數形成了一個KAN層,nin = n 和 nout = 2n+1,外部函數形成了一個KAN層,nin = 2n+1 和 nout = 1。因此,方程(2.1)中的Kolmogorov-Arnold表示只是兩個KAN層的組合。現在變得清楚了,擁有更深的Kolmogorov-Arnold表示意味著什麼:只需堆疊更多的KAN層!

讓該研究引入一些符號。這一段可能有點技術性,但讀者可以參考圖2.2(左)以獲得具體的例子和直觀的理解。一個KAN的形狀由一個整數數組表示:


\[ [n_0, n_1, ..., n_L], \]

(2.3)


其中ni是計算圖中第i層的節點數。該研究用(l, i)表示第l層的第i個神經元,並用xl,i表示(l, i)-神經元的激活值。在第l層和第l+1層之間,有nlnl+1個激活函數:連接(l, i)和(l+1, j)的激活函數用


\[ \phi_{l,j,i}, l = 0, ..., L-1, i = 1, ..., nl, j = 1, ..., nl+1 \]

(2.4)


表示。\( \phi_{l,j,i} \)的預激活簡單地是\(xl,i\);\( \phi_{l,j,i} \)的後激活由\( \tilde{x}_{l,j,i} \equiv \phi_{l,j,i}(x_{l,i}) \)表示。第\((l + 1, j)\)神經元的激活值僅是所有傳入後激活的總和:


\[ x_{l+1,j} = \sum_{i=1}^{nl} \tilde{x}_{l,j,i} = \sum_{i=1}^{nl} \phi_{l,j,i}(x_{l,i}), j = 1, ..., nl+1. \]

(2.5)


以矩陣形式表示,這可以寫為:


\[ x_{l+1} = \begin{pmatrix} \phi_{l,1,1}( \cdot ) & \phi_{l,1,2}( \cdot ) & \cdots & \phi_{l,1,n_l}( \cdot ) \\ \phi_{l,2,1}( \cdot ) & \phi_{l,2,2}( \cdot ) & \cdots & \phi_{l,2,n_l}( \cdot ) \\ \vdots & \vdots & \ddots & \vdots \\ \phi_{l,n_{l+1},1}( \cdot ) & \phi_{l,n_{l+1},2}( \cdot ) & \cdots & \phi_{l,n_{l+1},n_l}( \cdot ) \end{pmatrix} x_l, \]

(2.6)


其中 \(\Phi_l\) 是對應於第 \(l\) 層的函數矩陣。一個通用的KAN網絡是 \(L\) 層的組合:給定一個輸入向量 \(x_0 \in \mathbb{R}^{n_0}\),KAN的輸出為


\[ \text{KAN}(x) = (\Phi_{L-1} \circ \Phi_{L-2} \circ \ldots \circ \Phi_1 \circ \Phi_0)x. \]

(2.7)


該研究還可以重寫上述方程,使其更類似於方程(2.1),假設輸出維度 \(n_L = 1\),並定義 \(f(x) \equiv KAN(x)\):


\[ f(x) = \sum_{i_{L-1}=1}^{n_{L-1}} \phi_{L-1, i_{L}, i_{L-1}}\left(\sum_{i_{L-2}=1}^{n_{L-2}} \cdots \left( \sum_{i_2=1}^{n_2} \phi_{2, i_3, i_2}\left( \sum_{i_1=1}^{n_1} \phi_{1, i_2, i_1}\left( \sum_{i_0=1}^{n_0} \phi_{0, i_1, i_0}(x_{i_0}) \right) \right) \cdots \right) \right), \]

(2.8)


這個表達式雖然複雜,但我們對KAN層的抽象化和視覺化更為清晰直觀。原始的Kolmogorov-Arnold表示方程(2.1)對應於形狀為 \([n, 2n + 1, 1]\) 的2層KAN。值得注意的是,所有操作都是可微的,因此該研究可以使用反向傳播訓練KANs。作為對比,一個MLP可以寫成交錯的仿射變換 \(W\) 和非線性 \(\sigma\):


\[ MLP(x) = (W_{L-1} \circ \sigma \circ W_{L-2} \circ \sigma \circ \cdots \circ W_1 \circ \sigma \circ W_0)(x). \]

(2.9)


很明顯,MLPs將線性變換和非線性分別作為 \(W\) 和 \(\sigma\) 處理,而KANs則將它們結合在 \(\Phi\) 中。在圖0.1的(c)和(d)中,該研究可視化了三層MLP和三層KAN,以澄清它們的差異。


實施細節

儘管KAN層方程(2.5)看起來非常簡單,但使其優化良好並非微不足道。關鍵技巧包括:

1. 殘差激活函數。該研究包括一個基函數 \(b(x)\)(類似於殘差連接),使得激活函數 \(\phi(x)\) 是基函數 \(b(x)\) 和樣條函數的總和:


   \[ \phi(x) = w(b(x) + \text{spline}(x)). \]

(2.10)


該研究設定


\[ b(x) = \text{silu}(x) = \frac{x}{1 + e^{-x}} \]

(2.11)


在大多數情況下。樣條函數 \( \text{spline}(x) \) 則被參數化為B-樣條的線性組合:


\[ \text{spline}(x) = \sum_i c_i B_i(x) \]

(2.12)


其中 \( c_i \) 是可訓練的。原則上 \( w \) 是多餘的,因為它可以被吸收進 \( b(x) \) 和 \( \text{spline}(x) \)。然而,該研究仍然包括這個 \( w \) 因子,以更好地控制激活函數的總體幅度。


2. 初始化規模。每個激活函數被初始化為使 \( \text{spline}(x) \approx 0 \)。\( w \) 根據Xavier初始化法則初始化,這種方法被用來初始化MLPs中的線性層。

3. 樣條網格的更新。該研究根據其輸入激活值即時更新每個網格,以解決樣條在有界區域內定義但激活值在訓練過程中可能超出固定區域的問題。


參數計數

為簡單起見,假設該研究設置一個網絡:

  1. 深度為 \( L \),
  2. 層寬度相等,\( n_0 = n_1 = \ldots = n_L = N \),
  3. 每個樣條的階數通常為 \( k = 3 \),在 \( G \) 個區間(共 \( G+1 \) 個網格點)。

則總共有 \( O(N^2 L (G + k)) \approx O(N^2 LG) \) 參數。相比之下,具有深度 \( L \) 和寬度 \( N \) 的MLP只需要 \( O(N^2 L) \) 參數,這似乎比KAN更有效。幸運的是,KANs通常需要比MLPs小得多的 \( N \),這不僅節省了參數,而且還實現了更好的泛化(參見圖3.1和圖3.3)並促進了解釋性。該研究指出,對於1D問題,可以取 \( N = L = 1 \),而該研究實現中的KAN網絡僅是一個樣條近似。對於更高維度,該研究通過下面的定理描述了KANs的泛化行為。




2.3 KAN的近似能力和縮放定律

回想方程(2.1)中,寬度為(2n+1)的兩層表示可能不是平滑的。然而,更深的表示可能帶來更平滑激活的優勢。例如,對於四變量函數


\[ f(x_1, x_2, x_3, x_4) = \exp\left(\sin(x_1^2 + x_2^2) + \sin(x_3^2 + x_4^2)\right) \]

(2.13)


可以被一個[4, 2, 1, 1] KAN平滑地表示,這是一個三層KAN,但可能不允許兩層KAN具有平滑激活。為了便於進行近似分析,該研究仍然假設激活的平滑性,但允許表示可以任意寬和深,如方程(2.7)。為了強調該研究KAN對有限集合網格點的依賴,該研究在下面使用\(ΦG_l\)和\(ΦG_l,i,j\)替代方程(2.5)和(2.6)中使用的符號\(Φ_l\)和\(Φ_l,i,j\)。


定理2.1(近似理論,KAT):設\(x = (x_1, x_2, ..., x_n)\)。假設一個函數\(f(x)\)允許表示


\[ f = (\Phi_{L-1} \circ \Phi_{L-2} \circ \ldots \circ \Phi_1 \circ \Phi_0)(x), \]

(2.14)


如方程(2.7)所示,其中每一個\(Φ_l,i,j\)都是\((k+1)\)次連續可微的。那麼存在一個依賴於f及其表示的常數C,使得有關於網格大小G的以下近似界限:存在k階B-樣條函數\(ΦG_l,i,j\),對於任何\(0≤m≤k\)有界限


\[ \|f - (\Phi^G_{L-1} \circ \Phi^G_{L-2} \circ \ldots \circ \Phi^G_1 \circ \Phi^G_0)(x)\|_{C^m} \leq CG^{-k-1+m}. \]

(2.15)


這裡採用\(C^m\)範數來測量高達\(m\)階的導數的幅度:


\[ \|g\|_{C^m} = \max_{|\beta| \leq m} \sup_{x \in [0,1]^n} |D^\beta g(x)|. \]


證明:通過經典的1D B-樣條理論和事實,即\(Φ_l,i,j\)作為連續函數可以在有界域上均勻有界,知道存在有限網格B-樣條函數\(ΦG_l,i,j\),使得對於任何\(0≤m≤k\),


\[ \|(\Phi_{l,i,j} \circ \Phi_{l-1} \circ \ldots \circ \Phi_1 \circ \Phi_0)(x) - (\Phi^G_{l,i,j} \circ \Phi_{l-1} \circ \ldots \circ \Phi_1 \circ \Phi_0)(x)\|_{C^m} \leq CG^{-k-1+m}, \]


具有獨立於G的常數C。固定這些B-樣條逼近。因此,通過定義殘差\(R_l\):


\[ R_l = (\Phi^G_{L-1} \circ \ldots \circ \Phi^G_{l+1} \circ \Phi_l \circ \Phi_{l-1} \circ \ldots \circ \Phi_0)x - (\Phi^G_{L-1} \circ \ldots \circ \Phi^G_{l+1} \circ \Phi^G_l \circ \Phi_{l-1} \circ \ldots \circ \Phi_0)x \]


滿足


\[ \|R_l\|_{C^m} \leq CG^{-k-1+m}, \]


具有獨立於G的常數。最後注意到


\[ f - (\Phi^G_{L-1} \circ \Phi^G_{L-2} \circ \ldots \circ \Phi^G_1 \circ \Phi^G_0)(x) = R_{L-1} + R_{L-2} + \ldots + R_1 + R_0, \]


(2.15)成立。


根據定理2.1的假設,KANs在有限網格大小下可以用一個與維度無關的殘差率很好地逼近函數,因此戰勝了維度的詛咒!這自然而然地發生,因為只用樣條來逼近1D函數。特別是對於\(m = 0\),恢復在\(L∞\)範數中的精確度,這反過來提供了在有限域上的均方根誤差(RMSE)的一個界限,給出了\(k+1\)的縮放指數。當然,常數C依賴於表示;因此它將依賴於維度。該研究將在未來的工作中討論常數對維度的依賴。

該研究指出,儘管Kolmogorov-Arnold定理(2.1)對應於形狀為\([d, 2d+1, 1]\)的KAN表示,它的函數並不一定是平滑的。另一方面,如果該研究能夠識別一個平滑的表示(可能需要額外的層或使KAN比理論預測的更寬),那麼定理2.1表明該研究可以戰勝維度的詛咒(COD)。這不應該令人驚訝,因為可以固有地學習函數的結構,並使有限樣本KAN近似可解釋。



神經縮放定律:與其他理論的比較

神經縮放定律是指隨著模型參數的增加,測試損失減少的現象,即\(ℓ ∝ N^(-α)\),其中\(ℓ\)是測試RMSE,\(N\)是參數數量,\(α\)是縮放指數。更大的\(α\)承諾通過簡單地擴大模型來實現更多的改進。不同的理論已被提出來預測\(α\)。Sharma和Kaplan建議,\(α\)來自於在具有內在維度\(d\)的輸入流形上的資料擬合。如果模型函數類是k階分段多項式(對於ReLU,k=1),則標準近似理論暗示\(α = (k+1)/d\)來自近似理論。這個界限受到維度的詛咒的困擾,所以人們尋求其他不依賴於\(d\)的界限,通過利用組合結構。特別是,Michaud等人考慮了只涉及一元(例如,平方、正弦、指數)和二元(+ 和 ×)操作的計算圖,發現\(α = (k+1)/d* = (k+1)/2\),其中\(d* = 2\)是最大元性。Poggio等人利用組合稀疏的想法,證明了給定函數類\(Wm\)(其導數直到第\(m\)階是連續的),需要\(N = O(ε^(-2/m))\)數量的參數來實現誤差\(ε\),這等效於\(α = m/2\)。該研究的方法,假設平滑的Kolmogorov-Arnold表示存在,將高維函數分解為幾個1D函數,給出\(α = k+1\)(其中k是樣條的分段多項式階數)。該研究選擇\(k = 3\)的立方樣條,所以\(α = 4\)是與其他工作相比最大且最好的縮放指數。該研究將在第3.1節展示,這個界限α = 4實際上可以用KANs實現,而以前的工作報告說,即使在滿足較慢的界限(例如,\(α = 1\))和迅速達到平台的情況下,MLPs也存在問題。


KAT和UAT之間的比較

全連接神經網路的威力是由通用逼近定理(UAT)證明的,該定理指出,給定一個函數和誤差容限\(\epsilon > 0\),具有\(k > N(\epsilon)\)個神經元的雙層網路可以將函數逼近至\(\epsilon\)的誤差內。然而,UAT並不保證\(N(\epsilon)\)如何隨\(\epsilon\)縮放。事實上,它遭受維度詛咒(COD)的困擾,並且在某些情況下,\(N\)已被證明隨\(d\)呈指數增長。KAT和UAT之間的差異是KAN利用了函數的內在低維表示,而MLP沒有。將展示KAN與符號函數很好地對齊,而MLP則不然。


2.4 精確性:網格擴展

原則上一個樣條可以被任意精確地調整以符合目標函數,只要網格可以被足夠細化。這一優良特性被KANs繼承。相比之下,MLPs沒有“細化”的概念。確實,增加MLPs的寬度和深度可以提高性能(“神經縮放定律”)。但這些神經縮放定律增長緩慢,且實現起來成本高昂,因為需要獨立訓練不同大小的模型。與此相反,對於KANs,可以首先訓練一個參數較少的KAN,然後通過簡單地細化樣條網格擴展到一個參數更多的KAN,無需從頭開始重新訓練大模型。

接下來,該研究描述如何執行網格擴展(如圖2.2右側所示),基本上是在一個粗糙的樣條上擬合一個新的細糙樣條。假設想在有界區域\([a, b]\)上用B-樣條的\(k\)階來近似一個一維函數\(f\)。一個具有G1區間的粗糙網格在\(\{t_0 = a, t_1, ..., t_{G1} = b\}\)處有網格點,這被擴充為\(\{t_{-k}, ..., t_{-1}, t_0, ..., t_{G1}, t_{G1+1}, ..., t_{G1+k}\}\)。有 \(G_1 + k\) 個B-樣條基函數,其中第 \(i\) 個B-樣條 \(B_i(x)\) 僅在 \([t_{-k+i}, t_{i+1}]\) 上非零。然後,\(f\) 在粗糙網格上用這些B-樣條基函數的線性組合表示:


\[ f_{\text{coarse}}(x) = \sum_{i=0}^{G_1+k-1} c_i B_i(x) \]

(2.16)


給定更細的網格,具有 \(G_2\) 區間,\(f\) 在細網格上相應地表示為:


\[ f_{\text{fine}}(x) = \sum_{j=0}^{G_2+k-1} c'_j B'_j(x) \]


這些 \(c'_j\) 的參數可以從 \(c_i\) 初始化,通過最小化 \(f_{\text{fine}}(x)\) 到 \(f_{\text{coarse}}(x)\) 的距離來獲得(在某些 \(x\) 的分佈上):


\[ \{c'_j\} = \arg \min_{\{c'_j\}} \mathbb{E}_{x \sim p(x)} \left[ \left( \sum_{j=0}^{G_2+k-1} c'_j B'_j(x) - \sum_{i=0}^{G_1+k-1} c_i B_i(x) \right)^2 \right] \]

(2.16)


這可以通過最小平方算法實現。對KAN中的所有樣條進行獨立的網格擴展。

玩具範例:階梯狀的損失曲線。使用一個玩具範例 f(x, y) = exp(sin(πx) + y^2) 來展示網格擴展的效果。在圖 2.3(左上)中,我們展示了一個 [2, 5, 1] KAN 的訓練和測試 RMSE。網格點的數量開始為 3,每 200 個 LBFGS 步驟增加到更高的值,最終達到 1000 個網格點。很明顯,每次細化網格時,訓練損失下降得比之前更快(除了最細的 1000 點網格,優化可能由於不良的損失地形而停止工作)。然而,測試損失先下降然後上升,呈現 U 形,這是由於偏差-方差權衡(欠擬合 vs. 過擬合)。我們推測,當參數數量與數據點數量匹配時,在插值閾值處會達到最佳測試損失。由於我們的訓練樣本為 1000,而 [2, 5, 1] KAN 的總參數為 15G(G 是網格區間的數量),我們預期插值閾值為 G = 1000/15 ≈ 67,這與我們實驗觀察到的值 G ∼ 50 大致一致。

小型 KAN 泛化性能更好。這是我們可以達到的最佳測試性能嗎?請注意,合成任務可以由 [2, 1, 1] KAN 精確表示,所以我們訓練一個 [2, 1, 1] KAN 並在圖 2.3 右上方呈現訓練動態。有趣的是,它可以實現比 [2, 5, 1] KAN 更低的測試損失,具有更清晰的階梯結構,由於參數更少,插值閾值被延遲到更大的網格尺寸。這突顯了選擇 KAN 架構的微妙之處。如果我們不知道問題結構,我們如何確定最小的 KAN 形狀?在第 2.5 節中,我們將提出一種通過正則化和剪枝自動發現這種最小 KAN 架構的方法。

縮放規律:與理論比較。我們也對測試損失如何隨網格參數數量的增加而降低感興趣。在圖 2.3(左下)中,[2,1,1] KAN 的縮放大致為 test RMSE ∝ G^−3。然而,根據定理 2.1,我們預期 test RMSE ∝ G^−4。我們發現樣本之間的誤差並不均勻。這可能歸因於邊界效應 [18]。事實上,有一些樣本的誤差顯著大於其他樣本,使得整體縮放放緩。如果我們繪製平方損失的中位數(非平均值)的平方根,我們得到接近 G^−4 的縮放。儘管存在這種次優性(可能是由於優化),KAN 在數據擬合(圖 3.1)和 PDE 求解(圖 3.3)方面仍然具有比 MLP 更好的縮放規律。此外,訓練時間隨網格點數 G 的增加而呈現良好的縮放,如圖 2.3 右下方所示。

外部與內部自由度。KAN 強調的一個新概念是外部與內部自由度(參數)之間的區別。節點如何連接的計算圖表示外部自由度("dofs"),而激活函數內部的網格點是內部自由度。KAN 受益於同時具有外部 dofs 和內部 dofs。外部 dofs(MLP 也有但樣條沒有)負責學習多個變量的組合結構。內部 dofs(樣條也有但 MLP 沒有)負責學習單變量函數。

 2.5 解釋性:簡化KANs並使它們可互動

上一小節留下的一個問題是,不知道如何選擇最佳匹配數據集結構的KAN形狀。例如,如果知道資料集是通過符號公式 \(f(x, y) = \exp(\sin(\pi x) + y^2)\) 生成的,那麼知道一個 [2, 1, 1] KAN 能夠表達這個函數。但在實踐中不知道這些信息,所以最好有方法能夠自動確定這種形狀。這個想法是從一個足夠大的KAN開始,並用稀疏正則化訓練它,隨後進行剪枝。該研究將展示,這些剪枝後的KAN比未剪枝的更易於解釋。為了使KANs最大限度地可解釋,該研究在2.5.1節提出了一些簡化技術,並在2.5.2節示例了用戶如何與KANs互動以使它們更易於解釋。

2.5.1 簡化技術

1. 稀疏化:對於MLPs,使用L1正則化線性權重以傾向於稀疏化。KANs可以適應這一高級思想,但需要兩個修改:

  •  KANs中沒有線性“權重”。線性權重被可學習的激活函數替代,所以應定義這些激活函數的L1範數。
  •  該研究發現對於KANs的稀疏化,僅使用L1正則化是不夠的;相反,還需要額外的熵正則化。

定義激活函數 \( \phi \) 的L1範數為其在 \( N_p \) 個輸入上的平均幅度,即


\[ |\phi|_1 \equiv \frac{1}{N_p} \sum_{s=1}^{N_p} |\phi(x^{(s)})| \]

(2.17)


對於一個KAN層 \( \Phi \),具有 \( n_{\text{in}} \) 個輸入和 \( n_{\text{out}} \) 個輸出,定義 \( \Phi \) 的L1範數為所有激活函數L1範數的總和,即


\[ |\Phi|_1 \equiv \sum_{i=1}^{n_{\text{in}}} \sum_{j=1}^{n_{\text{out}}} |\phi_{i,j}|_1 \]

(2.18)


此外,定義 \( \Phi \) 的熵為


\[ S(\Phi) \equiv -\sum_{i=1}^{n_{\text{in}}} \sum_{j=1}^{n_{\text{out}}} \frac{|\phi_{i,j}|_1}{|\Phi|_1} \log \left( \frac{|\phi_{i,j}|_1}{|\Phi|_1} \right) \]

(2.19)


總訓練目標 \( \ell_{\text{total}} \) 是預測損失 \( \ell_{\text{pred}} \) 加上所有KAN層的L1和熵正則化:


\[ \ell_{\text{total}} = \ell_{\text{pred}} + \lambda \left( \mu_1 \sum_{l=0}^{L-1} |\Phi_l|_1 + \mu_2 \sum_{l=0}^{L-1} S(\Phi_l) \right) \]

(2.20)


其中,\( \mu_1 \) 和 \( \mu_2 \) 是相對大小,通常設置為 \( \mu_1 = \mu_2 = 1 \),而 \( \lambda \) 控制整體正則化大小。



2. 可視化。當我們將一個KAN可視化時,為了感受量級,我們將一個激活函數\(\phi_{l,i,j}\)的透明度設置為與\(\tanh(\\beta A_{l,i,j})\)成正比,其中\(\beta = 3\)。因此,量級較小的函數會顯得褪色,使我們能夠專注於重要的函數。

3. 修剪。在使用稀疏化懲罰進行訓練之後,我們可能還想將網路修剪為更小的子網路。我們在節點層面(而不是邊層面)對KAN進行稀疏化。對於每個節點(例如第\(l\)層的第\(i\)個神經元),我們定義其輸入和輸出分數為

$$I_{l,i} = \max_k(|\phi_{l-1,k,i}|1),\ O{l,i} = \max_j(|\phi_{l+1,j,i}|_1),$$

(2.21)

如果輸入和輸出分數都大於閾值超參數(\\theta = 10^{-2}\)(預設值),則認為一個節點是重要的。所有不重要的神經元都會被修剪掉。

4. 符號化。在我們懷疑某些激活函數實際上是符號函數(例如\(\cos\)或log)的情況下,我們提供了一個介面來將它們設置為指定的符號形式。fix_symbolic(l,i,j,f)可以將\((l,i,j)\)激活設置為\(f\)。然而,我們不能簡單地將激活函數設置為精確的符號公式,因為其輸入和輸出可能存在偏移和縮放。因此,我們從樣本中獲取預激活\(x\)和後激活\(y\),並擬合仿射參數\((a,b,c,d)\),使得\(y \approx cf(ax + b) + d\)。擬合通過\(a\),\(b\)的迭代網格搜索和線性回歸完成。

除了這些技術,我們還提供了額外的工具,允許用戶對KAN進行更細粒度的控制,列在附錄A中。

2.5.2 人類與KANs的互動實例

該研究提出了一些簡化KANs的技術,可以將這些簡化選項視為可以點擊的按鈕。使用者通過與這些按鈕互動,可以決定哪個按鈕是最有希望點擊的,使KANs更易於解釋。用以下示例展示了使用者如何與KAN互動以獲得最大限度可解釋的結果。

考慮回歸任務


\[ f(x, y) = \exp(\sin(\pi x) + y^2) \]

(2.22)


假設有資料點 \( (x_i, y_i, f_i) \),\( i = 1, 2, \ldots, N_p \),一位假想的使用者Alice有興趣弄清楚符號公式。Alice與KANs互動的步驟如下(圖2.4所示):

步驟1:訓練與稀疏化。從一個完全連接的[2, 5, 1] KAN開始,用稀疏化正則化訓練可以使其變得相當稀疏。隱藏層中的5個神經元中有4個看起來是無用的,因此希望將它们剪除。

步驟2:剪枝。自動剪枝觀察到除了最後一個以外,所有隐藏層神經元都被丢棄,只留下一個 [2, 1, 1] KAN。激活函數是已知的符號函数。

步驟3:設定符号函數。假设用户能從KAN圖中正確猜測这些符號公式,他們可以設置:

```

fix_symbolic(0,0,0,'sin')

fix_symbolic(0,1,0,'x^2')

fix_symbolic(1,0,0,'exp')

```

(2.23)


如果使用者沒有領域知識或不清楚這些激活函數可能對應哪些符號函數,提供了一個 `suggest_symbolic` 函數來建議符號候選者。

步驟4:進一步訓練。在將所有激活函數符號化之後,唯一剩下的參數是仿射參數。繼續訓練這些仿射參數,當看到損失下降到機器精度時,知道找到了正確的符號表達式。

步驟5:輸出符號公式。使用 Sympy 計算輸出節點的符號公式。使用者獲得的公式為 \(1.0e1.0y^2+1.0sin(3.14x)\),這是真正的答案(只顯示了\(π\)的兩位小數)。

為什麼不用符號迴歸(SR)?

在這個例子中使用符號迴歸似乎是合理的。然而,一般來說,符號迴歸法比較脆弱,且難以調試。它們要麼最終成功返回結果,要麼失敗,而不提供可解釋的中間結果。相較之下,KAN通過梯度下降在函數空間中進行連續搜索,因此其結果更加連續且穩定。此外,由於KAN的透明度,使用者可以比使用符號迴歸更好地控制KAN。該研究將KAN的可視化方式比喻為向使用者展示KAN的「大腦」,使用者可以對KAN進行「手術」(調試)。符號迴歸通常不提供這種控制層級。將在第4.4節展示此類實例。更普遍地,當目標函數不是符號表達時,符號迴歸將失敗,但KAN仍然可以提供有意義的輸出。例如,特殊函數(如貝塞爾函數)是不可能被符號迴歸學習的,除非事先提供,但KAN可以使用樣條進行數值近似(見圖4.1(d))。


3 KANs的精確性


在這一節中,該研究將展示KANs在各種任務(如回歸和偏微分方程求解)中表示函數的有效性超過了MLPs。在比較兩類模型時,公平地比較它們的精度(損失)和復雜度(參數數量)是合理的。該研究將展示KANs比MLPs展示出更有利的帕雷托前緣。此外,在3.5節中,該研究將顯示KANs能夠自然地進行持續學習而不會出現災難性遺忘。



3.1 玩具資料集


在第2.3節中,理論建議測試RMSE損失 \( \ell \) 隨模型參數 \( N \) 的增加而按 \( \ell \propto N^{-4} \) 縮放。然而,這依賴於存在柯爾莫哥洛夫-阿諾德表示定理(Kolmogorov-Arnold representation theorem),也被稱為超曲面定理(superposition theorem),是數學分析中的一個重要定理。它由俄羅斯數學家安德烈·柯爾莫哥洛夫(Andrey Kolmogorov)在1956-1957年提出,並由其學生弗拉基米爾·阿諾德(Vladimir Arnold)在1959年完成證明。
該定理的主要內容如下:

任意一個連續函數 \(f(x_1,\ldots,x_n)\),其中自變量 \((x_1,\ldots,x_n)\) 屬於 \(n\) 維單位立方體 \([0,1]^n\),都可以表示為:
\(f(x_1,\ldots,x_n) = \sum_{q=0}^{2n} \Phi_q \left(\sum_{p=1}^n \psi_{q,p}(x_p)\right)\)
其中 \(\Phi_q\) 是連續函數,\(\psi_{q,p}\) 是 \([0,1]\) 上的單變量函數。

這個定理說明,任何多維連續函數都可以由一些單變量函數的疊加來表示,而這些單變量函數與原函數的維度無關。這一結果在當時是非常令人驚訝的,因為它表明高維函數可以用低維函數來表示。

在神經網絡領域,這個定理啟發了新的網絡結構的設計,即論文中提到的KAN(Kolmogorov-Arnold network)。傳統的神經網絡使用固定的激活函數,而KAN使用可學習的、類似於定理中 \(\psi_{q,p}\) 的單變量函數作為激活函數,並將它們放在網絡的邊上而不是節點上。這種結構使得KAN具有更強的表達能力和可解釋性。

然而,柯爾莫哥洛夫-阿諾德表示定理在實踐中也存在一些問題。定理本身是一個存在性結果,並沒有給出如何構造這些單變量函數的方法。此外,定理中的單變量函數可能高度非光滑,這在實際應用中可能會帶來數值不穩定性。儘管如此,該定理仍然是啟發神經網絡設計的重要理論基礎,並為進一步的理論研究提供了方向。。為了作為一個合理性檢驗,構造了五個我們知道具有平滑KA表示的例子:

  1.  \( f(x) = J_0(20x) \),這是貝塞爾函數。由於它是一個一元函數,它可以被樣條表示,這是一個 [1, 1] KAN。
  2.  \( f(x, y) = \exp(\sin(\pi x) + y^2) \)。我們知道它可以被一個 [2, 1, 1] KAN準確表示。
  3.  \( f(x, y) = xy \)。我們從圖4.1知道它可以被一個 [2, 2, 1] KAN準確表示。
  4.  一個高維例子 \( f(x_1, \ldots, x_{100}) = \exp\left(\frac{1}{100} \sum_{i=1}^{100} \sin^2(\pi x_i)\right) \),它可以被一個 [100, 1, 1] KAN表示。
  5.  一個四維例子 \( f(x_1, x_2, x_3, x_4) = \exp\left(\frac{1}{2} (\sin(\pi (x_1^2 + x_2^2)) + \sin(\pi (x_3^2 + x_4^2)))\right) \),它可以被一個 [4, 4, 2, 1] KAN表示。

通過每200步增加網格點數量來訓練這些KANs,總共覆蓋 \( G = \{3, 5, 10, 20, 50, 100, 200, 500, 1000\} \)。該研究還訓練了具有不同深度和寬度的MLPs作為基線。無論是MLPs還是KANs都使用LBFGS訓練了總共1800步。將KANs和MLPs的測試RMSE作為參數數量的函數繪製在圖3.1中,顯示KANs比MLPs有更好的縮放曲線,特別是對於高維例子。為了比較,將從KAN理論預測的紅色虛線(\( \alpha = k+1 = 4 \))和從Sharma & Kaplan 預測的黑色虛線(\( \alpha = (k+1)/d = 4/d \))繪製在圖中。KANs幾乎可以達到更陡峭的紅線,而MLPs即使在達到較慢的黑線時也難以收斂並迅速達到平台期。另外還注意到,對於最後一個例子,2層的KAN [4, 9, 1]的表現比3層的KAN(形狀 [4, 2, 2, 1])差得多。這突顯了更深層KANs的更大表達能力,這對MLPs也是一樣:更深的MLPs比較淺的具有更多的表達能力。


 3.2 特殊函數


上述結果的一個限制是,該研究假設了「真實」KAN形狀的知識。在實踐中,不知道KA表示的存在。即使被告知存在這樣的KA表示,也不知道KAN形狀。多變量特殊函數是這種情況,因為如果多變量特殊函數(例如,貝塞爾函數 \( f(\nu, x) = J_\nu(x) \))能用KA表示表達,只涉及一元函數和加法,這在數學上將是驚人的。以下展示:
  1. 尋找(近似的)緊湊KA表示特殊函數是可能的,這揭示了從柯爾莫哥洛夫-阿諾德表示的角度看特殊函數的新數學屬性。
  2. KANs在表示特殊函數方面比MLPs更有效和精確

該研究收集了15個在數學和物理中常見的特殊函數,彙總在表2中。選擇了固定寬度為5或100的MLPs,並掃描了深度 \(\{2, 3, 4, 5, 6\}\)。運行了帶剪枝和不帶剪枝的KANs。


  • 未剪枝的KANs:固定了KAN的形狀,寬度設置為5,深度也在 \(\{2,3,4,5,6\}\) 中掃描。
  • 帶剪枝的KANs。使用第2.5.1節中的稀疏化(\( \lambda = 10^{-2} \) 或 \( 10^{-3} \))和剪枝技術來獲得一個從固定形狀KAN剪枝得到的更小的KAN。
每個KAN都初始化為有 \( G = 3 \) 的網格點,使用LBFGS訓練,每200步增加網格點數量,覆蓋 \( G = \{3, 5, 10, 20, 50, 100, 200\} \)。對於每個超參數組合,我們運行3個隨機種子。

對於每個資料集和每個模型家族(KANs或MLPs),在(參數數量,RMSE)平面上繪製了帕雷托前緣,顯示在圖3.2中。KANs的表現一致優於MLPs,即KANs在相同參數數量下可以達到比MLPs更低的訓練/測試損失。此外,報告了自動發現的特殊函數KANs的(令人驚訝的緊湊)形狀,列在表2中。一方面,解釋這些緊湊表達在數學上意味著什麼是有趣的(在附錄F的圖F.1和F.2中包括了KAN的插圖)。另一方面,這些緊湊的表達暗示了將高維查找表拆分為幾個一維查找表的可能性,這可以在推理時節省大量內存,並且(幾乎可以忽略不計)進行一些加法運算的開銷。

3.3 費曼數據集


第3.1節的設置是當我們清楚地知道「真實」KAN形狀時。第3.2節的設置是當我們明確不知道「真實」KAN形狀時。這部分調查位於中間的設置:鑑於數據集的結構,我們可能會手工構造KAN,但我們不確定它們是否是最優的。在這個範疇中,比較人工構造的KAN和通過剪枝(在第2.5.1節中的技術)自動發現的KAN是有趣的。





當有資料集的結構資訊時,可以手動構建KAN,但可能不確定這些結構是否完全準確或有效。例如,可能基於資料的某些特性猜測一個特定的KAN結構,然後嘗試用這個結構進行訓練和優化,但隨後的剪枝和調整可能顯示出一個更有效的結構。

這種探索對於理解KAN在實際應用中的彈性和潛力至關重要。透過對比人工構建的模型與經過剪枝精簡後的模型,可以更好地評估KAN設計選擇的有效性,並進一步優化模型的表現和效率。

費曼資料集。費曼資料集從費曼的教科書中收集了許多物理方程式。對於至少有兩個變數的問題感興趣,因為單變數問題對於KAN來說是微不足道的(它們簡化為一維樣條)。費曼資料集的一個樣本方程式是相對論速度加法公式 \( f(u, v) = \frac{u+v}{1+uv} \)。通過隨機抽取 \( u_i \in (-1, 1) \) 和 \( v_i \in (-1, 1) \),並計算 \( f_i = f(u_i, v_i) \),可以建立資料集。給定許多元組 \( (u_i, v_i, f_i) \),訓練一個神經網路,目的是從 \( u \) 和 \( v \) 預測 \( f \)。該研究感興趣的是:
(1) 神經網路在測試樣本上的表現如何;
(2) 可以從神經網路中學到多少關於問題結構的知識。

比較四種神經網路:
  1. 人工構造的KAN。給定一個符號公式,將其改寫為Kolmogorov-Arnold表示。例如,要將兩個數 \( x \) 和 \( y \) 相乘,可以使用恆等式 \( xy = \frac{(x+y)^2}{4} - \frac{(x-y)^2}{4} \),對應於一個 [2, 2, 1] KAN。構造的形狀列在表中的「人工構造KAN形狀」一欄。
  2. 不帶修剪的KAN。我們將KAN形狀固定為寬度5,深度在 {2, 3, 4, 5, 6} 中掃描。
  3. 帶修剪的KAN。使用節中的稀疏化(\( \lambda = 10^{-2} \) 或 \( 10^{-3} \))和修剪技術,從中的固定形狀KAN得到一個更小的KAN。
  4. 固定寬度為20的MLP,深度在 {2, 3, 4, 5, 6} 中掃描,激活函數從 {Tanh, ReLU, SiLU} 中選擇。

每個KAN初始化為 \( G = 3 \),用LBFGS訓練,每200步增加網格點數量以涵蓋 \( G = \{3, 5, 10, 20, 50, 100, 200\} \)。對於每個超參數組合,嘗試3個隨機種子。對於每個資料集(方程式)和每種方法,在表中報告了隨機種子和深度上最佳模型(最小KAN形狀,或最低測試損失)的結果。發現MLP和KAN在平均表現上相當。對於每個資料集和每個模型族(KAN或MLP),在參數數量和RMSE損失構成的平面上繪製帕累托前沿,如附錄D中的圖D.1所示。推測費曼資料集太簡單了,不足以讓KAN做出進一步改進,因為變數依賴關係通常是平滑或單調的,這與經常表現出振盪行為的特殊函數的複雜性形成對比。

自動發現的KAN比人工構造的KAN更小。在表中的兩列中報告了修剪後的KAN形狀;一列是可以達到合理損失(即測試RMSE小於 \(10^{-2}\))的最小修剪KAN形狀;另一列是達到最低測試損失的修剪KAN。為了完整起見,在附錄D(圖D.2和D.3)中可視化了所有54個修剪後的KAN。有趣的是,自動發現的KAN形狀(無論是最小的還是最佳的)通常都比我們的人工構造更小。這意味著Kolmogorov-Arnold表示可能比我們想像的更有效。同時,這可能會使解釋變得微妙,因為資訊被壓縮到一個比我們習慣的更小的空間。

以相對論速度合成公式 \( f(u, v) = \frac{u+v}{1+uv} \) 為例。構造相當深,因為假設 \( u \) 和 \( v \) 的乘法需要兩層,\( 1+uv \) 的倒數需要一層,\( (u+v) \) 和 \( \frac{1}{1+uv} \) 的乘法需要另外兩層,總共需要五層。然而,自動發現的KAN只有兩層深!事後看來,如果回憶相對論中的快度技巧,實際上是意料之中的:定義兩個"快度" \( a \equiv \text{arctanh} u \) 和 \( b \equiv \text{arctanh} v \)。在快度空間中,速度的相對論合成是簡單的加法,即 \( \frac{u+v}{1+uv} = \tanh(\text{arctanh} u + \text{arctanh} v) \),這可以用一個兩層的KAN實現。假裝我們不知道物理中快度的概念,我們可能會直接從KAN中發現這個概念,而無需通過試錯的符號操作。

KAN的可解釋性,有助於科學發現,是第四節的主題。

3.4 求解偏微分方程式

考慮具有零Dirichlet邊界條件的Poisson方程。對於 \(\Omega = [-1, 1]^2\),考慮Partial Differential Equation\(\begin{aligned}u_{xx} + u_{yy} &= f \text{ in } \Omega, \\u &= 0 \text{ on }\partial\Omega.\end{aligned}\)
(3.2)





考慮的資料 \(f\) 為 \(-\pi^2(1 + 4y^2) \sin(\pi x) \sin(\pi y^2) + 2\pi \sin(\pi x) \cos(\pi y^2)\),其中 \(u = \sin(\pi x) \sin(\pi y^2)\) 是真實解。使用物理信息神經網路(PINN)的框架來求解這個PDE,損失函數為\(\text{loss}\text{pde} = \alpha \text{loss}i + \text{loss}b := \alpha \frac{1}{n_i}\sum{i=1}^{n_i} |u{xx}(z_i) + u{yy}(z_i) - f(z_i)|^2 + \frac{1}{n_b}\sum_{i=1}^{n_b} u^2(z_i),\)



其中用 \(\text{loss}_i\) 表示內部損失,通過在區域內均勻採樣 \(n_i\) 個點 \(z_i = (x_i, y_i)\) 來離散化和計算,用 \(\text{loss}_b\) 表示邊界損失,通過在邊界上均勻採樣 \(n_b\) 個點來離散化和計算。 \(\alpha\) 是平衡兩項效果的超參數。

使用相同的超參數 \(n_i = 10000\), \(n_b = 800\) 和 \(\alpha = 0.01\) 來比較KAN架構和MLP架構。

測量 \(L^2\) 範數和能量(\(H^1\))範數中的誤差,發現KAN在使用更小的網路和更少的參數時,實現了更好的縮放規律和更小的誤差;見圖3.3。因此,推測KAN可能有潛力作為PDE模型簡化的良好神經網路表示。

3.5 持續學習

災難性遺忘是當前機器學習中的一個嚴重問題。當人類掌握一項任務並轉向另一項任務時,他們不會忘記如何執行第一項任務。不幸的是,神經網路並非如此。當一個神經網路在任務1上訓練,然後轉向在任務2上訓練時,網路很快就會忘記如何執行任務1。人工神經網路和人腦之間的一個關鍵區別是,人腦在空間上局部放置了功能截然不同的模塊。當學習一個新任務時,結構重組只發生在負責相關技能的局部區域,其他區域保持不變。大多數人工神經網路,包括MLP,都沒有這種局部性的概念,這可能是災難性遺忘的原因。

KAN具有局部可塑性,可以通過利用樣條的局部性來避免災難性遺忘。這個想法很簡單:由於樣條基函數是局部的,一個樣本只會影響少數附近的樣條係數,遠處的係數保持不變(這是理想的,因為遠處的區域可能已經存儲了想要保留的信息)。相比之下,由於MLP通常使用全局激活函數,例如ReLU/Tanh/SiLU等,任何局部變化都可能不受控制地傳播到遠處的區域,破壞存儲在那裡的信息。

用一個玩具示例來驗證這個直覺。1D回歸任務由5個高斯峰組成。圍繞每個峰值的數據按順序(而不是一次全部)呈現給KAN和MLP,如圖3.4頂行所示。每個訓練階段後的KAN和MLP預測分別顯示在中間行和底行。正如預期的那樣,KAN僅對當前階段存在資料的區域進行重塑,保持先前區域不變。相比之下,MLP在看到新的數據樣本後對整個區域進行重塑,導致災難性遺忘。

這裡只是在一個極其簡單的示例上展示了初步結果,演示人們如何可能利用KAN中的局部性(得益於樣條參數化)來減少災難性遺忘。然而,目前尚不清楚方法是否可以推廣到更現實的設置,將此留待未來的工作。還想研究我們的方法如何與持續學習中的最先進方法聯繫和結合。

4 KAN是可解釋的


在本節中,展示KAN是可解釋和可互動的,這要歸功於我們在2.5節中開發的技術。不僅想在合成任務上測試KAN的使用(第4.1和4.2節),而且想在真實的科學研究中測試。證明KAN可以(重新)發現紐結理論中高度非平凡的關係(第4.3節)和凝聚態物理學中的相變邊界(第4.4節)。由於其準確性(上一節)和可解釋性(本節),KAN可能成為AI+科學的基礎模型。

4.1 有監督的玩具資料集

首先檢驗KAN揭示符號公式中組合結構的能力。下面列出了六個示例,KAN在圖4.1中可視化。KAN能夠揭示這些公式中存在的組合結構,以及學習正確的單變量函數。以下是一些示例:

(a) 乘法 \( f(x, y) = xy \)。一個 [2, 5, 1] KAN 被修剪為 [2, 2, 1] KAN。學到的激活函數是線性和二次方的。從計算圖中,看到它計算 \( xy \) 的方式是利用 \( 2xy = (x + y)^2 - (x^2 + y^2) \)。

(b) 正數的除法 \( f(x, y) = x/y \)。一個 [2, 5, 1] KAN 被修剪為 [2, 1, 1] KAN。學到的激活函數是對數函數和指數函數,KAN 通過利用恆等式 \( x/y = \exp(\log x - \log y) \) 來計算 \( x/y \)。

(c) 數值到類別。任務是將 [0, 1] 中的實數轉換為其第一位小數(作為 one-hot),例如,\( 0.0618 \to [1, 0, 0, 0, 0, \cdots] \),\( 0.314 \to [0, 0, 0, 1, 0, \cdots] \)。請注意,激活函數被學習為位於相應十進制數字附近的尖峰。



(d) 特殊函數 \( f(x, y) = \exp(J_0(20x) + y^2) \)。符號回歸的一個局限性是,如果特殊函數不作為先驗知識提供,它將永遠無法找到特殊函數的正確公式。KAN可以學習特殊函數——高度波動的Bessel函數 \( J_0(20x) \) 被KAN(數值地)學習。

(e) 相變 \( f(x_1, x_2, x_3) = \tanh(5(x_1^4 + x_2^4 + x_3^4 - 1)) \)。相變在物理學中備受關注,因此希望KAN能夠檢測相變並識別正確的序參量。使用 tanh 函數來模擬相變行為,序參量是 \( x_1 \), \( x_2 \), \( x_3 \) 的四次方項的組合。KAN訓練後出現了四次方依賴和 tanh 依賴。這是第4.4節中討論的局域化相變的一個示例。

(f) 更深的組合\(f(x_1, x_2, x_3, x_4) = \sqrt{(x_1 - x_2)^2 + (x_3 - x_4)^2}\)。為了計算這個,需要恆等函數、平方函數和平方根,這至少需要一個三層KAN。事實上,該研究發現[4, 3, 3, 1] KAN可以自動修剪為[4, 2, 1, 1] KAN,這正好對應於期望的計算圖。

來自費曼資料集和特殊函數資料集的更多示例在附錄D和F的圖D.2、D.3、F.1、F.2中可視化。

4.2 無監督玩具數據集

通常,科學發現被表述為有監督的學習問題,即給定輸入變量\(x_1, x_2, \cdots, x_d\)和輸出變量\(y\),想找到一個可解釋的函數\(f\)使得\(y \approx f(x_1, x_2, \cdots, x_d)\)。然而,另一種科學發現可以表述為無監督學習,即給定一組變量\((x_1, x_2, \cdots, x_d)\),想發現變量之間的結構關係。具體來說,想找到一個非零的\(f\)使得

$$f(x_1, x_2, \cdots, x_d) \approx 0.$$  
(4.1)



例如,考慮一組特徵\((x_1, x_2, x_3)\)滿足\(x_3 = \exp(\sin(\pi x_1) + x_2^2)\)。那麼一個有效的\(f\)是\(f(x_1, x_2, x_3) = \sin(\pi x_1) + x_2^2 - \log(x_3) = 0\),意味著\((x_1, x_2, x_3)\)的點形成了一個由\(f = 0\)指定的2D子流形,而不是填充整個3D空間。

如果可以設計出求解無監督問題的算法,它相對於有監督問題有相當大的優勢,因為它只需要特徵集\(S = (x_1, x_2, \cdots, x_d)\)。另一方面,有監督問題試圖根據其他特徵預測特徵的子集,即將\(S = S_\text{in} \cup S_\text{out}\)分成要學習的函數的輸入和輸出特徵。如果沒有領域專業知識來指導分割,那麼有\(2^d - 2\)種可能性使得\(|S_\text{in}| > 0\)且\(|S_\text{out}| > 0\)。通過使用無監督方法,可以避免這個指數級大的有監督問題空間。這種無監督學習方法對4.3節中的紐結數據集很有價值。Google Deepmind團隊手動選擇signature作為目標變量,否則他們將面臨上述組合問題。這提出了一個問題,是否可以直接處理無監督學習。在下面介紹我們的方法和一個玩具示例。

通過將無監督學習問題轉化為對所有\(d\)個特徵的有監督學習問題來解決無監督學習問題,而不需要選擇分割。基本思想是學習一個函數\(f(x_1, \ldots, x_d) = 0\)使得\(f\)不是0函數。為此,類似於對比學習,定義正樣本和負樣本:正樣本是真實數據的特徵向量。負樣本通過特徵損壞構造。為了確保每個拓撲不變量的整體特徵分佈保持不變,通過在整個訓練集上隨機排列每個特徵來進行特徵損壞。現在要訓練一個網路\(g\)使得\(g(x_\text{real}) = 1\)且\(g(x_\text{fake}) = 0\),這將問題轉化為有監督問題。但是,請記住,最初想要\(f(x_\text{real}) = 0\)且\(f(x_\text{fake}) \neq 0\)。可以通過令\(g = \sigma \circ f\)來實現這一點,其中\(\sigma(x) = \exp(-\frac{x^2}{2w^2})\)是一個高斯函數,寬度$w$很小,這可以方便地通過一個形狀為\([..., 1, 1]\)的KAN來實現,其最後一個激活設置為高斯函數\(\sigma\),所有前面的層形成\(f\)。除了上述修改外,其他一切與有監督訓練相同。

現在演示無監督範式對合成示例有效。考慮一個6D資料集,其中\((x_1, x_2, x_3)\)是相依變量,使得\(x_3 = \exp(\sin(x_1)+x_2^2)\); \((x_4, x_5)\)是相依變量,\(x_5 = x_4^3\); \(x_6\)與其他變量無關。在圖4.2中,展示了對於seed = 0,KAN揭示了\(x_1\)、\(x_2\)和\(x_3\)之間的函數依賴關係;對於另一個seed = 2024,KAN揭示了\(x_4\)和\(x_5\)之間的函數依賴關係。初步結果依賴於隨機性(不同的種子)來發現不同的關係;在未來,希望研究一種更系統、更可控的方式來發現一組完整的關係。即便如此,目前狀態下的工具可以為科學任務提供見解。在4.3節中介紹了在紐結資料集上的結果。

4.3 數學應用:紐結理論(Knot Theory)

紐結理論是低維拓撲學中的一個主題,它闡明了三維流形和四維流形的拓撲方面,並在生物學和拓撲量子計算等領域有多種應用。從數學上講,紐結\(K\)是\(S^1$到$S^3\)的嵌入。如果兩個紐結\(K\)和\(K'\)可以通過\(S^3\)的環境空間變形相互變形,則它們在拓撲上是等價的,在這種情況下,我們寫成\([K] = [K']\)。

一些紐結在拓撲上是平凡的,這意味著它們可以平滑地變形為標準圓。紐結具有多種變形不變特徵\(f\),稱為拓撲不變量,如果\(f(K) \neq f(K')\),它們可用於表明兩個紐結在拓撲上是不等價的,\([K] \neq [K']\)。在某些情況下,拓撲不變量在本質上是幾何的。例如,雙曲紐結\(K\)的補空間\(S^3 \backslash K\)承認規範的雙曲度量\(g\),使得\(\text{vol}_g(K)\)是一個稱為雙曲體積的拓撲不變量。其他拓撲不變量在本質上是代數的,例如Jones多項式。

鑑於紐結在數學中的基本性質及其應用的重要性,研究ML是否可以帶來新結果是很有趣的。例如,強化學習被用來建立某些紐結的帶性,這排除了許多潛在的反例來反駁光滑4d Poincaré猜想。

有監督學習和人類領域專家被用來得出一個關於代數和幾何紐結不變量的新定理。在這種情況下,梯度顯著性識別出有監督問題的關鍵不變量,這使領域專家提出了一個猜想,隨後被改進和證明。研究KAN是否可以在同一問題上取得良好的可解釋結果,該問題預測紐結的signature。他們從研究紐結理論數據集中得到的主要結果是:

(1) 他們使用網路歸因方法發現signature \(\sigma\)主要依賴於子午距\(\mu\)(實部\(\mu_r\),虛部\(\mu_i\))和經向距\(\lambda\)。 
(2) 人類科學家後來發現\(\sigma\)與斜率\(\equiv \text{Re}(\frac{\lambda}{\mu}) = \frac{\lambda\mu_r}{\mu_r^2+\mu_i^2}\)高度相關,並推導出\(|2\sigma - \text{slope}|\)的界。

下面展示,KAN不僅以更小的網路和更多的自動化方式重新發現了這些結果,而且還提出了一些有趣的新結果和見解。







為了研究(1),將17個紐結不變量視為輸入,將signature視為輸出。signature(偶數)被編碼為 one-hot 向量,網路用交叉熵損失訓練。發現一個極小的[17, 1, 14] KAN能夠達到81.6%的測試準確率(而Deepmind的4層寬度300的MLP達到78%的測試準確率)。[17, 1, 14] KAN(G = 3, k = 3)有\(\approx 200\)個參數,而MLP有\(\approx 3 \times 10^5\)個參數,如表4所示。值得注意的是,KAN可以同時比MLP更準確和更節省參數。

在可解釋性方面,根據每個激活的大小來縮放其透明度,因此無需特徵歸因就可以立即清楚哪些輸入變量很重要(見圖4.3左):signature主要依賴於\(\mu_r\),略微依賴於\(\mu_i\)和\(\lambda\),而對其他變量的依賴很小。然後,在三個重要變量上訓練一個[3, 1, 14] KAN,獲得78.2%的測試準確率。結果與文獻中的結果有一個微妙的區別:他們發現signature主要依賴於\(\mu_i\),而該研究發現signature主要依賴於\(\mu_r\)。這種差異可能是由於微妙的算法選擇,但促使該研究進行以下實驗:
(a)消融研究。表明\(\mu_r\)對準確性的貢獻大於\(\mu_i\)(見圖4.3):例如,僅\(\mu_r\)就可以達到65.0%的準確率,而僅\(\mu_i\)只能達到43.8%的準確率。 
(b)找到一個只涉及\(\mu_r\)和\(\lambda\)的符號公式(在表5中),但可以達到77.8%的測試準確率。

為了研究(2),即獲得\(\sigma\)的符號形式,我們將問題表述為回歸任務。使用2.5.1節中介紹的自動符號回歸,可以將訓練好的KAN轉換為符號公式。訓練形狀為[3, 1]、[3, 1, 1]、[3, 2, 1]的KAN,其對應的符號公式顯示在表5 B-D中。很明顯,通過使用更大的KAN,準確性和複雜性都會增加。因此,KAN提供的不僅僅是一個單一的符號公式,而是一個完整的公式帕累托前沿,在簡單性和準確性之間進行權衡。然而,KAN需要額外的歸納偏置來進一步簡化這些方程,以重新發現中的公式(表5 A)。該研究測試了兩種情況:
(1)在第一種情況下,假設真實公式具有多元Pade表示(兩個多元Taylor級數的商)。首先訓練[3, 2, 1],然後將其擬合到Pade表示。可以獲得表5中的公式E,它與Deepmind的公式有相似之處。 
(2)假設除法對KAN來說不是很直觀,因此訓練兩個KAN(一個用於分子,另一個用於分母)並手動將它們相除。令人驚訝的是,最終得到了公式F(在表5中),它只涉及\(\mu_r\)和\(\lambda\),儘管\(\mu_i\)也被提供但被KAN忽略了。

到目前為止,已經重新發現了主要結果。令人矚目的是,KAN使這一發現變得非常直觀和方便。與其使用特徵歸因方法(這是很好的方法),不如直接盯著KAN的可視化。此外,自動符號回歸也使符號公式的發現變得容易得多。

在下一部分中,我們提出了一種Deepmind論文中沒有包括的新範式"AI for Math",我們旨在使用KAN的無監督學習模式來發現紐結不變量中的更多關係(除了signature)。





無監督學習 正如在4.2節中提到的,無監督學習是更有前景的設置,因為它避免了手動劃分輸入和輸出變量,而手動劃分有組合多種可能性。在無監督學習模式下,將所有18個變量(包括signature)視為輸入,使它們處於同等地位。紐結數據是正樣本,通過隨機洗牌特徵來獲得負樣本。訓練一個[18, 1, 1] KAN來分類給定的特徵向量是否屬於正樣本(1)或負樣本(0)。手動將第二層激活設置為在零處中心為一的高斯函數,因此正樣本在(接近)零處有激活,隱含地給出了紐結不變量之間的關係 

$$\sum_{i=1}^{18} g_i(x_i) = 0$$

其中\(x_i\)表示一個特徵(不變量),\(g_i\)是相應的激活函數,可以從KAN圖中直接讀出。用\(\lambda = {10^{-2}, 10^{-3}}\)訓練KAN以偏好稀疏的輸入組合,種子為\(\text{seed} = {0, 1, \cdots, 99}\)。所有200個網路可以分為三個簇,具有代表性的KAN顯示在圖4.4中。這三組相依變量是:
  1. 第一組相依變量是signature、子午距的實部和經向距(加上另外兩個可以因(3)而移除的變量)。這就是上面研究的signature依賴關係,所以看到這個依賴關係在無監督模式下再次被發現是非常有趣的。
  2. 第二組變量涉及尖點體積\(V\)、子午平移\(\mu_r\)的實部和經向平移\(\lambda\)。它們的激活函數看起來都像對數函數(可以通過2.5.1節中暗示的符號功能驗證)。因此,關係是\(-\log V + \log \mu_r + \log \lambda = 0\),等價於\(V = \mu_r \lambda\),這在定義上是正確的。然而,在沒有任何先驗知識的情況下發現這個關係,這是令人欣慰的。
  3. 第三組變量包括短測地線\(g_r\)的實部和內射半徑。它們的激活看起來定性相同,但相差一個負號,因此推測這兩個變量存在線性相關。我們繪製2D散點圖,發現\(2r\)上限為\(g_r\),這也是一個眾所周知的關係。
有趣的是,KAN的無監督模式可以重新發現幾個已知的數學關係。好消息是KAN發現的結果可能是可靠的;壞消息是還沒有發現任何新東西。值得注意的是,選擇了一個淺層KAN以便於簡單可視化,但如果存在,更深層的KAN可能會發現更多關係。希望在未來的工作中研究如何用更深層的KAN發現更複雜的關係。

4.4 物理應用:Anderson局域化

Anderson局域化是量子系統中無序導致電子波函數局域化的基本現象,導致所有傳輸停止。在一維和二維中,縮放論證表明,對於無限小量的隨機無序,所有電子本征態都是指數局域化的。相比之下,在三維中,臨界能量形成了一個相邊界,將延展態與局域化態分開,稱為遷移率邊緣。對這些遷移率邊緣的理解對於解釋各種基本現象至關重要,如固體中的金屬-絕緣體轉變,以及光在光子器件中的局域化效應。因此,有必要開發展現遷移率邊緣的微觀模型,以便進行詳細研究。在低維中開發此類模型通常更實用,在低維中引入準周期性而不是隨機無序也可能導致分隔局域化相和延展相的遷移率邊緣。此外,分析遷移率邊緣的實驗實現可以幫助解決關於相互作用系統中局域化的爭論。事實上,最近的幾項研究集中在確定此類模型並推導它們的遷移率邊緣的精確解析表達式上。

在這裡,將KAN應用於從準周期緊束縛模型生成的數值資料,以提取它們的遷移率邊緣。我們特地檢查三類模型:馬賽克模型(MM)、廣義Aubry-André模型(GAAM)和修正的Aubry-André模型(MAAM)。對於MM,證明KAN能夠準確提取遷移率邊緣作為能量的1D函數。對於GAAM,發現從KAN獲得的公式與基本事實非常接近。對於更複雜的MAAM,再次展示了該框架符號可解釋性的另一個例子。用戶可以通過"協作"的方式簡化從KAN(和相應的符號公式)獲得的複雜表達式,在協作中,人類生成假設以獲得更好的匹配(例如,對某些激活函數的形式做出假設),然後KAN可以快速進行假設檢驗。

為了量化這些模型中態的局域化,通常使用反參與率(IPR)。第\(k\)個本征態\(\psi^{(k)}\)的IPR由下式給出

$$\text{IPR}_k = \frac{\sum_n |\psi_n^{(k)}|^4}{(\sum_n |\psi_n^{(k)}|^2)^2}$$ 
(4.2)

其中求和是對格點指標進行的。在這裡,使用相關的局域化度量——態的分形維數,由下式給出


$$D_k = -\frac{\log(\text{IPR}_k)}{\log(N)}$$ 
(4.3)


其中\(N\)是系統大小。\(D_k = 0(1)\)表示局域化(延展)態。

馬賽克模型(MM) 我們首先考慮由哈密頓量定義的一類緊束縛模型


$$H = t\sum_n (c_{n+1}^\dagger c_n + \text{H.c.}) + \sum_n V_n(\lambda, \phi)c_n^\dagger c_n,$$ (4.4)


其中$t$是最近鄰耦合,\(c_n(c_n^\dagger)\)是格點\(n\)處的湮滅(產生)算符,勢能\(V_n\)由下式給出


\[ V_n(\lambda, \phi) = \lambda \cos(2\pi nb + \phi) \cdot \mathbf{1}_{\{j = m\kappa\}} \]
(4.5)


為了引入準周期性,將\(b\)設置為無理數(選擇\(b\)為黃金比例\(\frac{1+\sqrt{5}}{2}\))。\(\kappa\)是一個整數,準周期勢以間隔\(\kappa\)出現。對於這個模型,能量(\(E\))譜通常包含由遷移率邊緣分隔的延展和局域化區域。有趣的是,這裡發現的一個獨特特徵是,即使對於任意強的準周期勢(即系統中總是存在延展態,與局域化態共存),遷移率邊緣也存在。

遷移率邊緣可以用\(g(\lambda, E) \equiv \lambda - |f_\kappa(E)| = 0\)來描述。\(g(\lambda, E) > 0\)和\(g(\lambda, E) < 0\)分別對應於局域化相和延展相。因此,學習遷移率邊緣取決於學習"序參量"\(g(\lambda, E)\)。誠然,這個問題可以通過許多其他理論方法來解決這類模型,將在下面演示,KAN框架已經準備好並方便地接受來自人類用戶的假設和歸納偏置。

假設一個假想的用戶Alice,她是凝聚態物理學的一名新博士生,並獲得一個[2, 1] KAN作為該任務的助手。首先,她理解這是一個分類任務,因此明智的做法是使用fix_symbolic功能將第二層中的激活函數設置為sigmoid。其次,她意識到學習整個2D函數\(g(\lambda, E)\)是不必要的,因為最終她只關心由\(g(\lambda, E) = 0\)確定的\(\lambda = \lambda(E)\)。這樣做,假設\(g(\lambda, E) = \lambda - h(E) = 0\)是合理的。Alice只需再次使用fix_symbolic功能將\(\lambda\)的激活函數設置為線性。現在Alice訓練KAN網路,方便地獲得遷移率邊緣,如圖4.5所示。Alice既可以獲得直觀的定性理解(底部),也可以獲得定量結果(中部),與基本事實(頂部)吻合良好。



廣義Andre-Aubry模型(GAAM)接下來,考慮由 Hamiltonian定義的一類緊束縛模型


$$H = t\sum_n (c_{n+1}^\dagger c_n + \text{H.c.}) + \sum_n V_n(\alpha, \lambda, \phi)c_n^\dagger c_n,$$ 
(4.6)

其中\(t\)是最近鄰耦合,\(c_n(c_n^\dagger)\)是格點\(n\)處的湮滅(產生)算符,勢能\(V_n\)由下式給出


$$V_n(\alpha, \lambda, \phi) = 2\lambda\frac{\cos(2\pi nb + \phi)}{1 - \alpha \cos(2\pi nb + \phi)},$$
 (4.7)

對於\(\alpha \in (-1, 1)\),它是光滑的。為了引入準周期性,我們再次將\(b\)設置為無理數(特別地,我們選擇\(b\)為黃金比例)。和之前一樣,我們想得到遷移率邊緣的表達式。對於這些模型,遷移率邊緣由閉合形式表達式給出,


$$\alpha E = 2(t - \lambda).$$ 
(4.8)

隨機採樣模型參數:\(\phi\)、\(\alpha\)和\(\lambda\)(設置能量尺度\(t = 1\)),並計算能量本征值以及相應本征態的分形維數,這構成了訓練資料集。 

在這裡,要學習的"序參量"是\(g(\alpha, E, \lambda, \phi) = \alpha E + 2(\lambda - 1)\),遷移率邊緣對應於\(g = 0\)。再次假設Alice想要確定遷移率邊緣,但只能訪問IPR或分形維數資料,因此她決定使用KAN來幫助她完成任務。Alice希望模型盡可能小,因此她可以從一個大模型開始,使用自動修剪來獲得一個小模型,或者她可以根據對給定問題複雜性的理解來猜測一個合理的小模型。無論哪種方式,假設她得到一個[4, 2, 1, 1] KAN。首先,她將最後一個激活設置為sigmoid,因為這是一個分類問題。



她用一些稀疏正則化訓練她的KAN達到98.7%的準確率,並在圖4.6(a)步驟1中可視化訓練後的KAN。她觀察到KAN完全沒有選擇$\phi$,這使她意識到遷移率邊緣與\(\phi\)無關(與公式(4.8)一致)。此外,她觀察到幾乎所有其他激活函數都是線性或二次方的,因此她打開自動符號捕捉,將函數庫限制為僅線性或二次方。之後,她立即得到一個已經是符號的網路(如圖4.6(a)步驟2所示),具有相當(甚至略好)的準確率98.9%。通過使用symbolic_formula功能,Alice方便地得到\(g\)的符號形式,如表6 GAAM-KAN auto(第三行)所示。也許她想劃掉一些小項並將係數捕捉為小整數,這使她接近真正的答案。

如果Alice使用符號回歸方法,這個假設的故事將完全不同。如果她幸運的話,SR可以返回完全正確的公式。然而,在絕大多數情況下,SR不會返回有用的結果,而且Alice不可能"調試"或與符號回歸的底層過程交互。此外,在運行SR之前,Alice可能會感到不舒服/缺乏經驗,無法將符號項的函數庫作為先驗知識提供給SR。相比之下,在KAN中,Alice不需要將任何先驗信息放入KAN。她可以先盯著訓練後的KAN獲得一些線索,只有在那時她才決定她想做出哪些假設(例如,"所有激活都是線性或二次方的"),並在KAN中實現她的假設。儘管KAN不太可能立即返回正確答案,但KAN總是會返回一些有用的東西,Alice可以與之合作來完善結果。

修正的Andre-Aubry模型(MAAM)考慮的最後一類模型由Hamiltonian定義


$$H = \sum_{n \neq n'} te^{-p|n-n'|} (c_n^\dagger c_{n'} + \text{H.c.}) + \sum_n V_n(\lambda, \phi)c_n^\dagger c_n,$$ 
(4.9)

其中\(t\)是空間中指數衰減耦合的強度,\(c_n(c_n^\dagger)\)是格點\(n\)處的湮滅(產生)算符,勢能\(V_n\)由下式給出


$$V_n(\lambda, \phi) = \lambda \cos(2\pi nb + \phi),$$ 
(4.10)


和之前一樣,為了引入準周期性,將\(b\)設置為無理數(黃金比例)。對於這些模型,遷移率邊緣由閉合形式表達式給出,


$$\lambda \cosh(p) = E + t = E + t_1 \exp(p)$$ 
(4.11)

其中定義\(t_1 \equiv te^{-p}\)為最近鄰跳躍強度,下面設\(t_1 = 1\)。

假設Alice想要確定MAAM的遷移率邊緣。這個任務更加複雜,需要更多人類智慧。和上一個例子一樣,Alice從一個[4, 2, 1, 1] KAN開始訓練,但得到的準確率在75%左右,低於可接受的水平。然後她選擇一個更大的[4, 3, 1, 1] KAN,成功獲得98.4%的準確率,這是可以接受的(圖4.6(b)步驟1)。Alice注意到KAN沒有選擇\(\phi\),這意味著遷移率邊緣與相位因子\(\phi\)無關(與公式(4.11)一致)。如果Alice打開自動符號回歸(使用包含exp、tanh等的大型函數庫),她會得到表6-MAAM-KAN auto中的複雜公式,準確率為97.1%。但是,如果Alice想找到一個更簡單的符號公式,她會想使用手動模式,自己完成符號捕捉。在此之前,她發現訓練後的[4, 3, 1, 1] KAN可以被修剪為[4, 2, 1, 1],同時保持97.7%的準確率(圖4.6(b))。Alice可能認為除了依賴\(p\)的激活函數外,所有激活函數都是線性或二次方的,並通過使用fix_symbolic手動將它們捕捉為線性或二次方。捕捉並重新訓練後,更新的KAN如圖4.6(c)步驟3所示,保持97.7%的準確率。從現在開始,Alice可能會根據她的先驗知識做出兩個不同的選擇。在一種情況下,Alice可能已經猜到\(p\)的依賴關係是\(\cosh\),因此她將\(p\)的激活設置為\(\cosh\)函數。她重新訓練KAN,獲得96.9%的準確率(圖4.6(c)步驟4A)。在另一種情況下,Alice不知道\(\cosh p\)的依賴關係,因此她追求簡單性,再次假設\(p\)的函數是二次方的。她重新訓練KAN,獲得95.4%的準確率(圖4.6(c)步驟4B)。如果她同時嘗試了這兩種情況,她會意識到在準確性方面\(\cosh\)更好,而在簡單性方面二次方更好。這些步驟對應的公式列在表6中。很明顯,Alice進行的手動操作越多,符號公式就越簡單(準確性略有犧牲)。KAN有一個"旋鈕",用戶可以調整以在簡單性和準確性之間進行權衡(有時簡單性甚至可以提高準確性,如GAAM案例中所示)。

5 相關工作

Kolmogorov-Arnold定理與神經網路。Kolmogorov-Arnold定理(KAT)與神經網路之間的聯繫在文獻中並不新鮮,但內函數的病態行為使KAT在實踐中看起來並不樂觀。大多數這些先前的工作都堅持使用原始的2層寬度為\((2n + 1)\)的網路,表達能力有限,其中許多工作甚至早於反向傳播。因此,大多數研究都建立在理論之上,只有相當有限或人工的玩具實驗。該研究的貢獻在於將網路推廣到任意寬度和深度,在當今的深度學習潮流中重新喚起並將其情境化,並強調其作為AI+科學基礎模型的潛在作用。

神經縮放定律(NSL)。NSL是測試損失相對於模型大小、資料、計算等呈冪律行為的現象。NSL的起源仍然是個謎,但有競爭理論,包括內在維度、任務量化、資源理論、隨機特徵、組合稀疏性和最大奇異性。本文通過表明,如果高維函數具有平滑的Kolmogorov-Arnold表示,則可以驚人地縮放為1D函數(這是人們可以希望的最佳界限),為這一空間做出了貢獻。論文為神經縮放定律帶來了新的樂觀情緒,因為它承諾了有史以來最快的縮放指數。在實驗中表明,這種快速神經縮放定律可以在合成數據集上實現,但未來的研究需要解決以下問題:KA表示是否存在於一般任務中?如果存在,訓練是否在實踐中找到這些表示?

機制可解釋性(MI)。MI是一個新興領域,旨在機械地理解神經網路的內部工作原理。MI研究大致可分為被動和主動MI研究。大多數MI研究是被動的,專注於理解用標準方法訓練的現有神經網路。主動MI研究試圖通過設計本質上可解釋的架構或開發訓練方法來明確鼓勵可解釋性來實現可解釋性。該研究的工作屬於第二類,其中模型和訓練方法在設計上是可解釋的。

可學習激活。在機器學習中,可學習激活在神經網路中的想法並不新鮮。可訓練激活函數以可微方式學習或以離散方式搜索。激活函數被參數化為多項式、樣條、sigmoid線性單元或神經網路。KAN使用B樣條來參數化其激活函數。該研究還介紹了關於可學習激活網路(LAN)的初步結果,其性質介於KAN和MLP之間,為了專注於主論文中的KAN,結果被推遲到附錄B。

符號回歸。有許多現成的基於遺傳算法的符號回歸方法(Eureka 、GPLearn 、PySR )、基於神經網路的方法(EQL 、OccamNet )、基於物理啟發的方法(AI Feynman )和基於強化學習的方法。KAN與基於神經網路的方法最相似,但與之前的工作不同,激活函數是在符號捕捉之前連續學習的,而不是手動固定的。

物理信息神經網路(PINN)和物理信息神經算子(PINO)。在3.4小節中,演示了KAN可以取代在求解PDE時使用MLP來施加PDE損失的範式。參考Deep Ritz方法、PINN用於PDE求解,以及Fourier神經算子、PINO 、DeepONet 用於學習解映射的算子學習方法。在上述所有網路中,都有可能用KAN取代MLP。

AI for Mathematics。正如我們在4.3小節中看到的,AI最近被應用於紐結理論中的幾個問題,包括檢測一個紐結是否是未紐結或帶紐結,以及預測紐結不變量並揭示它們之間的關係。

6 討論

在本節中,我們從數學基礎、算法和應用的角度討論KAN的局限性和未來方向。

數學方面:我們提出了KAN的初步數學分析(定理2.1),但對它們的數學理解仍然非常有限。Kolmogorov-Arnold表示定理在數學上已經得到了徹底的研究,但該定理對應於形狀為[n, 2n+1, 1]的KAN,這是KAN的一個非常受限的子類。在更深的KAN上的經驗成功是否意味著數學中的某些基本原理?一個有吸引力的廣義Kolmogorov-Arnold定理可以定義超出2層組合的"更深"Kolmogorov-Arnold表示,並可能將激活函數的平滑性與深度聯繫起來。假設存在一些函數,它們不能在原始(2層)Kolmogorov-Arnold表示中平滑表示,但可能在3層或更深層中平滑表示。我們能否使用這種"Kolmogorov-Arnold深度"的概念來表徵函數類?

算法方面:該研究討論以下內容:
  1. 準確性。架構設計和訓練中的多個選擇沒有得到充分研究,因此替代方案可能進一步提高準確性。例如,樣條激活函數可能被徑向基函數或其他局部核取代。可以使用自適應網格策略。
  2. 效率。KAN運行緩慢的一個主要原因是不同的激活函數無法利用批量計算(大量數據通過相同的函數)。實際上,可以在激活函數全部相同(MLP)和全部不同(KAN)之間進行插值,將激活函數分組為多個組("多頭"),其中一個組內的成員共享相同的激活函數。
  3. KAN和MLP的混合。與MLP相比,KAN有兩個主要區別:
    • 激活函數在邊上而不是在節點上,
    • 激活函數是可學習的而不是固定的。
  4. 哪種變化對解釋KAN的優勢更重要?在附錄B中介紹了初步結果,其中研究了一個模型,它具有(ii),即激活函數是可學習的(如KAN),但不具有(i),即激活函數在節點上(如MLP)。此外,還可以構建另一個模型,其激活函數是固定的(如MLP),但在邊上(如KAN)。
  5. 自適應性。得益於樣條基函數的內在局部性,可以在KAN的設計和訓練中引入自適應性,以提高準確性和效率:參見多層次訓練的想法,如中的多網格方法,或如中的多尺度方法的域相關基函數。
應用方面:提出了一些初步證據,表明KAN在與科學相關的任務中比MLP更有效,例如擬合物理方程和求解PDE。期望KAN在求解Navier-Stokes方程、密度泛函理論或任何其他可以表述為回歸或求解PDE的任務中也很有前景。還希望將KAN應用於與機器學習相關的任務,這需要將KAN集成到當前的架構中,例如將transformer中的MLP替換為KAN,人們可以出"kansformer"。

作為AI+科學的"語言模型"的KAN 大型語言模型之所以如此變革,是因為它們對任何能說自然語言的人都有用。科學的語言是函數。KAN由可解釋的函數組成,因此當人類用戶盯著KAN時,就像用函數的語言與之交流一樣。這一段旨在促進AI-科學家-協作範式,而不是特定工具KAN。就像人們使用不同的語言交流一樣,預計在未來,KAN將只是AI+科學的語言之一,儘管KAN將是最早實現AI和人類交流的語言之一。然而,在KAN的支持下,AI-科學家-協作範式從未如此簡單和方便,使我們重新思考要如何接近AI+科學的範式:想要AI科學家,還是想要幫助科學家的AI?(完全自動化)AI科學家的內在困難在於,很難使人類偏好量化,這將人類偏好編入AI目標。事實上,不同領域的科學家對哪些函數是簡單或可解釋的可能有不同的感受。因此,科學家擁有一個能說科學語言(函數)並能方便地與個別科學家的歸納偏置交互以適應特定科學領域的AI更為可取。

最終要點:我應該使用KAN還是MLP?

目前,KAN的最大瓶頸在於其緩慢的訓練。在給定相同數量的參數的情況下,KAN通常比MLP慢10倍。應該誠實地說,該研究有努力優化KAN的效率,因此KAN的緩慢訓練更像是一個工程問題,未來有待改進,而不是一個根本的限制。如果想要快速訓練模型,應該使用MLP。然而,在其他情況下,KAN應該與MLP相當或更好,這使得它們值得嘗試。圖6.1中的決策樹可以幫助決定何時使用KAN。簡而言之,如果你關心可解釋性和/或準確性,並且緩慢的訓練不是主要問題,建議嘗試KAN。



參考文獻(略)


附錄

A KAN功能

表7包含了用戶可能會發現有用的常見功能。

B 可學習激活網路(LAN)

B.1 架構

除了KAN,該研究還提出了另一種可學習激活網路(LAN),它們幾乎是MLP,但具有參數化為樣條的可學習激活函數。KAN對標準MLP進行了兩項主要更改:
  1. 激活函數變為可學習而不是固定的; 
  2. 激活函數放置在邊上而不是節點上。為了區分這兩個因素,該研究還提出了可學習激活網路(LAN),它只有可學習的激活,但仍然在節點上,如圖B.1所示。

對於寬度為\(N\)、深度為$L$和網格點數為\(G\)的LAN,參數數量為\(N^2L + NLG\),其中\(N^2L\)是權重矩陣的參數數量,\(NLG\)是樣條激活的參數數量,除MLP外,這引起的開銷很小,因為通常\(G \ll N\),所以\(NLG \ll N^2L\)。LAN與MLP相似,因此可以從預訓練的MLP初始化,並通過允許可學習的激活函數進行微調。一個示例是使用LAN來改進SIREN,在B.3節中介紹。

LAN和KAN的比較
    
    LAN的優點:
  1. LAN在概念上比KAN更簡單。它們更接近標準MLP(唯一的變化是激活函數變為可學習)。
  2. LAN比KAN更容易擴展。LAN/KAN在節點/邊上有可學習的激活函數。因此,LAN/KAN中的激活參數分別隨\(N\)/\(N^2\)縮放,其中\(N\)是模型寬度。
    LAN的缺點:
  1. LAN似乎不太可解釋(權重矩陣難以解釋,就像MLP中一樣);
  2. LAN似乎也不如KAN準確,但仍然比MLP更準確。與KAN一樣,如果LAN的激活函數由樣條參數化,LAN也承認網格擴展。




B.2 LAN可解釋性結果

我們在圖B.2中介紹了LAN的初步可解釋性結果。對於圖4.1中KAN完全可解釋的相同示例,由於權重矩陣的存在,LAN似乎可解釋性要差得多。首先,權重矩陣不如可學習的激活函數容易解釋。其次,權重矩陣帶來了太多的自由度,使得可學習的激活函數過於不受約束。我們使用LAN的初步結果似乎暗示,去除線性權重矩陣(通過在邊上具有可學習的激活,如KAN)對於可解釋性是必要的。

B.3 擬合圖像(LAN)

隱式神經表示將圖像視為2D函數\(f(x, y)\),其中像素值\(f\)是像素的兩個坐標\(x\)和\(y\)的函數。為了壓縮圖像,這樣的隱式神經表示(\(f\)是神經網路)可以在保持幾乎原始圖像質量的同時實現令人印象深刻的參數壓縮。SIREN提出使用具有周期性激活函數的MLP來擬合函數\(f\)。在LAN中自然考慮其他激活函數。然而,由於我們將LAN激活初始化為平滑的,而SIREN需要高頻特徵,LAN不能立即工作。請注意,LAN中的每個激活函數都是基函數和樣條函數的總和,即\(\phi(x) = b(x) + \text{spline}(x)\),我們將\(b(x)\)設置為正弦函數,與SIREN中的設置相同,但讓\(\text{spline}(x)\)是可訓練的。對於MLP和LAN,形狀都是[2,128,128,128,128,128,1]。我們使用Adam優化器對它們進行訓練,批量大小為4096,學習率為$10^{-3}$訓練5000步,學習率為$10^{-4}$訓練5000步。如圖B.3所示,LAN(橙色)可以實現比MLP(藍色)更高的PSNR,這是由於LAN微調激活函數的靈活性。我們表明,也可以從MLP初始化LAN,並進一步微調LAN(綠色)以獲得更好的PSNR。在我們的實驗中,我們選擇了\(G = 5\),因此額外的參數增加大約是原始參數的\(G/N = 5/128 \approx 4\%\)。


C 超參數的影響

我們在圖C.1中顯示了超參數對\(f(x, y) = \exp(\sin(\pi x) + y^2)\)案例的影響。為了獲得可解釋的圖,我們希望活躍激活函數的數量盡可能少(理想情況下為3)。

  1.  我們需要熵懲罰來減少活躍激活函數的數量。如果沒有熵懲罰,會有許多重複函數。
  2.  結果可能取決於隨機種子。對於一些不幸的種子,修剪後的網絡可能比需要的更大。
  3.  整體懲罰強度\(\lambda\)有效地控制稀疏性。
  4.  網格數\(G\)也對可解釋性有微妙影響。當\(G\)太小時,由於每個激活函數不是很有表現力,網絡傾向於使用集成策略,使得解釋更加困難。
  5.  分段多項式階數\(k\)對可解釋性只有微妙影響。然而,它的行為有點像隨機種子,在這個玩具示例中沒有顯示任何可見的模式。

D 費曼KAN

我們在費曼資料集(第3.3節)上包含了更多結果。圖D.1顯示了每個費曼數據集的KAN和MLP的帕累托前沿。圖D.3和D.2將每個費曼方程擬合任務的最小KAN(在測試RMSE < 10−2 的約束下)和最佳KAN(具有最低測試RMSE損失)可視化。


E 關於網格大小的備註

對於PDE和回歸任務,當我們在均勻網格上選擇訓練數據時,當網格大小更新到一個大水平時,我們會看到訓練損失突然增加(即性能突然下降),相當於空間一個方向上的不同訓練點。這可能是由於更高維度中B樣條的實現,需要進一步調查。

F 特殊函數的KAN

我們在特殊函數數據集(第3.2節)上包含了更多結果。圖F.2和F.1將每個特殊函數擬合任務的最小KAN(在測試RMSE < 0.01的約束下)和最佳KAN(具有最低測試RMSE損失)可視化。



幾點見解和思考:



1. Kolmogorov-Arnold定理在神經網路領域的應用前景廣闊。論文將KA定理與深度學習結合,提出了KAN這一新穎的神經網路架構。KAN不僅在各種任務上展現出優異的性能,其可解釋性也遠勝於傳統的MLP。這為深度學習模型的可解釋性研究提供了新的思路。

2. KAN在速度上的不足可能限制了其應用。論文坦承,目前KAN的訓練速度比MLP慢10倍左右。作者認為這更多是工程實現的問題,未來有優化的空間。KAN要真正發揮作用,還需要在效率上有所突破。

3. 無監督學習可能是AI輔助科學發現的重要範式。論文在紐結理論的實驗中展示了無監督學習的威力。相比於有監督學習需要專家標註數據,無監督學習可以直接從原始數據出發尋找隱藏的關係,更符合科學發現的實際過程。

4. AI與科學家的協同是大勢所趨。KAN作為一種會"說"科學語言(數學函數)的AI系統,為AI與科學家的溝通提供了渠道。未來,懂科學語言的AI助手或許能夠與科學家進行更加深入的交流,共同推進科學發現的進程。

5. 神經網路的數學基礎仍有待加強。儘管KAN取得了令人矚目的表現,但我們對其背後的數學原理還缺乏深入理解。Kolmogorov-Arnold定理能否推廣到更深層次?網路深度與函數平滑性是否存在內在聯繫?這些問題的解答,需要數學和深度學習領域的專家共同努力。

6. 對科學家而言,擁有正確的工具選擇十分重要。論文最後給出的決策樹,為科學家在KAN和MLP間做出選擇提供了參考。一方面,科學家要善於利用新工具(如KAN)來加速研究;另一方面,也要理性看待新工具的局限性,根據具體問題選擇最合適的方法。

這是一篇將數學理論與深度學習緊密結合,並在多個科學問題上進行實踐的高質量論文。它不僅展示了KAN的強大性能,更重要的是,它體現了一種AI助力科學發現的新範式。儘管KAN目前還不夠完善,但其背後的思想值得我們深入探索。期待未來有更多類似的工作,推動AI與科學的深度融合。












SambaNova SN40L: 利用Dataflow和專家組合(COE)來克服AI記憶牆的大模型

摘要 GPT-4等整體式大型語言模型(LLM)為現代生成AI應用鋪路。然而,大規模訓練、服務及維護整體式LLM仍然極其昂貴和充滿挑戰。現代AI加速器計算能力與記憶體比例的不成比例增長已經造成了記憶體壁障,需要新的方法來部署AI。最近的研究顯示,許多小型專家模型的組合,每個模型參數...