Мальчик buybuy
Мальчик buybuy личный блог
20 февраля 2025, 00:31

Machine Learning против Deep Learning - честный спарринг )))

Доброй ночи, коллеги!

Как я писал в предыдущем посте, недавно я стал счастливым обладателем подписки 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. Если вы не понимаете, что за код она генерит, дальнейшие усилия по приведению кода в работоспособное состояние — это производственный Ад.

Как-то так


С уважением
76 Комментариев
  • Оля "Hare"... (заяц)...
    20 февраля 2025, 00:49
    ЛАЙК!) Ничего не ясно, но очень интересно!
      • mr-x
        20 февраля 2025, 04:20
        Мальчик buybuy, все так, сказать что надо сделать, а потом думать, что машина сама это сделала.
      • Оля "Hare"... (заяц)...
        20 февраля 2025, 08:40
        Мальчик buybuy, встречный вопрос: можно сделать то что вы говорили самостоятельно, не поручая задачу Ии?!
  • 3Qu
    20 февраля 2025, 00:55
    Я тоже иногда дурью маюсь.))
      • 3Qu
        20 февраля 2025, 01:08
        Мальчик buybuy, главное, чего у тебя нет, это плодотворной дебютной идеи.
        А дебютная идея — это «Quasi una fantasia». Мы видим, что блондин играет хорошо, а брюнет играет плохо. И никакие ИИ не изменят этого соотношения сил,
          • 3Qu
            20 февраля 2025, 01:14
            Мальчик buybuy, о чем дискуссия-то? Я, видимо, чего-то не понял.)
          • mr-x
            20 февраля 2025, 04:22
            Мальчик buybuy, а какая версия матлаб? и наверное финансовый тулбокс, или он бесполезен?
          • Влад
            20 февраля 2025, 07:31
            Мальчик buybuy, как правило, люди находящиеся в башнях, т.е. на вершине какого-нибудь пути развития, не имеют собеседников. Потому в моём понимании, подобными постами обращаешься во вселенную. Что-то потом может подсказать какую-нибудь новизну. А если не писать, то и подсказок не будет — нет вводных для запроса.

            Ну допустим, если вы настаиваете...
            Слышал, что если с нейросетью говорить вежливо, т.е. писать «будьте любезны», «пожалуйста», «спасибо», то качество её работу улучшается.
            Попробуйте 😉
  • Makstrade
    20 февраля 2025, 01:02
    Ну всё, теперь ты миллиардер ))
      • Makstrade
        20 февраля 2025, 01:02
        Мальчик buybuy,  Смотря чему обучать нейросеть… )
      • 3Qu
        20 февраля 2025, 01:53
        Мальчик buybuy, я, вот, не понимаю, на фига тебе эти " предсказания приращения цен или знака"?
        Чтобы только окупить комиссию и получить хоть какую-то мизерную прибыль нужно поиметь от 4 до 40 пунктов, в зависимости от инструмента. На 4-40 пунктов ты уже вряд ли что предскажешь, тем более, надо в сделке получить минимум 8-100 п, иначе и в сделку идти не стоит. Имхо, это все пустое, на 8-100 п это полный бесполезняк.
          • 3Qu
            20 февраля 2025, 01:54
            Мальчик buybuy, ина сколько ты ее предсказываешь? На минуту, полчаса, сутки?
              • 3Qu
                20 февраля 2025, 02:07
                Мальчик buybuy, 
                я предсказываю не цену, а эквити (финрез)
                Этого я не понимаю. Чтобы знать фин результат нужно знать дельту цены. Или финрезультат= f(дельта цены).
                  • 3Qu
                    20 февраля 2025, 02:42
                    Мальчик buybuy, ну, я понял, цену ты все-таки предсказываешь.))
                    Ну, эт мы все предсказываем.) Иначе как в сделку входить, если неизвестно куда оно ломанется.)
                    Но я тебе по секрету скажу — рынок прост как ящик. Из этого следует, что ни фига ты толком там не предскажешь.) Ни простыми методами, ни сложными. Простые даже надежнее.
  • Молодец
    20 февраля 2025, 01:16
    Крутяк!)
  • xezdx
    20 февраля 2025, 05:02
    Программы писать пока мазохизм. Хотя вон Маск хвастается своим Гроком 3, типа он круто игры пишет и симуляции разные.

    Я пока использую эти ИИ как справочник — гораздо удобнее чем штудировать мануалы. Вот это их реальная ценность — статистически обрабатывать информацию. «Размышляют» они пока плохо.
  • Александр Каминский
    20 февраля 2025, 07:36
    На Хабре себя почувствовал 🤪
  • Make_hard
    20 февраля 2025, 08:21
    Так сетки на матлабе мало кто пишет, поэтому у модельки при обучении не было достаточно данных и она их тоже плохо пишет. Попробуйте на питоне, там сильно больше датасет был. А идея предсказывать случайную величину классная. Особенно еще когда закона ее распределения нет как такового. Ммм, песня))
  • dim800
    20 февраля 2025, 10:16
    если что-то не выходит, обязательно посоветуйся с маэстро, он тут иногда бывает. он подскажет.
  • Rostislav Kudryashov
    20 февраля 2025, 10:40
    Пусть справедливо утверждение, что прогноз знака следующего приращения вернее прогноза значения приращения.
    Т.к. это приращение вычисляется от текущего Close, то прибавив ко Close некую Delta, получится прогнозирование не знака приращения, а значения приращаения — выше или ниже Delta.
    Строя прогнозы для пары значений Delta, получаем прогноз интервала для значения приращения.
  • Rostislav Kudryashov
    20 февраля 2025, 10:51
    Кто-нибудь знает, что генерация компьютерного кода без программирования известна десятки лет назад?
    Но только не с «естественного языка», потому что это чревато неполнотой и неоднозначностью техзадания. И, соответственно, сюрпризами в результирующем коде.
    Для постановщиков, понимающих чего они хотят, давно изобретён графический язык Unified Modeling Language (UML). Генераторы кода из UML были доступны ещё в Borland-Delphi, затем Microsoft-Visual.
    • My Shadow
      20 февраля 2025, 14:37
      Rostislav Kudryashov, генерация кода их всяких dsl уже лет 50 существует — тот же defmacro в common-lisp 
  • Replikant_mih
    20 февраля 2025, 13:58
    Ну с инструментами всегда так — важно, что именно ты делаешь и как. Пальцами гвоздь из доски не вытащишь, гвоздодером — изи, но если ты не понимаешь, как его использовать, или понимаешь, но навыка ещё нет или силы или чего-то — тоже не выйдет. В общем нужно эти тулы задействовать в правильных сценариях и… правильно задействовать.
    • Rostislav Kudryashov
      20 февраля 2025, 16:22
      Replikant_mih, 13:58 Вытаскивать гвозди из доски лучше именно гвоздодёром, а не подъёмным краном.
      Хотя кран гораздо мощнее.
      • Replikant_mih
        20 февраля 2025, 20:58
        Rostislav Kudryashov, По современным LLM не все понимают сходу это гвоздодер или подъёмный кран. Думаю, тот кто лучше это сделает и выиграет гонку, если не в гонке с ИИ против ИИ, то хотя бы выиграет у остальных кожаных мешков.
  • Григорий
    20 февраля 2025, 17:24
    ага, хотели на халяву ярды поднять?)) не получится!

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн