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

մոդել = 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))