OverLordGoldDragon / see-rnn

RNN and general weights, gradients, & activations visualization in Keras & TensorFlow
MIT License
178 stars 21 forks source link

Naive question #35

Closed sepehrgolriz closed 4 years ago

sepehrgolriz commented 4 years ago

Dear @OverLordGoldDragon

Recently, I got familiar with your wondeful package and I found it very helpful for my research. I am doing research in the field of neurodegenarative disease and more specifically Alzheimer disease. I have a problem in generating saliency maps regarding the time dimension and the features which are most significant to the predictions. I trained an LSTM network to predict the disease state of patients for the next 5 time points. I have 368 patients, 5 time-points, and almost 20 features. Now, I want to show which of these features are play an important role in classifying the patients for each time step out of those 5 predicted. I found that the saliency map is able to show that To be honest, I tried a lot to do it myself, yet I was not successful. Now, I would like to know if I can do it with your wonderful package and if yes how I can try it with my own model?

All of your kind help would be appreciated in advance.

Sincerely yours,

OverLordGoldDragon commented 4 years ago

Thanks for the compliments, and for your work in Alzheimer's research; my work is with predicting epileptic seizures.

My suggestion won't differ much from this comment's, I'm afraid, as See RNN doesn't yet support feature importance visuals. I will, however, elaborate a bit: saliency maps and other importance attribution methods best work if properly understood. If using methods out-of-box and merely applying 'recommended' high-level descriptions, it's easy to conclude a set of features to be "important" when they're not. A safer bet for meaningful assessment is first familiarizing with said methods at a low-level (math, etc), which should better convey their abilities and limitations. I'd begin with reading the papers referenced by linked packages, then trying to understand the source code.

Additionally, I'd be wary of your generalization objective; for 368 patients, your dataset should be fairly large to allow for reliable feature extraction. If you cannot achieve good validation performance, importance attribution is a futile endeavor.

OverLordGoldDragon commented 4 years ago

Closing per inactivity, feel free to reopen.