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))