Junior — Middle
Ի՞նչ է Dropout-ը և ինչպես է այն պահվում ուսուցման և inference ժամանակ:
sobes.tech AI
Պատասխան AI-ից
Dropout-ը խորքային նեյրոնային ցանցերում ռեգուլյացիայի մեթոդ է, որը օգնում է կանխել գերապատկերումը: Տրեյնինգի ժամանակ, մի մաս նեյրոններ պատահականորեն "անջատվում" են (զրոյացվում) նշված հավանականությամբ (օրինակ, 0.5), ինչը ստիպում է ցանցին չվստահել չափազանց շատ առանձին նեյրոնների վրա և բարելավում է նրա ընդհանուր կարողությունը:
Տրեյնինգի (train) փուլում, dropout-ը ակտիվ է՝ նեյրոնները պատահականորեն անջատվում են, և քաշերը թարմացվում են հաշվի առնելով դա:
Ինֆերենսի (inference) փուլում, dropout-ը անջատվում է, բոլոր նեյրոնները ակտիվ են, և ելքերը մածուցկվում են (հաճախ, բազմապատկվում են պահպանման հավանականությամբ), որպեսզի փոխհատուցեն ուսուցման ժամանակ անջատման ազդեցությունը:
PyTorch-ի օրինակ՝
import torch
import torch.nn as nn
մոդել = nn.Sequential(
nn.Linear(10, 20),
nn.Dropout(p=0.5),
nn.ReLU(),
nn.Linear(20, 1)
)
մոդել.train() # dropout ակտիվ
արտածում_ուսուցում = մոդել(torch.randn(1, 10))
մոդել.eval() # dropout անջատված
արտածում_գիտակցում = մոդել(torch.randn(1, 10))