训练神经网络进行回归总是可以预测均值
我正在训练一个简单的卷积神经网络进行回归,其中的任务是预测图像中盒子的(x,y)位置,例如: 网络的输出有两个节点,一个用于x,一个用于y。网络的其余部分是标准的卷积神经网络。损失是盒子的预测位置和地面真实位置之间的标准均方误差。我正在训练10000张这些图像,并在2000年进行验证。 我的问题是,即使经过大量培训,损失也不会真正减少。观察网络的输出后,我注意到对于两个输出节点,网络都倾向于输出接近零的值。这样,盒子位置的预测始终是图像的中心。预测中存在一些偏差,但始终在零附近。下面显示了损失: 我已经运行了比此图所示更多的时期,并且损失仍然从未减少。有趣的是,损失实际上增加了一点。 因此,似乎网络只是在预测训练数据的平均值,而不是学习合适的数据。关于这可能是什么的任何想法?我使用Adam作为优化器,初始学习率为0.01,并将relus作为激活 如果您对我的某些代码(Keras)感兴趣,请参见以下代码: # Create the model model = Sequential() model.add(Convolution2D(32, 5, 5, border_mode='same', subsample=(2, 2), activation='relu', input_shape=(3, image_width, image_height))) model.add(Convolution2D(64, 5, 5, border_mode='same', subsample=(2, 2), activation='relu')) model.add(Convolution2D(128, 5, 5, border_mode='same', subsample=(2, 2), activation='relu')) model.add(Flatten()) model.add(Dense(100, activation='relu')) model.add(Dense(2, activation='linear')) # Compile the model adam = Adam(lr=0.01, beta_1=0.9, …