Контакты
Подписка
МЕНЮ
Контакты
Подписка

Нейронные сети: новый прорыв. Мнения экспертов

В рубрику "All-over-IP" | К списку рубрик  |  К списку авторов  |  К списку публикаций

Нейронные сети: новый прорывМнения экспертов

История нейронных сетей помнит взлеты и падения, но вот уже несколько лет, как они прочно обосновались в списке ключевых трендов рынка систем безопасности и продолжают укреплять свои позиции. Ведется активная работа по освоению нейросетей для различных задач анализа и распознавания информации, но они показывают реальные шансы выйти за пределы технологий распознавания и поменять облик всей отрасли. Что по этому поводу думают эксперты? Специалисты из компаний ITV | AxxonSoft, NVIDIA, "Малленом Системс", Ivideon, Macroscop и ISS проанализировали текущие достижения нейросетей и предположили, чего от них ждать в ближайшем будущем
Игорь
Фаломкин
Директор департамента разработки ПО компании ITV | AxxonSoft
Никита
Живаго
Старший менеджер по развитию бизнеса компании NVIDIA
Евгений
Веснин
Технический директор ООО "Малленом Системс"
Денис
Кравченко
Разработчик отдела видеоаналитики компании Ivideon
Алексей
Ястребов
Ведущий разработчик компании Macroscop
Дмитрий
Антонов
Руководитель направления Департамента развития продуктов компании ISS
В каких областях целесообразно применение нейросетей?

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

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

2. Транспорт. Выявление статистических характеристик транспортных потоков, контроль соблюдения правил парковки, подсчет количества пассажиров для контроля оплаты проезда.

3. Банковская отрасль. Определение поз людей, нетипичных для помещений с банкоматами:

  • сидящий человек – потенциально попытка взлома банкомата;
  • лежащий человек – использование помещения для ночлега;
  • поднятые руки – потенциально ограбление посетителей.

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

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

6. Охрана природы. Обнаружение лесных пожаров по поднимающемуся дыму.

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

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

Процессоры NVIDIA для центров обработки данных, такие как Tesla V100 и T4, могут значительно ускорить практически все виды нейронных сетей – от сверточных нейронных сетей (CNN) для изображений и видео до рекуррентных нейронных сетей (RNN) для обработки естественного языка и нейронных коллаборативных фильтров (NCF) для рекомендательных механизмов. Платформа центра обработки данных NVIDIA ускоряет все современные платформы глубокого обучения.

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

Евгений Веснин, "Малленом Системс"
Нейронные сети находят применение практически во всех областях деятельности человека, от автоматизации технологических операций на производстве до автопилотов автомобилей и искусства. Во многих областях они уже превзошли человека: распознавание текста для узких задач, классификация изображений (конкурс ImageNet); программа AlphaGo, использующая нейронные сети, в 2016 г. выиграла матч у одного из сильнейших игроков в истории го. Можно выделить следующие популярные области применения нейронных сетей: анализ изображений и текста, распознавание речи, рекомендательные и поисковые системы.

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

Алексей Ястребов, Macroscop
Нейросети переживают настоящий бум. Исследователи занимаются искусственными нейронными сетями достаточно долго, не менее 70 лет, но огромный шаг вперед в развитии архитектуры искусственных нейросетей был сделан примерно в 2012–2015 гг. Нейросети стали значительно экономичнее в использовании своих параметров, возникла волшебная модель под названием "сверточная нейросеть" (кто о ней не слышал?). Такие нейросети обладают замечательной способностью самостоятельно находить в данных те признаки, с помощью которых можно наилучшим образом решить поставленную перед ними задачу, например отличить один объект на изображении от другого. Другой популярный термин – "глубокое обучение" – говорит нам о том, что современные нейросети имеют большое (иногда очень большое – более сотни) число слоев, что позволяет им находить решения для более сложных данных. Почти все современные нейросетевые модели – это глубокие сверточные нейросети.

Все это привело к такому значительному расширению диапазона задач, которые можно успешно решать с помощью нейросетей, что и сам термин "искусственный интеллект" заиграл новыми красками.

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

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

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

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

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

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

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

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

Какие модули/платформы для работы с нейросетями вам известны? В чем их преимущества и недостатки?

Игорь Фаломкин, ITV | AxxonSoft
Для обучения нейросетей мы используем открытый пакет Caffe. Для применения нейросетей (Inference) – пакет Caffe и оптимизированный для устройств компании Intel пакет OpenVINO (поддерживает CPU, встроенный GPU, специализированные USB-устройства, устройства FPGA). Планируем также использовать пакет TensorRT компании NVidia, оптимизированный для ее устройств. До недавнего времени его применение сдерживалось отсутствием версии для ОС Windows.

