За последние несколько лет искусственный интеллект и нейросети пробрались практически во все сферы жизни. И хоть теоретические выкладки в этой области появились уже давно, возможность создать имеющие практическое применение программы появилась сравнительно недавно, когда в начале двухтысячных годов скопилось достаточное количество данных, а также достигли определенного уровня вычислительные мощности и их стоимость.
Нейросети используются очень широко, вы напрямую взаимодействуете с ними, когда ищите что-либо в поисковике, узнаете маршрут до нужной вам точки (с учетом пробок, конечно), проверяете прогноз погоды на ближайшие дни, заезжаете на парковку с распознаванием номеров, а если повезет, то можете даже поговорить с нейросетью, позвонив в банк. Это самые простые примеры, с которыми мы сталкиваемся каждый день. Не менее широко нейросети используются и в професоиональных сферах: социологии, журналистике, лингвистике, и многих других областях.
В то же время практически все современные веб-сервисы, компьютерные программы и мобильные приложения основаны на графическом интерфейсе. Следующий по популярности интерфейс — командная строка, используется только в конкретных областях, чаще всего связанных с программированием. Это довольно логично, учитывая тот факт, что сама работа в командной строке во многом и является программированием, однако таким навыком обладают далеко не все, ведь для его получения требуется несколько месяцев, если не лет, кропотливого изучения предмета.
Несмотря на высокую востребованность нейросетей, единственным способом их построения остается программирование. В данной работе мы исследуем возможности интеграции альтернативного способа работы с нейросетями — графического интерфейса, а также постараемся разобраться, почему подобные приложения не появились раньше.
В результате данной работы было создано приложение с графическим интерфейсом, позволяющее создавать и настраивать произвольные модели глубокого обучения с нуля практически без использования кода. Единственный элемент, настройка которого осуществляется традиционным способом был спроектирован с целью демонстрации различных подходов к визуальной настройке и возможности перехода к графическому интерфейсу без потери гибкости интерфейса командной строки.
Получившаяся программа позволяет пользователю контролировать весь процесс обучения: загрузку данных, построение нейросети, выбор методов оптимизации и анализ качества. Система построена таким образом, что ее легко дополнять и совершенствовать, главным достижением работы можно назвать разработку класса базового слоя, благодаря которому можно легко добавить в программу слой с произвольным преобразованием данных.
Несмотря на то, что возможности графического интерфейса не были реализованы в полной мере, уже сейчас система берет на себя большую часть работы пользователя, по умолчанию отображая дополнительную информацию об объектах, расположенных на экране, для получения традиционным способом которой пришлось бы провести дополнительную работу.
Ссылка на исходный код программы: https://github.com/ispraf38/Learn2Learn