-
Notifications
You must be signed in to change notification settings - Fork 377
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Can configure efficient-kan model for continual learning? #28
Comments
Select the corresponding parameter and The parameters are:
Sadly I forgot to implement the bias term! (and thank you for letting me notice that XD) |
Is it the reason for little effectness of CIL (class incremental learning)? I have tried to replace the fc layer directly with KAN layer on image classification task (CIFAR-100 B50inc5). It's just a little improvement (maybe 0.5%?). |
Anyone else found that KAN's effectiveness against catastrophic forgetting works only on 1D tasks? Since the spline locality applies to each dimension independently, it can't isolate more complex patterns based on multiple input dimensions (e.g.: an MNIST digit). I think a simple 2D experiment with some Gaussian bumps would be enough to demonstrate this shortcome. |
working on similiar case. For me, i just trained two task initially. but it still have catastrophic forgetting issue. |
Bro, here u pass output from cnn (512 size vector for each image) into KAN is it? Can you share your code? |
I just simply replace the last fc with a KANLayer. And I compare it with the replay method which only store 20 old samples for future training. Its results shows little improvement. PS: "KANLinear(in_features=512, out_features=100)", I directly initialize this layer into 100 categories to avoid adjust the dimension in subsequent tasks. |
okay, so for KANLayer you pass only tasks specific data, wilthout old task's replay sample.? |
No, I use the same data as replay, which contains 20 samples per category. That's why I say KAN may be hard to deal with high dimension data. But I actually find that KAN can handle the simple data (such as classifying a 2D scatter) and avoid forgetting. |
Similar like what authors shown in official git repo, can use this efficient-kan model for continual learning settings. . For using efficient-kan for CL settings, I haven't found some attributes that need to be set given in official pykan;
######### cl code from pykan
setting bias_trainable=False, sp_trainable=False, sb_trainable=False is important.
otherwise KAN will have random scaling and shift for samples in previous stages
model = KAN(width=[1,1], grid=200, k=3, noise_scale=0.1, bias_trainable=False, sp_trainable=False, sb_trainable=False)
how can I set bias_trainable=False, sp_trainable=False, sb_trainable=False here, is there a way?
The text was updated successfully, but these errors were encountered: