BaşlayınÜcretsiz başlayın

Dropout ile aşırı uyumu engelleme

Yapay sinir ağlarında yaygın bir sorun, eğitim verisine aşırı uyum sağlamalarıdır. Bu, R\(^2\) veya doğruluk gibi puanlama ölçütünün eğitim kümesi için yüksek, ancak test ve doğrulama kümeleri için düşük olması ve modelin eğitim verisindeki gürültüye uyması anlamına gelir.

Dropout kullanarak aşırı uyumu önlemeye çalışabiliriz. Bu, eğitim aşamasında bazı nöronları rastgele devre dışı bırakır ve ağın eğitim verisindeki gürültüye uymasını engellemeye yardımcı olur. keras içinde bunu yapmak için kullanabileceğimiz bir Dropout katmanı vardır. Eğitim sırasında devre dışı bırakılan bağlantıların oranı olan dropout oranını ayarlamamız gerekir. Bu oran, Dropout() katmanında 0 ile 1 arasında ondalık bir değer olarak belirlenir.

Bu model için ortalama kare hata kayıp fonksiyonuna geri dönüyoruz.

Bu egzersiz, kursun bir parçasıdır

Python ile Finans için Machine Learning

Kursa Göz Atın

Egzersiz talimatları

  • Modele ilk Dense katmandan sonra bir dropout katmanı (Dropout()) ekle ve dropout oranı olarak %20 (0.2) kullan.
  • Modeli .compile() içinde derlerken adam optimize edicisini ve mse kayıp fonksiyonunu kullan.
  • Modeli scaled_train_features ve train_targets üzerinde 25 epoch boyunca eğit.

Uygulamalı etkileşimli egzersiz

Bu egzersizi bu örnek kodu tamamlayarak deneyin.

from keras.layers import Dropout

# Create model with dropout
model_3 = Sequential()
model_3.add(Dense(100, input_dim=scaled_train_features.shape[1], activation='relu'))
model_3.add(____)
model_3.add(Dense(20, activation='relu'))
model_3.add(Dense(1, activation='linear'))

# Fit model with mean squared error loss function
model_3.compile(optimizer=____, loss=____)
history = model_3.fit(____, ____, epochs=____)
plt.plot(history.history['loss'])
plt.title('loss:' + str(round(history.history['loss'][-1], 6)))
plt.show()
Kodu Düzenle ve Çalıştır