> Kolmogorov-Arnold Networks(KANS):一種新型的神經網絡體系結構,用於可解釋的建模
最近的研究引入了Kolmogorov-Arnold網絡(KANS),這是一種新型的神經網絡體系結構,旨在增強科學建模中的可解釋性。 與傳統的“黑匣子”模型(如多層感知器(MLP))不同,堪薩斯州提供了更大的透明度,使其在物理等領域中特別有價值。
>kans基於kolmogorov-arnold表示定理,該定理認為,任何連續的多變量函數都可以分解為簡單,單變量的函數的總和。 雖然定理保證了這些單變量功能的存在,但堪薩斯州提供了一種學習它們的方法。 堪薩斯州學習這些更簡單的組件,而不是直接近似複雜的功能,從而產生了靈活且高度可解釋的模型,尤其是對於非線性關係。
堪薩斯州與MLP:一個關鍵的體系結構差異> KAN和MLP之間的核心區別在於可學習激活功能的位置。 MLP利用神經元內的固定激活功能(Relu,Sigmoid等),而Kans將可學習的激活功能放在連接神經元的邊緣。 原始實現使用B型,但是其他功能(例如Chebyshev多項式)也具有適應性。 淺層和深kans都將復雜函數分解為更簡單的函數,如下所示:
>這種體系結構差異使坎斯能夠動態適應數據,而參數的準確性可能比MLP少。 可以修剪訓練後未使用的邊緣,進一步簡化模型。 此外,可以提取學到的單變量功能,從而重建多變量函數,這是可解釋性的關鍵特徵。 Pykan
實施
> 圖書館促進了kans的實現。 安裝很簡單:
pykan
pip install git+https://github.com/KindXiaoming/pykan.git
可以創建和可視化示例數據集:
from kan import * model = KAN(width=[2,5,1]) # 2 inputs, 5 hidden neurons, 1 output
from kan.utils import create_dataset f = lambda x: 3*x[:,[0]]**3+2*x[:,[0]]+4 + 2 * x[:,[0]] * x[:,[1]] ** 2 + 3 * x[:,[1]] ** 3 dataset = create_dataset(f, n_var=2) model(dataset['train_input']); model.plot()
使用
>
.fit()
model.fit(dataset, steps=1000);
model = model.prune() model.plot()
>應用和注意事項
堪薩斯州在各種應用中表現出承諾:
kans代表了神經網絡體系結構的重大進步,為傳統模型提供了靈活且可解釋的替代方案。 進一步的探索和發展有望建立KAN作為科學建模及其他地區的強大工具。
以上是Kolmogorov-Arnold Networks(KANS):實施指南的詳細內容。更多資訊請關注PHP中文網其他相關文章!