2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Нейросеть и библиотека для определения параметра посл-ти
Сообщение30.10.2025, 00:10 
Есть числовая последовательность, в ней может быть до $10^6$ следующих друг за другом членов. Последовательность задаётся параметрами, их может быть от нескольких десятков до нескольких сотен, надо хотя бы найти один из них (лучше все, но для начала хотя бы 1). Посоветуйте, пожалуйста, какую нейросеть и какую библиотку на Python, Matlab (или C++) для этого использовать? Наверное, кто-то уже решал похожие задачи, может, где-то есть похожие проекты. Но для начала хотелось бы узнать, какую именно нейросеть оптимально использовать для таких задач и какая среда лучше всего для этого подходит.

В качестве примера: есть $ A_{n} = 2 \cdot A_{n - 1} - A_{n - 2} + \varepsilon_{n} $
, в котором хотелось бы найти с помощью нейросети коэффициент 2, стоящий перед $A_{n - 1}$, а для последовательности
$ B_{n} = 3 \cdot B_{n - 1} - 2 \cdot  B_{n - 2} + \varepsilon_{n} $ хотелось бы найти с помощью нейросети коэффициент 3, стоящий перед $B_{n - 1}$

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

 
 
 
 Re: Нейросеть и библиотека для определения параметра посл-ти
Сообщение30.10.2025, 07:24 
Можете скинуть файл с последовательность?

 
 
 
 Re: Нейросеть и библиотека для определения параметра посл-ти
Сообщение30.10.2025, 09:28 
oeis.org не пробовали?

 
 
 
 Re: Нейросеть и библиотека для определения параметра посл-ти
Сообщение30.10.2025, 12:21 
Аватара пользователя
Igor_Dmitriev в сообщении #1707641 писал(а):
Формулы более сложные
А общий вид известен?

 
 
 
 Re: Нейросеть и библиотека для определения параметра посл-ти
Сообщение30.10.2025, 12:43 
Igor_Dmitriev в сообщении #1707641 писал(а):
В качестве примера: есть $ A_{n} = 2 \cdot A_{n - 1} - A_{n - 2} + \varepsilon_{n} $
, в котором хотелось бы найти с помощью нейросети коэффициент 2, стоящий перед $A_{n - 1}$, а для последовательности
$ B_{n} = 3 \cdot B_{n - 1} - 2 \cdot  B_{n - 2} + \varepsilon_{n} $ хотелось бы найти с помощью нейросети коэффициент 3, стоящий перед $B_{n - 1}$

Это делает метод наименьших квадратов (или максимум правдоподобия), нейронная сеть здесь не нужна.

 
 
 
 Re: Нейросеть и библиотека для определения параметра посл-ти
Сообщение30.10.2025, 13:06 
F111mon в сообщении #1707663 писал(а):
oeis.org не пробовали?

Попробовал, не помогло.

-- 30.10.2025, 12:08 --

mihaild в сообщении #1707679 писал(а):
Igor_Dmitriev в сообщении #1707641 писал(а):
Формулы более сложные
А общий вид известен?

примерно известен, но я хотел бы решить задачу самостоятельно, нужна подсказка того, какой класс нейросетей это решает и какую библиотеку и среду разработки оптимлаьно использовать для этого.
Допустим, это реккурентная последовательность, заданная таким соотношением
$y_{n} = y_{n-1} + \sin(y_{n-2} + y^{2}_{n-1}) + \frac{1}{1+y^{4}_{n-2}+\ln^2(y_{n-3})} + e^{-y_{n-4} + y^{2}_{n-1}}$

, аналитически не вычислить, коэффициенты могут быть самые разные, какую нейросеть оптимальней всего использовать?

-- 30.10.2025, 12:09 --

dsge в сообщении #1707682 писал(а):
Igor_Dmitriev в сообщении #1707641 писал(а):
В качестве примера: есть $ A_{n} = 2 \cdot A_{n - 1} - A_{n - 2} + \varepsilon_{n} $
, в котором хотелось бы найти с помощью нейросети коэффициент 2, стоящий перед $A_{n - 1}$, а для последовательности
$ B_{n} = 3 \cdot B_{n - 1} - 2 \cdot  B_{n - 2} + \varepsilon_{n} $ хотелось бы найти с помощью нейросети коэффициент 3, стоящий перед $B_{n - 1}$

