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

Создание нейронной сети в основном эквивалентно созданию человеческого мозга!

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

Я слишком много внимания уделял реализации RNN с LSTM, что полностью упустил из виду значение модели. Итак, вот мой первый совет: не будьте роботом и сразу приступайте к программированию. Моделирование РНС требует терпения и понимания. Как можно создать сеть, не имея возможности определить входные размеры?

Мне было поручено собрать тематическое исследование и применить к нему модель RNN. Ошибка, которую я здесь совершил, заключалась в том, что я сразу начал кодировать, даже не задумываясь о данных! В качестве примера я решил смоделировать механизм прогнозирования фондового рынка.

Я подробно объясню, что делать и чего не делать, основываясь на моем опыте работы над этим проектом прогнозирования фондового рынка:

  1. Определите формулировку проблемы: она должна быть №1 в вашем списке при создании любого проекта. Я был сбит с толку, прогнозировать ли акции на основе открытия, закрытия и объемов, или выяснить, сколько акция будет возвращена через определенный период времени, или провести анализ временных рядов.
  2. Данные Данные Данные: данные - самая важная часть вашего исследования. Итак, используете ли вы Quandl или Yahoo! Финансы, убедитесь, что вы получаете данные с правильными полями. Найдите как можно больше ссылок. Не ограничивайте себя поиском только количественных данных, поиском контекстных и субъективных данных, таких как новости, положительные и отрицательные настроения, меморандум о взаимопонимании компании и т. Д.
  3. Модель: выберите модель, которую вы можете применить. В последние годы в области глубокого обучения появилось много нового. Миллионы людей ежедневно используют миллионы моделей для прогнозирования данных фондового рынка. Итак, даже если вы выберете RNN, что делает вашу модель такой особенной? Какие уникальные входные векторы вы выбираете?
  4. Выбор функций. Убедитесь, что вы читали о цене акций, ротации, корреляции, доходах, объемах и т. д. Включение этого в ваши данные сделает вашу модель более подходящей для реальных жизненных ситуаций.
  5. Выберите нишу. Не просто загружайте данные об акциях для каждого потребительского бренда. Найдите момент, чтобы решить, на какой конкретный сектор вы хотите нацелить, а затем найдите соответствующие данные. Возьмем, к примеру, S & P500, NASDAQ100 или ETF.
  6. Подумайте: подумайте, как и почему вводимые данные (например, новости) могут повлиять на цену акций. Постройте комбинацию входных векторов методом проб и ошибок.
  7. Реальная экономика. Экономические теории, такие как традиционный анализ цен с использованием Блэка-Шоулза или Бокса-Дженкинса, могут действительно повысить актуальность вашей модели. Прочтите о различных экономических и статистических теориях.
  8. Проверьте как можно больше: настройте размер сети, количество слоев, регуляризацию, настройку параметров, чтобы получить правильную модель.
  9. Хеджирование: ваша модель всегда будет связана с риском «черного лебедя». Ваша модель не может отображать человеческое поведение, которое может быть настолько непредсказуемым. Никто не видел приближения «вспышки», и поэтому вы должны найти выход в этом случае.
  10. Градиентный спуск. Убедитесь, что ваша модель соответствует желаемому градиентному спуску. Прочтите о проблеме исчезающего градиента и избегайте использования обратного распространения в своей модели.
  11. Активации: выберите соответствующую активацию для каждого слоя, будь то tanh, sigmoid или ReLu.
  12. Осцилляторы. Такие индикаторы, как MACD, RSI, Williams, могут помочь вам принять лучшее решение при создании слоев.
  13. Модульность. Важно иметь модульный код для управления и обслуживания.

Надеюсь, эта статья поможет вам в вашем подходе к созданию модели RNN. Оставьте комментарий, описывающий ваш собственный опыт работы с Deep Learning и RNN!