Цель заброшена
Автор не отписывался в цели 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 и тяжело будет конкурировать со свежими мозгами выпускников, которые скорей всего будут больше меня знать ;) Но, полагаю, знания не будут лишними и какую-то полезность из них добуду.
-
Сборка нового производительного компьютера для обучения нейросетей
Стоимость этапа — 192000 ₽
-
Многопоточное и асинхронное программирование
Для более оперативной подготовки датасетов, подозреваю, понадобится что-то из этого, чтобы распараллеливать задачи подготовки данный на много потоков и полного использования возможностей процессора.
Update: изначально планировал прохождение курсов. Но бесплатный курс стал платным. В итоге посмотрел эти темы на Ютюбе. Оказалось, что для моих задач там вполне достаточно знаний и там всё достаточно просто (как минимум для моих задач). Если понадобится углубиться, то вернусь к этой теме. А пока отмечаю как выполнено.
-
Уже платный курс: Python. Многопоточное и асинхронное программирование. https://stepik.org/course/172356
-
Уже платное продолжение: Многопроцессное программирование https://stepik.org/course/188951/promo
-
Платный курс. Асинхронный Python https://stepik.org/course/170777
-
-
Альтернативное изучение: Видеокурс на Youtube = PyTorch for Deep Learning & Machine Learning от freeCodeCamp.org
Update: в рамках отвлечения или за обедом, начинал смотреть курсы от freeCodeCamp.org, там 24 часа видео. В общем через какое-то время начал потихоньку проматывать и видно, что там по Pytorch рассказывается примерно то же самое, но более поверхностно. То есть те темы, которые я прочитал у Годоя, у Годоя изложены существенно глубже. А в целом тем у Годоя больше. В видеокурсах наверно лишь треть тем.
Оно и понятно, всё-таки книга. В общем решил не тратить время на эти курсы, ничего нового после книги Годоя из этих видеокурсов уже не узнаю. Отмечаю сделанным.
Добавка. А вот перечитать какие-то куски книги придётся. В начале она читается и "всё понятно". Понятно настолько, что даже нет смысла запускать ячейки в ноутбуке Jupyter'а. Очень мало экспериментов делал, всё реально было понятно. А сейчас, спустя время, понимаю, что выветрилось, забылось. Нужно будет вернуться и какие-то моменты повторить. В общем придётся подглядывать :) Куски учебного кода точно буду тырить к себе в проект.
-
Книга Godoy D. V. - Deep Learning with PyTorch Step-by-Step. A Beginner’s Guide
Нужно освоить книгу от начала и до конца. Возможно какие-то темы мне могут быть не нужны, например тема про обработку естественного языка, но, полагаю, эти знания не будут лишними, если вдруг основная цель не получится. Сейчас широко шагают LLM, а в книге как раз в том числе рассказывается про NLP (BERT и GPT-2). Думаю лишним не будет.
-
Глава 0. Градиентный спуск
-
Глава 1. Задача регрессии
-
Глава 2. Переосмыслим тренировочную петлю
-
Глава 2.1 Переводим код в классы (ООП)
-
Глава 3. Задача классификации
-
Глава 4. Классификация изображений
-
Бонусная глава. Пространство признаков
-
Глава 5. Свертки
-
Глава 6. Камень, ножницы, бумага
-
Глава 7. Перенос обучения
-
Доп.глава. Исчезающие и взрывающиеся градиенты
-
Глава 8. Последовательности
-
Глава 9. Часть 1. Последовательность к последовательности
-
Глава 9. Часть 2. Последовательность к последовательности
-
Глава 10. Преобразование и внедрение
-
Глава 11. Вниз по кроличьей норе из желтого кирпича
-
-
Изучение Reinforcement learning (RL)
Есть несколько книг и курсов, пока этот этап далеко, сложно сказать какие конкретно буду изучать.
Составлю лишь примерный список.-
Курс Сергея Левина в Беркли https://rail.eecs.berkeley.edu/deeprlcourse-fa19/
-
Моралес М. - Грокаем глубокое обучение с подкреплением
-
Лапань - Глубокое_обучение_с_подкреплением._AlphaGo_и_другие
-
Уиндер - Обучение с подкреплением для реальных задач. Инженерный подход
-
Памперла-Фергюсон - Глубокое_обучение_и_игра_в_го (Keras)
-
Лонца А. Алгоритмы обучения с подкреплением на Python (TensorFlow)
-
Грессер Л., Кенг В. - Глубокое обучение с подкреплением (SLM Lab)
-
-
То, ради чего всё затевалось! Пишу своего робота и обучаю его
-
Сбор данных для обучения
-
Подготовка датасетов
-
Обучение робота
-
Выпускаем Кракена! Запуск на реальные живые торги
-
Набираю статистику живых торгов пару месяцев
-
- 1517
- 23 октября 2023, 10:35
Не пропустите новые записи!
Подпишитесь на цель и следите за ее достижением