[Перевод] Машинное обучение и шоколадные конфеты

Говорят, что у мерчендайзеров есть негласное правило: никогда не класть рядом батончики Nesquik и Snickers. Кто знает, миф это или нет, но технологии, которые позволяют проверить условия хранения и выкладки шоколадных конфет на витрины — существуют. В этой статье мы углубимся в них и расскажем о модели машинного обучения, предназначенной как раз для этих целей.

8d7kjky21xn-qa8jpe49k9ahhmq.png

Цикл статей «Digital Transformation»


Технологические статьи:
1. Начало.
2. Лотерея в облаке.
3. Блокчейн в банке.
4. Учим машину разбираться в генах человека.
5. Учим машину разбираться в языках.
6. Сказ о том, как SQL время экономит.
7. Создаём Q&A-бота: пошаговая инструкция.
8. Машинное обучение и шоколадные конфеты.
9. Loading…

Серия интервью с Дмитрием Завалишиным на канале DZ Online:
1. Александр Ложечкин из Microsoft: Нужны ли разработчики в будущем?
2. Алексей Костарев из DZ Systems: Как заменить HR-a роботом?
3. Федор Овчинников из Додо Пицца: Как заменить директора ресторана роботом?


Ситуация


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

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

o6v6t_iuzt1jlr_lwpnlq-qc0bu.jpeg

Эффективная политика (слева), неэффективная политика (справа)

Исследование


При определении круга задач мы исследовали ряд методик классификации изображений, включая Microsoft Custom Vision Service, перенос обучения с помощью CNTK ResNet и обнаружение объектов посредством CNTK Fast-RCNN. Хотя технология обнаружения объектов с помощью Fast-RCNN показала в итоге наилучший результат, в ходе исследования мы также выяснили, что каждый подход отличается по сложности и у каждого есть свои плюсы и минусы.

Custom Vision Service


Обучить службу на базе REST и работать с ней гораздо проще, чем обучать, развертывать и обновлять настраиваемую модель компьютерного зрения. В результате первым сервисом, который мы начали использовать, была служба Microsoft Custom Vision Service. Custom Vision Service — это инструмент для создания классификаторов пользовательских изображений и их непрерывной оптимизации. Для обучения модели мы использовали набор образцов из 882 изображений, на которых были представлены отдельные полки с выкладкой шоколадных конфет (при этом на 505 изображениях показана соответствующая требованиям выкладка товара и на 377 — не соответствующая).

_4tg35kactawqm4oaem7l6tyuco.jpeg

В результате обучения мы получили относительно эффективную базовую модель, используя Custom Vision Service наряду со следующими тестами производительности:

kxvw-tkxwj0_tqo1h0dokfghnac.jpeg
Кроме того, мы протестировали модели на наборе из 500 скрытых изображений, чтобы дополнить эти данные и получить гарантированно согласованные базовые показатели.

Дополнительные сведения о тестировании производительности и использовании модели Custom Vision Service в производственных условиях см. в предыдущем примере кода: Классификация продуктов питания с помощью Custom Vision Service. Подробные разъяснения по стандартным показателям классификации приведены в разделе Показатели при оценке алгоритмов машинного обучения в Python.

Метка Точность Полнота возврата F-1 Score Поддержка
Не соответствует требованиям 0,71 0,74 0,72 170
Соответствует требованиям 0,87 0,85 0,86 353
В среднем/всего 0,82 0,81 0,82 523


Матрица неточностей

125 45
52 301


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

Эти ограничения наиболее полно описаны в следующем фрагменте документации по Custom Vision Service:

Методы, используемые в Custom Vision Service, способы эффективно выявлять различия, что позволяет приступить к созданию прототипа, даже располагая небольшим объемом данных. В теории для создания классификатора требуется небольшое количество изображений — 30 изображений для каждого класса вполне достаточно для создания прототипа. Однако это означает, что служба Custom Vision Service, как правило, слабо подготовлена для реализации сценариев, нацеленных на выявление самых незначительных отличий.

