Στόχος: να επιλέξετε μια ενεργοποίηση και να κατανοήσετε κορεσμό, κλίσεις και έξοδο.
| Ενεργοποίηση | Έκφραση/ιδέα | Χρήση και προσοχή |
|---|---|---|
| ReLU | max(0, z) | απλή, γρήγορη· πιθανοί νεκροί νευρώνες |
| LeakyReLU | μικρή κλίση αν z<0 | μειώνει τις μόνιμα μηδενικές μονάδες |
| tanh | έξοδος [-1, 1] | κεντραρισμένη, αλλά κορένεται στα άκρα |
| sigmoid | έξοδος [0, 1] | κυρίως δυαδική έξοδος· κορεσμός |
| GELU | ομαλή διαμόρφωση | συχνή στους Transformers |
Η παράγωγος της ReLU ισούται με 1 για z>0 και 0 για z<0. Μια μονάδα που λαμβάνει πάντα
αρνητικές προ-ενεργοποιήσεις δεν μεταδίδει πλέον κλίση: είναι «νεκρή».
BCEWithLogitsLoss.CrossEntropyLoss.Η softmax(z_i) = exp(z_i) / Σ_j exp(z_j) μετατρέπει K logits σε θετικούς αριθμούς με
άθροισμα 1. Η προσθήκη της ίδιας σταθεράς σε όλα τα logits δεν αλλάζει τις
πιθανότητες. Οι σταθερές υλοποιήσεις αφαιρούν το μέγιστο πριν από την εκθετική.
Χρησιμοποιήστε τη ReLU ως baseline για ένα MLP/CNN, τη GELU για έναν Transformer, και τοποθετήστε μια ενεργοποίηση εξόδου μόνο αν η απώλεια ή η διεπαφή το απαιτεί ρητά.
Γιατί οι ενεργοποιήσεις πρέπει να είναι μη γραμμικές; Ποια ενεργοποίηση παράγει αποκλειστικές πιθανότητες;
Αλλιώς όλο το δίκτυο ανάγεται σε έναν αφινικό μετασχηματισμό. Η softmax παράγει μια κατανομή σε αποκλειστικές κλάσεις.
Υπολογίστε ReLU και sigmoid για z = {-2, 0, 2}, και μετά τη σταθερή softmax του [1000, 1001, 999]. Αντιστοιχίστε στη συνέχεια μια έξοδο σε τέσσερις εργασίες: δυαδική, πολλών κλάσεων, multilabel και
μη φραγμένη παλινδρόμηση. Επιτυχία: καμία διπλή ενεργοποίηση πριν από μια απώλεια σε logits.
Ανάγνωση: η συνάρτηση απώλειας υπαγορεύει συχνά την αναμενόμενη αριθμητική μορφή. Με τις σταθερές απώλειες που λαμβάνουν logits, η sigmoid ή η softmax χρησιμεύουν για την ερμηνεία, όχι για την είσοδο της απώλειας. Η κύρια παγίδα είναι επομένως η διπλή ενεργοποίηση, που υποβαθμίζει τις κλίσεις και μπορεί να δώσει παραπλανητικές πιθανότητες.