Дизайн  •  12 сентября  2022  •  5 мин чтения

Для чего строят и обучают нейросети в IT

Разбираемся с принципами работы, функциями нейронных сетей и с тем, какие задачи можно решить с их помощью.

Что такое нейросеть

Нейросеть в машинном обучении — это математическая модель, которая работает по принципу нейронной сети живого организма. В отличие от нейросети животного, которая передаёт сигнал от мозга к другим органам и полностью регулирует жизнедеятельность организма, компьютерная нейросеть учится решать только ту задачу, которую ей ставит человек.

Например, задача голосовых умных помощников, таких как Алиса в Яндекс Станции, — научиться отвечать на вопросы человека и поддерживать разговор с ним.

Виды нейронных сетей

Классификация нейронных сетей основана на задачах, с которыми они работают:

● многослойные нейронные сети, или перцептроны, обрабатывают числовые данные;

● свёрточные нейронные сети работают с изображениями;

● рекуррентные нейронные сети собирают и обрабатывают информацию, которая меняется с течением времени;

● генеративные нейронные сети создают контент — тексты, изображения.

Со всем разнообразием нейросетей можно познакомиться на схеме The Asimov Institute.

Виды нейронных сетей

Для чего нужны нейронные сети

Суть работы нейронных сетей — смоделировать способ решения задачи, присущий людям. Чтобы определить пол человека, изображённого на фотографии, нейросеть будет использовать те же принципы, по которым работает человеческое зрение.

Использование нейронных сетей опирается на накопленный опыт в виде данных и подходит для решения задач, с которыми человечество уже знакомо. Например, нейросети могут помочь организовать полёт внутри Солнечной системы, а для планирования полёта за её пределы лучше опираться на физическую теорию.

Задачи нейронных сетей

Применение функций нейронных сетей позволяет решать задачи следующих типов:

● Классификация. Например, когда нужно определить соответствует ли человек категории населения, которой положены льготы.

● Предсказание. Например, чтобы спрогнозировать стоимость акций компании.

● Распознавание. Например, когда нужно определить, кто изображён на фотографии — мужчина или женщина.

● Решение задач без учителя. Например, выбор аудитории для таргетированной рекламы.

Сферы применения нейронных сетей

Нейронные сети могут использоваться для решения задач из любых отраслей, но есть тонкости. Нейросети хорошо справятся только в тех случаях, когда задача уже была решена другими способами и есть накопленный объём релевантных данных. Новая задача — это область знания, к которой нейросеть вряд ли сможет подступиться. Если помимо данных важен ещё и контекст, лучше решить задачу без помощи нейросетей.

Например, логистической компании нужно построить самые быстрые маршруты. Если в качестве исходных данных будет использована информация о маршрутах, которые строили сами водители, нет смысла подключать нейросеть. При выборе они будут опираться на другие факторы.

Если использование нейросетей всё же уместно, то для решения основной задачи может использоваться не одна нейросеть, а сразу несколько. В этом случае большая задача разбивается на много мелких.

Например, чтобы научить нейросеть управлять беспилотным автомобилем, нужно смоделировать поведение человека-водителя, который во время движения должен распознавать дорожные знаки и разметку, реагировать на сигналы светофора, прогнозировать поведение других водителей и замечать людей, которые оказались на дороге. Для решения каждой из этих задач в беспилотном автомобиле работает отдельная нейросеть.

Принцип работы нейронной сети

Весь процесс можно разделить на шесть этапов. За каждый из них отвечают специалисты по Data Science.

1. Постановка задачи

С этого начинается работа над построением нейронной сети.

2. Сбор исходных данных

Для работы нейросети нужна информация, на основе которой она будет учиться искать решение. Данные должны быть качественными, потому что сеть отчасти похожа на ребёнка: подай плохой пример, и она будет им руководствоваться, скажи плохое слово, и будет его повторять.

3. Анализ данных

Это нужно, чтобы выяснить, нет ли скрытых зависимостей или некорректных данных.

Умение анализировать данные — важный навык в IT. На курсе Яндекс Практикума «Специалист по Data Science» студенты учатся искать в данных взаимосвязи и строить модели машинного обучения, которые будут решать задачи. В том числе на бесплатном вводном курсе. Записаться на него можно уже сейчас.

4. Обучение нейронной сети

