vshokorov / margin_based_ensembles_boosting

Other
0 stars 1 forks source link

Ансамбль с гэпом #4

Open vshokorov opened 2 years ago

vshokorov commented 2 years ago

Пусть $g^k_i$ - значение гэпа при обучении $k$-ой модели ансамбля у $i$-го объекта выборки. $m_i$ - значение марджина в логитах $k$-ой модели y $i$-го объекта выборки.

ГРАФИКИ С АУГМ Сделал 2 типа ансамбля: image

image image

vshokorov commented 2 years ago

image image image image

vshokorov commented 2 years ago

image

image пунктирные линии - без взвешивания ансамбля

vshokorov commented 2 years ago

image

Картинка для худших объектов: image

vshokorov commented 2 years ago

ВСЕ ЧТО ВЫШЕ БЫЛО НЕВЕРНО!!!!!

vshokorov commented 2 years ago

image

vshokorov commented 2 years ago

margin_aug_boost: марджин считается по всем аугментациям изображения margin_boost: 'train.py-CIFAR10_ResNet9_BN_logits/ResNet9_BN_margin_boost_scale_by_logit_CIFAR10_noDA', 'train.py-CIFAR10_ResNet9_BN_logits/ResNet9_BN_no_mean_margin_boost_CIFAR10_noDA', 'train.py-CIFAR10_ResNet9_BN_logits/ResNet9_BN_reverse_margin_boost_CIFAR10_noDA', 'train.py-CIFAR10_ResNet9_BN_logits/ResNet9_BN_reverse_no_mean_margin_boost_CIFAR10_noDA',

vshokorov commented 2 years ago

image image

vshokorov commented 2 years ago

1) base ens - бейзлайн, стандратный ансамбль 2) margin_boost - следующий марджин считается по предыдущей модели 3) mean_cumgap - следующий марджин усредняется по всем предыдущим моделям 4) cumgap - то же что и mean_cumgap, но без усреднения.

Также прикрепляю графики для всего ансамбля (для k моделей в ансамбле). mygif image_2022-07-19_16-01-16 image_2022-07-19_16-01-16 (2)

Итог:

vshokorov commented 2 years ago

image image

идея там такая, у тебя есть множество точек (каждая точка это объект какой-то) х - марджин на первой модели, у - марджин на второй. и на графиках плотность этих точек

идейно: сеть вместо того, чтобы что-то понимать более умное она может просто увеличить логиты в несколько раз тем самым увеличить марджин в n раз. Т.е. сеть может учить не лучший способ разделения объектов а просто в какое-то число раз увеличивать логиты объектов в соответствии с их гэпом. image image

vshokorov commented 2 years ago

image

vshokorov commented 2 years ago

image

vshokorov commented 2 years ago

image

vshokorov commented 2 years ago

Финальные итоговые графики:

Обучалось 5 ансамблей каждого типа, в каждом ансамбле 15 моделей.

обучение без аугментации:

Общие графики:

Click this to collapse/fold.

Графики для последнего ансамбля:

Click this to collapse/fold.

обучение с аугментацией:

Общие графики:

Click this to collapse/fold.

Графики для последнего ансамбля:

Click this to collapse/fold.

vshokorov commented 2 years ago

image

vshokorov commented 2 years ago

Фиксируем аугментации (т.о. "расширяем" датасет) и обучаем без аугментации:

Графики на обычном датасете:

Общие графики:

Click this to collapse/fold.

Графики для последнего ансамбля:

Click this to collapse/fold.

Графики на обучающем ("полным", с аугментацией) датасете:

Общие графики:

Click this to collapse/fold.

Графики для последнего ансамбля:

Click this to collapse/fold.

vshokorov commented 1 year ago

Сделаем маленькую, недопараметризованную модель:

Общие графики:

Click this to collapse/fold.

Графики для последнего ансамбля:

Click this to collapse/fold.

Итог: Точность на трейне повышается на 2% (97->99), но это не приводит к улучшению точности на тесте. Наша гипотеза заключалась в том, что у итогового марджина матожидание не уменьшится, дисперсия не увеличится. Но матожидание и дисперсия уменьшились.

Вторая модель занизила марджин на "уверенных" объектах, а "неуверенные" не трогала. Тем самым сделала более узкой гистограмму. image