2.2.2
Παλινδρόμηση Softmax
Σύνοψη
- Η παλινδρόμηση softmax γενικεύει τη λογιστική παλινδρόμηση σε πολλαπλές κλάσεις, παράγοντας ταυτόχρονα την πιθανότητα κάθε κλάσης.
- Οι έξοδοι βρίσκονται στο \([0, 1]\) και αθροίζουν σε 1, ώστε να ενσωματώνονται απευθείας σε κατώφλια απόφασης, κανόνες ευαίσθητους στο κόστος ή σωληνώσεις επεξεργασίας.
- Η εκπαίδευση ελαχιστοποιεί την απώλεια διασταυρούμενης εντροπίας, διορθώνοντας απευθείας τις αποκλίσεις μεταξύ προβλεπόμενων και πραγματικών κατανομών πιθανοτήτων.
- Στο scikit-learn, η
LogisticRegression(multi_class="multinomial")υλοποιεί την παλινδρόμηση softmax και υποστηρίζει κανονικοποίηση L1/L2.
Εισαγωγή #
Αυτή η μέθοδος πρέπει να ερμηνεύεται μέσα από τις υποθέσεις της, τις συνθήκες δεδομένων και τον τρόπο με τον οποίο οι επιλογές παραμέτρων επηρεάζουν τη γενίκευση.
Αναλυτική Επεξήγηση #
Μαθηματική Διατύπωση #
Έστω \(K\) ο αριθμός κλάσεων, \(\mathbf{w}_k\) και \(b_k\) οι παράμετροι για την κλάση \(k\). Τότε
$$ P(y = k \mid \mathbf{x}) = \frac{\exp\left(\mathbf{w}_k^\top \mathbf{x} + b_k\right)} {\sum_{j=1}^{K} \exp\left(\mathbf{w}_j^\top \mathbf{x} + b_j\right)}. $$Η αντικειμενική συνάρτηση είναι η απώλεια διασταυρούμενης εντροπίας
$$ L = - \sum_{i=1}^{n} \sum_{k=1}^{K} \mathbb{1}(y_i = k) \log P(y = k \mid \mathbf{x}_i), $$με προαιρετική κανονικοποίηση των βαρών για την αποτροπή υπερπροσαρμογής.
Πειράματα σε Python #
Ο παρακάτω κώδικας εφαρμόζει την παλινδρόμηση softmax σε ένα συνθετικό σύνολο δεδομένων τριών κλάσεων και οπτικοποιεί τις περιοχές απόφασης. Η ρύθμιση multi_class="multinomial" ενεργοποιεί τη διατύπωση softmax.
| |

Αναφορές #
- Bishop, C. M. (2006). Pattern Recognition and Machine Learning. Springer.
- Murphy, K. P. (2012). Machine Learning: A Probabilistic Perspective. MIT Press.