Никита Живаго, NVIDIA
Всем нужны правильные инструменты для работы, будь то разработчик, стартап или большая компания. Так как нейронные сети глубокого обучения становятся более сложными, время на тренировку существенно увеличивается, что выражается в снижении продуктивности и повышении затрат. Технология глубокого обучения NVIDIA и полный программный стек решения существенно ускоряют тренировку искусственного интеллекта. Среды глубокого обучения предлагают строительные блоки для проектирования, обучения и проверки правильности глубоких нейронных сетей через интерфейс программирования высокого уровня. Широко используемые платформы глубокого обучения, такие как Caffe2, Cognitive toolkit, MXNet, PyTorch, TensorFlow и другие, используют библиотеки с ускорением на GPU (cuDNN и NCCL) для обеспечения высокопроизводительного обучения с ускорением на нескольких GPU.

Графические процессоры NVIDIA для центров обработки данных доступны на всех основных облачных платформах (AWS, Google Cloud Platform, Azure, Oracle, IBM и многих других). Это дает значительные возможности ускорения для облачных компаний, а также отличную платформу для организаций, только начинающих работать с ИИ.

Евгений Веснин, "Малленом Системс"
Для обучения нейронной сети необходимы три составляющие: обучающие данные, специализированное программное и аппаратное обеспечение.

Обучающих данных требуется очень много, от десятков тысяч до миллионов объектов. Для подготовки (разметки) обучающих данных разработан ряд инструментов:

  • LabelMe – бесплатная утилита от MIT;
  • платные сервисы для разметки данных – Prodi.gy, Scale.ai, Supervise.ly;
  • краудсорсинговые сервисы – Яндекс.Толока, Amazon Mechanical Turk.

Для обучения нейронных сетей наиболее популярна связка языка Python и одной из библиотек для машинного обучения – Tensorflow, Keras, Caffe, PyTorch.

Обучение нейронных сетей связано с огромным объемом данных и, как следствие, большим объемом вычислений. Для их ускорения используются графические видеокарты GPU, самая популярная модель – GeForce GTX 1080 Ti.

При отсутствии устройства GPU можно воспользоваться платными облачными сервисами с ускорением вычислений на GPU: Amazon Web Services, IBM Cloud, Microsoft Azure или Google Cloud (сервера с тензорными процессорами Google TPU).

Денис Кравченко, Ivideon
Есть множество библиотек, которые облегчают работу программистов с нейросетями. Для языка Python это TensorFlow, Keras, Pytorch. Для С++ используется Caffe.

Алексей Ястребов, Macroscop
Самые популярные и в то же время активно развивающиеся – Keras, PyTorch и Tensorflow. Keras не является самостоятельным, требует наличия более низкоуровневой нейросетевой библиотеки в качестве бэкенда (например, Tensorflow), для него доступна документация с большим количеством примеров, накоплено огромное количество кода, который можно переиспользовать, у него более компактный и простой API, полученные модели достаточно удобно разворачивать и использовать.

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

Библиотека Tensorflow от компании Google – это самый низкоуровневый, мощный и популярный инструмент среди перечисленных. Ее можно использовать как в составе Keras (где она может быть полностью скрыта от разработчика), так и самостоятельно. Но за возможности нужно заплатить временем на изучение, так как порог вхождения у нее определенно выше, чем у остальных.

Дмитрий Антонов, ISS
Мы используем OpenVINO, Caffe, Caffe2, Tiny-dnn, TensorFlow.

OpenVINO предлагает качественно более высокий уровень производительности на Intel CPU, запуск разнообразных моделей нейросетей на Intel HDGrphics, поддержку обученных моделей из разных фреймворков.

Из преимуществ Caffe – обучение моделей на основе SSD, Faster R-CNN, высокая производительность на NVIDIA GPU, из минусов отмечу неудобство работы в Windows и низкую производительность на CPU.

Плюсы Caffe2 – обучение моделей на основе Faster R-CNN и Mask R-CNN, высокая производительность на NVIDIA GPU, удобство работы в Windows. Минус – медленная работа на CPU.

Из преимуществ TensorFlow – обучение моделей на основе SSD, Faster R-CNN и

Mask R-CNN (на NVIDIA GPU), из недостатков выделю технические неудобства в настройке размера входного изображения.

