Pull to refresh

Comments 6

Обучаем его только на тренировочной выборке, чтобы он не подстраивался под тест — так score модели после теста будет ближе к score'у на реальных данных

Очевидно, что в этом случае разницы никакой не будет, потому что
чиселки принимают значения от 0 до 15.

А если в учебный набор попадёт только отрезок [0, 14], то нормализация уже не поможет.
Кажется, вы описываете Bagging скорее как «голосующий ансамбль моделей», а главная суть его при этом совсем другая. «Бэггинг (от англ. Bagging = Bootstrap aggregating) предложил Лео Брейман в 1994 для улучшения классификации путём комбинирования классификации случайно сгенерированных тренировочных наборов.» (Википедия)
Хотя может вы и имели это в виду под фразой «обучаются независимо», но всё же главное тут не как смешивать модели (смешивание в бэггинге может быть простым усреднением моделей с одинаковыми весами), а как выбирать для моделей тренировочные данные — вся суть в этой самой случайной подвыборке тренировочных данных для смешиваемых моделей. :)

Да, спасибо, я забыл четко отразить это в описании алгоритма. Мне хотелось выделить что-то общее в работе ансамблей, поэтому потерял в детализации

И, кстати, понятно, почему bagging хорошо работает для набора данных MNIST — там есть некоторое количество неправильно размеченных изображений цифр и для моделей только на пользу, если какое-то количество неправильно размеченных данных не попадёт в тренировочную выборку и модель на них не «переобучится». А после усреднения результатов всех моделей дополнительно нивелируется эффект от всё же попавших в обучающих выборку каждой конкретной модели неправильно размеченных данных.
Хорошая статья для начинающих — много полезного для себя подчерпнул.

Единственное: у меня вопрос. Судя по документации Pytorch CrossEntropyLoss уже включает в себя LogSoftmax. Подозреваю именно поэтому у меня не работают подобные схемы: где на выходе сети Softmax, а в качестве лосса — CrossEntropyLoss… Т.е. цикл обучения идет, но лосс не снижается — как будто градиент не проходит. А если убрать Softmax с выхода сети — то все работает. Где-то даже попадалось, что если CrossEntropy, то Softmax не нужен.

Может конечно торч изменился со времен публикации статьи? ;)

Ну или я чего-то не понимаю, что тоже вполне вероятно!
Sign up to leave a comment.

Articles