Архитектура высокоэффективных нейросетевых вычислений на C++ для прогнозирования динамики ВВП

Принято считать, что для анализа макроэкономики и прогнозирования ВВП необходимы мощные серверы. Обычно разработчики используют Python и тяжелые библиотеки вроде TensorFlow или PyTorch. Однако бывают случаи когда надо чтобы модель была доступна на обычно ноутбуке или мы хотим применить наработки модели и переложить их на платы ардуино с лимитом памяти 32 кб и ценой в розничном магазине 300 - 400 рублей за штуку? Решением проблемы становится полный отказ от сторонних фреймворков. Вся математика нейронных слоев написана с нуля на чистом C++20, а для быстрого подбора весов на ПК применяется технология NVIDIA CUDA. Сама модель имитирует реальные циклы оборота капитала. Четыре скрытых слоя нелинейной сети сжимаются до шести проекционных нейронов по методологии Всемирного банка. Вообще идея применять нейронные сети для предсказания экономических процессов зародилась в конце XX века. Ученые искали замену обычным линейным моделям. Одними из первых нелинейные свойства ИНС для макроэкономических рядов США исследовали N. R. Swanson и H. White [2]. Они доказали, что гибкие связи лучше находят скрытые циклы.C.-M. Kuan и T. Liu [4] выявили, что очистка данных перед подачей в сеть сильно снижает ошибку. В начале 2000-х годов началось активное сравнение нейронных сетей с классическими методами вроде ARIMA. M. Marcellino [5], K. Neusser и M. Wagner [9] доказали превосходство многослойных сетей при анализе ВВП европейских стран на длинных дистанциях, а переключение весов C.-M. Lin и P.-H. Chen [7] помогает предсказывать кризисные периоды. Современный этап связан с обработкой больших массивов информации. В Индии S. Ghosh [6], M. C. Medeiros с соавторами [8] успешно применили нейросети для поиска скрытых зависимостей в индийской экономике.Q. Zhang и Y. Bian [3] в 2024 году провели масштабные тесты по отслеживанию темпов роста китайского ВВП. Они подтвердили преимущество нелинейных функций активации.

https://habr.com/ru/articles/1049856/

#c++20 #nvidia_cuda #нейронные_сети #экономика #оптимизация_кода #backpropagation #макроэкономика #финансы

Архитектура высокоэффективных нейросетевых вычислений на C++ для прогнозирования динамики ВВП

Введение Принято считать, что для анализа макроэкономики и прогнозирования ВВП необходимы мощные серверы. Обычно разработчики используют Python и тяжелые библиотеки вроде TensorFlow или PyTorch....

Хабр
🧠 Beyond Backprop

Quantum Inspired Complex-Valued Neural Networks with an Arrow of Time

Humble Systems Theorey

Гиперсвязные нейронные сети. Имитация биологических нейронов: ОС, прунинг, ингибирование и межбатчевая связь

Вы когда-нибудь задумывались о том, что принципиально отличает настоящую нервную систему от ее искусственных аналогов? Почему масштабирование модели не дает сопоставимого прироста качества? Не говоря уже об эмерджентных свойствах, которые теоретики пророчат для сложный моделей. Давайте разберемся в этом вместе, а так же подумаем, как доработать механику нейросетей так, чтобы каждый слой/блок имел представление о глобальной задаче всей модели. В этой статье я расскажу о собственных наработках, которые должны помочь связать признаки из разных слоев внутри одной сети. Как встроить возможность обобщения потока данных в саму механику модели, путем объединения показаний слоев на разных батчах. И о том, как адаптировать технологию для различных архитектур.

https://habr.com/ru/articles/1036164/

#нейроны #deeplearning #pruning #гиперсвязность #математика_для_data_science #граф_вычислений #обратное_распространение #backpropagation #python #программирование

Гиперсвязные нейронные сети. Имитация биологических нейронов: ОС, прунинг, ингибирование и межбатчевая связь

