Hi, ChebyKAN is indeed simple, elegant and powerful, I believe it can do more.
So I implemented it on solving some models with dynamical systems, economic models to be precise, where the dynamical systems or equations quite similar to PDEs.
The main problem I encountered is that ChebyKAN is more prone to be "stuck", preventing training going any further. Here are two illustrations with KAN structure
valuefunction_KAN = KAN(width=[2,5,5,1], grid=5, k=3, grid_eps=1.0, noise_scale_base=0.25)
class ChebyKAN(nn.Module):
def __init__(self):
super(ChebyKAN, self).__init__()
self.chebykan1 = ChebyKANLayer(2, 8, 8)
self.chebykan2 = ChebyKANLayer(8, 16, 5)
self.chebykan3 = ChebyKANLayer(16, 1, 5)
def forward(self, x):
x = self.chebykan1(x)
x = self.chebykan2(x)
x = self.chebykan3(x)
return x
valuefunction_cheb = ChebyKAN()
Results on the first fig are trained by LBFGS, and by Adam with learning rate 1e-2 on the second fig.
I have tested it multiple times, with different input, output dimensions and degree range from 4 to 12, the issue remains.