В Tiny-dnn из достоинств – минимализм и портируемость, а как следствие – отсутствие гибкости.

Какие методы используются для обучения нейросети?

Никита Живаго, NVIDIA
Разработка приложений ИИ начинается с обучения глубоких нейронных сетей с большими наборами данных. Для исследователей ИИ и разработчиков приложений графические процессоры NVIDIA Volta и Turing, работающие на тензорных ядрах, обеспечивают быстрое обучение и более высокую производительность. С включенными тензорными ядрами матрица смешанной точности FP32 и FP16 значительно увеличивает пропускную способность и сокращает время обучения ИИ. Для разработчиков приложений, интегрирующих глубокие нейронные сети в свои облачные или встроенные приложения, Deep Learning SDK предоставляет высокопроизводительные библиотеки, которые реализуют API-интерфейсы строительных блоков для реализации обучения и логического вывода непосредственно в своих приложениях. Благодаря единой модели программирования для всех платформ графических процессоров – от настольных компьютеров до центров обработки данных и встраиваемых устройств – специалисты могут начать разработку на своем настольном компьютере, масштабировать в облаке и развертывать на своих периферийных устройствах с минимальными изменениями кода или без изменений.


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

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

Евгений Веснин, "Малленом Системс"
Для обучения нейронных сетей наиболее популярным является метод обратного распространения ошибки и его вариации.

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

В открытом доступе доступен "зоопарк" обученных нейронных сетей для разного рода задач. Сети, которые обеспечивают впечатляющие результаты, как правило, обучены на выборках, содержащих миллионы объектов, и повторить их обучение на обычных компьютерах часто не представляется возможным. Однако обученную сеть можно адаптировать к решению конкретной задачи, используя технологию переноса обучения (Transfer Learning) и небольшой набор данных.

Денис Кравченко, Ivideon
Пример из моей практики – метод обучения с "учителем", при котором используются размеченные данные для тренировки сети.

Алексей Ястребов, Macroscop
Кроме инструментов, современным разработчикам доступны и готовые нейросети, уже обученные, например, для решения задач классификации изображений и находящиеся в открытом доступе. Их вполне можно использовать, взяв за основу как инструмент, и дообучить классифицировать именно те объекты, которые нужны, а хорошие признаки из изображений они выделять уже умеют. Однако в этой области доводилось встречать и злоупотребления. Например, попытку неких самонадеянных разработчиков продать известную нейросеть YOLOv2, находящуюся в открытом доступе, в качестве собственного готового решения для обнаружения разнообразных объектов на видео. Надо помнить, что это всего лишь инструмент, который вряд ли будет хорошо работать в реальных сложных условиях.

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

Дмитрий Антонов, ISS
Предположим, перед нами стоит задача узнавать о наличии припаркованного автомобиля или об образовавшемся заторе в зоне посадки/высадки из транспортного средства в аэропорту. Сложность заключается в том, что считать количество машин и отслеживать траекторию перемещения каждой нужно на многополосном участке с камер, расположенных на крыше многоэтажного терминала аэропорта. Система должна работать в меняющихся условиях освещенности при любой погоде. Решением этой задачи будет трекинг на нейросетях.

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

С какими сложностями вы сталкиваетесь при обучении нейросетей? Как решаются эти вопросы?

Игорь Фаломкин, ITV | AxxonSoft
Каждый этап разработки искусственной нейронной сети сопряжен со своими сложностями:

  1. Подбор топологии сети (типов и взаимосвязей слоев сети) – наиболее интеллектоемкий этап. В нашей индустрии чаще всего сводится к адаптации топологий от исследовательских команд к реалиям предметной области.
  2. Сбор данных. Может быть проблематичным, если необходимое событие редкое или сложно воспроизводится, например лесной пожар в разных условиях наблюдения.
  3. Подготовка обучающей выборки (разметка) – очень трудоемкий процесс, требующий высокой аккуратности. Для некоторых топологий затраты времени составляют порядка 30 мин. на разметку 1 мин. исходного видео. Во многом именно этот этап определяет успешность обучения сети и дальнейшее качество ее работы.
  4. Вычислительные мощности. Для обучения нейронной сети требуется специализированное ПО (обычно под управлением ОС Linux) и специализированное оборудование. Например, мы используем несколько серверов с несколькими мощными видеокартами. И даже в этом случае обучение может занимать несколько суток.

Никита Живаго, NVIDIA
Основные трудности возникают с реальной возможностью внедрить ИИ в ту или иную отрасль.

 

