Шаг 107.
Глубокое обучение на Python. ... пример классификации в несколько классов. Важность использования достаточно больших промежуточных слоев

    На этом шаге мы продемонстрируем эту важность.

    Как вы помните, не следует использовать слои, в которых значительно меньше 46 нейронов, потому что результат является 46-мерным. Давайте посмотрим, что получится, если образуется узкое место для информации из-за промежуточных слоев с размерностями намного меньше 46, например четырехмерных.


Пример 4.22. Модель с узким местом для информации
model = keras.Sequential([
    layers.Dense(64, activation="relu"),
    layers.Dense(4, activation="relu"),
    layers.Dense(46, activation="softmax")
])
model.compile(optimizer="rmsprop",
              loss="categorical_crossentropy",
              metrics=["accuracy"])
model.fit(partial_x_train,
          partial_y_train,
          epochs=20,
          batch_size=128,
          validation_data=(x_val, y_val))

Блокнот с классификацией в несколько классов можно взять здесь.

    Теперь модель показывает точность ~71% - абсолютное падение составило 8% . Оно обусловлено в основном попыткой сжать большой объем информации (достаточной для восстановления гиперплоскостей, разделяющих 46 классов) в промежуточное пространство со слишком малой размерностью. Модели удалось вместить бОльшую часть необходимой информации в эти четырехмерные представления, но не всю.

    На следующем шаге мы наметим дальнейшие эксперименты.




Предыдущий шаг Содержание Следующий шаг