1

Этап 1

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

2

Этап 2

Многопоточное и асинхронное программирование

3

Этап 3

Альтернативное изучение: Видеокурс на Youtube = PyTorch for Deep Learning & Machine Learning от freeCodeCamp.org

4

Этап 4

Книга Godoy D. V. - Deep Learning with PyTorch Step-by-Step. A Beginner’s Guide

5

Этап 5

Изучение Reinforcement learning (RL)

6

Этап 6

То, ради чего всё затевалось! Пишу своего робота и обучаю его

1

Этап 1

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

2

Этап 2

Многопоточное и асинхронное программирование

3

Этап 3

Альтернативное изучение: Видеокурс на Youtube = PyTorch for Deep Learning & Machine Learning от freeCodeCamp.org

4

Этап 4

Книга Godoy D. V. - Deep Learning with PyTorch Step-by-Step. A Beginner’s Guide

5

Этап 5

Изучение Reinforcement learning (RL)

6

Этап 6

То, ради чего всё затевалось! Пишу своего робота и обучаю его

23 октября 2023

Цель заброшена

Автор не отписывался в цели 1 год 3 месяца 29 дней

Карьера и работа

Создать торгового робота с помощью нейросетей (Pytorch) и обучения с подкреплением (Reinforcement Learning)

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

Поэтому решил отказаться от ручной торговли и переложить всё на робота, который не будет испытывать стресса.
Чтобы создать такого робота, нужно изучить нейросети и обучение с подкреплением (RL). Задача сложная, а изучение похоже будет длительным.

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

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

Есть понимание, что торговый робот должен торговать либо на основе паттернов (классификатор), либо обучившись на данных с помощью обучения с подкреплением (RL). Пробовал читать книги по обучению с подкреплением и столкнулся с тем, что понимание таких книг идёт туговато :(
Решил начать с начала. То есть в начале как следует разобраться с Pytorch.

По Pytorch мне почему-то не заходят переводные книжки. То-ли у наших издателей переводы корявые, то-ли изложение идёт с рывками и резким переходом от простого к сложному. Случайным образом обнаружил книгу на английском "Godoy Daniel Voigt - Deep Learning with PyTorch Step-by-Step. A Beginner’s Guide". Книга написана бразильцем, может быть поэтому его английский понятнее, чем английский других авторов. Показалось, что она понятнее, чем имеющиеся книги на русском.

Читать пытаюсь в оригинале, в том числе помогаю себе с помощью переводчиков (удобный плагин для Chrome - Edge Translate, который может переводить в том числе куски из PDF файлов).

НО буксую в изучении всего этого из-за самодисциплины :) Хочу подойти систематически. С трекингом времени, отчётами. Начать с начала.

Поэтому решил зарегистрироваться на этом сайте (о сайте знаю давно, читал на Хабре).

Возможно мне в том числе понадобится изучить темы по многопоточному и/или асинхронному Python (на Степике есть в том числе бесплатный курс).

 Критерий завершения

Робот торгует через реальный боевой аккаунт.

Робот торгует в плюс (с учетом комиссий и расходов) в течение 2-х месяцев и сделано не менее 300 сделок.

Кривая доходности без критичных просадок.

 Личные ресурсы

Компьютер старенький-простенький, которого пока ещё хватает для офиса-веба-мультимедиа (двухъядерный Пентиум G620, 4 Гб оперативы, SSD, видюха Nvidia GT 1030 2Гб (CUDA ядер всего 384 :). То есть комп очень аскетичен для обучения нейросетей, на первое время (для изучения книжек) хватит, а вот потом нужно будет прикупить что-то серьезное.

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

Собираюсь выйти на режим 5 академ. пар в сутки, то есть чистого времени на учебу 7,5 часов в будний день. (может и в выходные иногда).

Трекинг времени через Toggl Track.

Есть небольшая накопленная финансовая подушка, полагаю, что смогу на ней протянуть не работая до года (я неприхотлив, умею тратить с умом). Главное не тратить ВРЕМЯ впустую, иначе всё зря.

Есть доступ к ChatGPT-3.5 (бесплатный аккаунт, но сможет помогать с кодом ;).

Книги:

Майкл Уилсон - Самодисциплина

Godoy D. V. - Deep Learning with PyTorch Step-by-Step. A Beginner’s Guide - 2022

Параллельно-альтернативно можно изучать бесплатный курс на Youtube от freeCodeCamp.org

"PyTorch for Deep Learning & Machine Learning". Там почти 26 часов видео. На английском.

Интернет, Youtube, книги, курсы, торренты ;). То есть доступны почти все знания человечества, главное просто ботать.

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

 Экологичность цели

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

