神經網路正規化

使用 Keras 進行影像建模

Ariel Rokem

Senior Data Scientist, University of Washington

Dropout

每個學習步驟:

  • 選出部分單元
  • 在前向傳遞時忽略它
  • 以及在反向傳播誤差時忽略
使用 Keras 進行影像建模

Dropout

使用 Keras 進行影像建模

Keras 中的 Dropout

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 進行影像建模

批次正規化(Batch Normalization)

  • 重新縮放輸出
使用 Keras 進行影像建模

Keras 中的 Batch Normalization

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...