我正在使用keras來實現一個簡單的二進制分類網絡。我有一個包含2個類別的數據集,我正在嘗試使用這些數據來訓練我的網絡。我沒有龐大的數據集。在這兩個類別的圖像總數是500左右簡單的CNN的不平衡訓練和測試準確性
網絡是如下:
self.model = Sequential()
self.model.add(Conv2D(128, (2, 2), padding='same', input_shape=dataset.X_train.shape[1:]))
self.model.add(Activation('relu'))
self.model.add(MaxPooling2D(pool_size=(2, 2)))
self.model.add(Dropout(0.25))
self.model.add(Conv2D(64, (2, 2), padding='same'))
self.model.add(Activation('relu'))
self.model.add(MaxPooling2D(pool_size=(2, 2)))
self.model.add(Dropout(0.25))
SGD配置:
sgd = SGD(lr=0.01, decay=1e-6, momentum=0.9, nesterov=True)
我使用binary_crossentropy
我只是想知道爲什麼圖中有很多大的峯值,以及我能做些什麼來優化它。
我是新手,因此任何意見和建議將不勝感激。
謝謝!
這就是爲什麼它被稱爲**隨機**漸變下降。通過在每次迭代中使用小批量而不是整個數據集,梯度只是真實梯度的噪聲估計。因此,錯誤圖的行爲有點像隨機遊走。只要沒有重大的數值不穩定性,就不需要對其進行優化。 – Kh40tiK