В этой статье я расскажу о собственных наработках, которые должны помочь связать признаки из разных слоев внутри одной сети. Как встроить возможность обобщения потока данных в саму механику модели,...

Хабр

Обратное распространение ошибки: от интуиции до кода

Многие умеют вызывать loss.backward() в PyTorch, но не всегда понимают, что именно происходит под капотом. Как сеть вычисляет, какой из миллионов весов нужно изменить? В этой статье мы развеем магию обратного распространения ошибки (backprop). Разберем алгоритм на простых аналогиях с заводским конвейером, вспомним школьное правило дифференцирования и, чтобы закрепить понимание, напишем свой микро-фреймворк для автоматического вычисления градиентов на чистом Python с нуля.

https://habr.com/ru/articles/1031986/

#машинное_обучение #нейросети #backpropagation #обратное_распространение_ошибки #градиентный_спуск #deep_learning #python #математика #вычислительные_графы #micrograd

Обратное распространение ошибки: от интуиции до кода

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

Хабр

Я удалил backpropagation из нейросети. Она обучилась методами XIX века

Все началось с того, что я открыл PyTorch и удалил из модели .backward(). Взял и стер как строчку, которая «вроде ничего не делала». Только вот эта строчка делала вообще все. Я хотел понять одну вещь: а что, если забыть, что backpropagation существует? Не как упражнение, чтобы вспомнить основы, а буквально обучить нейросеть, ни разу не посчитав градиент. То есть без всего того математического аппарата, который мы с вами воспринимаем как воздух. И у меня получилось. Правда попутно я обнаружил, что Adam — это, по сути, уравнение движения с трением, записанное на Python. (Лагранж бы такое одобрил, наверное).

https://habr.com/ru/companies/selectel/articles/1025542/?utm_source=habrahabr&utm_medium=rss&utm_campaign=1025542

#нейронные_сети #backpropagation #градиентный_спуск #оптимизация #SGD #momentum #метод_Ланжевена #случайный_поиск #история_математики #selectel

Я удалил backpropagation из нейросети. Она обучилась методами XIX века

Все началось с того, что я открыл PyTorch и удалил из модели .backward(). Взял и стер как строчку, которая «вроде ничего не делала». Только вот эта строчка делала вообще все. Я хотел понять одну вещь:...

Хабр

Я удалил backpropagation из нейросети. Она обучилась методами XIX века

Все началось с того, что я открыл PyTorch и удалил из модели .backward(). Взял и стер как строчку, которая «вроде ничего не делала». Только вот эта строчка делала вообще все. Я хотел понять одну вещь: а что, если забыть, что backpropagation существует? Не как упражнение, чтобы вспомнить основы, а буквально обучить нейросеть, ни разу не посчитав градиент. То есть без всего того математического аппарата, который мы с вами воспринимаем как воздух. И у меня получилось. Правда попутно я обнаружил, что Adam — это, по сути, уравнение движения с трением, записанное на Python. (Лагранж бы такое одобрил, наверное).

https://habr.com/ru/companies/selectel/articles/1025542/

#нейронные_сети #backpropagation #градиентный_спуск #оптимизация #SGD #momentum #метод_Ланжевена #случайный_поиск #история_математики #selectel

Я удалил backpropagation из нейросети. Она обучилась методами XIX века

Все началось с того, что я открыл PyTorch и удалил из модели .backward(). Взял и стер как строчку, которая «вроде ничего не делала». Только вот эта строчка делала вообще все. Я хотел понять одну вещь:...

Хабр

Автодифференцирование на C++: обратное распространение через лямбды и std::function

Привет, Хабр! Меня зовут Кирилл Колодяжный, я разрабатываю системы хранения данных в YADRO. Это третья, заключительная часть моего цикла о паттернах C++, которые я применяю для решения задач машинного обучения, а вы можете использовать и в другой работе. В этой статье поговорим, как построить вычислительные графы и реализовать обратное распространение ошибки без сложных иерархий классов, с помощью лямбда-функций и стандартной библиотеки. В конце материала я сравнил свой подход с вариантом PyTorch и оставил ссылки на полезные материалы, в том числе на предыдущие части цикла.

https://habr.com/ru/companies/yadro/articles/1002784/

++ #backpropagation #graph #machinelearning

Автодифференцирование на C++: обратное распространение через лямбды и std::function

Привет, Хабр! Меня зовут Кирилл Колодяжный, я разрабатываю системы хранения данных в YADRO . Это третья, заключительная часть моего цикла о паттернах C++, которые я применяю для решения задач...

Хабр

Трансформер своими руками: с нуля до Numpy реализации и обучения

В этой статье пойдет речь об одной из самых сложных и интересных архитектур — трансформере, лежащей в основе современных моделей от OpenAI и Google DeepMind. И это не научпоп для обывателя с наивным уровнем объяснения, а полноценный учебный материал, который поможет вам понять работу трансформера на фундаментальном уровне без черных ящиков типа TensorFlow и Pytorch. А для того чтобы лучше вникнуть, давайте напишем настоящий мини-трансформер на процедурном Python и обучим его! Данный материал можно изучать в разных режимах: * Как объяснение архитектуры для общего представления; * Как полноценный гайд с чтением кода и самостоятельной практикой; * Как основу для собственных экспериментов. Вы сами можете выбрать тот режим, который нужен для ваших целей на данный момент. Наш трансформер будет довольно простым: со статическим графом и одноблочными энкодером и декодером. Сам код написан в парадигме процедурного программирования (за исключением некоторых модулей) и может быть прочитан на любом уровне и без знания ООП. И все же это будет полноценный обучаемый трансформер с мультиголовым вниманием, батчами данных, параллельным вычислением и множеством параметров. Для закрепления материала, выполните Домашнее задание, которое ждет вас в конце статьи. Напишем трансформер!

https://habr.com/ru/articles/982268/

#transformer #encoder #decoder #numpy #с_нуля #deeplearning #attention #backpropagation #нейросети #pytorch

Трансформер своими руками: с нуля до Numpy реализации и обучения

В этой статье пойдет речь об одной из самых сложных и интересных архитектур — трансформере, лежащей в основе современных моделей от OpenAI и Google DeepMind. И это не научпоп для обывателя с наивным...

Хабр

SoftMax: как нейросети превращают сырые числа в уверенные вероятности — разбор с примерами и математикой

В реальности всё полно оттенков: ничего чисто чёрного или белого, то же в машинном обучении, тк решения редко бывают абсолютными. Возьмём задачу: нейросеть анализирует фото еды и определяет, это пицца, суши или салат. Для двух классов хватит сигмоиды, но с несколькими нужна функция, которая раздаст вероятности по всем вариантам, чтобы их сумма была точно 1. Вот где и выходит SoftMax- стандарт для многоклассовой классификации. Сегодня разберём её от А до Я: интуицию, шаги, формулы и хитрости.

https://habr.com/ru/articles/988936/

#softmax #pytorch #функция_активации #backpropagation #deep_learning #нейросети #нейронные_сети #tensorflow #вероятностное_моделирование #функция_потерь

SoftMax: как нейросети превращают сырые числа в уверенные вероятности — разбор с примерами и математикой

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

Хабр

Lan truyền niềm tin (Belief Propagation) đang được xem xét là một lựa chọn tiềm năng để thay thế phương pháp Lan truyền ngược (Backpropagation) phổ biến, đặc biệt trong việc đào tạo các mô hình trí tuệ nhân tạo chuyên về khả năng suy luận.

#TríTuệNhânTạo #HọcMáy #ThuậtToán #LanTruyềnNiềmTin #AI #MachineLearning #BeliefPropagation #Backpropagation

https://www.reddit.com/r/programming/comments/1q7h4rz/belief_propagation_obscure_alternative_to/