Dropout neyron şəbəkələrində aşırı öyrənmənin qarşısını necə alır?
sobes.tech Süni İntellekt
AI-dan cavab
Dropout neyron şəbəkələrində overfitting-i qarşısını alan texnikadır və təlim zamanı təsadüfi olaraq neyronların bir hissəsini "söndürür" (sıfırlayır). Bu, şəbəkənin tək-tək neyronlara və onların əlaqələrinə çox asılı olmasını önləyir və daha dayanıqlı və ümumiləşdirici xüsusiyyətlər öyrənməsinə kömək edir.
Fikir odur ki, hər təlim keçidində şəbəkənin təsadüfi kiçik bir alt dəstəsi yaradılır, bu da müxtəlif modellərin ansamblını öyrətməyə bənzəyir. Nəticədə, model çox öyrənməyə daha az meylli olur, çünki o, səs-küyü və ya xüsusi təlim dəstəyinin detalları yadda saxlaya bilmir.
Keras-də dropout-un istifadəsi nümunəsi:
from tensorflow.keras.layers import Dropout, Dense
from tensorflow.keras.models import Sequential
model = Sequential([
Dense(128, activation='relu', input_shape=(input_dim,)),
Dropout(0.5), # təsadüfi olaraq 50% neyronu söndürür
Dense(10, activation='softmax')
])
Burada, Dropout ehtimalı 0.5 olan Dropout, təlim zamanı qatlamdakı neyronların yarısını söndürür.