Sobes.tech
Middle

Կատարվել է dropout՝ հիմնված կորուստի կամ պատահական քաշերի հեռացման վրա:

sobes.tech AI

Պատասխան AI-ից

Dropout-ը նեյրոնային ցանցերի ռեգուլյարիզացիայի տեխնիկա է, որի ժամանակ ուսուցման ընթացքում պատահականորեն անջատվում են (զրոյացվում են) որոշ նյարդային նյարդայիններ՝ կանխելու համար գերագնահատումը:

Կան երկու հիմնական մոտեցումներ՝

  1. Պատահական նյարդայինների անջատում (dropout): յուրաքանչյուր ուսուցման քայլում, հավանականությամբ p, նյարդայինները զրոյացվում են, ինչը համարժեք է այդ նյարդայինների հետ կապված քաշերի պատահական անջատմանը:

  2. 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-ը պատահական նյարդայինների անջատում է, ոչ թե քաշերի, և չի կախված ուղղակիորեն կորուստից։