Это делает метод наименьших квадратов (или максимум правдоподобия), нейронная сеть здесь не нужна.

Как я написал раньше, формулы более сложные, МНК считает сильно долго. Если бы формулы были бы линейные, можно было бы решить задачу на листочке.

 
 
 
 Re: Нейросеть и библиотека для определения параметра посл-ти
Сообщение30.10.2025, 13:14 
Аватара пользователя
Igor_Dmitriev в сообщении #1707686 писал(а):
примерно известен, но я хотел бы решить задачу самостоятельно
Просто задача с известным и неизвестным общим видом - это разные задачи. И пока задача не поставлена, нельзя ничего порекомендовать про подходы к решению.
Пока что вопрос примерно такой - "хочу приготовить еду; какую кастрюлю лучше использовать?". Для разной еды лучше подходят разные кастрюли, и для многих вариантов вообще нужны не кастрюли, а сковородки или еще что-то. Например - хотя, как известно, поджарить пельмени можно и в кастрюле, но лучше не стоит.

-- 30.10.2025, 12:16 --

Igor_Dmitriev в сообщении #1707686 писал(а):
аналитически не вычислить, коэффициенты могут быть самые разные
В Вашем выражении не указано ни одного неизвестного коэффициента.
Igor_Dmitriev в сообщении #1707686 писал(а):
какую нейросеть оптимальней всего использовать?
А с чего Вы взяли, что вам вообще нужны нейросети?

 
 
 
 Re: Нейросеть и библиотека для определения параметра посл-ти
Сообщение30.10.2025, 13:32 
mihaild в сообщении #1707688 писал(а):
В Вашем выражении не указано ни одного неизвестного коэффициента.

Предположим, что перед каждым $y_{i}$ стоит какой-то коэффициент (я их не поставил, чтобы формула выглядела читабельнее), что посоветуете?
$y_{n} = y_{n-1} + \sin(y_{n-2} + y^{2}_{n-1}) + \frac{1}{1+y^{4}_{n-2}+\ln^2(y_{n-3})} + e^{-y_{n-4} + y^{2}_{n-1}}$

Вот формула, в которой надо вычислить коэффициенты $a_{i}$
$y_{n} = a_{1}\cdot y_{n-1} + a_{2}\cdot \sin(a_{3}\cdot y_{n-2} + a_{4}\cdot y^{2}_{n-1}) + \frac{1}{a_{6} +  a_{7}\cdot y^{4}_{n-2}+a_{8}\cdot \ln^2(y_{n-3})} +  a_{9} \cdot e^{-a_{10}\cdot y_{n-4} + a_{11}\cdot y^{2}_{n-1}}$

mihaild в сообщении #1707688 писал(а):
А с чего Вы взяли, что вам вообще нужны нейросети?

Мне кажется, что нейросеть может вскрыть закономерность быстрее и эффективнее, МНК И ММП сильно долго считают и не находят нужные значения коэффициентов, если вы можете предложить другой метод, с интересом узнаю.

 
 
 
 Re: Нейросеть и библиотека для определения параметра посл-ти
Сообщение30.10.2025, 13:46 
Аватара пользователя
Igor_Dmitriev в сообщении #1707689 писал(а):
Мне кажется, что нейросеть может вскрыть закономерность быстрее и эффективнее
Неправильно кажется. Нейросети нужны когда вид зависимости неизвестен, и нужно приближать неизвестно какую функцию общим классом.
А у Вас задача численной оптимизации (если все $y_i$ известны): нужно подобрать вектор $\vec a$, минимизирующий известную $f(\vec y, \vec a)$. Можно, в том числе, градиентными методами искать. Поскольку параметров мало - то и второго порядка стоит попробовать.

 
 
 
 Re: Нейросеть и библиотека для определения параметра посл-ти
Сообщение30.10.2025, 15:31 
Igor_Dmitriev в сообщении #1707641 писал(а):
Есть числовая последовательность, в ней может быть до $10^6$ следующих друг за другом членов

Igor_Dmitriev в сообщении #1707686 писал(а):
МНК считает сильно долго

Попробуйте стохастический градиент для МНК. Хотя для нормального компьютера $10^6$ наблюдений не является проблемой.
Тем более, что параметров у вас немного.

 
 
 
 Re: Нейросеть и библиотека для определения параметра посл-ти
