Представьте себе, что вы покупаете эти умные очки, о которых все говорили. Сначала вы колебались, но сегодня вы решили, что пришло время наконец-то испытать их на себе. Вы идете в супермаркет и начинаете наполнять свою корзину всякими вещами, чтобы пережить остаток дня. При этом крошечные камеры внутри очков регистрируют ваше окружение и видят, какие именно вещи вы покупаете. На выходе вы выбираете полосу для «специальных очков», точно так же, как вы поступили, когда вошли. Здесь нет процесса сканирования, нет очередей, и вы просто выходите, чувствуя себя кошачьим грабителем. Когда вы выходили, очки уже отправили содержимое корзины для покупок на сервер супермаркета и сразу оплатили квитанцию ​​кредитной картой, привязанной к очкам. Положив все в машину, вы садитесь в нее и отправляетесь домой. Во время вождения очки звонят вам, что у вас заканчивается топливо. Вы останавливаетесь у заправки, и после того, как вы заправились, ваши очки снова берут на себя процесс оплаты.

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

Но компьютеры не могут (пока?) Видеть, интерпретировать и рассуждать так, как люди. Компьютерное зрение призвано восполнить этот пробел в навыках в одном из пяти наших чувств: зрении. Последние достижения показывают, что мы ближе, чем когда-либо. Они включают в себя огромные нейронные сети черного ящика, что означает, что их точная внутренняя работа абстрактна и не совсем понятна. К счастью, существуют инструменты (LIME, SHAP, tf-объяснять и т. Д.), Чтобы понять такую ​​сеть и понять, почему и как она усвоила определенные внутренние представления изображений. Эти инструменты позволяют специалистам по обработке данных и инженерам лучше понимать свои драгоценные модели и проверять их эффективность.

Если широко используемая метафора «данные - это новая нефть» более или менее верна, то помеченные данные должны быть новым алмазом.

Помеченные данные встречаются гораздо реже, и их получение требует больших затрат времени и средств, но необходимо для контролируемых учебных задач. Азиатские фермы по маркировке людей размножаются, как шершни, вокруг осиного гнезда, и являются не единственными конкурентами на рынке. Крупные игроки, такие как Google и Amazon, тоже предлагают человеческие ярлыки, что иногда связано с целым рядом этических проблем. Для услуги Google по маркировке людей вы платите минимум 98 долларов за маркировку (35 долларов) и добавление ограничивающих рамок (63 доллара) за 1000 изображений на момент написания. Выполнение этого для 30 классов, состоящих из 1000 изображений каждый, обойдется вам примерно в 3000 $. В нынешнем потоке машинного обучения обязательно иметь дело с размеченными данными. Как заявил на NIPS 2016 отец сверточных нейронных сетей Янн ЛеКун; … это [без предварительной информации, как с размеченными наборами данных - контролируемое обучение]. В определенных отраслях компьютерного зрения, особенно в области обнаружения объектов, проекты с открытым исходным кодом превратились в контролируемый способ обучения предметом потребления, но создание такого проекта с вашими собственными необработанными (немаркированными) данными гораздо менее актуально.

Почему

Было бы здорово, если бы мы могли использовать инструменты интерпретируемости не только для интерпретации наших моделей черного ящика, но и для сокращения разрыва между контролируемым и неконтролируемым обучением? В In The Pocket нам пришла в голову идея использовать инструмент интерпретируемости LIME в качестве инструмента автоматической маркировки в средах обнаружения мультиклассовых объектов. Ниже объясняется, как работает наш трубопровод. Автоматическая маркировка заменяет процесс маркировки изображений людьми (тем самым сокращая затраты), выполняется быстрее, а также включает в себя чувство стандартизации, потому что никакие два человека не будут комментировать изображения кошек точно так же, как компьютеры. Кроме того, если смотреть в будущее, вычислительная мощность будет увеличиваться и становиться дешевле, в то время как скорость маркировки человеком, вероятно, не будет.

Что мы сделали

