Sobes.tech
Junior — Middle

Τι είναι το Dropout και πώς συμπεριφέρεται κατά τη διάρκεια της εκπαίδευσης και της inference;

sobes.tech AI

Απάντηση από AI

Το Dropout είναι μια μέθοδος κανονικοποίησης σε βαθιά νευρωνικά δίκτυα που βοηθά στην πρόληψη του υπερπροσαρμογής. Κατά τη διάρκεια της εκπαίδευσης, ένα μέρος των νευρώνων "απενεργοποιείται" τυχαία (μηδενίζεται) με μια δοσμένη πιθανότητα (π.χ., 0,5), αναγκάζοντας το δίκτυο να μην βασίζεται υπερβολικά σε μεμονωμένους νευρώνες και βελτιώνοντας την ικανότητά του να γενικεύει.

Στο στάδιο εκπαίδευσης (train), το dropout είναι ενεργό: οι νευρώνες απενεργοποιούνται τυχαία και τα βάρη ενημερώνονται λαμβάνοντας υπόψη αυτό.

Στο στάδιο inference (inference), το dropout απενεργοποιείται, όλοι οι νευρώνες είναι ενεργοί και οι έξοδοι κλιμακώνονται (συνήθως πολλαπλασιάζονται με την πιθανότητα διατήρησης του νευρώνα) για να αντισταθμίσουν το αποτέλεσμα της απενεργοποίησης κατά τη διάρκεια της εκπαίδευσης.

Παράδειγμα σε PyTorch:

import torch
import torch.nn as nn

model = nn.Sequential(
    nn.Linear(10, 20),
    nn.Dropout(p=0.5),
    nn.ReLU(),
    nn.Linear(20, 1)
)

model.train()  # ενεργοποιημένο dropout
output_train = model(torch.randn(1, 10))

model.eval()   # απενεργοποιημένο dropout
output_eval = model(torch.randn(1, 10))