CIFAR-10 архитектура python

#python #keras #deep-learning #conv-neural-network

#python #keras #глубокое обучение #conv-нейронная сеть

Вопрос:

Я следую этому руководству здесь.

 model = Sequential()
model.add(Conv2D(32, (3, 3), activation='relu', kernel_initializer='he_uniform', padding='same', input_shape=(32, 32, 3)))
model.add(Conv2D(32, (3, 3), activation='relu', kernel_initializer='he_uniform', padding='same'))
model.add(MaxPooling2D((2, 2)))
model.add(Conv2D(64, (3, 3), activation='relu', kernel_initializer='he_uniform', padding='same'))
model.add(Conv2D(64, (3, 3), activation='relu', kernel_initializer='he_uniform', padding='same'))
model.add(MaxPooling2D((2, 2)))
model.add(Conv2D(128, (3, 3), activation='relu', kernel_initializer='he_uniform', padding='same'))
model.add(Conv2D(128, (3, 3), activation='relu', kernel_initializer='he_uniform', padding='same'))
model.add(MaxPooling2D((2, 2)))

model.add(Flatten())
model.add(Dense(128, activation='relu', kernel_initializer='he_uniform'))
model.add(Dense(10, activation='softmax'))

  

Я пытаюсь понять данный код, который использует набор данных CIFAR-10.

  • почему он использует kernel_initializer='he_uniform'?

  • почему он выбрал 128 для плотного слоя?

  • что произойдет, если мы добавим более плотный слой в код, например:
    model.add(Dense(512, activation='relu', kernel_initializer='he_uniform'))

  • есть ли какой-либо способ повысить точность модели?

  • какова была бы подходящая скорость отсева?

Ответ №1:

почему он использует kernel_initializer='he_uniform' ?

Веса в слое нейронной сети инициализируются случайным образом. Но как? Какому дистрибутиву они должны следовать? he_uniform это стратегия для инициализации весов этого слоя.

почему он выбрал 128 для плотного слоя?

Это было выбрано произвольно.

Что произойдет, если мы добавим более плотный слой в код, например:
model.add(Dense(512, activation='relu', kernel_initializer='he_uniform'))

Я полагаю, вы имеете в виду добавить их туда, где находится другой слой с плотностью 128 нейронов (там это не нарушит модель). Модель станет глубже и будет иметь гораздо большее количество параметров (т. Е. Ваша модель станет более сложной) с любыми положительными или отрицательными сторонами, сопутствующими этому.

какова была бы подходящая скорость отсева?

Обычно вы видите значения в диапазоне [0,2, 0,5]. Более высокие скорости уменьшают переобучение, но могут привести к тому, что обучение станет более нестабильным.