Зачастую все сводится к одной из следующих проблем:

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

Именно из-за таких проблем некоторые идеи умирают, не успев развиться, и не становятся "общеизвестными".

Разработчикам, исследователям и бизнесу не нужно просто отличное оборудование. Им нужна надежная платформа. Платформа центра обработки данных NVIDIA обеспечивает наиболее конкурентоспособную экосистемную поддержку для ИИ, машинного обучения, глубокого обучения и высокопроизводительных вычислений (HPC) для научных и медицинских исследований. Кроме того, эти ресурсы платформы находятся в свободном доступе на NVIDIA GPU Cloud (NGC) в виде контейнеров, которые можно быстро развертывать и использовать как локально, так и в облаке.

Евгений Веснин, "Малленом Системс"
Подготовка обучающей выборки – трудоемкий процесс. Для увеличения размера выборки используют аугументацию данных – создание дополнительных обучающих данных из имеющихся, например для изображений это можно сделать путем их преобразований и искажений. Существующая выборка должна максимально полно представлять все многообразие входных данных.

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

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

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

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

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

Денис Кравченко, Ivideon
Основные сложности:

  1. Подготовка данных для обучения и разметка данных. Для этого частично применяется автоматизация: использование больших, уже натренированных сетей для разметки или алгоритмов видеоаналитики, работающих по другому принципу, например детекции движения.
  2. Аугментация данных. Проводится предварительная подготовка данных перед обучением (поворот на случайный угол, изменение баланса белого, яркости, перемещение, масштабирование).
  3. Перетренировка сети. Для решения этой проблемы анализируются результаты работы нейросети на тестовом наборе данных на всем этапе обучения.
  4. Ускорение работы сети. С этой целью производится уменьшение количества вычислений на основе анализа значимости нейронов (Pruning).

Алексей Ястребов, Macroscop
Представьте, что вы собираетесь обучить нейросеть распознавать лица, то есть отличать изображение лица одного человека от изображения лица другого. В обучающей выборке у каждого человека несколько фотографий и, допустим, так получилось, что люди, носящие очки, всегда или почти всегда изображены в очках. Чему обучится нейросеть? Конечно, тому, что очки – это неотъемлемая часть лица этих людей. Если вдруг что-то из них затем снимет очки перед камерой, система с вероятностью, близкой к единице, посчитает его другим человеком.

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

Дмитрий Антонов, ISS
Опыт последних нескольких лет позволил сформировать понимание, как действовать для решения той или иной задачи.

Чтобы обучить нейронную сеть, нужно собрать и разметить огромное количество данных. Сбор данных – пожалуй, одна из самых затратных задач в нейросетевой разработке. Обучающая выборка должна максимально разносторонне представлять целевой объект. Сеть нужно обучать на множестве изображений с вариантами погодных условий, угла и дистанции съемки, освещенности и других параметров. Где взять такое разнообразие? В нашем распоряжении огромная база для обучения: у компании более 100 тыс. внедрений по всему миру. Кроме того, практикуем сбор данных под целевую задачу, организуя фотосъемку нужных для обучения объектов.

Моделям машинного обучения нужно большое число размеченных данных. Разметка данных – длительный и трудоемкий процесс. На каждом изображении нужно вручную обвести границы объекта. Чем точнее мы выделим границы номерной пластины автомобильного номера, тем выше будет качество алгоритма. Соответственно, размечать нужно с точностью до пикселей. Как организовать разметку данных и проконтролировать ее корректность, когда речь идет о десятках и сотнях тысяч изображений? Мы используем Computer Vision Annotation Tool – инструмент с открытым исходным кодом для разметки цифровых изображений и видео. Сервис поддерживает разные типы и форматы разметки и многократно ее ускоряет.

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

Как нейросети изменят наш мир?

Игорь Фаломкин, ITV | AxxonSoft
Многие виды деятельности, которые сейчас считаются прерогативой человека, будут автоматизированы, в том числе работа операторов видеонаблюдения. В статье, опубликованной в журнале "Системы безопасности" (№ 4/2018, стр. 50–52), я давал приблизительный прогноз развития нейросетевых технологий на рынке видеонаблюдения. С тех пор прошло полгода, и пока создается впечатление, что события развиваются быстрее прогноза. Взрывное развитие сдерживается только отсутствием доступного оборудования для использования нейросетей. Но ситуация меняется: в игру за рынок такого оборудования активно вступают разные компании, например Intel, планирующая в очередном поколении процессоров поддержать специальные инструкции для ускорения нейросетей, и HiSilicon, уже выпустившая SoC для видеокамер, содержащий нейросетевой ускоритель.

