pykan icon indicating copy to clipboard operation
pykan copied to clipboard

FourierSynthKan?

Open DanielJoyce opened this issue 9 months ago • 1 comments

So the use of splines is cool, but computationally expensive, and for large models storage of the parameters might become extremely large.

Instead of a spline for each edge, what about a sine wave?

Functions can be approximated to varying levels of precision by sine waves

For each edge, we store the amplitude, phase and frequency.

We could get even simpler, and each level would increase the frequency of the previous by one, and each column could shift the phase by a set amount.

Of course we need more edges, but each edge is simpler.

Finally, another simplification is to simply use a sampled lookup table for the sine.

This could be done, I think fairly quickly in hardware.

This might not be as useful for precise function approximation, but would be like quantitized models currenly being used elsewhere.

DanielJoyce avatar May 03 '24 04:05 DanielJoyce

Wow, thanks for the suggestions for speedup! Here's someone who implemented FourierKAN (I haven't looked into it yet)

KindXiaoming avatar May 03 '24 04:05 KindXiaoming