Распознавание человеческой деятельности: эффективная реализация обучения малым данным

Можно ли избавиться от проклятия больших наборов данных в приложениях Deep Learning? Нужно ли собирать миллионы примеров для обучения нейронной сети под конкретную задачу? Мы засучили рукава и отправились на поиски ответов на этот извечный вопрос. Мы создали настраиваемый конвейер глубокого обучения для решения проблемы распознавания человеческой деятельности в автономных системах. К концу нашего проекта мы смогли получить достаточно результатов, которые поддерживали нашу архитектуру, чтобы эффективно учиться на чрезвычайно маленьких наборах данных. Мы обучили нашу модель на менее чем 260 примерах!

В этом блоге я буду избегать мелочей, то есть сосредоточусь на том, что мы сделали, что сработало, и не буду упоминать все наши неудачные попытки. И не буду обсуждать ненужные подробности, которые уже есть в цитатах. Если вы хотите узнать больше или у вас есть какие-либо сомнения относительно реализации нашего метода, свяжитесь со мной по адресу [email protected].

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

Мы хотели бы предложить альтернативу в виде графика временной активности (TAG). TAG представляет LSTM последовательность хорошо закодированных пространственно-временных отношений. Чтобы помочь вам понять, как формируется ТЕГ, я поясню подробнее, используя следующий пример:

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

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

Создав ТЕГ из необработанных видеоданных, мы переходим к передаче его в нашу настраиваемую структурированную рекуррентную нейронную сеть архитектуры. На следующем изображении поясняются различные части sRNN:

Вышеупомянутая архитектура основана на интуитивной идее разделения сложности задач, выполняемых отдельными нейронными сетями. LSTM B1,…, B5 принимают входные данные от узлов, соответствующих человеку 1, т.е. B1, например, кодируют все отношения человека 1 голова. Полные отношения снова предоставляются архитектурой расширенной CORE9. Данные отслеживания скелета доступны в наборе данных SBUKI или могут быть эффективно извлечены с помощью библиотеки с открытым исходным кодом Openpose. После кодирования отдельные LSTM Bis и Cis передают данные в LSTM D1 и D2 соответственно. Таким образом, вместо изучения всей информации, закодированной в видеокадрах, отдельные RNN изучают только информацию, закодированную их соответствующими узлами. Это помогает снизить сложность поставленной задачи. Кроме того, у нас есть многофункциональный вектор, который будет загружен в LSTM A,, в котором целостным образом заключена вся пространственно-временная информация, которая может быть передана в другие конвейеры глубокого обучения.

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

Раньше, когда мы использовали обычный классификатор softmax, мы сталкивались с проблемой переобучения. Точность обучения 98% сопровождалась точностью испытаний, которая составила всего 50%. Случайные леса удобно использовать для преодоления проблем переобучения в конвейерах машинного обучения, и поэтому мы обучили классификатор Случайный лес на выходе последнего слоя нашей sRNN архитектура.

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

Ниже приведены наши окончательные значения точности:

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

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

Мы считаем, что будущее за более быстрыми и эффективными методами обучения, а не за большими наборами данных, и, следовательно, это еще один шаг в будущее.

Большая часть нашего обучения проводилась с использованием разделения 80–20 поездов и тестов, и обучение проводилось в течение 100 эпох. Код нашего конвейера доступен в этом репозитории.

Этот проект был выполнен мной (Сударшан Каматх) и моим партнером по проекту Диптаншу Агарвал под руководством Проф. Шьяманта Хазарика . Все цитаты, подробные объяснения, а также детали проекта доступны в нашей бакалаврской диссертации, которая доступна в нашем репозитории Github.

Ваше здоровье!