«life – long learning, это про нас»: специалист по искусственному интеллекту рассказала о нейронных сетях
Сейчас нейросети все больше привлекают внимание людей. Наверное уже не осталось тех, кто не слышал о Chat GPT, не экспериментировал с персональными рекомендациями на стриминговых Системы искусственного интеллекта окружают нас всюду. Это рекомендации музыки от разных сервисов, распознавание речи в мессенджерах, а также лиц по данным камер видеонаблюдения и много другое. Потенциал применения таких систем самый широкий, на что только хватает фантазии.сервисах или не использовал фоторедактор для обработки фотографий в стиле аниме. Однако многие ли из нас задумывались о том, как работают эти системы и что позволяет им осуществлять свою деятельность? Чтобы разобраться в работе искусственного интеллекта (ИИ), мы пообщались с Анной Пятаевой, руководителем научно-учебной лаборатории Систем искусственного интеллекта института Космических и информационных технологий Сибирского федерального университета.
– Что такое нейросеть, и как она устроена?
Сначала нейросеть называли искусственной нейронной сетью, потом просто нейронной сетью, а теперь и вовсе говорят «нейронка». Раньше нейронные сети не были так популярны для решения различных задач, так как не показывали впечатляющих результатов. Слово «искусственная» использовали, чтобы подчеркнуть, что речь идет о компьютерных науках, а не о биологии.
Нейронная сеть – это структура подобная человеческому мозгу, который состоит из особых клеток, называемых нейронами. В искусственной нейронной сети тоже есть простой вычислительный элемент – нейрон, который умеет выполнять одну математическую операцию суммирования и передавать сигнал дальше. Нейросеть состоит из множества таких элементов, соединенных между собой.
Ранние исследователи ИИ решили сымитировать человеческие нейроны путем создания простых программных искусственных нейронов. Ничего особенного, просто множество сигналов в качестве входных данных, проходящих через нейрон, комбинирующихся и обрабатывающихся простой математикой, формирующихся в новый выходной сигнал. Начало хорошее, но один нейрон много не сделает. Полный потенциал этой идеи раскрывается только тогда, когда искусственные нейроны связываются друг с другом и формируют искусственную нейронную сеть.
Математически нейрон – это функция, преобразующая входные сигналы в выходной и передающая его дальше в сеть. Суммирующий блок нейрона, соответствующий телу
биологического элемента, складывает взвешенные входы алгебраически, создавая выход. Далее сигнал преобразуется специальной активационной функцией и дает выходной нейронный сигнал, который передается дальше в сеть.
– Может ли нейросеть обучаться сама?
Нейросеть учится для того, чтобы решать наши задачи, связанные с мыслительной деятельностью за нас, в помощь нам. Этот процесс похож на обучение школьников. Когда за правильный ответ мы гладим модель по головке, а за неправильный ругаем. Все как у детей.
Конечно, нейронная сеть может обучаться сама. Это примерно так: мы не говорим правильный ответ о том, например, что на картинке, а только ругаем модель, накладываем на нее штрафы. И модель сама должна угадать что она делает не так.
Нейронные сети могут быть обучены самостоятельно с использованием различных методов машинного обучения. Одним из таких методов является обучение с подкреплением, где нейронная сеть самостоятельно взаимодействует с окружающей средой, получая положительные или отрицательные отзывы на основе своих действий. Она старается максимизировать общую награду, принимая во внимание последствия своих действий. Этот процесс повторяется множество раз, пока нейросеть не достигнет желаемого уровня производительности.
Существуют также алгоритмы без учителя, они позволяют нейросети самостоятельно обнаруживать структуры и закономерности во входных данных без прямого обучающего сигнала. Примером такого метода является кластерный анализ, где нейросеть группирует данные на основе их сходства или различий.
Кроме того, нейронные сети могут использовать методы обучения с подкреплением и обучения без учителя в комбинации с обучением с учителем. Здесь данные с явными метками используются для обучения нейросети, а затем она самостоятельно улучшает свою производительность путем взаимодействия с окружающей средой или за счет обнаружения структур в данных без явного учителя.
– Где сейчас могут применяться нейросети? Кому это может быть полезно?
Системы искусственного интеллекта окружают нас всюду. Это рекомендации музыки от разных сервисов, распознавание речи в мессенджерах, а также лиц по данным камер видеонаблюдения и много другое. Потенциал применения таких систем самый широкий, на что только хватает фантазии.
В медицине ИИ используется для диагностики и прогнозирования заболеваний, анализа медицинских изображений. Например, для анализа снимков МРТ или рентгеновских снимков, разработки индивидуальных лечебных планов и обработки медицинских данных для выявления трендов и паттернов. В сфере финансов ИИ автоматизирует процессы, прогнозирует рыночные тренды, определяет возможные риски и мошенническую активность, а также участвует в создании интеллектуальных финансовых роботов-советников. В системе транспорта ИИ применяется для автономного управления автомобилями, оптимизации маршрутов, прогнозирования трафика, улучшения систем безопасности и разработки умных транспортных сетей.
В промышленности ИИ используют для автоматизации производственных процессов, мониторинга и обслуживания оборудования, оптимизации производственных линий, прогнозирования отказов и улучшения общей эффективности производства. кроме того, ИИ широко используется для обработки и анализа текстов, создания голосовых помощников, машинного перевода, генерации контента и автоматического ответа на вопросы. Мое самый любимый приемр – Компьютерное зрение. Здесь ИИ нужен для распознавания и классификации объектов на изображениях и видео, обнаружения аномалий и контроля качества, робототехники, виртуальной и дополненной реальности.
Искусственный интеллект и нейронные сети становятся сейчас просто удобным, и даже уже привычным инструментом, облегчающим жизнь людей. Думаю, в ближайшее время в учебные планы будет добавлена дисциплина наподобие «Базовые компетенции в области искусственного интеллекта».
– Как связаны нейросети и машинное обучение?
Нейронные сети – один из видов машинного обучения. Машинное обучение, в свою очередь, является областью искусственного интеллекта, которая занимается разработкой алгоритмов и моделей, которые позволяют компьютерам извлекать информацию из данных и автоматически обучаться на основе опыта. Машинное обучение включает в себя различные методы, такие как нейронные сети, деревья решений, наивные байесовские классификаторы, метод опорных векторов и многие другие.
– Как происходит обучение нейросетей? Как отбираются данные, которые используются для этого?
Обучение нейронных сетей является процессом, в котором нейронная сеть адаптируется к предоставленным ей данным с целью научиться выполнять определенную задачу. Весь этот процесс является итеративным, и оптимальные архитектура и параметры нейронной сети достигаются путем экспериментирования и настройки.
Общий процесс обучения нейронных сетей можно описать следующим образом: подготовка и обработка данных – это первый шаг в обучении нейронной сети. Она может включать сбор данных, их очистку, нормализацию и разделение на обучающую, проверочную и тестовую выборки. Тут все очень зависит от задачи. Ведь, данные для системы распознавания номеров и системы чтения рукописных текстов разные. К примеру, данные может отбирать эксперт в предметной области. Затем следует второй шаг – определение архитектуры нейронной сети: количество слоев, типы слоев, количество нейронов в каждом слое и функции активации. Архитектура нейронной сети также зависит от конкретной задачи, которую она должна решить. Далее следует инициализация весов. В начале обучения веса нейронной сети обычно инициализируются случайными значениями. Это дает сети начальную точку для обучения. Следующий этап называется «прямое распространение». Данные подаются на вход нейронной сети, и информация распространяется от входных слоев к выходным слоям. Каждый нейрон в сети вычисляет свою активацию на основе входных данных и текущих весов. После этого следует вычисление функции потерь (loss function). На мой взгляд, неудачное название для функции ошибки. Мы ведь ничего не теряли. На этом этапе сеть сравнивает свои выходные значения с ожидаемыми значениями и вычисляет функцию потерь, которая измеряет, насколько хорошо сеть выполнила задачу. После происходит вычисление градиентов функции потерь по весам сети, этот этап называется «обратное распространение». Градиенты используются для обновления весов в процессе обучения с целью минимизации функции потерь. После вычисления градиентов происходит обновление весов нейронной сети с использованием оптимизационного алгоритма. Обновление весов направлено на уменьшение функции потерь и улучшение производительности сети. После этого начинается обучение нейронной сети. Это – итерационный процесс: шаги прямого и обратного распространения выполняются итеративно на протяжении нескольких эпох, то есть полных проходов через обучающую выборку или до тех пор, пока не будут достигнуты заданные критерии остановки. Например, достаточная точность или количество итераций. Каждая эпоха обучения обычно включает в себя прямое и обратное распространение на каждом обучающем примере, а затем обновление весов сети на основе суммы градиентов за эпоху. После завершения обучения нейронной сети она оценивается на проверочной выборке, чтобы оценить ее производительность и выявить возможное переобучение. Это становится необходимым, когда когда сеть хорошо работает на обучающих данных, но плохо на новых. Если производительность модели не удовлетворяет требованиям, может потребоваться внесение изменений в архитектуру или параметры обучения и повторение процесса обучения. После успешного обучения модель может быть использована для прогнозирования или классификации новых данных, которые не входили в обучающую выборку.
– Какие навыки и знания необходимы для работы с нейросетями?
Конечно, нужно иметь технический склад ума, обладать настойчивостью и определенной степенью упрямства. Сразу может ничего не получаться, в современном ритме мы все хотим быстрого результата, а тут игра в долгую. Самый главный навык – умение учиться, life – long learning, это про нас.
Для работы с нейронными сетями необходимо знать математические основы. Хорошее понимание линейной алгебры, математического анализа и вероятности важно для понимания и разработки алгоритмов глубокого обучения. Навыки программирования также нужны для реализации и экспериментирования с нейронными сетями. Основные языки программирования, используемые в этой области, включают Python, C++ и Java. Кроме того, требуется знание основных библиотек машинного обучения, таких как TensorFlow или PyTorch.
Очень важно иметь представление о том, как работает машинное обучение и нейронные сети. Это включает в себя знание как базовых основ машинного обучения, классических методов, так и различных типов нейронных сетей. Например, таких как сверточные нейронные сети (Convolutional Neural Networks) для компьютерного зрения или рекуррентные нейронные сети (Recurrent Neural Networks) для обработки последовательностей. Пригодятся также навыки работы с данными. Это нужно для обработки и подготовки наборов данных: извлечения признаков, аугментации данных и их преобразования в формат, пригодный для обучения нейросети. При этом важно понимать, что разные данные требуют разных методов.
Умение оптимизировать и настраивать параметры моделей является важным для достижения хорошей производительности нейронных сетей. Это включает в себя знание методов оптимизации, регуляризации и выбора гиперпараметров.
Навыки оценки производительности моделей, интерпретации результатов и понимания проблем, связанных с нейронными сетями. Они нужны для оценки и интерпретации полученных на выходе результатов. Это поможет улучшить итерации разработки модели.
Наконец, нужно уметь постоянно обновлять свои знания и изучать новые концепции. Область глубокого обучения и нейронных сетей активно развивается, и важно быть готовым к постоянному обучению новым методам, алгоритмам и инструментам.
– Существует ли какая-то библиотека бесплатных нейросетей или все нейросети как какой-либо софт принадлежат каким-то корпорациям?
Существует множество библиотек с открытым исходным кодом, которые предоставляют бесплатные нейронные сети для различных задач машинного обучения. Эти библиотеки позволяют исследователям и разработчикам использовать нейросети без необходимости создания их с нуля.
Есть несколько популярные библиотек с открытым исходным кодом, которые предоставляют нейросети, некоторые из них, это: TensorFlow, PyTorch, Keras. Кроме того, есть фреймворки для работы с нейронными сетями. Правда, несмотря на взаимодействие с ними через интерфейсные компоненты, а не через строки программного кода, разбираться с деталями настройки нейронных сетей все равно придется и тут.
Хоть некоторые из библиотек и фреймворков разрабатываются корпорациями, они являются открытыми и доступными бесплатно для использования исследователями и разработчиками.
– Как вы относитесь к тому, что Илон Маск запретил обучать нейросети?
Насколько я могу знать не запретил, а требовал запретить. Мне кажется, власти именно запретить у него нет. Прямо сейчас мы учим «нейронку» распознавать породы деревьев по данным аэрофотосъемки. Илон Маск не звонил и никак на это не влиял.
На мой взгляд, корни этого решения лежат в отсутствии каких-либо законов, регулирующих работу интеллектуальных систем. Эти системы, однако, за последний год совершили впечатляющий рывок в качестве принятия решений. Можно ли писать отчет по курсовой работе с помощью Chat GPT? То, что он выдает нельзя считать плагиатом, но этот текст пишет не студент. И что с этим делать? Бывали и случаи происшествий на дороге с беспилотными автомобилями. Если ДТП происходит по вине человека, что с ним делать понятно, это определено законами и правилами. Вопрос о том, что делать с ИИ в таком случае, пока остается неразрешенным.
– Занимались ли Вы когда-то созданием и обучением нейросетей? Пожалуйста, поделитесь своим опытом.
В лаборатории Систем искусственного интеллекта ИКИТ мы занимаемся задачами компьютерного зрения и обработкой естественного языка.
Сейчас меня увлекает тема по «Цифровизации городской экологической среды». Это разработка комплекса научно-технических решений в области мониторинга зеленых насаждений в городской среде на основе данных БПЛА (беспилотный летательный аппарат) и с нейронной сетью внутри.
Насаждения в черте города играют важнейшую роль в формировании «зеленого щита». Они выполняют функцию компенсации повышенных фоновых концентраций углекислых газов и нейтрализации вредных атмосферных выбросов. Кроме того, наличие насаждений благоприятно сказывается на эмоциональном фоне жителей, это особенно актуально для индустриальных районов. Определение перспектив развития и оценка рисков от возможных внештатных ситуаций, связанных с городскими насаждениями в настоящее время является сложной задачей.
С коллегами мы разрабатываем методы и алгоритмы оценки состояния городских насаждений, чтобы затем, построить на их основе интерактивную карты городских насаждений. Как руководитель, я считаю, что студентам должно быть интересно работать по теме выпускной и курсовой работы, или даже кандидатской диссертации, поэтому предлагаю ребятам выбирать темы, которые вдохновляют именно их. Вот некоторые из них, которые уже удалось реализовать: «Распознавание огня и дыма с целью раннего обнаружения различных возгораний, как на городских территориях, так и на открытых пространствах», «Распознавание жестов по визуальным данным с учетом особенностей жестового языка сибирского региона», «Распознавание процесса курения по видеоданным и других действий», «Распознавание автомобильных номеров», «Разработка новых формул лекарств», «Распознавание лиц и перенос стиля изображений».
Прямо сейчас, например, наша выпускница создает мобильное приложение для идентификации дикоросов в лесу. Это может помочь собирателям растений не съесть что-то не то.
Фото: Анна Пятаева
ВЕРОНИКА Бакланова