是誰最新想到這個正弦化處理,怎么想到的?
這是一個非常深刻的問題,觸及了深度學習領域一個精彩的創新故事。這個想法的出現不是一蹴而就的,而是一個演進的過程。簡單來說,最先將正弦函數用于編碼連續信息(位置)并引爆整個領域的,是2017年Google的論文《Attention is All You Need》中提出的Transformer模型的原版“位置編碼”。但它是“怎么想到的”?這背后有清晰的邏輯脈絡。
一、思想的源頭:《Attention is All You Need》 (2017)
在Transformer之前,處理序列(如句子)的主流模型是RNN/LSTM。這些模型天然地按順序處理信息,第一個詞第一個被處理,最后一個詞最后被處理,因此它們隱含地包含了詞的“位置信息”。但Transformer的自注意力機制是并行處理所有詞的,它不知道詞的順序。“貓追老鼠”和“老鼠追貓”對于基本的自注意力機制來說是一樣的。因此,必須顯式地告訴模型每個詞的位置。作者們需要一種方法為每個詞的位置(一個整數索引,如1, 2, 3...)生成一個特征向量。他們提出了幾種選擇,最終勝出的就是正弦化位置編碼。他們是怎么想到的?基于幾個關鍵直覺和需求:
- 需求1:對序列長度外推。模型應該能處理比訓練時更長的句子。
- 需求2:包含相對位置信息。模型應該能輕松學到“偏移k個位置”這個概念,比如能理解
動詞通常出現在名詞之后k個位置。 - 需求3:值有界。編碼后的值應該在合理的范圍內(如[-1, 1]),便于模型穩定訓練。
正弦函數的完美契合:他們發現,使用不同頻率的正弦/余弦函數,可以天然地創建一個獨一無二的、有界的、并且蘊含相對位置信息的編碼。
- 唯一性:每個位置
pos都有唯一的編碼組合。 - 有界性:正弦/余弦函數的值域是[-1, 1]。
- 相對位置信息(核心創新):如上一個問題所解釋的,
PE(pos + k)可以表示為PE(pos)的線性函數。這意味著模型可以輕易地學會關注“相對位置k”。
二、從“位置”到“幾何標量”的演進
Transformer的成功證明了正弦編碼在表示離散序列位置上的強大能力。接下來的關鍵一步是:
既然正弦編碼能這么好地表示“順序”這種一維連續信息,那它是不是也能表示其他連續的標量,比如距離、角度、速度等?
這個思想的泛化是自然而然的。在3D幾何深度學習中,研究人員面臨同樣的問題:
- 點云的坐標是連續的。
- 點與點之間的距離、向量之間的角度都是連續標量。
- 傳統的做法是直接將這些標量輸入MLP,但效果有局限(如我們之前討論的尺度敏感、泛化差等問題)。
于是,在2022年左右的幾篇重要論文中(例如 GeoTransformer (2022)),研究者們明確地將Transformer中的正弦位置編碼思想遷移到了3D幾何標量的編碼上。SG-Reg論文中引用了GeoTransformer,并直接使用了其中提到的“sinusoidal functions”(正弦化函數)來編碼它們的長度和角度標量。所以,SG-Reg的作者并非“最新想到”這個處理的人,而是成功地將這個已被證明有效的強大工具,應用到了其創新的“場景圖配準”新框架中。
三、總結:思想的演進鏈
- 問題起源:Transformer需要一種方法為離散的單詞位置編碼。
- 核心創新 (Vaswani et al., 2017):提出使用正弦/余弦函數對整數位置索引進行編碼,因為它能提供有價值的相對位置信息。
- 思想泛化:社區認識到,這種編碼方式的優勢(有界性、相對關系線性表示)同樣適用于任何連續標量。
- 領域應用 (如 GeoTransformer, 2022):3D幾何領域的研究者將其應用于編碼距離、角度等幾何標量,解決了傳統方法的痛點。
- 框架集成 (SG-Reg, 2024):SG-Reg的作者將這個成熟且強大的組件集成到其更宏大的場景圖匹配系統中,作為其表征局部幾何關系的一個可靠模塊。
所以,這是一個典型的基礎模型創新 → 社區理解其深層價值 → 泛化應用到新領域 → 成為新系統標準組件的技術發展案例。最初的“想到”源于Transformer作者對序列建模本質的深刻洞察,而后續的廣泛應用則體現了深度學習社區強大的知識遷移和演進能力。
什么是正弦化?
ψ_L和 ψ_A這兩個正弦化函數的作用、必要性以及為什么選擇正弦函數。
一、ψ_L和 ψ_A的作用:從“普通神經網絡”的問題講起
首先,我們明確 ψ_L和 ψ_A要編碼的是什么:
ψ_L:編碼長度標量,如三元組邊的長度|e_i,j|。ψ_A:編碼角度標量,如兩個向量夾角的余弦值cos(θ)。
ψ,直接輸入:g_i^{j,k} = [ |e_i,j|, |e_i,k|, cos(θ) ](一個3維向量)然后把這個向量送入一個MLP。這樣做的主要問題:- 數值尺度敏感性問題
- 問題:邊的長度
|e_i,j|可能很大(比如2米),而余弦值cos(θ)在[-1, 1]之間。MLP對輸入特征的尺度和分布非常敏感。如果不對這些數值進行規范化處理,尺度大的特征會主導訓練過程,導致模型難以學習。 ψ的解決方案:正弦化函數(如正弦、余弦)的輸出范圍是固定的([-1, 1]),它將任意尺度的輸入值映射到相似的數值范圍內,消除了尺度差異帶來的問題。
- 問題:邊的長度
- 無法捕捉周期性相似性(對于角度)
- 問題:角度是周期性的。0°和360°是同一個角度,90°和450°也是。但一個普通的MLP會將
cos(0°) = 1和cos(360°) = 1視為完全相同的輸入,這沒問題。但問題是,對于接近0°的角度(如cos(1°) ≈ 0.9998)和接近360°的角度(如cos(359°) ≈ 0.9998),它們的值也幾乎相等,MLP會認為它們非常相似,這符合我們的幾何直覺。然而,對于cos(90°) = 0和cos(270°) = 0,MLP也會認為它們相同,但90°和270°在幾何上是完全不同的! ψ的解決方案:單獨一個余弦值丟失了角度的完整信息(它無法區分第一象限和第四象限)。正弦化編碼使用一組正弦和余弦函數,可以唯一地確定一個角度,從而區分出90°和270°。
- 問題:角度是周期性的。0°和360°是同一個角度,90°和450°也是。但一個普通的MLP會將
- 缺乏對相對位置的敏感度
- 問題:這是最核心的問題。我們不僅關心標量的絕對值,更關心它們的相對關系。例如,我們希望模型能學到“邊長1米和1.1米的差異”與“邊長5米和5.1米的差異”是相似的(都是0.1米的絕對差異,但相對差異不同)。一個普通的MLP很難自然地學會這種對相對距離的敏感度。
ψ的解決方案:正弦函數的特性決定了它天然地能夠將標量之間的相對關系編碼到特征向量的相似性中。
二、為什么是正弦/余弦函數?—— 它們的獨特優勢
正弦函數被選擇,不是隨意的,而是因為它擁有非常適合表示位置和幾何關系的數學性質。正弦化編碼的標準形式(與Transformer中的位置編碼相同):對于一個標量值p(可以是長度或角度弧度值),其 k維的編碼是:ψ(p) = [ sin(ω?p), cos(ω?p), sin(ω?p), cos(ω?p), ..., sin(ω_k/? p), cos(ω_k/? p) ]其中 ω是一些預設的或可學習的基礎頻率。選擇正弦函數的根本原因:- 唯一的相對關系編碼能力
- 正弦函數有一個美妙的性質:
ψ(p + Δp)可以表示為ψ(p)的一個線性變換! - 具體來說,對于每個頻率
ω_k,存在一個線性變換矩陣M,使得[sin(ω_k(p+Δp)); cos(ω_k(p+Δp))] = M * [sin(ω_k p); cos(ω_k p)]。 - 這意味著什么?這意味著注意力機制等后續模塊可以輕松地學習到“偏移量”Δp。模型不需要死記硬背每個絕對位置,而是可以學會關注“相鄰1米”或“夾角30度”這種相對關系,從而擁有強大的外推泛化能力。這是普通MLP完全不具備的。
- 正弦函數有一個美妙的性質:
- 多尺度頻率感知
- 使用一組不同頻率
ω_k的正弦函數,相當于用多個不同波長的“尺子”去測量同一個標量p。 - 低頻率(長波長)的分量對
p的大變化敏感,適合捕捉宏觀結構。 - 高頻率(短波長)的分量對
p的微小變化敏感,適合捕捉精細細節。 - 這樣,模型可以同時從宏觀和微觀尺度上理解幾何標量。
- 使用一組不同頻率
- 平滑性與連續性
- 正弦函數是光滑的連續函數。當
p發生微小變化時,ψ(p)也會平滑變化。這有利于模型的訓練和優化梯度下降。如果使用某種分桶(binning)的one-hot編碼,會導致特征不連續,訓練困難。
- 正弦函數是光滑的連續函數。當
三、總結:一個生動的比喻
- 普通MLP直接處理標量:就像你只用一把固定的尺子去測量所有物體。測量螞蟻用米尺,測量大樓也用米尺,結果要么不精確,要么難以處理。而且這把尺子沒有刻度,只能告訴你一個最終的絕對數字。
- 正弦化編碼
ψ:就像你同時使用了一整套各種精度的測量工具——從游標卡尺、卷尺到激光測距儀。它不僅能給出一個數值,還能告訴你這個數值在不同“精度”下的表現。更重要的是,這套工具的設計讓它特別擅長回答“這兩個長度之間的差距,相對于它們本身的大小來說,是顯著還是微小?” 這類關于相對關系的問題。
ψ_L和 ψ_A,不是為了故弄玄虛,而是為了解決普通神經網絡處理標量時存在的根本性缺陷。它通過一種數學上優雅的方式,為模型提供了尺度歸一化、周期性感知、以及對相對關系的強大編碼能力,這是實現高泛化性、高精度幾何理解的關鍵所在。
浙公網安備 33010602011771號