Служба Custom Vision Service показала отличные результаты после того, как мы выяснили, что нам требуется обрабатывать одну политику и отдельные полки с выкладкой шоколадных изделий. Тем не менее лимит в 1000 изображений, используемых для обучения службы, не позволил нам выполнить точную настройку модели для работы с некоторыми пограничными случаями в рамках этой политики.

Например, служба Custom Vision Service хорошо зарекомендовала себя в плане обнаружения грубых нарушений политики, а таких было большинство в нашем наборе данных, например, следующие случаи:

hzsywhjavg6x1ulvzhetvlmerbw.jpeg

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

iwxwbkig7xo2coyq5rdooghnz-u.jpeg

Чтобы преодолеть ограничения Custom Vision Service, мы решили создать несколько моделей, а затем объединить результаты с помощью классификатора мажоритарной выборки. И хотя это несомненно улучшило бы результаты использования модели и, возможно, позволило бы использовать ее в других сценариях, при этом увеличились бы затраты на API и время выполнения. Кроме того, модель все равно не удалось бы масштабировать для обслуживания более чем одной-двух политик, поскольку в Custom Vision Service существует ограничение по числу моделей в каждой учетной записи — не более девятнадцати.

Перенос обучения с использованием CNTK и ResNet


Чтобы избежать ограничений Custom Vision Service, связанных с набором данных, мы решили создать модель распознавания изображений с использованием CNTK и технологии переноса обучения на базе ResNet, руководствуясь инструкциями в следующем учебном пособии. ResNet представляет собой архитектуру глубокой сверточной нейросети (ГСНС), разработанную корпорацией Microsoft в рамках конкурса ImageNet в 2015 году.

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

wjxde2ztckdcgk8vj_83yb1mhbc.png
Рис. 3. Представление ResNet CNN с изображением, полученным из ImageNet. Входные данные — RGB-изображение кошки, выходные данные — вектор вероятности, максимальное значение которого соответствует метке «полосатая кошка».

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

Результаты


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

Метка Точность Полнота возврата F-1 Score Поддержка
Не соответствует требованиям 0,38 0,96 0,54 171
Соответствует требованиям 0,93 0,23 0,37 353
В среднем/всего 0,75 0,47 0,43 524


Матрица неточностей

165 6
272 81


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

Однако перенос обучения в ResNet — мощный инструмент для обучения системы распознавания изображений, использующей ограниченные наборы данных. Тем не менее если модель применяется для новых изображений, которые слишком сильно отличаются от исходных 1000 классов ImageNet, то ей не удается получить новые репрезентативные элементы, используя для этого абстрактные элементы, «выученные» на базе обучающего множества ImageNet.

Выводы


Мы наблюдали многообещающие результатов в плане классификации отдельных политик с использованием методик распознавания объектов (например, Custom Vision Service). Учитывая большое количество брендов и возможных вариантов их размещения на полках, совершенно невозможно было определить, соблюдается ли политика, по одним лишь изображениям, используя стандартный процесс распознавания объектов на основе доступных данных.

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

Решение


Обнаружение объектов и Fast R-CNN


Чтобы сделать политику более эффективной, не снижая точность классификации, мы решили использовать технологию обнаружения объектов и Fast R-CNN наряду с AlexNet для обнаружения на изображениях полок с выкладкой товара, соответствующей требованиям. Если на изображении обнаружены полки с выкладкой, соответствующей требованиям, то вся витрина считается соответствующей требованиям. Таким образом, мы смогли не только классифицировать изображения, но и повторно использовать ранее классифицированные полки, чтобы создать новые настраиваемые политики. Мы выбрали именно Fast R-CNN вместо других альтернативных вариантов (например, Faster R-CNN), поскольку процесс реализации и оценки уже доказал свою эффективность при использовании CNTK (см. раздел Обнаружение объектов с использованием CNTK).

