Например, задача голосовых умных помощников, таких как Алиса в Яндекс Станции, — научиться отвечать на вопросы человека и поддерживать разговор с ним.
● многослойные нейронные сети, или перцептроны, обрабатывают числовые данные;
● свёрточные нейронные сети работают с изображениями;
● рекуррентные нейронные сети собирают и обрабатывают информацию, которая меняется с течением времени;
● генеративные нейронные сети создают контент — тексты, изображения.
Со всем разнообразием нейросетей можно познакомиться на схеме The Asimov Institute.
Использование нейронных сетей опирается на накопленный опыт в виде данных и подходит для решения задач, с которыми человечество уже знакомо. Например, нейросети могут помочь организовать полёт внутри Солнечной системы, а для планирования полёта за её пределы лучше опираться на физическую теорию.
● Классификация. Например, когда нужно определить соответствует ли человек категории населения, которой положены льготы.
● Предсказание. Например, чтобы спрогнозировать стоимость акций компании.
● Распознавание. Например, когда нужно определить, кто изображён на фотографии — мужчина или женщина.
● Решение задач без учителя. Например, выбор аудитории для таргетированной рекламы.
Например, логистической компании нужно построить самые быстрые маршруты. Если в качестве исходных данных будет использована информация о маршрутах, которые строили сами водители, нет смысла подключать нейросеть. При выборе они будут опираться на другие факторы.
Если использование нейросетей всё же уместно, то для решения основной задачи может использоваться не одна нейросеть, а сразу несколько. В этом случае большая задача разбивается на много мелких.
Например, чтобы научить нейросеть управлять беспилотным автомобилем, нужно смоделировать поведение человека-водителя, который во время движения должен распознавать дорожные знаки и разметку, реагировать на сигналы светофора, прогнозировать поведение других водителей и замечать людей, которые оказались на дороге. Для решения каждой из этих задач в беспилотном автомобиле работает отдельная нейросеть.
1. Постановка задачи
С этого начинается работа над построением нейронной сети.
2. Сбор исходных данных
Для работы нейросети нужна информация, на основе которой она будет учиться искать решение. Данные должны быть качественными, потому что сеть отчасти похожа на ребёнка: подай плохой пример, и она будет им руководствоваться, скажи плохое слово, и будет его повторять.
3. Анализ данных
Это нужно, чтобы выяснить, нет ли скрытых зависимостей или некорректных данных.
Умение анализировать данные — важный навык в IT. На курсе Яндекс Практикума «Специалист по Data Science» студенты учатся искать в данных взаимосвязи и строить модели машинного обучения, которые будут решать задачи. В том числе на бесплатном вводном курсе. Записаться на него можно уже сейчас.
Нейросети показывают часть данных, чтобы она поняла взаимосвязь между ними, и периодически проверяют качество работы. Обычно тренируют несколько нейронных сетей, выбирают наиболее качественную из них и продолжают работать с ней.
5. Мониторинг нейросети
Специалисты по Data Science смотрят, насколько хорошо модель работает на реальных данных. Как только она начинает плохо справляться с поставленной задачей, её дообучают — показывают несколько примеров новых данных до тех пор, пока она не исправится.
Чтобы не упустить момент, когда нейросеть начинает ошибаться, используют метод human-in-the-loop, в ходе которого человек решает ту же самую задачу на основе тех же данных, а затем специалист по Data Science сравнивает результаты. Если выясняется, что задача решена неверно, нейронную сеть снова дообучают.
6. Дообучение нейросети
Постоянное обучение — основа работы любой нейронной сети. Процесс проверок и дообучения идёт по кругу до тех пор, пока применение нейросети не утратит смысл.
Нейросети не обязательно обучать с нуля — достаточно «подтянуть» их знания по нужным параметрам. Это называется обучением с переносом опыта (англ. transfer learning). Например, предобученная нейросеть умеет определять, есть ли на фотографии человек. Следующий шаг — различать, пристёгнут ли он и не разговаривает ли по телефону за рулём.
Это связано с тем, что в базах данных всегда бывают аномальные значения, их ещё называют аномальными объектами или выбросами. Часть из них удаляется автоматически, а решение по остальным должен принимать человек.
Например, банк хочет проанализировать, какие категории клиентов возвращают ипотечные кредиты, а какие — нет. Допустим, в базе данных есть графа «количество детей у клиента». Значение «100» в этой графе — однозначно выброс, его можно удалять. А вот значение «10» или даже «20» может быть хоть и аномальным, но реальным. Его важно оставить в базе.
В крупных структурированных наборах данных могут встречаться ошибки, поэтому на решения нейросетей нельзя полагаться полностью.
Например, задача — научить нейросеть вычислять спам. Переобученная нейросеть будет со стопроцентной точностью находить письма одного типа, если в них есть слова «миллионер» и «наследство». Но стоит спамеру заменить одну вводную, «миллионера» на «миллиардера», и нейросеть может посчитать такое письмо нормальным.
● активно обучаются и могут находить оптимальные решения вместо человека;
● хорошо работают в связке «человек — нейронная сеть», увеличивают угол обзора для принятия решения и страхуют от серьёзных ошибок.
● Результат их работы зависит от выбора исходных данных для обучения.
● Занимают много места на сервере: чем сложнее задача, которую решает нейросеть, тем больше её объём.
● Человек не до конца понимает, как работает нейросеть и какие именно данные из предоставленного объёма использует для принятия решения.
● Не гарантируют верное решение задачи, так как зависят от данных, которые выбрал для них человек.
Нейросети способны заменить или дополнить работу человека в тех случаях, когда решение нужно принимать на основе предыдущего опыта.
Чтобы запустить нейросеть, нужны исходные данные, но это не обязательно делать с нуля. Можно взять предобученную нейросеть и подтянуть её знания по нужным параметрам.
Нейросети можно использовать в любых сферах деятельности. Главное — давать им задачи, которые уже решал человек, и обучать с помощью качественных данных.
Нейросети могут решать задачи вместо человека или вместе с ним. Использование нейросетей снижает вероятность ошибок, но не избавляет от них полностью.
Читать также: