- Neural Networks with Keras Cookbook
- V Kishore Ayyadevara
- 225字
- 2021-07-02 12:46:29
Overcoming overfitting using dropout
In the previous section of overcoming overfitting using regularization, we used L1/ L2 regularization as a means to avoid overfitting. In this section, we will use another tool that is helpful to achieve the same—dropout.
Dropout can be considered a way in which only a certain percentage of weights get updated, while the others do not get updated in a given iteration of weight updates. This way, we are in a position where not all weights get updated in a weight update process, thus avoiding certain weights to achieve a very high magnitude when compared to others:
model = Sequential()
model.add(Dense(1000, input_dim=784, activation='relu'))
model.add(Dropout(0.75))
model.add(Dense(10, activation='softmax'))
model.compile(loss='categorical_crossentropy', optimizer=adam, metrics=['accuracy'])
history = model.fit(X_train, y_train, validation_data=(X_test, y_test), epochs=100, batch_size=1024, verbose=1)
In the preceding code, we have given a dropout of 0.75; that is, randomly, 75% of weights do not get updated in a certain weight update iteration.
The preceding would result in the gap between the training and test accuracy being not as high as it is when the model was built without dropout in the previous scenario, where the spread of weights was higher.
Note the histogram of weights of the first layer now:
plt.hist(model.get_weights()[-2].flatten())

Note that in the preceding scenario, the frequency count of weights that are beyond 0.2 or -0.2 is less when compared to the 100-epochs scenario.
- AngularJS Testing Cookbook
- Monkey Game Development:Beginner's Guide
- 神經網絡編程實戰:Java語言實現(原書第2版)
- Mastering PHP Design Patterns
- Building a Recommendation Engine with Scala
- Python 3破冰人工智能:從入門到實戰
- Learning Concurrent Programming in Scala
- Python爬蟲、數據分析與可視化:工具詳解與案例實戰
- 代碼閱讀
- IoT Projects with Bluetooth Low Energy
- 玩轉.NET Micro Framework移植:基于STM32F10x處理器
- UML基礎與Rose建模實用教程(第三版)
- Android高級開發實戰:UI、NDK與安全
- Google Adsense優化實戰
- 程序員的英語