Сначала мы использовали новую функцию поддержки изображений — инструмент маркировки визуальных элементов (Visual Object Tagging Tool, VoTT) — маркировки эффективных политик в рамках набора данных большего размера (2600 изображений). Инструкции по маркировке каталогов изображений с помощью VOTT см. в разделе Маркировка каталога изображений.

eux7nd7x5cxuitrm6fidlrd0qce.jpeg

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

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

Результаты


j4xzzvlf84pcpe-c6l0ytx62zcq.jpeg

Хотя на первый взгляд результаты для этой модели выглядят значительно хуже, чем при использовании решения на базе Custom Vision Service, наличие модульной структуры и возможности обобщения в рамках отдельных, постоянно повторяющихся проблем вдохновило SMART Business продолжить изыскания в области расширенных методик обнаружения объектов.

Варианты использования


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

Методика Преимущества Недостатки Область применения
Custom Vision Service • Возможность приступить к использованию даже при наличии небольших наборов данных. Графический интерфейс пользователя не требуется.
• Проверенные изображения можно маркировать повторно, чтобы усовершенствовать модель.
• Возможность внедрения службы в производственных условиях всего одним щелчком мыши.
• Возможность обнаружения самых незначительных изменений.
• Невозможность локального запуска модели.
• Ограниченное обучающее множество: всего 1000 изображений.
• Облачные службы (например, Custom Vision Service) отлично подходят для решения проблем, связанных с классификацией объектов, при наличии ограниченного обучающего множества. Это самая простая из доступных методик.
• В рамках нашего исследования служба показала наилучшие результаты при использовании имеющегося набора данных, однако не справилась с масштабированием в рамках нескольких политик и с обнаружением постоянно повторяющихся проблем.
CNN/перенос обучения • Эффективное использование существующих уровней модели, благодаря чему модель не приходится обучать с нуля.
• Простое обучение — достаточно просто выбрать отсортированные каталоги изображений и применить к ним обучающий сценарий.
• Размер обучающего множества не ограничен, возможен запуск модели в автономном режиме.
• Не справляется с классификацией данных, абстрактные элементы которых отличаются от элементов, участвовавших в обучении на базе набора данных ImageNet.
• Для обучения требуется графический интерфейс пользователя.
• Внедрение в производственных условиях намного сложнее по сравнению с внедрением службы компьютерного зрения.
• Перенос обучения CNN на предварительно обученных моделях (например, ResNet или Inception) демонстрирует наилучшие результаты при использовании наборов данных среднего размера, свойства которых аналогичны категориям ImageNet. Обратите внимание, что при наличии большого набора данных (не менее нескольких десятков тысяч образцов) рекомендуется провести повторное обучение на всех уровнях модели.
• Из всех изученных нами методик перенос обучения показал самый худший результат применительно к нашему сценарию комплексной классификации.
Обнаружение объектов с помощью VoTT •Лучше подходит для обнаружения незначительных различий между классами изображений.
• Области обнаружения имеют модульную структуру, их можно повторно использовать при изменении критериев комплексной классификации.
• Размер обучающего множества не ограничен, возможен запуск модели в автономном режиме.
• Требуется аннотирование рамок для всех изображений (хотя использование VoTT существенно упрощает задачу).
• Для обучения требуется графический интерфейс пользователя.
• Внедрение в производственных условиях намного сложнее по сравнению с внедрением службы компьютерного зрения.
• Алгоритмы типа Fast R-CNN не способны обнаруживать области небольшого размера.
• Комбинируя методики обнаружения объекта с эвристическими технологиями классификации изображений, можно применять сценарии, поддерживающие работу с наборами данных среднего размера в тех случаях, когда требуется обнаружение незначительных различий для дифференциации классов изображений.
• Из всех рассмотренных методик эта оказалась самой сложной в плане реализации, однако она продемонстрировала самый точный результат для имеющегося тестового набора данных. Именно на этой методике остановила свой выбор компания SMART Business.


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

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

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

59e35dcea0345205971169.jpegP.S. Благодарим Костю Кичинского (Quantum Quintum) за иллюстрацию к этой статье.

© Habrahabr.ru