Перейти к содержимому
Compvision.ru
BeS

Тренировка сетей на разбалансированных базах

Recommended Posts

Всем привет,

При тренировка сеток для классификации, обычно используются сбалансированные базы с +/- равным числом сэмплов для каждого класса + фона. 

А кто-то имеет опыт тренировки сетей на разбалансированных базах? Например, если я хочу зафайнтюнить какую-то крутую сетку (типа VGG16/googlenet), обученую на ImageNet, при помощи своей базы, содержащей очень много картинок(скажем пару миллионов) некоторого класса (или нескольких классов), то скорей всего при тренировке я убью фичи, которые были получены на ImageNet. Публикаций по теме я не встречал, может кто-то сталкивался с такой проблемой?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А почему они должны убиться? Если скорость обучения маленькая, то веса сползут в ближайший минимум и там останутся.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
58 minutes ago, Smorodov said:

А почему они должны убиться? Если скорость обучения маленькая, то веса сползут в ближайший минимум и там останутся.

В таком случае получается, что не имеет особого смысла файнтюнить на большой базой, т.к. веса не будут уходить из некоторой эпсилон окрестности.

Идея как раз в том, чтобы взять сетку натренированную на ImageNet и как правило показывающую крутые результаты, и задавить в ней фичи не относящиеся к необходимым классам, при этом затюнив нужные фичи...но что-то получается либо чутка веса подергать, либо убить всю предшествующую тренировку...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Скорее всего главная движуха будет в последних слоях, поэтому и потери, в любом случае, будут небольшие.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вообще на данный момент получается, что лучшие результаты дает способ, когда дергаем от крутой сетки сверточные слои и сверху, вместо полносвязанного выхода из сети, довешиваем еще несколько слоев и при тренировке обучаем только последние слои. Но это только для исследовательских задач хорошо, в продакшен такие неприподъемные сетки пихать не хорошо :(

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
3 часа назад, Smorodov said:

Скорее всего главная движуха будет в последних слоях, поэтому и потери, в любом случае, будут небольшие.

Обычно же переобучают только несколько последних слоёв (которые содержат "концепты"), а остальные фиксируют.

Тут показано как фиксировать слои, можно поэкспериментировать

http://vision.stanford.edu/teaching/cs231n/slides/caffe_tutorial.pdf

 

тут вот кстати тест фич габора вместо выученных.

http://eric-yuan.me/fake-cnn/

http://eric-yuan.me/cnn/

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте учётную запись или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать учётную запись

Зарегистрируйтесь для создания учётной записи. Это просто!

Зарегистрировать учётную запись

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас


  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу

×