Виявлення перенавчання
У цій вправі ми працюватимемо з невеликою підвибіркою прикладів із початкового набору даних із літерами жестової мови. Невелика вибірка разом із моделлю з великою кількістю параметрів зазвичай призводять до перенавчання. Це означає, що ваша модель просто запам'ятає клас кожного прикладу, а не виокремить ознаки, які узагальнюються на багато прикладів.
Ви визначите перенавчання, перевіривши, чи суттєво вища функція втрат на валідаційній вибірці, ніж на тренувальній, і чи зростає вона з подальшим навчанням. За малої вибірки та високої швидкості навчання моделі важко збігатися до оптимуму. Ви встановите низьку швидкість навчання для оптимізатора, що полегшить виявлення перенавчання.
Зауважте, що keras імпортовано з tensorflow.
Ця вправа є частиною курсу
Вступ до TensorFlow на Python
Інструкції до вправи
- Визначте в
kerasпослідовну модель з назвоюmodel. - Додайте перший щільний шар на 1024 вузли, з активацією
reluта вхідною формою (784,). - Встановіть швидкість навчання на 0,001.
- Налаштуйте операцію
fit()так, щоб вона проходила повну вибірку 50 разів і використовувала 50% вибірки для валідації.
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
# Define sequential model
____
# Define the first layer
____
# Add activation function to classifier
model.add(keras.layers.Dense(4, activation='softmax'))
# Finish the model compilation
model.compile(optimizer=keras.optimizers.Adam(lr=____),
loss='categorical_crossentropy', metrics=['accuracy'])
# Complete the model fit operation
model.fit(sign_language_features, sign_language_labels, epochs=____, validation_split=____)