Журнал "Системы Безопасности" № 1‘2019
A L L - O V E R - I P 56 Нейросети могут предсказывать последова- тельности кадров (а также временные ряды других данных). Эти задачи из области ана- лиза изображений могут решаться в продукте как по отдельности, так и в сложных комби- нациях, необходимых для решения каких-то еще более сложных задач, например обес- печения работы автопилота беспилотного автомобиля. Другой большой класс задач, где нейросети успешно применяются, – обработка текстов на естественном языке. Это всевозможные классификации текстов (например, класси- фикация отзывов на положительные и отри- цательные), машинный перевод, и, наконец, чат-боты и таск-боты – программы, которые сейчас в состоянии заменить, например, про- давцов билетов. Кроме того, нейросети применяются в зада- чах анализа научных данных, играх, в финансах для оценки клиентов и всевоз- можных рисков и во многих других обла- стях. В общем, сверточные нейросети хоро- шо работают с теми данными, в которых есть корреляция по измерениям (изображе- ния, звук, тексты, временные ряды). Там, где ее нет (например, разнородные данные о клиенте), лучше применить простую пол- носвязную сеть или вообще другую модель классификатора. Взрывному росту сложности и количества задач, решаемых при помощи нейронных сетей, очень способствует то, что сейчас в распоряжении исследователей и разработ- чиков имеется огромное количество инстру- ментов, позволяющих быстро создать (или взять готовую), обучить, протестировать и развернуть нейросеть любой сложности. Одни из них могут являться надстройками над другими, так что прямое сравнение всех со всеми не очень уместно. Дмитрий Антонов, ISS Нейронные сети успешно решают задачи в тех случаях, когда для достижения таких же результатов классическими видеоаналитиче- скими методами требуется гораздо большее количество ресурсов. Например, при распознавании автомобиль- ных номеров трекер на основе классических алгоритмов видеоаналитики находит в кадре любые наборы символов, похожие на автомобильные номера, и пытается их рас- познать. Классический детектор не позво- ляет с достаточной степенью надежности определять номера с малым количеством символов. Огромное многообразие надпи- сей на контейнерах и грузовиках также мешает корректно находить номер. В этих случаях нейросетевой детектор успешно решает задачу. После того как мы обучили нейросетевой локализатор находить номер- ную пластину в кадре и отсеивать лишнее, мы добились значительно более высокой точности распознавания номеров. Модуль локализации корректно находит номерную пластину в кадре, исключая прочие надпи- си. Нейросетевой локализатор успешно работает там, где объекты нужного типа "перекрывают" друг друга в кадре или при- сутствует большое количество визуальных помех. Другой пример – трекинг людей на пеше- ходном переходе. Нейросетевой детектор, обученный на очень большой выборке, предназначенный для детекции пешеходов на "зебре", позволяет с высокой точностью детектировать людей. При этом он крайне устойчив к колебаниям внешней среды, таким как освещение, погодные условия, "перекрытие" другими объектами и помехи. февраль – март 2019 www.secuteck.ru Какие модули/платформы для работы с нейросетями вам известны? В чем их преимущества и недостатки? Игорь Фаломкин, 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 и многих других). Это дает значительные возможности ускорения для облачных компаний, а также отличную платформу для организаций, толь- ко начинающих работать с ИИ. Евгений Веснин, "Малленом Системс" Для обучения нейронной сети необходимы три составляющие: обучающие данные, спе- циализированное программное и аппаратное обеспечение. Обучающих данных требуется очень много, от десятков тысяч до миллионов объектов. Для подготовки (разметки) обучающих дан- ных разработан ряд инструментов: l LabelMe – бесплатная утилита от MIT; l платные сервисы для разметки данных – Prodi.gy, Scale.ai, Supervise.ly; l краудсорсинговые сервисы – Яндекс.Толо- ка, Amazon Mechanical Turk. Для обучения нейронных сетей наиболее популярна связка языка Python и одной из библиотек для машинного обучения – Tensor- flow, 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, запуск разнообразных моделей нейро-
Made with FlippingBook
RkJQdWJsaXNoZXIy Mzk4NzYw