首页 > 解决方案 > 为什么添加更多层会使我的中性网络变得更糟?

问题描述

我有点困惑......我首先开始:

model = Sequential()    # (32, 32, 3)
model.add(Conv2D(4, (3, 3), activation='relu', input_shape=input_shape))
model.add(Conv2D(8, (3, 3), activation='relu'))
model.add(MaxPooling2D(pool_size=(2, 2))) 
model.add(Dropout(0.25)) 

model.add(Flatten())
model.add(Dense(16, activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(2, activation='softmax'))

还有两个模型,其中一个额外的块在模型 2 中Conv2D, Conv2D, MaxPool, Dropout具有 16 和 32 个卷积滤波器,在模型 3 中具有两个额外的块,具有 16、32、64、128 卷积滤波器。我的最大准确率分别约为 75%、78%、82%……

然后我将第一个模型的 Conv2D 中的过滤器数量更改为 16 和 32,将平面层中的节点数量更改为 300,并获得 97% 的准确率。但是,更改模型 2 和 3,它们与模型 1 基本相同,但层数更多,并没有提高准确性,实际上反而使情况变得更糟……我在额外的 Conv 层中尝试了不同数量的过滤器和不同数量的平面层中的节点,从 300 到 1500,但似乎没有什么不同。无论如何,层数最少的第一个模型似乎做得最好。

这是为什么?

标签: neural-networkconv-neural-networkconvolutional-neural-network

解决方案


推荐阅读