Sobes.tech
Junior — Middle

Dropout nima va u trening va inference vaqtida qanday harakat qiladi?

sobes.tech AI

AIdan javob

Dropout — bu chuqur neyron tarmoqlarda regulyatsiya usuli bo‘lib, u ortiqcha moslashishni oldini oladi. Trening vaqtida, neyronlarning qismi tasodifan "o‘chiriladi" (nullga o‘tkaziladi) belgilangan ehtimollik bilan (masalan, 0.5), bu tarmoqni alohida neyronlarga juda qaram bo‘lishdan saqlaydi va umumiylashuv qobiliyatini yaxshilaydi.

Trening bosqichida (train) dropout faol: neyronlar tasodifan o‘chiriladi va og‘irliklar bu holatni hisobga olgan holda yangilanadi.

Inferensiya bosqichida (inference), dropout o‘chiriladi, barcha neyronlar faol va chiqishlar (odatda, neyronni saqlash ehtimolligi bilan ko‘paytiriladi) o‘lchovga olinadi, bu trening vaqtida o‘chirish ta’sirini qoplash uchun.

PyTorch misoli:

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 faollashgan
output_train = model(torch.randn(1, 10))

model.eval()   # dropout o‘chirilgan
output_eval = model(torch.randn(1, 10))