Оё 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 классикии тасодуфӣ хомӯш кардани нейронҳо мебошад, на вазъиятҳо, ва мустақиман аз зиён вобаста нест.