Зоопарк алгоритмов

Что такое нейросети и какими они бывают

Всего за пару десятков лет искусственный интеллект, кажется, научился всему: от генерации текста и изображений до прогноза погоды, вождения автомобилей и обнаружения патологий на рентгеновских снимках. Тем не менее, в отличие от нашего мозга, созданный по его подобию ИИ неуниверсален — для решения конкретных задач нейросети постоянно изменяют и совершенствуют. Рассказываем, как они устроены, чем отличаются друг от друга и почему ни одна нейросеть не способна обойтись без человека.

Мы регулярно прибегаем к помощи алгоритмов — например, когда смотрим прогноз погоды, ищем билеты или просто хотим отдохнуть. Это такая же часть нашей жизни, как одежда и обувь, автомобили и смартфоны. Тем не менее искусственный интеллект, так глубоко проникший во все сферы нашей жизни, до сих пор может вызывать недоверие и страх. В проекте «ИИ спешит на помощь» мы рассказываем, на что способны современные технологии с использованием ИИ, где они приносят наибольшую пользу и почему не стоит бояться восстания машин. Материал подготовлен совместно с федеральным проектом «Искусственный интеллект» нацпроекта «Цифровая экономика».

От теории к практике

В середине XX века двое ученых, Уоррен Маккаллок и Уолтер Питтс, предположили, что нейроны в мозгу человека, если говорить просто, оперируют двоичными числами, как и компьютеры. Они создали конструкцию электронных аналогов нейронов и предсказали, что такая сеть сможет повторять работу мозга: обучаться, распознавать текст и изображения и многое другое. Их исследование, опубликованное в 1943 году, легло в основу работы «Логическое исчисление идей, относящихся к нервной активности». Ее можно считать точкой отсчета существования нейросетей — математических моделей, построенных по принципу организации и функционирования биологических нейронных сетей — нервных клеток живого организма.

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

  • В 1950 году в журнале Mind появилась статья Алана Тьюринга «Вычислительные машины и разум», где ученый предложил идею теста, который мог однозначно определить, может ли машина мыслить. Впрочем, ни искусственного интеллекта, ни нейросетей, которые описывали Маккаллок и Питтс, тогда еще не существовало.
  • В 1958 году Фрэнк Розенблатт закончил работу над перцептроном с обучением на градиентном спуске. Это устройство, в сущности, представляло собой один-единственный нейрон (современные нейросети состоят из миллионов нейронов).
  • На рубеже 1970–1980-х годов ученые поняли, что перцептроны можно объединять в сколь угодно большие сети и обучать их не как отдельные элементы, а как единый организм. Однако эта идея существовала лишь в теории: никто не обладал мощностями, необходимыми для выполнения этой задачи.

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

К концу XX века алгоритмов стало больше, вычислительные машины научились делать более мощными и компактными, а кроме того, появились наборы данных для обучения. Желания ученых наконец стали осуществимы. Вскоре им удалось добиться успеха в распознавании речи, а затем и в области компьютерного зрения (подробнее об этом читайте в нашем материале «Смотри внимательно») — в 2012 году была опубликована знаковая статья, посвященная нейросети ImageNet и глубокому обучению.

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

Подобие мозга

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

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

Нейросети можно категоризировать по-разному — например, на однослойные и многослойные, на нейросети прямого распространения и рекуррентные, на радиально-базисные, а также по типу обучения: с учителем или без, аналоговые, двоичные или образные, с фиксированными или динамическими связями. Ультимативной классификации не существует. Инфографика, созданная в 2016 году, демонстрирует почему.

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

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

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

Сверточные нейросети. Архитектура сверточных нейронных сетей похожа на нейросети прямого распространения, но они обладают бо́льшим количеством слоев. Это позволяет учитывать свойства входных данных и реализовывать прямое распространение эффективнее, что подходит для обработки изображений. Структура тоже однонаправленная (данные проходят от входного слоя к выходу), и обратных связей тут нет. Сверточные нейросети напоминают зрительную кору, у которой есть простые клетки, реагирующие на попадание света под разным углом, и сложные клетки, реакция которых связана с активацией простых. Они входят в набор глубокого обучения (deep learning) и позволяют распознавать объекты, прогнозировать, классифицировать изображения, находить аномалии и выполнять другие подобные задачи.

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

Попробуйте сами

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

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

Для генерации изображений можно воспользоваться, например, нейросетью Kandinsky, обученной специалистами Сбера, или нашумевшей Midjourney. Опробовать Kandinsky можно в приложении «Салют», команда «Позови художника». Если раньше для работы с нейросетями необходимо было скачивать или разворачивать их на сервере, то сейчас появились и более простые решения для удобства пользователей.

Кстати, еще один хороший пример генеративной нейросети — это проекты ThisPersonDoesNotExist и ThisCatDoesNotExist, которые генерируют изображения несуществующих людей или котов каждый раз, когда вы открываете сайт. Они используют популярную нейросеть GAN.

Примером работы генеративной нейросети, взаимодействующей не с изображениями, а с текстом, может служить сборник рассказов «Пытаясь проснуться», написанный совместными усилиями писателя Павла Пепперштейна и нейросети ruGPT-3. Нейросеть используется и в других сервисах и проектах Сбера: например, «Суммаризатор текста» делает короткую выжимку с главными тезисами из любой литературы, а «Рерайтер» переписывает текст с сохранением смысла. Есть даже генеративная музыка, созданная в нейросетевой архитектуре SymFormer, основанной на открытой модели Performer.

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


Есть у Яндекса, кстати, и генеративная сеть — Балабоба, которая может создать текст с нуля по вашему запросу. Или вот более специфичный пример — нейросеть Ольга Станиславовна, которая оценивает комментарии в интернете. Это уже задача классификации.

Используются нейросети и для решения более сложных задач. Например, сеть регрессионного типа, созданная в Центре компетенций НТИ «Искусственный интеллект», оптимизирует движение поездов. Алгоритм учитывает около 30 дополнительных параметров, в том числе наличие других поездов на пути, изменение скорости поезда из-за ландшафта и так далее.

Специалисты МФТИ в этом году рассказали, что совместно с Минприроды России активно внедряют сверточные нейросети для мониторинга биоразнообразия на особо охраняемых природных территориях. В заповедниках есть десятки, а то и сотни фотоловушек. Полученные с них изображения обрабатывает нейросеть. Иногда в объективы попадают люди, которых там быть не должно — нейросеть мгновенно замечает это и тем самым помогает быстро находить браконьеров.

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

Нейросети нужен человек

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

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

Конечно, попытки создания обособленных нейронных сетей уже есть, но их полной автономии добиться не удалось. Может быть, она и не нужна: это откроет путь в будущее, где роботам будут не нужны люди. А это уже что-то на грани фантастики. В реальности предназначение ИИ заключается в том, чтобы помогать человеку — и технологии развиваются именно в этом направлении.

Нашли опечатку? Выделите фрагмент и нажмите Ctrl+Enter.
Смотри внимательно

Как компьютеры видят мир и зачем это нужно