Сообщение30.10.2025, 16:26 
mihaild в сообщении #1707693 писал(а):
Неправильно кажется. Нейросети нужны когда вид зависимости неизвестен, и нужно приближать неизвестно какую функцию общим классом.
А у Вас задача численной оптимизации (если все $y_i$ известны): нужно подобрать вектор $\vec a$, минимизирующий известную $f(\vec y, \vec a)$. Можно, в том числе, градиентными методами искать. Поскольку параметров мало - то и второго порядка стоит попробовать.

С одной стороны, нейросети тоже ищут минимум, поэтому они могут и не помочь, с другой, не просто так же придумали разные архитектуры, они могут находить минимумы в некоторых задачах быстрее. Функция многомерна, у неё много локальных минимумов по каждому измерению, МНК просто спотыкается на том минимуме, который не подходит. Мне казалось, что есть класс нейросетей, которые приспособлены для подобных задач.

-- 30.10.2025, 15:28 --

dsge в сообщении #1707699 писал(а):
Попробуйте стохастический градиент для МНК. Хотя для нормального компьютера $10^6$ наблюдений не является проблемой.
Тем более, что параметров у вас немного.

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

 
 
 
 Re: Нейросеть и библиотека для определения параметра посл-ти
Сообщение30.10.2025, 17:41 
Аватара пользователя
Igor_Dmitriev в сообщении #1707709 писал(а):
С одной стороны, нейросети тоже ищут минимум, поэтому они могут и не помочь, с другой, не просто так же придумали разные архитектуры, они могут находить минимумы в некоторых задачах быстрее
Обучение нейросети ищет веса, при которых сеть хорошо приближает неизвестную функцию, значение которой известно в некоторых точках. В зависимости от архитектуры - функции одного вида приближают лучше, другие хуже.
У вас же другая задача. Вид функции известен, нужно найти параметры.

 
 
 
 Re: Нейросеть и библиотека для определения параметра посл-ти
Сообщение31.10.2025, 21:25 
Igor_Dmitriev в сообщении #1707709 писал(а):
dsge в сообщении #1707699 писал(а):
Попробуйте стохастический градиент для МНК. Хотя для нормального компьютера $10^6$ наблюдений не является проблемой.
Тем более, что параметров у вас немного.

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


Так стохастические градиенты как раз весьма полезны в такой ситуациии, стохастичность позволяет "проскочить" (не застревать на )локальные минимумы, максимумы и сёдла.

 
 
 
 Re: Нейросеть и библиотека для определения параметра посл-ти
Сообщение13.01.2026, 12:40 
Аватара пользователя
Igor_Dmitriev в сообщении #1707709 писал(а):
Мне казалось, что есть класс нейросетей, которые приспособлены для подобных задач.
Это высказывание говорит о том, что вы совершенно не понимаете, что такое нейросеть и для чего её можно использовать. Попытаюсь прояснить этот вопрос.

Пусть у вас есть большой набор входных данных, которому сопоставлен набор выходных данных. Модель, которая связывает вход с выходом неизвестна от слова "совсем". Тем не менее требуется построить некую процедуру, которая по по входным данным выдаёт выходные, желательно как можно точнее. Здесь на сцену выходит нейросеть: это функция самого общего вида, с кучей неизвестных, подкрутив которые можно получить желаемое приближение. За одно решается и задача интерполяции: есть хорошая вероятность того, что при вводе данных, отсутствующих в исходном наборе, эта общая функция на выходе даст разумный результат. При этом, если исходных данных много больше параметров модели, то решается и задача сжатия данных (с потерями). Однако, надо отличать интерполяцию, когда новые входные данные близки к и в определённом смысле "находятся между" входными данными использовавшимся для тренировки. Когда же новые входные данные находятся далеко за пределами исходного набора получается экстраполяция, и это как раз тут случай, когда нейросети почти гарантированно начинают галлюцинировать (это к вашему вопросу не имеет отношения, просто для полноты картины).

В вашем же случае модель известна, и коэффициентов совсем немного. Стоит задача подогнать эти коэффициенты под данные. Ваш случай совершенно противоположен случаю, когда нужно применять нейросеть. Да, в обоих случаях производится подгонка коэффициентов так, чтобы по входным данным получить выходные. Однако, повторюсь, в вашем случае функция уже известна. И это замечательно! Люди строят нейросети не от хорошей жизни, а просто потому что ничего другого, кроме функции самого общего вида, придумать не получается.

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

 
 
 [ Сообщений: 14 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group