Нейросети показывают часть данных, чтобы она поняла взаимосвязь между ними, и периодически проверяют качество работы. Обычно тренируют несколько нейронных сетей, выбирают наиболее качественную из них и продолжают работать с ней.

5. Мониторинг нейросети

Специалисты по Data Science смотрят, насколько хорошо модель работает на реальных данных. Как только она начинает плохо справляться с поставленной задачей, её дообучают — показывают несколько примеров новых данных до тех пор, пока она не исправится.

Чтобы не упустить момент, когда нейросеть начинает ошибаться, используют метод human-in-the-loop, в ходе которого человек решает ту же самую задачу на основе тех же данных, а затем специалист по Data Science сравнивает результаты. Если выясняется, что задача решена неверно, нейронную сеть снова дообучают.

6. Дообучение нейросети

Постоянное обучение — основа работы любой нейронной сети. Процесс проверок и дообучения идёт по кругу до тех пор, пока применение нейросети не утратит смысл.

Нейросети не обязательно обучать с нуля — достаточно «подтянуть» их знания по нужным параметрам. Это называется обучением с переносом опыта (англ. transfer learning). Например, предобученная нейросеть умеет определять, есть ли на фотографии человек. Следующий шаг — различать, пристёгнут ли он и не разговаривает ли по телефону за рулём.

Главная трудность в работе с нейросетями

Процесс отбора корректных данных сейчас автоматизирован лишь наполовину. Чтобы построить нейронную сеть, часть данных специалист по Data Science отбирает вручную.

Это связано с тем, что в базах данных всегда бывают аномальные значения, их ещё называют аномальными объектами или выбросами. Часть из них удаляется автоматически, а решение по остальным должен принимать человек.

Например, банк хочет проанализировать, какие категории клиентов возвращают ипотечные кредиты, а какие — нет. Допустим, в базе данных есть графа «количество детей у клиента». Значение «100» в этой графе — однозначно выброс, его можно удалять. А вот значение «10» или даже «20» может быть хоть и аномальным, но реальным. Его важно оставить в базе.

В крупных структурированных наборах данных могут встречаться ошибки, поэтому на решения нейросетей нельзя полагаться полностью.

Риски обучения нейросетей

Специалистам, которые работают с нейросетями, важно не доводить их до состояния переобучения. Когда нейросеть излишне подстраивается под данные, повышается риск упустить другие важные решения.

Например, задача — научить нейросеть вычислять спам. Переобученная нейросеть будет со стопроцентной точностью находить письма одного типа, если в них есть слова «миллионер» и «наследство». Но стоит спамеру заменить одну вводную, «миллионера» на «миллиардера», и нейросеть может посчитать такое письмо нормальным.

Преимущества и недостатки нейронных сетей

Преимущества
Использование нейросетей может существенно облегчить работу человека, потому что они:

● активно обучаются и могут находить оптимальные решения вместо человека;

● хорошо работают в связке «человек — нейронная сеть», увеличивают угол обзора для принятия решения и страхуют от серьёзных ошибок.

Недостатки
Несмотря на преимущества, нейросети не идеальны.

● Результат их работы зависит от выбора исходных данных для обучения.

● Занимают много места на сервере: чем сложнее задача, которую решает нейросеть, тем больше её объём.

● Человек не до конца понимает, как работает нейросеть и какие именно данные из предоставленного объёма использует для принятия решения.

● Не гарантируют верное решение задачи, так как зависят от данных, которые выбрал для них человек.

Подводим итоги

  1. Нейросети способны заменить или дополнить работу человека в тех случаях, когда решение нужно принимать на основе предыдущего опыта.

  2. Чтобы запустить нейросеть, нужны исходные данные, но это не обязательно делать с нуля. Можно взять предобученную нейросеть и подтянуть её знания по нужным параметрам.

  3. Нейросети можно использовать в любых сферах деятельности. Главное — давать им задачи, которые уже решал человек, и обучать с помощью качественных данных.

  4. Нейросети могут решать задачи вместо человека или вместе с ним. Использование нейросетей снижает вероятность ошибок, но не избавляет от них полностью.

Статью подготовили:

Даниил Федулов
Яндекс Практикум
Консультант, Data Scientist
Инна Никитина
Яндекс Практикум
Редактор

Дайджест блога: ежемесячная подборка лучших статей от редакции

Поделиться 

Успейте начать учебу в Практикуме до конца ноября со скидкой 20%

Fri Nov 15 2024 12:11:18 GMT+0300 (Moscow Standard Time)