Найти в Дзене

Создаем свою нейросеть с перцептроном и синапсами: выбираем предназначение нейросети

Вот и настала пора второй заметки из серии посвященных процессу разработки нейронной сети на канале Просто Код. Напомню, что в первом посте мы разбирались с теорией и вплотную подошли к некоторым математическим выкладкам, которые нужно будет использовать непосредственно при разработке и обучении нейронки. Если вы не читали еще первую заметку, то сделайте это. В скором времени (после третьей или четвертой заметки) сделаю отдельную рубрику для удобства. Сегодня материал опять-таки будет теоретическим, в нем определим какую именно нейросеть (точнее, для чего нейросеть) будем разрабатывать. Немного воспоминаний из прошлого Чтобы понимать то о чем пойдет речь ниже, нужно вспомнить, что любая искусственная нейронная сеть в общем случае состоит из следующих уровней (слоёв, если быть точнее и правильнее в плане формулировок) Виды нейронных сетей Из огромного количества материала отобрал то, что нужно для простого и понятного изложения. Начнем с того, какие вообще нейронные сети бывают и для че
Оглавление

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

Сегодня материал опять-таки будет теоретическим, в нем определим какую именно нейросеть (точнее, для чего нейросеть) будем разрабатывать.

Чтобы понимать то о чем пойдет речь ниже, нужно вспомнить, что любая искусственная нейронная сеть в общем случае состоит из следующих уровней (слоёв, если быть точнее и правильнее в плане формулировок)

  • входной слой - на нейроны этого слоя поступает информация
  • скрытый слой - нейроны этого слоя участвуют в обработке информации (скрытых слоев может быть несколько)
  • выходной слой - нейроны этого слоя принимают определенные решения на основе проанализированной информации

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

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

Нейронные сети прямого распространения

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

Наглядное представление нейронных сетей прямого распространения
Наглядное представление нейронных сетей прямого распространения

Сверточные нейронные сети

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

Наглядное представление сверточной нейронной сети
Наглядное представление сверточной нейронной сети

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

Рекуррентные нейронные сети

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

Наглядное представление рекуррентной нейронной сети
Наглядное представление рекуррентной нейронной сети

Потому такие сети применяют для моделирования или распознавания языка, генерации текстов или машинного перевода.

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

Сценарии использования нейронных сетей

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

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

Так что же выбрать?

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

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

Чтобы не пропустить новые материалы (в том числе и по разработке нейронки) подпишитесь на канал и его обновления в Телеграме. Не забудьте поставить лайк, написать комментарий и сделать репост.