Каковы некоторые полезные методы увеличения данных для глубоких сверточных нейронных сетей?

13

Справочная информация: Недавно я понял на более глубоком уровне важность увеличения данных при обучении сверточных нейронных сетей, увидев этот прекрасный доклад Джеффри Хинтона .

Он объясняет, что сверточные нейронные сети текущего поколения не способны обобщить систему отсчета тестируемого объекта, что затрудняет для сети истинное понимание того, что зеркальные изображения объекта одинаковы.

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

Методы увеличения данных редко сравниваются друг с другом. Следовательно:

Вопросов:

  • В каких документах практикующие сообщили об исключительно высокой производительности?

  • Какие методы увеличения данных вы считаете полезными?

rhadar
источник
Привет @ rhadar, у тебя были какие-нибудь новости? Спасибо :)
nullgeppetto

Ответы:

1

Sec. 1: Увеличение данных Поскольку глубокие сети должны быть обучены на огромном количестве обучающих изображений для достижения удовлетворительной производительности, если исходный набор данных изображений содержит ограниченные обучающие изображения, лучше сделать увеличение данных, чтобы повысить производительность. Кроме того, увеличение объема данных становится тем, что необходимо делать при обучении в глубокой сети.

  • Есть много способов сделать увеличение данных, таких как популярное переворачивание по горизонтали, случайные кадрирования и дрожание цвета. Кроме того,
    вы можете попробовать комбинации нескольких различных обработок, например,
    выполнить вращение и случайное масштабирование одновременно. Кроме того,
    вы можете попытаться повысить насыщенность и значение (компоненты S и V
    цветового пространства HSV) всех пикселей до степени между 0,25 и 4 (то же самое
    для всех пикселей в патче), умножив эти значения в
    0,7 раза и 1.4, и добавьте к ним значение от -0,1 до 0,1.
    Кроме того, вы можете добавить значение между [-0,1, 0,1] к оттенку (
    компонент H HSV) всех пикселей в изображении / патче.

  • Крижевский и соавт. 1 предложила модный PCA при обучении знаменитого Alex-Net в 2012 году. Модный PCA изменяет интенсивность
    каналов RGB в обучающих изображениях. На практике вы можете сначала выполнить PCA для набора значений пикселей RGB на всех ваших тренировочных изображениях. А
    затем для каждого обучающего изображения просто добавьте следующее количество к
    каждому пикселю изображения RGB (т. Е. I_ {xy} = [I_ {xy} ^ R, I_ {xy} ^ G, I_ {xy} ^ B] ^ T ):
    [bf {p} _1, bf {p} _2, bf {p} _3] [alpha_1 lambda_1, alpha_2 lambda_2, alpha_3
    lambda_3] ^ T где, bf {p} _i и lambda_i - i-й собственный вектор и
    собственное значение 3 × 3 ковариационной матрицы значений пикселей RGB
    соответственно, а alpha_i является случайной величиной, взятой из гауссовой
    со средним нулем и стандартным отклонением 0,1. Обратите внимание, что каждый
    alpha_i рисуется только один раз для всех пикселей определенного
    тренировочного изображения, пока это изображение не будет снова использовано для обучения. То есть
    , когда модель снова встречает тот же тренировочный образ, она
    случайным образом генерирует еще один alpha_i для увеличения данных. В 1 они
    утверждали, что «причудливый PCA может приблизительно захватить важное
    свойство естественных изображений, а именно, что идентичность объекта инвариантна к изменениям интенсивности и цвета освещения». Что
    касается эффективности классификации, эта схема позволила сократить число ошибок топ-1
    более чем на 1% в конкурсе ImageNet 2012.

(Источник: Должны знать Советы / Трюки в Глубоких Нейронных Сетях (автор Xiu-Shen Wei)

Патрик Конвей
источник