Журнал "Системы Безопасности" № 1‘2019
A L L - O V E R - I P 59 www.secuteck.ru февраль – март 2019 С какими сложностями вы сталкиваетесь при обучении нейросетей? Как решаются эти вопросы? Игорь Фаломкин, ITV | AxxonSoft Каждый этап разработки искусственной нейрон- ной сети сопряжен со своими сложностями: 1. Подбор топологии сети (типов и взаимосвя- зей слоев сети) – наиболее интеллектоемкий этап. В нашей индустрии чаще всего сводится к адаптации топологий от исследовательских команд к реалиям предметной области. 2. Сбор данных. Может быть проблематичным, если необходимое событие редкое или сложно воспроизводится, например лесной пожар в разных условиях наблюдения. 3. Подготовка обучающей выборки (разметка) – очень трудоемкий процесс, требующий высокой аккуратности. Для некоторых топологий затраты времени составляют порядка 30 мин. на размет- ку 1 мин. исходного видео. Во многом именно этот этап определяет успешность обучения сети и дальнейшее качество ее работы. 4. Вычислительные мощности. Для обучения нейронной сети требуется специализированное ПО (обычно под управлением ОС Linux) и спе- циализированное оборудование. Например, мы используем несколько серверов с несколькими мощными видеокартами. И даже в этом случае обучение может занимать несколько суток. Никита Живаго, NVIDIA Основные трудности возникают с реальной воз- можностью внедрить ИИ в ту или иную отрасль. Зачастую все сводится к одной из следующих проблем: l недостаток данных для обучения; l плохо формализованные и неструктурирован- ные данные, которые тяжело подать на вход какому-либо алгоритму; l для данной задачи (типа данных) еще не изобретена подходящая по эффективности архитектура нейронной сети. Именно из-за таких проблем некоторые идеи умирают, не успев развиться, и не становятся "общеизвестными". Разработчикам, исследователям и бизнесу не нужно просто отличное оборудование. Им нужна надежная платформа. Платформа центра обработки данных NVIDIA обеспечивает наибо- лее конкурентоспособную экосистемную под- держку для ИИ, машинного обучения, глубоко- го обучения и высокопроизводительных вычис- лений (HPC) для научных и медицинских иссле- дований. Кроме того, эти ресурсы платформы находятся в свободном доступе на NVIDIA GPU Cloud (NGC) в виде контейнеров, которые можно быстро развертывать и использовать как локально, так и в облаке. Евгений Веснин, "Малленом Системс" Подготовка обучающей выборки – трудоемкий процесс. Для увеличения размера выборки используют аугументацию данных – создание дополнительных обучающих данных из имеющих- ся, например для изображений это можно сделать путем их преобразований и искажений. Суще- ствующая выборка должна максимально полно представлять все многообразие входных данных. В реальных задачах данные обычно неравно- мерно распределены по классам, что может стать проблемой при обучении нейронной сети. Ее простейшим решением является дублирова- ние примеров в классах с малым количеством примеров. Этапы выбора архитектуры нейронной сети, способа нормализации данных, параметров обучения нейронной сети выполняются вручную на основе накопленного опыта. В процессе обучения полезно выполнять визуа- лизацию, чтобы контролировать эффективность обучения. Чтобы быть уверенными, что обученная сеть будет хорошо работать на новых данных, обыч- но выборку делят на обучающую, тестовую и валидационную. На обучающей происходит обучение нейронной сети, по тестовой выборке (примеры из которой не используются в обуче- нии) производят оценку адекватности работы нейронной сети и подбор параметров обучения, а валидационная используется для финальной оценки обученной сети. Обучение нейронной сети занимает очень много времени. Обученная же нейронная сеть работает достаточно быстро, но обычно дольше классиче- ских алгоритмов анализа изображений. Денис Кравченко, Ivideon Основные сложности: 1. Подготовка данных для обучения и разметка данных. Для этого частично применяется авто- матизация: использование больших, уже натре- нированных сетей для разметки или алгоритмов видеоаналитики, работающих по другому прин- ципу, например детекции движения. 2. Аугментация данных. Проводится предвари- тельная подготовка данных перед обучением (поворот на случайный угол, изменение балан- са белого, яркости, перемещение, масштабиро- вание). 3. Перетренировка сети. Для решения этой про- блемы анализируются результаты работы ней- росети на тестовом наборе данных на всем этапе обучения. 4. Ускорение работы сети. С этой целью произво- дится уменьшение количества вычислений на основе анализа значимости нейронов (Pruning). Алексей Ястребов, Macroscop Представьте, что вы собираетесь обучить нейро- сеть распознавать лица, то есть отличать изоб- ражение лица одного человека от изображения лица другого. В обучающей выборке у каждого человека несколько фотографий и, допустим, так получилось, что люди, носящие очки, всегда или почти всегда изображены в очках. Чему обучится нейросеть? Конечно, тому, что очки – это неотъемлемая часть лица этих людей. Если вдруг что-то из них затем снимет очки перед камерой, система с вероятностью, близкой к единице, посчитает его другим человеком. Так что обучение – это все еще опыт исследова- теля и глубокое понимание возможностей машинного обучения, несмотря на то, что про- цесс обучения – всего лишь подгонка функции, реализуемой нейросетью, под обучающие дан- ные путем подбора параметров этой функции. Мало что изменилось за 70 лет, и это все еще очень мало похоже на то, как обучается челове- ческий мозг. Может, в этой области и нужно ждать следующего революционного прорыва? Дмитрий Антонов, ISS Опыт последних нескольких лет позволил сфор- мировать понимание, как действовать для решения той или иной задачи. Чтобы обучить нейронную сеть, нужно собрать и разметить огромное количество данных. Сбор данных – пожалуй, одна из самых затратных задач в нейросетевой разработке. Обучающая выборка должна максимально разносторонне представлять целевой объект. Сеть нужно обучать на множестве изображений с вариан- тами погодных условий, угла и дистанции съем- ки, освещенности и других параметров. Где взять такое разнообразие? В нашем распоряже- нии огромная база для обучения: у компании более 100 тыс. внедрений по всему миру. Кроме того, практикуем сбор данных под целе- вую задачу, организуя фотосъемку нужных для обучения объектов. Моделям машинного обучения нужно большое число размеченных данных. Разметка данных – длительный и трудоемкий процесс. На каждом изображении нужно вручную обвести границы объекта. Чем точнее мы выделим границы номерной пластины автомобильного номера, тем выше будет качество алгоритма. Соответ- ственно, размечать нужно с точностью до пик- селей. Как организовать разметку данных и про- контролировать ее корректность, когда речь идет о десятках и сотнях тысяч изображений? Мы используем Computer Vision Annotation Tool – инструмент с открытым исходным кодом для разметки цифровых изображений и видео. Сер- вис поддерживает разные типы и форматы раз- метки и многократно ее ускоряет. Анализ поведения нейросети с помощью стан- дартных инструментов в фреймворках и наших внутренних средств визуализации помогает проводить регулировку обучающего процесса. Кроме того, стандартные подходы к тестирова- нию не всегда соответствуют практическим задачам. В результате мы выработали собствен- ные подходы из средств программной реализа- ции для тестирования нейросетей. www.itcrumbs.ru
Made with FlippingBook
RkJQdWJsaXNoZXIy Mzk4NzYw