Der Gradient neuronaler Netze für One-Hot-codierte Eingänge
One-Hot-Codierung als Roheingabe für Deep-Learning-Modelle kann in vielen Bereichen Anwendung finden, z. B. in der Bioinformatik, NLP, Chemie usw. Angenommen, wir haben ein neuronales Netzwerk trainiert$f(x)$ mit $x$One-Hot-codiert. Jetzt möchte ich die Wichtigkeit jedes Zeichens anhand des Verlaufs bewerten$\partial f(x)/\partial x$(zB Saliency, Inputxgrad, integrierte Gradienten ...). Beim Training$f(x)$ist der Gradient der Verlustfunktion auf den Netzwerkgewichten gut definiert. Dann ist die Hauptfrage hier, ob$f(x)$ ist differenzierbar wrt $x$?
Genau genommen, $f(x)$wird auf Binärwerten definiert. Dann würde zum Beispiel in der folgenden Figur eine kleine Abweichung in der Position von "T" keinen Sinn ergeben. Damit$\partial f(x)/\partial x$ ist nicht genau definiert, ist das richtig?
Im Fall von NLP werden One-Hot-codierte Wörter zuerst durch Einbetten von Vektoren kontinuierlicher Werte dargestellt, z. B. word2vec. Für ein trainiertes Sprachmodell müssen wir zur Bewertung des Wortbeitrags nicht auf eine One-Hot-Codierung zurückgreifen, sondern nur auf das Einbetten von Vektoren.
Ich habe nach einer schnellen Suche keine ähnlichen Diskussionen gefunden. Ist das trivial? Vielen Dank für Ihre Beiträge!
Antworten
In NLP habe ich es mit One-Hot-Codierung gesehen: https://colab.research.google.com/github/AndreasMadsen/python-textualheatmap/blob/master/notebooks/huggingface_bert_example.ipynb
Aber ich habe gesehen, dass mehr Orte die Einbettung verwenden und dann die Einbettung normalisieren, um eine einzelne Punktzahl pro Token zu erhalten. Diese kürzlich durchgeführte Umfrage zur Ausprägung von Eingaben zeigt bessere Ergebnisse für die Aggregation unter Verwendung der L2-Norm:https://arxiv.org/pdf/2009.13295.pdf(im Gegensatz zur Mittelwertbildung). Ich glaube auch, dass (Einbettung) das ist, was die Captum-Interpretierbarkeitsbibliothek verwendet. Beispiele:
- https://captum.ai/tutorials/Bert_SQUAD_Interpret
- https://colab.research.google.com/github/elsanns/xai-nlp-notebooks/blob/master/electra_fine_tune_interpret_captum_ig.ipynb#scrollTo=di_oai-BvG5k