Данные обучения

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

Данные обучения не имеют большого количества вариаций, и есть ложная корреляция в виде корреляции с цветом. Все крестики синие, плюс красные.

Мы создаем около 10к обучающих образов. Данные теста IID будут случайным образом взяты из синтетических данных для оценки теста IID.

Функции генерации данных показаны ниже:

Тестовые данные

Эти знаки мы рисуем грубыми мазками на бумаге и делаем снимки с разных ракурсов. Таким способом было собрано около 500 изображений, они используются только для тестирования. Мы отмечаем, что эти данные не распространяются (OOD) для синтетического набора данных обучения.

Данные суровых испытаний

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

Инвариантность по дизайну

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

Шаги, необходимые для инвариантности по замыслу, следующие:

1. Problem Definition
2. List of Invariances
3. Explicit Requirements
4. Evaluation Method

Определение проблемы

Мы намерены создать нейронную сеть, которая будет принимать изображения знаков, снятых с камеры, и предсказывать класс.

Перечисление инвариантов по причинным рассуждениям

Эксперты по доменам говорят нам, что:

  1. Знаки могут быть произвольной расцветки.
  2. Знаки могут быть нарисованы обычными ручными движениями или напечатаны электронным способом.
  3. Изображения можно было делать под разными углами и ракурсами.
  4. Знаки на изображениях могут быть не по центру
  5. Качество изображения может отличаться, и это может быть шум.

Давайте рассмотрим проблему и отделим атрибуты предметной области от причинных свойств, перечислив их как желаемые инварианты, которые должны быть встроены в модель:

Масштаб: поскольку масштаб не влияет на метку класса, он является атрибутом домена. Расстояние между камерой и знаком может меняться, как и масштабирование камеры, что приводит к появлению знаков разного масштаба. Следовательно, эта вариация является обычным явлением, и для сети важно обеспечить ее инвариантность.

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

Перевод: поскольку перевод не влияет на метку класса, это атрибут домена. Эксперты в предметной области говорят нам, что знаки не всегда центрируются в кадре. Следовательно, это ожидаемое изменение, и важно добиться его инвариантности.

Перспектива: Как мы видим, изменение перспективы, вызванное относительной позой камеры и знака, не влияет на метку, следовательно, это атрибут домена.

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

Яркость и контраст. Такие свойства изображения, как яркость, контрастность и насыщенность, не влияют на этикетку. Это атрибуты предметной области, которые могут изменяться в зависимости от камеры или освещения в сцене, и важно добиться их неизменности.

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

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

Мы установили желаемые инварианты с помощью причинных рассуждений, и теперь мы переведем их в требования.

Требования

Эксперты в предметной области и практики должны работать вместе, чтобы разработать системное требование с учетом варианта использования. Перечислим требования к этой задаче:

  1. Система должна иметь точность ›97%
  2. Система должна быть инвариантной к трансляции, масштабу, яркости, контрасту, размытию, шуму, качеству изображения, размеру штриха со стоимостью домена менее 2%.

Метод оценки

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

Aggregate Performance Invariance Test
1. Measure accuracy on test set
2. Measure Accuracy on test set with random perturbations in domain attribute
3. Discrepancy in accuracy is the domain cost of that attribute, for invariance domain cost should be close to 0.

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

Цветовая инвариантность

# torch vision transforms
transforms.ColorJitter(brightness=0, contrast=0, saturation=0, hue=0.3)

Это приведет к случайному изменению цвета, данные теста IID с этим вмешательством показаны ниже.

Инвариантность яркости и контрастности

# torch vision transforms
transforms.ColorJitter(brightness=0.8, contrast=0.7, saturation=0.8, hue=0)

Аффинная инвариантность (перенос, вращение, масштаб)

# torch vision transforms
transforms.RandomAffine(degrees=180, translate=(0.15, 0.15), scale=(0.85, 1.05))

Перспективная инвариантность

# torch vision transforms
transforms.RandomPerspective(distortion_scale=0.6, p=1, fill=255)

Инвариантность шума / размытия

# Imgaug data augmentation package
seq = iaa.Sequential(
 [

 iaa.SomeOf((1,2),
 [

 iaa.OneOf([
 iaa.AdditiveGaussianNoise(loc=0, scale=(0.0, 0.15*255), per_channel=0.5),
 iaa.AdditivePoissonNoise(lam=(0,15), per_channel=True),
]),
iaa.SaltAndPepper(0.05, per_channel=True),
# blurring
 iaa.OneOf([
 iaa.GaussianBlur((0, 3.0)),
 iaa.AverageBlur(k=(2, 15)),
 
 ]),
 
 iaa.MotionBlur(k=(3, 20), angle=(0, 360),direction=(-1.0, 1.0)),
 
 ]),
],
random_order=True,
)

Сток

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

Оценка инвариантности OOD

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

Проведение экспериментов

Для понимания мы проводим несколько экспериментов, постепенно добавляя новые инварианты. Более подробное обсуждение планируемых дополнений данных для обеспечения неизменности предметной области читайте: Переосмысление дополнений данных: причинная перспектива

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