Чтобы доказать нашу правоту, включающую 1000 изображений для 30 классов, мы сняли 3 вида фруктов (банан, киви и яблоко) примерно по 3 минуты каждый, при разных условиях освещения и под разными углами. Мы записали со скоростью 24 кадра в секунду и с разрешением 3740 на 2160 пикселей. Мы сознательно решили не включать лаймы в набор данных, так как мы подозреваем, что LIME может быть необъективным при обнаружении лаймов.

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

Затем все изображения (около 2600) были проанализированы с помощью LIME с использованием параметров по умолчанию для интерпретации модели. Используя положительно активированные суперпиксели LIME (области изображения, которые заставляют классификатор полагать, что изображение принадлежит определенному классу), мы смогли поставить ограничивающие рамки вокруг интересующего класса. Результирующие визуализации для пояснения процесса показаны на рисунках ниже.

Запуск LIME и создание ограничивающих рамок для 2600 изображений заняли 4 с половиной часа на Nvidia Tesla K80 Google Cloud. Мы закончили с координатами ограничивающего прямоугольника и зная, что наша обученная модель правильно классифицирует изображения как яблоки и киви, основываясь на правильных характеристиках (функциях, составляющих яблоко и киви). Затем мы преобразовали (автоматически помеченные) ограничительные рамки в исходные размеры.

Поскольку используемый нами фреймворк обнаружения объектов работает на TensorFlow, нам пришлось изменить формат исходных изображений и соответствующих ограничивающих рамок на правильный формат TensorFlow под названием TFrecords. Теперь мы были готовы обучить модель обнаружения объектов на TPU в Google Cloud. Здесь мы использовали SSD MobileNetV1 и API обнаружения объектов tensorflow. Преимущество обучения модели обнаружения объектов на этом этапе заключается в том, что мы помещаем знания об ограничивающих прямоугольниках в модель, которая может делать вывод быстрее, чем сама LIME (создание ограничивающих прямоугольников с помощью извести на нашем локальном компьютере занимает около 2 минут, а создание ограничение прямоугольников с помощью модели обнаружения объектов занимает около 2 секунд). Кроме того, модель обнаружения объектов довольно хорошо обобщена, и в некоторых случаях ей удалось получить ограничивающие прямоугольники даже лучше, чем раньше. На рисунке ниже, скопированном с tenorboard, показан пример для проверочного экземпляра (в данном случае kiwi). Возможно, вам придется немного потушить глаза, чтобы увидеть ограничивающие рамки.

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

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

Следующие шаги

Этот пост в первую очередь направлен на подтверждение концепции, согласно которой весь наш конвейер способен обнаруживать отдельные объекты с помощью промежуточного шага автоматической маркировки, начиная с фильмов (также возможны только изображения) только определенных классов. Количество классов может быть увеличено до 30 и более. Мы смогли создать достаточно надежные ограничивающие рамки с параметрами LIME по умолчанию. Для конкретных проблем и наборов данных точная настройка параметров LIME должна повысить производительность и позволить начать подсчет объектов на изображениях для обнаружения нескольких объектов на одном изображении. Еще один следующий шаг - замена MobileNetV1 SSD на его улучшенный преемник MobileNetV2 SSD, который вышел в прошлом году, чтобы получить лучшие результаты и более высокую оценку mAP (средняя средняя точность) на основе автоматически помеченных ограничивающих прямоугольников. в модели обнаружения объектов.

Outro

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

Следует также отметить, что даже несмотря на то, что использование этого способа работы дает множество преимуществ, качество ограничивающих рамок может быть неудовлетворительным для определенных наборов данных, включающих небольшие объекты. Качество ограничивающих рамок распространяется через модели обнаружения объектов и влияет на общую производительность. Но в случаях использования, подобных показанному нами, возможно значительное ускорение из-за параллельного характера вывода LIME, и тем более при использовании более мощных графических процессоров, чем K-80, который мы использовали. Если бы у вас была возможность, никто бы не стал ждать два дня, прежде чем какая-нибудь ферма, занимающаяся маркировкой, вернет им аннотированные фотографии, тогда как LIME могла бы сделать то же самое за пару часов, дешевле и не связана с этическими проблемами, верно?

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