Կատարվել է dropout՝ հիմնված կորուստի կամ պատահական քաշերի հեռացման վրա:
sobes.tech AI
Պատասխան AI-ից
Dropout-ը նեյրոնային ցանցերի ռեգուլյարիզացիայի տեխնիկա է, որի ժամանակ ուսուցման ընթացքում պատահականորեն անջատվում են (զրոյացվում են) որոշ նյարդային նյարդայիններ՝ կանխելու համար գերագնահատումը:
Կան երկու հիմնական մոտեցումներ՝
-
Պատահական նյարդայինների անջատում (dropout): յուրաքանչյուր ուսուցման քայլում, հավանականությամբ p, նյարդայինները զրոյացվում են, ինչը համարժեք է այդ նյարդայինների հետ կապված քաշերի պատահական անջատմանը:
-
Dropout՝ հիմնված կորուստի վրա: քիչ տարածված մոտեցում, որտեղ dropout-ի հավանականությունը կամ քաշերի սանդղակը կախված է սխալի (կորստի) արժեքից կամ այլ մետրիկներից՝ ավելի արդյունավետ կարգավորելու համար ուսուցումը:
Ամենատարածված գրադարաններում (TensorFlow, PyTorch) իրականացվում է դասական պատահական dropout-ը։ Կարգավորումը՝ հիմնված կորուստի վրա, պահանջում է անհատական լուծումներ:
Օրինակ՝ դասական dropout-ի PyTorch-ում:
import torch
import torch.nn as nn
class SimpleNN(nn.Module):
def __init__(self):
super().__init__()
self.fc1 = nn.Linear(100, 50)
self.dropout = nn.Dropout(p=0.5)
self.fc2 = nn.Linear(50, 10)
def forward(self, x):
x = torch.relu(self.fc1(x))
x = self.dropout(x) # պատահական նյարդայինների անջատում
x = self.fc2(x)
return x
Արդյունքում՝ դասական dropout-ը պատահական նյարդայինների անջատում է, ոչ թե քաշերի, և չի կախված ուղղակիորեն կորուստից։