Доброй ночи, коллеги!
Как я писал в предыдущем посте, недавно я стал счастливым обладателем подписки ChatGPT Pro.
В связи с этим счастливым событием решил потестировать Canvas.
Если кто не в курсе — это такая крутая диалоговая штука, которая в числе прочего может писать программы и даже их компилировать в законченные приложения.
И вот я решил потренировать Canvas в написании кода для глубокого обучения нейронной сети прямого распространения (обычный Deep Learning, без этих всяких CNN, RNN, трансформеров и прочей ереси).
Написал промпт для генерации кода на Matlab (моя любимая энжина для математических расчетов и экспериментов, как говорят в МГИМО: whom how).
Смысл задачи — предсказание знака следующего приращения цены (по набору предыдущих приращений).
Canvas попыхтел минуту и выдал короткий код с использованием вызовов функций из Deep Learning Toolbox. Он сразу заработал.
Но мы не ищем легких путей. Модель o1 умеет рассуждать — пусть рассуждает.
И я дал ей задание написать код с нуля (без Toolboxes) — чисто метод сопряженных градиентов (adjusted gradients) и обратное распространение ошибки (back propagation). Пороговая функция tanh(x). Все по классике, короче.
Canvas попыхтел минуту и выдал длинный код, который… не заработал.
При этом код достаточно элегантный (с виду), там, где я использую 3-х мерный массив для набора матриц, эта эстетская шляпа построила cell array из матриц. Гораздо медленнее, но красивее визуально с т.зр. формул.
Ошибки при этом она сделала во всем, в чем можно. Неправильная инициализация, неправильная обработка выходного слоя и (sic!) обратный порядок перебора слоев в back propagation. Я тоже, бывает, косячу в программах, но такой лютый трэш не пишу...
Чистый эксперимент — это чистый эксперимент. Я специально не стал исправлять ошибки сам, а начал указывать на них Canvas — и оно начало их исправлять. Бинго — 5 итерация — готова жутко медленная нейросетка, которая работает правильно.
Допустим — подумал я. И предложил «оно» переписать код, чтобы она предсказывала не знак будущего приращения цены, а само будущее приращение цены. И тут начался лютый п@здец...
Все, что надо было сделать — это убрать активацию tanh(x) из выходного слоя. «Оно» накосячило в размерности и никак не реагировало на все мои указания исправить ошибку. Я плюнул через 25 итераций, когда понял, что это бесполезно. При этом каждый раз она писала в рассуждениях: «я нашла ошибку, я ее исправила, теперь я гарантирую, что все размерности соблюдены корректно».
(для тех, кому интересно — «оно» не сообразило, что в выходном слое 1 нейрон, а в скрытых слоях всегда больше, чем 1, и честно пыталась перемножить несовместимые по размерности матрицы).
Когда мне все надоело — я чутка переписал промпт (ну и очистил контекст, чтобы модель не галлюцинировала) и перегенерировал ответ. Бинго — всего после 2-х исправлений прога заработала!
КРАТКИЕ ВЫВОДЫ:
1. Canvas (Cursor, ...) очень полезна, когда надо создать код с библиотечными вызовами. Если кто не в курсе — справочник по функциям Matlab — это 16000 страниц, а справочник по Deep Learning Toolbox то ли 8000, то ли 9000 страниц (пишу по памяти, у меня электронные издания 2022 г.)
2. Canvas абсолютно бесполезна, если вы не понимаете, что за код она генерит. А код она генерит эстетский и замысловатый, так что править его достаточно трудно (хотя он хорошо откомментирован)
3. Если вы не понимаете, что за код она генерит, дальнейшие усилия по приведению кода в работоспособное состояние — это производственный Ад.
Как-то так
С уважением
Это про то, как ты объясняешь компу, какую прогу ему нужно написать, а он не только сам пишет, но еще и компилирует в готовое приложение.
Внешне все очень круто. Но если копнуть...
С уважением
Нас — двое!
С уважением
А дебютная идея — это «Quasi una fantasia». Мы видим, что блондин играет хорошо, а брюнет играет плохо. И никакие ИИ не изменят этого соотношения сил,
Т.к я уже 2 года об этом не пишу
И дебютные идеи у меня есть (4 шт. — 4 ветки исследований)
2 из них успешно работают и приносят бабло
Но писать об этом глупо
На SL я пытаюсь устроить дискуссии — безрезультатно
С уважением
Я еще иногда про рынок пишу )))
С уважением
Finance не использую, Deep Learning пользую
С уважением
Ну допустим, если вы настаиваете...
Слышал, что если с нейросетью говорить вежливо, т.е. писать «будьте любезны», «пожалуйста», «спасибо», то качество её работу улучшается.
Попробуйте 😉
Я вроде в декабре писал, что нейросети отвратительно решают задачу предсказания будущих приращений цен (или их знака).
Мои кастомные методы работают значительно лучше.
С уважением
Чтобы только окупить комиссию и получить хоть какую-то мизерную прибыль нужно поиметь от 4 до 40 пунктов, в зависимости от инструмента. На 4-40 пунктов ты уже вряд ли что предскажешь, тем более, надо в сделке получить минимум 8-100 п, иначе и в сделку идти не стоит. Имхо, это все пустое, на 8-100 п это полный бесполезняк.
Лично я эквити предсказываю, а не цены
Но не на котиках же сетку тренировать?!
С уважением
1. Для маркетных моделей с комиссией — на 5-6 минутных баров
2. Для лимитных с маркапами на 30-40 ( но там очень тяжелые расчеты, я их 8 мес. ускорял до разумного тайминга).
А так повторяю — я предсказываю не цену, а эквити (финрез)
С уважением
1. Для маркетной эквити с комиссиями достаточно хорошо предсказать приращение цены (просто знака недостаточно)
2. А вот для лимитной эквити нужно еще хорошо предсказать high и low (вернее, некие функции от них)
С уважением
P.S. Конечно финрез не равен приращению цены. А если вдруг равен, то это не модель, а сферический конь в вакууме
Ну, эт мы все предсказываем.) Иначе как в сделку входить, если неизвестно куда оно ломанется.)
Но я тебе по секрету скажу — рынок прост как ящик. Из этого следует, что ни фига ты толком там не предскажешь.) Ни простыми методами, ни сложными. Простые даже надежнее.
«Блаженны нищие духом, ибо их есть Царство Небесное»
С уважением
Я пока использую эти ИИ как справочник — гораздо удобнее чем штудировать мануалы. Вот это их реальная ценность — статистически обрабатывать информацию. «Размышляют» они пока плохо.
Т.к. это приращение вычисляется от текущего Close, то прибавив ко Close некую Delta, получится прогнозирование не знака приращения, а значения приращаения — выше или ниже Delta.
Строя прогнозы для пары значений Delta, получаем прогноз интервала для значения приращения.
Но только не с «естественного языка», потому что это чревато неполнотой и неоднозначностью техзадания. И, соответственно, сюрпризами в результирующем коде.
Для постановщиков, понимающих чего они хотят, давно изобретён графический язык Unified Modeling Language (UML). Генераторы кода из UML были доступны ещё в Borland-Delphi, затем Microsoft-Visual.
Хотя кран гораздо мощнее.