Zərər və ya təsadüfi çəkilərin çıxarılması əsasında dropout edildi mi?
sobes.tech Süni İntellekt
AI-dan cavab
Dropout neyron şəbəkələrinin tənzimlənməsi texnikasıdır və təlim zamanı təsadüfi olaraq bəzi neyronlar "söndürülür" (sıfırlanır), bu da aşırı öyrənmənin qarşısını alır.
İki əsas yanaşma mövcuddur:
-
Təsadüfi neyronların söndürülməsi (dropout): hər təlim addımında, ehtimal p ilə, neyronlar sıfırlanır, bu da bu neyronlarla əlaqəli çəkilərin təsadüfi olaraq deaktivləşdirilməsi ilə eynidir.
-
Zərər əsasında Dropout: daha az yayılmış yanaşma, burada dropout ehtimalı və ya çəkilərin miqyası səhv (zərər) dəyəri və ya digər metriklərdən asılıdır və təlimi daha effektiv tənzimləmək üçün istifadə olunur.
Ən çox istifadə olunan kitabxanalarda (TensorFlow, PyTorch) klassik təsadüfi dropout tətbiq edilir. Zərər əsasında tətbiq xüsusi həllər tələb edir.
PyTorch-də klassik dropout nümunəsi:
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) # təsadüfi neyron söndürmə
x = self.fc2(x)
return x
Nəticədə, klassik dropout təsadüfi neyron söndürmədir, çəkilərin yox, və birbaşa zərərdən asılı deyil.