Регуляризация нейронных сетей

Моделирование изображений с помощью Keras

Ariel Rokem

Senior Data Scientist, University of Washington

Dropout

На каждом шаге обучения:

  • Выбирается подмножество нейронов
  • Оно игнорируется в прямом проходе
  • И при обратном распространении ошибки
Моделирование изображений с помощью Keras

Dropout

Моделирование изображений с помощью Keras

Dropout в Keras

from keras.models import Sequential
from keras.layers import Dense, Conv2D, Flatten, Dropout

model = Sequential() model.add(Conv2D(5, kernel_size=3, activation='relu', input_shape=(img_rows, img_cols, 1)))
model.add(Dropout(0.25))
model.add(Conv2D(15, kernel_size=3, activation='relu')) model.add(Flatten()) model.add(Dense(3, activation='softmax'))
Моделирование изображений с помощью Keras

Пакетная нормализация

  • Масштабирование выходных значений
Моделирование изображений с помощью Keras

Пакетная нормализация в Keras

from keras.models import Sequential
from keras.layers import Dense, Conv2D, Flatten, BatchNormalization 


model = Sequential() model.add(Conv2D(5, kernel_size=3, activation='relu', input_shape=(img_rows, img_cols, 1)))
model.add(BatchNormalization())
model.add(Conv2D(15, kernel_size=3, activation='relu')) model.add(Flatten()) model.add(Dense(3, activation='softmax'))
Моделирование изображений с помощью Keras

Будьте осторожны при совместном использовании!

Конфликт между dropout и пакетной нормализацией

Моделирование изображений с помощью Keras

Давайте потренируемся!

Моделирование изображений с помощью Keras

Preparing Video For Download...