Но что гораздо важнее, мне нужно победить самого себя. Что я смог с уже немолодыми мозгами освоить несколько сложных тем и реализовать что-то сложное. То есть мне нужна самореализация и интересная деятельность.

Насчёт "плана Б" пока не думал. Если освою необходимые знания, а затея с роботом не получится, то возможно знания можно будет трансформировать в полезные для устройства на работу. Хотя тут не уверен, так как мне 43 и тяжело будет конкурировать со свежими мозгами выпускников, которые скорей всего будут больше меня знать ;) Но, полагаю, знания не будут лишними и какую-то полезность из них добуду.

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

    Стоимость этапа — 192000 ₽

  2. Многопоточное и асинхронное программирование

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

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

    1. Уже платный курс: Python. Многопоточное и асинхронное программирование. https://stepik.org/course/172356

    2. Уже платное продолжение: Многопроцессное программирование https://stepik.org/course/188951/promo

    3. Платный курс. Асинхронный Python https://stepik.org/course/170777

  3. Альтернативное изучение: Видеокурс на Youtube = PyTorch for Deep Learning & Machine Learning от freeCodeCamp.org

    Update: в рамках отвлечения или за обедом, начинал смотреть курсы от freeCodeCamp.org, там 24 часа видео. В общем через какое-то время начал потихоньку проматывать и видно, что там по Pytorch рассказывается примерно то же самое, но более поверхностно. То есть те темы, которые я прочитал у Годоя, у Годоя изложены существенно глубже. А в целом тем у Годоя больше. В видеокурсах наверно лишь треть тем.

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

    Добавка. А вот перечитать какие-то куски книги придётся. В начале она читается и "всё понятно". Понятно настолько, что даже нет смысла запускать ячейки в ноутбуке Jupyter'а. Очень мало экспериментов делал, всё реально было понятно. А сейчас, спустя время, понимаю, что выветрилось, забылось. Нужно будет вернуться и какие-то моменты повторить. В общем придётся подглядывать :) Куски учебного кода точно буду тырить к себе в проект.

  4. Книга Godoy D. V. - Deep Learning with PyTorch Step-by-Step. A Beginner’s Guide

    Нужно освоить книгу от начала и до конца. Возможно какие-то темы мне могут быть не нужны, например тема про обработку естественного языка, но, полагаю, эти знания не будут лишними, если вдруг основная цель не получится. Сейчас широко шагают LLM, а в книге как раз в том числе рассказывается про NLP (BERT и GPT-2). Думаю лишним не будет.

    1. Глава 0. Градиентный спуск

    2. Глава 1. Задача регрессии

    3. Глава 2. Переосмыслим тренировочную петлю

    4. Глава 2.1 Переводим код в классы (ООП)

    5. Глава 3. Задача классификации

    6. Глава 4. Классификация изображений

    7. Бонусная глава. Пространство признаков

    8. Глава 5. Свертки

    9. Глава 6. Камень, ножницы, бумага

    10. Глава 7. Перенос обучения

    11. Доп.глава. Исчезающие и взрывающиеся градиенты

    12. Глава 8. Последовательности

    13. Глава 9. Часть 1. Последовательность к последовательности

    14. Глава 9. Часть 2. Последовательность к последовательности

    15. Глава 10. Преобразование и внедрение

    16. Глава 11. Вниз по кроличьей норе из желтого кирпича

  5. Изучение Reinforcement learning (RL)

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

    1. Курс Сергея Левина в Беркли https://rail.eecs.berkeley.edu/deeprlcourse-fa19/

    2. Моралес М. - Грокаем глубокое обучение с подкреплением

    3. Лапань - Глубокое_обучение_с_подкреплением._AlphaGo_и_другие

    4. Уиндер - Обучение с подкреплением для реальных задач. Инженерный подход

    5. Памперла-Фергюсон - Глубокое_обучение_и_игра_в_го (Keras)

    6. Лонца А. Алгоритмы обучения с подкреплением на Python (TensorFlow)

    7. Грессер Л., Кенг В. - Глубокое обучение с подкреплением (SLM Lab)

  6. То, ради чего всё затевалось! Пишу своего робота и обучаю его

    1. Сбор данных для обучения

    2. Подготовка датасетов

    3. Обучение робота

    4. Выпускаем Кракена! Запуск на реальные живые торги

    5. Набираю статистику живых торгов пару месяцев

  • 1517
  • 23 октября 2023, 10:35
Регистрация

Регистрация

Уже зарегистрированы?
Быстрая регистрация через соцсети
Вход на сайт

Входите.
Открыто.

Еще не зарегистрированы?
 
Войти через соцсети
Забыли пароль?