Πολυστρωματικό Perceptron και Κρυμμένες Αναπαραστάσεις

2 λεπτά

Στόχος: να κατασκευάσετε νοερά ένα MLP και να μετρήσετε τις παραμέτρους του.

Ένα MLP είναι ένα δίκτυο εμπρόσθιας διάδοσης που αποτελείται από πλήρως συνδεδεμένα στρώματα.

text
a⁽⁰⁾ = x
z⁽ˡ⁾ = W⁽ˡ⁾a⁽ˡ⁻¹⁾ + b⁽ˡ⁾
a⁽ˡ⁾ = φ(z⁽ˡ⁾)

Ένα στρώμα Linear(p, q) περιέχει p × q βάρη και q πολώσεις, δηλαδή (p + 1)q παραμέτρους. Ένα μοντέλο 784 → 128 → 10 περιέχει επομένως 784×128+128 + 128×10+10 = 101 770 παραμέτρους.

python
from torch import nn

model = nn.Sequential(
    nn.Flatten(),
    nn.Linear(28 * 28, 128),
    nn.ReLU(),
    nn.Linear(128, 10),
)

Κρυφά στρώματα

«Κρυφό» σημαίνει ότι η έξοδός του δεν είναι ούτε η ακατέργαστη είσοδος ούτε η παραδοτέα πρόβλεψη. Κατασκευάζει μια ενδιάμεση αναπαράσταση. Δεν πρέπει να υποθέτουμε ότι κάθε νευρώνας έχει ένα απλό ανθρώπινο νόημα· μια αναπαράσταση είναι συχνά κατανεμημένη σε πολλές μονάδες.

Στρώμα εξόδου

Η έξοδος εξαρτάται από την εργασία:

ΕργασίαΑκατέργαστη έξοδος
Βαθμωτή παλινδρόμηση1 τιμή
Δυαδική ταξινόμηση1 logit
Ταξινόμηση K κλάσεωνK logits
Multilabel K ετικετώνK ανεξάρτητα logits

Ένα logit είναι ένα μη κανονικοποιημένο σκορ. Στην ταξινόμηση πολλών κλάσεων, το PyTorch περιμένει γενικά τα logits απευθείας· η CrossEntropyLoss εφαρμόζει τον κατάλληλο αριθμητικά σταθερό μετασχηματισμό.

Παγίδες

  • Προσθήκη softmax στο μοντέλο πριν από την CrossEntropyLoss.
  • Μέτρηση του στρώματος εισόδου ως παραμετροποιημένου στρώματος.
  • Επιλογή εκατοντάδων εκατομμυρίων παραμέτρων χωρίς δεδομένα ούτε αιτιολόγηση.

Γρήγορος έλεγχος

Πόσες παραμέτρους περιέχει το Linear(20, 5); Ποια διάσταση εξόδου για 7 αποκλειστικές κλάσεις;

Απαντήσεις

20×5 + 5 = 105. Χρειάζονται 7 logits.

Δραστηριότητα κατάκτησης — Προϋπολογισμός παραμέτρων

Υπολογίστε σχήματα και παραμέτρους ενός MLP 20 → 8 → 5 → 3, με τις πολώσεις. Προτείνετε στη συνέχεια μια παραλλαγή δύο φορές μικρότερη και προσδιορίστε τι κρατάτε σταθερό για να συγκρίνετε τις δύο. Επιτυχία: κάθε πίνακας είναι σωστά προσανατολισμένος και το πρωτόκολλο δεν αγγίζει το σύνολο δοκιμής.

Διάδοση των διαστάσεων σε ένα MLP

Ανάγνωση: ένα γραμμικό στρώμα αλλάζει την τελευταία διάσταση, ποτέ το μέγεθος της παρτίδας. Για μια ταξινόμηση K κλάσεων, το τελευταίο στρώμα παράγει ακριβώς K logits. Η κύρια παγίδα είναι η εφαρμογή μιας ενεργοποίησης εξόδου ασύμβατης με τη συνάρτηση απώλειας, για παράδειγμα softmax πριν από την CrossEntropyLoss.