Никита Живаго, NVIDIA
Мы наблюдаем невероятный уровень инноваций с тех пор, как в 2012 г. началась глубокая революция в обучении. Архитектура нейронной сети продолжает развиваться, поскольку исследователи открывают новые подходы к решению сложных проблем, которые раньше считались невозможными. ИИ помогает быстрее выводить лекарственные препараты на рынок, врачам – быстрее диагностировать опасные для жизни заболевания, а также предоставляет потребителям бесчисленное количество услуг. Качественно улучшены:

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

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

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

Евгений Веснин, "Малленом Системс"
Прорыв в применении нейронных сетей стал возможен благодаря появлению достаточно больших выборок обучающих данных (ImageNet – 21 млн изображений) и возросшим вычислительным возможностям, позволяющим обработать такой объем. Немаловажную роль также сыграло предоставление в открытый доступ библиотек машинного обучения мировыми лидерами ИТ-индустрии.

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

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

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

Алексей Ястребов, Macroscop
После нескольких лет бурного развития нейросетевых технологий, начавшегося примерно в 2012 г. , нейросети взяли некоторую паузу. Сейчас мы находимся на этапе осмысления возможностей и поиска задач, которые еще можно решить. Когда возможностей перестанет хватать, неизбежно последует новый прорыв, и рано или поздно мы приблизимся к сильному искусственному интеллекту. Когда это произойдет? 60 лет назад думали, что через 10 лет. Может быть, все еще через 10 лет?

МНЕНИЕ ЭКСПЕРТА

Михаил
Бялый
Генеральный директор ООО "Актив-СБ"

Нейросети в повседневной жизни

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

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

  • "Сотрудники Яндекса Алексей Тихонов и Иван Ямщиков выпустили альбом "Нейронная оборона", состоящий из песен и стихотворений, написанных роботом";
  • "Нейронная сеть AlphaGo от Google одержала третью победу над одним из сильнейших игроков мира в го";
  • "Кинокомпания RitZEED сняла фильм по сценарию, который написала нейросеть";
  • "На аукционе Christie’s за 432,5 тыс. долларов продали картину, созданную искусственным интеллектом".

Поисковые алгоритмы от Google и Яндекса построены на нейронных сетях. Онлайн-переводчики используют нейросеть в своей работе. Сервисы товарных рекомендаций, которые мы можем встретить на многих Web-сайтах, также основаны на нейронной сети. Алиса от Яндекса – еще одно детище нейросети.

Понятие "нейросеть" было придумано достаточно давно и является синонимом алгоритма машинного обучения. Первая версия формального нейрона, ячейки нейронной сети, была предложена Уорреном Мак-Каллоком и Уолтером Питтсом в 1943 г. А уже в 1958 г. Фрэнк Розенблатт разработал первую нейронную сеть. Но первый блин оказался комом, и другие алгоритмы машинного обучения отодвинули на какое-то время нейросети на второй план.

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

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

Обучение нейросети

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

Хорошим сравнением для понимания, как мне кажется, будет аналогия, как мы учим детей узнавать, например, волка. Волки ведь бывают разные: в зоопарке они одни, а в мультфильмах и сказках совсем другие. Волк из "Ну, погоди!" очень сильно отличается от волка из сказки про семерых козлят, ну и тем более от волка на фотографиях дикой природы. Если мы встретим ростовую куклу или пойдем в театр на детский спектакль, то это будет уже другой волк. Тем не менее через какое-то время ребенок начинает узнавать волка. Как же это происходит?


Первое: мы учим ребенка находить на наблюдаемой сцене объект. Для этого мы тыкаем пальцем и говорим: "Смотри – волк". Или: "Смотри – заяц". Такая идентификация и является первой задачей нейросети. Дальше мы обучаем ребенка на разных изображениях определять волка; если ребенок угадывает, то мы его хвалим (этап обучения). Но иногда картинок для обучения нам не хватает и тогда мы можем нарисовать волка сами, слепить его из пластилина, показать новый мультик. В машинном обучении это называется "синтетическая генерация данных", необходимая для расширения обучающей выборки. Ребенок должен узнавать волка даже в том случае, если он спрятался за деревом и когда он лежит в чепчике и очках в кровати бабушки, которую только что съел. После того как мы окончательно поняли, что ребенок узнает волка в 90–95% случаев, мы уже не говорим ребенку: "Смотри – волк", так как знаем, что он может найти волка на картинке и его безошибочно распознать. Знания ребенка проверяются на новых книжках, и на этом процесс обучения заканчивается.

