На сегодняшний день развитие Artificial intelligence (AI) является одним из важнейших направлений в России, к которому приковано внимание не только инженеров отрасли, но и правительства.
Возможно ли на основе имеющихся данных построить предсказательную модель или можно ли в принципе собрать данные требуемые для целевой модели?
Действительно ли для решаемой задачи нужно применять методы глубокого обучения, или можно обойтись менее затратными вычислительными методами, такими как линейные модели, машинное обучение и т.д.?
Анализ данных и выявление значимых паттернов, особенно в условиях, когда данные не имеют заранее заданную структуру, - это творческий процесс, требующий компетенций в работе с данными и алгоритмами, а также удобного инструментария и накопленной большой библиотеки методов и алгоритмов для быстрой проверки идей. Также требуется опыт управления временем исследования, поскольку все возможные комбинации перебрать невозможно, а ошибки в выборе исследуемых гипотез стоят дорого: много трудозатрат, вычислительных ресурсов, упущенные возможности и время. При рассмотрении конкретных задач мы отсекаем некоторые гипотезы экспертно, некоторые гипотезы исследуем частично в ограниченное время, а часть глубже. В зависимости от достижения некоторого порога значимости влияния данных на переменную отклика мы делаем заключение о возможной эффективности тех или иных методов искуственного интеллекта (ИИ).
Реалистичный план ИИ проекта или техническое задание, в которое входят:
Для задач глубокого обучения наличие качественной базы данных является ключевым атрибутом успешного решения задачи. Образно говоря, качественная и репрезентативная выборка данных - это 90% успеха.
Критерии качественной выборки
Сценарии подготовки качественной выборки данных для ИИ проекта:
Часто встречающиеся проблемы и методы решения:
У нас есть разносторонний опыт решения типовых и нестандартных проблем с данными на любом этапе ИИ проекта. Мы не скрываем наших компетенций и готовы не только решить задачу, но и научить пользоваться нашими инструментами.
Согласно теореме о бесплатных завтраках в сфере оптимизации, не существует универсального алгоритма, способного аппроксимировать любые данные произвольного вида.
Любой новый AI проект, который не повторяет уже опубликованное решение, а ищет новое, как правило требует работы над созданием, исследованием и сравнением нескольких вариантов прототипов AI алгоритма.
Основные сложности возникают при определении емкости модели. Если емкость модели относительно большая, на выходе мы получим переобученную модель, которая будет плохо вести себя на новых данных. Другая крайность: низкая емкость модели приведет к недообучению, что тоже будет выражено в плохой предсказательной способности на новых данных.
Самый простой случай выбора модели - техника передачи обучения. В этом случае используют несколько хорошо обученных нейросетей и дообучают их на профильной выборке.
Казалось бы 90% всех AI проектов можно реализовать по такому простому шаблону, но в реальности даже при этом подходе все быстро становится очень сложным, поскольку любая известная сеть создавалась для конкретной задачи и обучалась на данных что имелись у исследователя в то время.
Мы создаем AI алгоритмы в MATLAB, потому что это дает нам значимый результат быстрее и гибче, что позволяет удешевить исследование и получение конечного продукта.
Обучение алгоритма является самым вычислительно сложным процессом из всех представленных. Иногда обучение может занимать несколько дней для одной конфигурации, хотя и нет гарантии, что конкретная конфигурация алгоритма была наиболее эффективной.
Процесс обучения выстраивается в зависимости от типа и сложности задачи и количества имеющихся данных для обучения. Здесь нет единого и универсального шаблона. Обучение некоторых задач не требует специальных знаний и навыков, с другой стороны можно столкнуться с такими задачами, в которых обучение может вызвать серьёзные трудности даже у специалиста с большим опытом. Как пример: задачи выделения объектов на изображении с высоким разрешением, когда объекты имеют различный масштаб от нескольких пикселей до размеров, сравнимых с размером всего изображения, или задача обработки и предсказания многомерных временных последовательностей. В зависимости от исходной задачи мы можем применить различные подходы. В некоторых случаях приходится исследовать и искать новые подходы к обучению, а в некоторых достаточно применить базовые техники с параметрами обучения по умолчанию. Типичные проблемы:
Обученная нейронная сеть должна быть перенесена на целевую платформу для решения боевых задач. Одним из существенных преимуществ модельно-ориентированного проектирования - это возможность разделить создание алгоритма и его реализацию на целевой платформе. Такое деление позволяет алгоритмисту сфокусироваться на прикладной задаче, будучи уверенным, что сложностей с реализацией на целевой платформе не будет. Рассмотрим 2 типа целевых платформ:
Алгоритм может быть развернут на MATLAB сервере для обслуживания многих пользователей, работающих через “тонкие клиенты”. Такой подход экономит силы IT-службы по установке и поддержанию приложения. Обновления алгоритма на таком сервере может быть осуществлено “на лету” без перезагрузки программного и аппаратного обеспечения. Минусом такой реализации является необходимость передачи данных по сети на сервер, что может привести к нежелательным задержкам.
Встраиваемые системы используются в тех случаях, где алгоритм должен сработать моментально на захваченных данных и передать уже результаты классификации. Архитектуры могут быть самыми разными, потому должен быть гарантирован быстрый перенос алгоритма на различные архитектуры (микропроцессоры, графические процессоры и ПЛИС). Использование модельно-ориентированного проектирования позволяет получить исходные коды для реализации на произвольной встраиваемой системе с помощью методов автоматической генерации кода.
Итого подход модельно-ориентированного проектирования позволяет упростить реализацию алгоритмов глубокого обучения на любых платформах, освобождая время разработчиков для работы над самими алгоритмами. Мы выполнили десятки проектов по развертыванию алгоритмов на различных платформах и готовы безболезненно провести вас по этому маршруту.
В данном разделе вы можете ознакомиться с примерами наших работ, выполненных для других заказчиков, по тематике искусственного интеллекта. В рамках сотрудничества с нами возможна реализация всех описанных выше этапов, а также решение ваших специальных и специфических задач.
Доступ к актуальным технологиям и общение с передовыми заказчиками из разных отраслей позволяет нам выполнять проекты и переиспользовать накопленный уникальный опыт на самом высоком уровне. Особенностью сотрудничества с нами является передача компетенций заказчику, что в дальнейшем позволяет компании работать в данном направлении самостоятельно, не прибегая к помощи извне.