Найти тему
Bell Integrator

10 заблуждений о нейронных сетях 🧠

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

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

1️⃣ Нейронные сети не являются моделями человеческого мозга

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

Другими словами, элементы мозга присутствуют в дизайне нейронных сетей, но они намного менее похожи, чем вы думаете.

2️⃣ Нейронные сети не являются «слабой формой» статистики

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

В многослойном персептроне (МЛП) персептроны расположены в слои, а слои связаны друг с другом. В MLP существует три типа слоев, а именно:
▪️входной слой, который получает входные шаблоны;
▪️скрытый слой (слои) - корректируют веса на этих входах, пока ошибка нейронной сети не будет минимизирована;
▪️выходной слой - содержит список классификаций или выходных сигналов, с которыми эти входные шаблоны могут отображаться.

3️⃣ Нейронные сети бывают разных архитектур

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

▪️Рекуррентные нейронные сети - некоторые или все соединения текут в обратном направлении, что означает, что в сети существуют петли обратной связи.
▪️ Neural Turing Machine - сеть, которая сочетает в себе рекуррентную архитектуру нейронной сети с памятью.
▪️Нейронная сеть Больцмана - первые сети, способные изучать внутренние представления и решать очень сложные комбинаторные задачи. Самое популярное ограничение - запрет прямых связей между скрытыми нейронами.
▪️Глубокие нейронные сети - энейронные сети с несколькими скрытыми слоями. Глубокие нейронные сети стали чрезвычайно популярными в последние годы благодаря их беспрецедентному успеху в проблемах распознавания изображений и голоса.
▪️Адаптивные нейронные сети - это нейронные сети, которые одновременно адаптируют и оптимизируют свою архитектуру во время обучения. Это делается путем увеличения архитектуры или сокращения ее .
▪️Радиальные базисные сети - используют радиальные базисные функции в качестве своих функций активации. Наиболее часто используемые радиальные базисные функции.

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

4️⃣ Размер имеет значение, но больше не всегда лучше

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

5️⃣ Существует множество алгоритмов обучения для нейронных сетей

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

▪️Передача с прямой связью - набор обучающих данных передается через сеть, а выход из нейронной сети записывается и вычисляется ошибка сети.
▪️Обратное распространение - сигнал об ошибке передается обратно через сеть, а вес нейронной сети оптимизируется с использованием градиентного спуска.

Для достижения этой цели необходимы алгоритмы глобальной оптимизации. Два популярных алгоритма глобальной оптимизации - Оптимизация роя частиц (PSO) и Генетический алгоритм (GA).

6️⃣ Нейронные сети не всегда требуют много данных

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

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

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

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

7️⃣ Нейронные сети не могут быть обучены на каких-либо данных

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

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

8️⃣ Нейронные сети, возможно, потребуется переподготовка

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

Динамические нейронные сети «отслеживают» изменения в среде с течением времени и соответствующим образом корректируют их архитектуру и веса. Они адаптивны с течением времени.

9️⃣ Нейронные сети - это не черные ящики

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

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

🔟 Нейронные сети не сложно реализовать

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

🔗ht
tp://www.turingfinance.com/misconceptions-about-neural-n…/