А теперь вернемся в 2010 г. В 2010 г. появилась база ImageNet, содержащая 15 млн изображений в 22 тыс. категорий. Эта была достаточная выборка для обучения нейросетей. В 2012 г. Крижевски и Хинтон для вычислений в нейронной сети решили использовать ресурсы графических процессоров (видеокарт). Технология глубокого обучения с ускорением на GPU (графический процессор) вообще в корне поменяла подход к разработке программного обеспечения. Раньше ПО создавали программисты и они же писали коды для алгоритмов. Теперь машинные алгоритмы обучаются сами на многочисленных примерах из жизни, таким образом программа улучшает себя сама. Самое главное, существенно сократилось время обучения сети. Ведь мы не можем ждать год или два (время, необходимое для узнавания волка ребенком), пока наша нейросеть обучится.

Сверточная нейросеть

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

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

Масштабные эксперименты и проекты

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

Еще одним примером служит проект Facebook под названием DeepFace, алгоритм распознавания лиц на фотографиях, точность которого достигает 97%, независимо от качества фото, степени освещенности и расположения человека на снимке. Разработчики обучали свой алгоритм, используя 4 тыс. фотографий из альбомов 4 млн человек.

Необходимые инструменты для полноценного использования

Но нейросеть нельзя назвать универсальным инструментом. В ее обучении и использовании есть определенные сложности.

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

  1. Большая и разнообразная выборка, при этом данные для обучения должны быть репрезентативными. Чем больше данных для обучения, тем умнее нейросеть.
  2. Подготовка данных для обучения и разметка данных. Для этого частично используется автоматизация: использование больших, уже натренированных сетей для разметки или алгоритмов видеоаналитики, работающих по другому принципу, например детекции движения.
  3. Аргументация данных: предварительная подготовка данных перед обучением (поворот на случайный угол, изменение баланса белого, яркости, перемещение, масштабирование) для того, чтобы сеть научилась определять объекты, как они встречаются "в жизни".
  4. Выбор конкретного набора алгоритмов, то есть определение принципа работы каждого слоя нейросети и его взаимодействия с соседними слоями.
  5. Тренировка и перетренировка сети.
  6. Своевременность завершения процесса обучения. Нейросеть нельзя обучать "на ходу": такая практика является рискованной, так как сеть может переобучиться или подстроиться под самые последние поступившие данные, потеряв при этом наработанную и "утвержденную" до этого логику.

Признаки и закономерности

Не стоит стремиться применять нейросеть во всех случаях. Например, для подсчета посетителей отлично подходят классические методы детекции, дающие высокую степень точности. А вот там, где нельзя заранее сформулировать какие-то четкие признаки объекта, нейросеть подойдет как нельзя лучше (например, детекция дыма и огня), ведь она сама на основании данных будет устанавливать признаки и закономерности. Правда, в отличие от запрограммированных человеком алгоритмов, эти признаки и закономерности будут находиться глубоко на ее дне, недоступные для понимания пользователей. Некоторых это пугает: даже обращаясь к врачу, мы должны понимать, о чем он говорит и по каким признакам ставит нам диагноз. Но в последнее время ведутся разработки, направленные на перевод машинного языка на "человеческий", чтобы нейросеть могла объяснить, какие критерии она посчитала важными, и уже человек будет в дальнейшем решать, права она или нет и, если что, расставлять для сети приоритеты.

Опубликовано: Журнал "Системы безопасности" #1, 2019
Посещений: 4714

  Автор

Игорь Фаломкин

Игорь Фаломкин

Директор по разработке программного обеспечения компании ITV | AxxonSoft

Всего статей:  3

  Автор

Никита Живаго

Никита Живаго

Старший менеджер по развитию бизнеса компании NVIDIA

Всего статей:  1

  Автор

Евгений Веснин

Евгений Веснин

Технический директор компании "Малленом Системс"

Всего статей:  4

  Автор

Денис Кравченко

Денис Кравченко

Разработчик отдела видеоаналитики компании Ivideon

Всего статей:  1

  Автор

Алексей Ястребов

Алексей Ястребов

Ведущий разработчик компании Macroscop

Всего статей:  1

  Автор

Дмитрий Антонов

Дмитрий Антонов

Руководитель направления Департамента развития продуктов компании ISS

Всего статей:  1

В рубрику "All-over-IP" | К списку рубрик  |  К списку авторов  |  К списку публикаций