Почему добавление большего количества слоев ухудшает мою нейтральную сеть? - PullRequest
0 голосов
/ 07 июня 2018

Я немного запутался ... Сначала я начал с:

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'))

и еще двух моделей с одним дополнительным блоком Conv2D, Conv2D, MaxPool, Dropout с 16 и 32 фильтрами конв в модели2 и двумя дополнительными блоками с16, 32, 64, 128, конв фильтры в модели3.Я получил максимальную точность около 75%, 78%, 82% соответственно ...

, затем я изменил количество фильтров в Conv2D в первой модели на 16 и 32, а также количество узлов в плоском слоедо 300, и получил точность 97%.Тем не менее, изменение моделей 2 и 3, которые по существу совпадают с моделью 1, но с большим количеством слоев, не улучшило точность и фактически ухудшило ее ... Я пробовал различное количество фильтров в дополнительных слоях Conv и другое количествоузлы в плоском слое, от 300 до 1500, но, похоже, ничего не меняет дело.Несмотря ни на что, первая модель с наименьшим количеством слоев, кажется, работает лучше всего.

Почему это так?

...