model = torchvision.models.AlexNet(num_classes=2)
Epochs = 30
criterion = nn.CrossEntropyLoss()
optimizer = optim.SGD(model.parameters(), lr=0.001, momentum=0.9)
exp_lr_scheduler = lr_scheduler.StepLR(optimizer, step_size=10, gamma=0.1)

Эксперимент 1. Наивная базовая модель

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

Как мы видим, эта модель плохо справляется с обоими наборами данных OOD, при этом достигая идеальных результатов на данных тестирования IID. Данные испытаний IID также имели такую ​​же ложную корреляцию между цветом и меткой, модель, вероятно, рассматривает только цвет для классификации. У него огромная стоимость домена, связанная с искажением цвета. Он кажется неизменным для аффинности и перспективы с нулевой стоимостью домена, без каких-либо изменений этих атрибутов в обучающих данных. Но это может быть связано с тем, что он смотрит только на цвет, а не на форму, поэтому геометрические преобразования не влияют на прогноз.

Эксперимент 2: модель с инвариантным цветом

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

Характеристики IID по-прежнему идеальны, хотя модель больше не полагается на цвет. Мы видим, что сейчас их стоимость не связана с цветовыми возмущениями. Только когда атрибут цветовой области был рандомизирован, сеть заставляет искать другие отношения, которые могли бы соответствовать входным данным для меток. Эта инвариантная цветная модель лучше работает в наборах данных OOD, чем наивная модель, поэтому мы защитились от одного источника сбоев.

Теперь, когда ложная корреляция с цветом устранена и модель полагается на форму, мы можем видеть, что существует стоимость домена из-за геометрических возмущений (аффинных и перспективных). Эти инварианты становятся важными для классификатора на основе формы.

Эксперимент 3. Модель, инвариантная к домену

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

## Complete Data Augmentation Strategy
## Imgaug Package

seq = iaa.Sequential(
 [
 # Apply the following augmenters to most images. 
 
# perspective
 iaa.Sometimes(0.8,
   iaa.OneOf([
     iaa.Affine(
       scale={“x”: (0.8, 1.2), “y”: (0.8, 1.2)},
       translate_percent={“x”: (-0.2, 0.2), “y”: (-0.2, 0.2)},
       rotate=(-180, 180),
       shear=(-10, 10),
       order=[0, 1],
       cval=(0, 255),
       mode= ‘edge’
     ),
     iaa.CropAndPad(percent=(-0.3, 0.3), pad_mode=’edge’),
     iaa.PerspectiveTransform(scale=(0.05, 0.15), mode= ‘replicate’)
     ])
  ),
 
 iaa.Sometimes(0.7,
   iaa.SomeOf((1,2),
   [
 
     # noise and dropout
     iaa.OneOf([
     iaa.AdditiveGaussianNoise(loc=0, scale=(0.0, 0.15*255), 
                             per_channel=0.5),
     iaa.AdditivePoissonNoise(lam=(0,15), per_channel=True),
   ]),
# blurring
 iaa.OneOf([
   iaa.GaussianBlur((0, 3.0)),
   iaa.AverageBlur(k=(2, 15)),
 
   ]),
 
 iaa.MotionBlur(k=(3, 20), angle=(0, 360),direction=(-1.0, 1.0)),
 iaa.SaltAndPepper(0.05, per_channel=True),
 
 ])),
],
random_order=False,
)
transforms.ColorJitter(brightness=0, contrast=0, saturation=0, hue=0.5),
transforms.ColorJitter(brightness=0.6, contrast=0.6, saturation=0.6, hue=0),

Как мы видим, эта модель по-прежнему дает идеальные результаты на наборе данных IID, но также инвариантна ко всем свойствам, проверяемым инвариантно путем вмешательства. Стоимость всех доменов ниже 2%. Но стоимость домена для набора данных, нарисованного от руки, по-прежнему составляет 4%, это одно идентифицированное свойство, размер штриха, которое мы еще не рандомизировали. Отсутствие инвариантности к размеру штриха может быть причиной такой стоимости домена.

Эксперимент 3: модель инвариантности домена 2

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

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

Измененные функции генерации данных показаны ниже:

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

Мы видим, что эта модель отлично работает на наборе тестов IID и инвариантна для всех тестируемых атрибутов домена со стоимостью домена = ‹2%. Мы также не знаем, что эта модель теперь дает идеальные результаты для нарисованного вручную набора данных OOD. Таким образом, мы успешно рандомизировали все атрибуты домена, которые различались в синтетических данных и нарисованных от руки реальных данных. Включение всех инвариантов позволило нам изучить причинно-следственные особенности, которые идеально обобщаются для этих данных OOD.

Мы видим, что эта модель очень хорошо работает на 94% даже на жестком наборе данных OOD. Этот набор данных резко отличается от других наборов данных, поэтому мы можем ожидать некоторой стоимости домена. Но с другой стороны, если мы намерены хорошо обобщить такие сценарии, мы все же можем придумать больше атрибутов предметной области, рандомизация которых в обучающих данных повысит возможность обобщения для таких наборов данных. Случайные фоны - это один из таких атрибутов домена, который варьируется в этом наборе данных, и мы еще не рандомизировали его.

Заключение

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

Знания, знания и промежуточные данные ». Жемчужина Иудеи