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

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

Крупные корпорации, такие как Google и Microsoft, превзошли человеческий тест в распознавании изображений [1, 2]. В среднем человек делает ошибку в задачах распознавания изображений примерно в 5% случаев. По состоянию на 2015 год программное обеспечение для распознавания изображений Microsoft достигло уровня ошибок 4,94%, и примерно в то же время Google объявила, что его программное обеспечение снизило уровень ошибок на 4,8% [3].

Как это возможно?

Это стало возможным благодаря обучению глубоких сверточных нейронных сетей на миллионах обучающих примеров из набора данных ImageNet, который содержит сотни категорий объектов [1].

Один МИЛЛИОН обучающих данных!

Например, чтобы научить компьютер распознавать кошку под разными углами, могут потребоваться тысячи фотографий, охватывающих самые разные точки зрения - ТОМ СИМОНИТ

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

Но что, если огромные данные обучения недоступны?

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

Все сводится к одному вопросу.

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

Создавайте больше обучающих данных с помощью ДОПОЛНЕНИЯ

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

Увеличение данных - это метод создания нескольких изображений для исходного изображения. Существует несколько различных методов увеличения данных, и Миколайчик и Гроховски в своей статье [4] делят эти методы на две подкатегории: увеличение данных с использованием базовых манипуляций с изображениями и увеличение данных с использованием подходов глубокого обучения.

Геометрическая трансформация

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

Листать

Переворачивание - это зеркальное отображение любого заданного изображения. Это одна из самых простых техник увеличения. Изображение можно переворачивать по горизонтали или вертикали. Однако горизонтальное переворачивание более распространено среди этих двух.

Обрезка

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

На приведенном выше изображении четыре изображения генерируются из исходного изображения путем обрезки пикселей слева и справа. Размер кадрированных изображений уменьшен с 256x256 до 227x277.

Вращение

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

Перевод

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

Расширение данных на основе GAN

Генеративная состязательная сеть (GAN), также называемая GAN, представляет собой метод генеративного моделирования, при котором искусственные экземпляры создаются из набора данных таким образом, чтобы сохранялись характеристики, аналогичные исходному набору [9].

GAN состоит из 2-х искусственных нейронных сетей (ИНС), которые конкурируют друг с другом: генератора и дискриминатора. Первый создает новые экземпляры данных, а второй оценивает их на подлинность [10].

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

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

Олаф и его команда использовали методы увеличения данных, такие как смещение, вращение и случайная упругая деформация на микроскопических изображениях, для обучения модели архитектуры U-net, имея лишь ограниченные обучающие данные, и с большим отрывом выиграли конкурс ISBI Cell Tracking 2015 в этих категориях [11 ].

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

Какие методы увеличения данных вы использовали? Поделитесь своими мыслями в комментариях ниже.

Источники:

[1] https://www.eetimes.com/document.asp?doc_id=1325712

[2] https://venturebeat.com/2017/12/08/6-areas-where-artificial-neural-networks-outperform-humans/

[3] https://www.theguardian.com/global/2015/may/13/baidu-minwa-supercomputer-better-than-humans-recognising-images

[4] Миколайчик А., Гроховски М. (2018). Увеличение данных для улучшения глубокого обучения в проблеме классификации изображений. Международный междисциплинарный семинар для докторов наук (Iiphdw) 2018. DOI: 10.1109 / iiphdw.2018.8388338

[5] Перес, Л., и Ван, Дж. (2017). Эффективность увеличения данных при классификации изображений с использованием глубокого обучения. Отчет об исследовании Стэнфордского университета.

[6] https://snow.dog/blog/data-augmentation-for-small-datasets

[7] https://www.learnopencv.com/understanding-alexnet/

[8] https://nanonets.com/blog/data-augmentation-how-to-use-deep-learning-when-you-have-limited-data-part-2/

[9] Шортен, К., & Хошгофтаар, Т. (2019). Опрос об увеличении графических данных для глубокого обучения. Журнал больших данных, 6 (1). DOI: 10.1186 / s40537–019–0197–0

[10] Энрике Ф. и Аранья К. (2019). Увеличение данных с помощью GAN. Труды исследований в области машинного обучения.

[11] Роннебергер, О., Фишер, П., и Брокс, Т. (2015). U-Net: сверточные сети для сегментации биомедицинских изображений.