Sobes.tech
Junior — Middle

რა არის Dropout და როგორ იქცევა ის ტრენინგსა და inference-ზე?

sobes.tech AI

პასუხი AI-სგან

Dropout, რომელიც ღრმა ნეირონული ქსელების რეგულაციის მეთოდია, ეხმარება გადამზადების გადაჭარბებას. ტრენინგის დროს, ნაწილობრივ ნეირონები შემთხვევით "გამორთულია" (ნულდება) მითითებული ალბათობით (მაგალითად, 0.5), რაც აიძულებს ქსელს არ იყოს ძალიან დამოკიდებული ინდივიდუალურ ნეირონებზე და აუმჯობესებს მისი ზოგადობის უნარს.

ტრენინგის ეტაპზე (train), dropout აქტიურია: ნეირონები შემთხვევით გამორთულია და წონები განახლდება ამ ფაქტორის გათვალისწინებით.

ინფერენციის ეტაპზე (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))