Форум программистов, компьютерный форум, киберфорум
ИИ, нейросети, LLM, ML, Data Science, ИИ-агенты
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.89/38: Рейтинг темы: голосов - 38, средняя оценка - 4.89
427 / 316 / 115
Регистрация: 28.08.2013
Сообщений: 883

Выбор нейросети для прогнозирования (вычисления вероятности)

20.01.2021, 19:25. Показов 13071. Ответов 73

Студворк — интернет-сервис помощи студентам
Здравствуйте.
Хочу узнать у знающих форумчан. Какую (или какие) есть нейросети для прогнозирования (вычисления вероятности) следующего значения.
Абстрактный пример. Есть набор чисел, к примеру: 1001, 1002, 1003, 1002, 1005, ..., какая (или какие) нейросеть может дать приемлемый ( >80%) результат вероятного следующего значения?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
20.01.2021, 19:25
Ответы с готовыми решениями:

Составить вспомогательный алгоритм для вычисления вероятности прибытия кораблей и барж
SOS! Вероятность того, что в указанный морской порт в день прибывает k кораблей и барж, равна: P(k) = 3k e3/ k! .Составить вспомогательный...

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

Написание ИИ для прогнозирования событий
Всем привет, есть кто хорошо разбирается в этом? Какую платформу выбрать, Как научить машину самообучаться из интернета?

73
2 / 2 / 0
Регистрация: 13.11.2017
Сообщений: 44
19.10.2024, 17:03
Студворк — интернет-сервис помощи студентам
Сразу не откликнулись, а потом меня у компа не было.
"Секундочку", файлы от лишнего мусора почищу и проверю.
0
2 / 2 / 0
Регистрация: 13.11.2017
Сообщений: 44
20.10.2024, 03:38
Обещанные блокноты:
https://colab.research.google.... XcNZKFdwzD
https://colab.research.google.... VYv1f8Gs_k

Добавлено через 1 час 8 минут
Подумал со вчера ещё над такой вещью. Я про "пилу".
Напомню у меня это некий апериодический график (функция), которая символизирует некое событие, например, открытие двери термошкафа или очередной отстоп на финансовом рынке (или выход новости, что вобщем-то не с НС и роботам, хотя . . .)
Назовём этонекоторым входным параметром, на который система должна реагировать непосредственно (условно мгновенно).
Т.е. получается, если у нас процесс изменения температуры в шкафу по синусоиде, то для лучшего регулирования (например) мы можем предсказать температуру в будущем. Но если оператор открывает дверь, такое предсказание "летит к чертям".
Допустим, что мы знаем по какой экспоненте будет падать температура при открытой двери термошкафа.
Но суть в том, что такое событие (момент открывания двери) в отличие синусоиды температуры при "вечно-закрытой" двери НЕПРЕДСКАЗУЕМО.
На всякий случай попробую объяснить ещё по другому. Простейший пример с синусоидами. Их, напомню, две одинаковые разнесённые по фазе. Ключевая функция -- их разность. Как (надеюсь все) мы понимаем, НС "не понимает", что это разность, однако, способна практически в точности построить её. Эта синусоида будет иметь свою фазу.
Самый простой пример -- прогноз через 10 точек единственной синусоиды.
Для текущей входной последовательности соответствующее значение ключевой функции есть значение из той же самой синусоиды, сдвинутой влево на 10 шагов. А с точки зрения прогнозного значения ("наступившего будущего") сеть точно "знает", что этому предшествовало 10 шагов назад (в обоих примерах).
Однако, со случайными (непериодическими) событиями такое невозможно.
Глядя на "исторический" график можно кривую сдвинуть на любое количество шагов в любую сторону.
Однако, это не означает, что можно за 10 шагов предсказать событие, которое на значение ключевой функции влияет мгновенно.
Сеть/модель, разумеется, чего-то построит, однако, смешно "разочаровываться" в прогностических способностях LSTM при анализе спрогнозированной ключевой функции в таких знаковых моментах при наличии подобных входных параметров.
0
821 / 580 / 75
Регистрация: 20.09.2014
Сообщений: 3,826
20.10.2024, 12:19
А я о чем говорил?
Цитата Сообщение от Mikhaylo Посмотреть сообщение
может остальные синусоиды как мусор выглядят? Сколько периодов берёте и как соотносятся периоды друг с другом? Кратные периоды?
У вас синусоиды связаны друг с другом только одним словом "синусоида", которое, кстати, LSTM никак не сообщается.
Хорошо бы еще период (частота) были бы одинаковы или кратны, то можно было бы о чем-то говорить. А так это несвязанные мусорные данные.

P.S. Колабу еще не смотрел, дела. Но обязательно гляну.

Добавлено через 1 час 17 минут
В training_step() и validation_step() строчка
Python
1
loss, outputs = self(sequences, labels)
выглядит как чушь.

Может надо вместо self использовать self.model?

Добавлено через 37 минут
Ладно, заберу свои слова обратно. Видимо self() - это псевдоним self.forward(). Должно работать.

Такие характерные сглаживания пиков связаны с дискретностью данных. Вы не обучали модель на амплитудных значениях, обучали на околопиковых, вот модель и выдает чуть поменьше значения в быстроменяющихся местах графика.
0
1 / 1 / 0
Регистрация: 21.08.2024
Сообщений: 7
20.10.2024, 17:23
Любая даже без нейросети можно обойтись.
0
2 / 2 / 0
Регистрация: 13.11.2017
Сообщений: 44
21.10.2024, 02:30
Цитата Сообщение от tsvigo2 Посмотреть сообщение
Любая даже без нейросети можно обойтись.
Там где данные очевидны, можно и без сетки, задача состоит не в том, чтобы пристроить/продолжить их, эти данные построены лишь для того, чтобы убедиться, как работает LSTM.

Добавлено через 20 минут
Цитата Сообщение от Mikhaylo Посмотреть сообщение
Видимо self() - это псевдоним self.forward().
такой выход, прежде всего, диктуется, как понимаю, наследием класса от pytorch_lightning.
Цитата Сообщение от Mikhaylo Посмотреть сообщение
Такие характерные сглаживания пиков связаны с дискретностью данных.
Не просто дискретностью, а (ИМХО) -- Апериодичностью.
0
821 / 580 / 75
Регистрация: 20.09.2014
Сообщений: 3,826
21.10.2024, 07:42
CF_pflx, если вы взяли синусоиду амплитудой 2.0 и с какой дискретностью ее оцифровали, то вы можете получить примерно такой ряд:
0, 0.9, 1.2, 1.7, 1.8, 1.1, -0.3, ...

Нейросеть не увидит значения 2.0, соответственно не воспроизведёт это значение. А если вы ещё теорему Котельникова не знаете, то можете увидеть и такой ряд:
0, 0.5, 0.8, -0.1, -0.6, -0.5, ...

Добавлено через 1 минуту
Увеличьте ndiskr вдвое, в конце концов.
0
2 / 2 / 0
Регистрация: 13.11.2017
Сообщений: 44
22.10.2024, 10:27
Цитата Сообщение от Mikhaylo Посмотреть сообщение
Увеличьте ndiskr вдвое, в конце концов.
Или на 2 уменьшить. 28 вместо 30, чтоб на пи/2 чётко попадать . . . ???
Пересобрал данные и модель прогнал.
Вот картинки с числами точек на волну 60 и 56 (28 * 2) соответственно. 60, конечно на 4 тоже без остатка делится.
Не сочтите за . . . необъективность, но картинка с числом 56 на волну мне нравится больше. . . ???
Миниатюры
Выбор нейросети для прогнозирования (вычисления вероятности)   Выбор нейросети для прогнозирования (вычисления вероятности)  
0
821 / 580 / 75
Регистрация: 20.09.2014
Сообщений: 3,826
22.10.2024, 10:37
У вас периоды синусоид разные вроде как, поэтому надо выбрать не 28, а НОК (наименьшее общее кратное).

В реальности же надо уменьшать шаг дискретности.

Добавьте случайного шума в данные для красоты эксперимента.
0
2 / 2 / 0
Регистрация: 13.11.2017
Сообщений: 44
22.10.2024, 10:46
Кстати, в примере, о котором я однажды обмолвился (https://edunet.kea.su/repo/msu_ai/2.0/L09_RNN.html), как понимаю, 10 точек на радиан.
А с теоремой Котельникова знаком, примерно, 93-го года, и, как понимаю, частота дискретизации у меня в начальном примере выполнена на порядок выше, чем ограничение согласно теореме.

Добавлено через 4 минуты
Цитата Сообщение от Mikhaylo Посмотреть сообщение
У вас периоды синусоид разные вроде как
Для меня самого загадка, откуда там нечто в виде гармоники (если Вы об этом).
А период в шагах обеих синусоид одинаков и совпадает с периодом дискретного сигнала, а "между" графиками, разумеется, -- разная (частота), как и пишу: 60 и 56 шагов (период) . . .

Добавлено через 3 минуты
Цитата Сообщение от Mikhaylo Посмотреть сообщение
Добавьте случайного шума в данные для красоты эксперимента.
Это как, какой-нибудь высокочастотный небольшой синус??? (с нечёткой амплитудой и периодом)
0
821 / 580 / 75
Регистрация: 20.09.2014
Сообщений: 3,826
22.10.2024, 10:49
Цитата Сообщение от Mikhaylo Посмотреть сообщение
У вас периоды синусоид разные вроде как,
Это я про колабы. Здесь же период одинаковый?..
0
2 / 2 / 0
Регистрация: 13.11.2017
Сообщений: 44
22.10.2024, 12:29
Цитата Сообщение от CF_pflx Посмотреть сообщение
Не уверен, что четко понимаю, про какие Вы периоды.
Если про полные волны синусоид, то их у меня 45 (после того, как добавил), и половина от этого к-ва (и еще 0.3) на другие синусоиды.
Полный цикл первичной синусоиды -- 30 точек. Остальных, следовательно, -- 60 и 100.
Каждый раз я не сохраняю резервную версию . . .
Т.о., (только) у двух -- одинаковый.
А то, что на графиках, там -- только разница 2-х и периодическая пила:

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
for t in range(0, n_diskr * n_circles):
  alfa = alfa_0 + d_alfa * t
  l_alfa.append(alfa)
  sin_ = math.sin(alfa)
  sin0.append(sin_)
  alfa = fi1 + d_alfa * t
  sin_1 = math.sin(alfa)
  sin1.append(sin_1)
  alfa = alfa_0 + d_alfa * t * 0.5
  sin_2 = math.sin(alfa)
  sin2.append(sin_2)
  alfa = alfa_0 + d_alfa * t * 0.3
  sin_3 = math.sin(alfa)
  sin3.append(sin_3)
  saw = havi()
  #saw = a_havi()
  pila.append(saw)
  diff_sin.append(0.35*((sin_1 - sin_) + saw))
sin2 и sin3 -- "отдыхают".
На приведённых графиках.
0
821 / 580 / 75
Регистрация: 20.09.2014
Сообщений: 3,826
22.10.2024, 12:33
Шум можно простой равномерный или нормальный случайный с небольшой амплитудой. random.randn или random.rand
0
2 / 2 / 0
Регистрация: 13.11.2017
Сообщений: 44
22.10.2024, 14:17
Так с шумом: http://джокси.ru/MAjyw7GtZyaRl2
0
821 / 580 / 75
Регистрация: 20.09.2014
Сообщений: 3,826
22.10.2024, 15:31
Цитата Сообщение от Mikhaylo Посмотреть сообщение
равномерный или нормальный случайный с небольшой амплитудой.
"С небольшой амплитудой" - это я грубо выразился, вы можете опять подумать про синус... Просто прибавьте случайное число с распределением mean = 0.0 и std = {"небольшая амплитуда"}

Добавлено через 1 час 9 минут
CF_pflx, нормально ведь.
0
2 / 2 / 0
Регистрация: 13.11.2017
Сообщений: 44
22.10.2024, 15:47
Цитата Сообщение от CF_pflx Посмотреть сообщение
Не наблюдаю своей дописи: джокси заменить на joxi.
Хотел спросить: Картинку-то видели?
Или файлом прикрепить?

Добавлено через 1 минуту
Цитата Сообщение от Mikhaylo Посмотреть сообщение
CF_pflx, нормально ведь.
Если Вы про результат, я тоже считаю, что вполне неплохо.
0
821 / 580 / 75
Регистрация: 20.09.2014
Сообщений: 3,826
22.10.2024, 17:49
Картинку увидел, догадался заменить "джокси".
0
2 / 2 / 0
Регистрация: 13.11.2017
Сообщений: 44
23.10.2024, 05:55
Цитата Сообщение от Mikhaylo Посмотреть сообщение
Трансформеры, конечно, круты, но не лучшие для временных рядов.
Цитата Сообщение от CF_pflx Посмотреть сообщение
есть что-то лучше для временных рядов, чем LSTM?
. . . с учетом наличия столбцов на входе с дискретными и возможно экзогенными (в силу недоверия к переводу не очень уверен, что правильно/как автор понимаю данный термин) данными.
Полагаю, что задача в целом Вам ясна.

Добавлено через 13 минут
Цитата Сообщение от Mikhaylo Посмотреть сообщение
CF_pflx, нормально ведь.
Кстати, у меня возник ещё вопрос про задачу с шумом.
Правильно ли я Вас понял?
Я его добавил не просто на вход, но и внедрил в значения ключевой функции???
0
821 / 580 / 75
Регистрация: 20.09.2014
Сообщений: 3,826
23.10.2024, 06:50
Цитата Сообщение от CF_pflx Посмотреть сообщение
внедрил в значения ключевой функции???
Учитель же может немножко ошибаться?..
0
2 / 2 / 0
Регистрация: 13.11.2017
Сообщений: 44
29.10.2024, 09:29
Пытаюсь освоить/познакомиться с (ну и тп) трансформерами. Времени на фундаментальные исследования при чтении книжек с нуля по всем сетям и прочее, уже, к сожалению, позволить, пожалуй, не могу. Поэтому часто использую такой совместный метод исследования новых возможностей сетей с помощью поверхностного анализа их возможности из обзорного материала (1) и поиска каких-то наиболее близких к моим задачам примеров (2). Вот наткнулся на этот. Понимаю, что глубоко освоить питон это уже, видимо, в этой жизни – не моё. В равной степени, возможно, это касается и новых фреймворков, посвящённых нейросетям. Ну, тут, как говорится, что имеем.
Уважаемый Mikhaylo. Не могли бы вы мне разъяснить тут пару странных для меня вещей. Разумеется, я знакомился с описанием классов трансформера, собственно так же как и LSTM на сайте pitorch.org. Сравнил их, сделал некоторые аналогии, убедился в том, что ни тот, ни другой из мануалов не совершенны. Ну хотя бы input_size и future можно было бы где-то объединить или хотя бы после одного в другом другое указать в скобках. Понятно, что одно описание рождалось из другого, наследуя эти самые несовершенства. Однако. бороться с ветряными мельницами можно до бесконечно, и жизни бы не хватило. Ссылочку на пример я Вам дал. Вот блокнот с него сделанный. Работает. Во всяком случае, чего в примере – делает.
Вопрос примерно выглядит так. Входные данные представляют собой тензоры 10х1. В описании класса модели первым стоит линейный слой из 1 (Input_dim) на 64 (d_model). Мне вообще не очень понятно, как может быть работать линейный слой при входе десяти значений разом с указанием при инициализации таких размерностей слоя? Второе, мне не очень понятен через слой параметр d_model равно 64 при длине входных данных 10. Также не очень понятен физический или какой-то информационный смысл параметров: d_model (применительно к данному примеру), nhead и dim_feedforward.
Немного поэкспериментировал, распечатал размерности тензоров в forward класса TransformerModel (отражены в блокноте). Особой глубины понимания работы модели, разумеется, не возникло.
Данный пример, с одной стороны, имеет всего лишь один вход (признак), с другой стороны, – весьма нетривиален, чем и заслужил моё внимание. Если можете это прокомментировать насущность введения такого собственного класса Input_transposition, наличие на входе линейного слоя. Я же ничего не перепутал, это полносвязнный, так называемый, – dense-слой?
Насколько важно по Вашему применение слоя PositionalEncoding в данном примере и вообще в трансформерах (трансформерах в PyTorch)?
Если Вы как-то можете это прокомментировать или расставить мои мозги по местам, будет весьма здорово.
0
821 / 580 / 75
Регистрация: 20.09.2014
Сообщений: 3,826
29.10.2024, 11:04
Цитата Сообщение от CF_pflx Посмотреть сообщение
Мне вообще не очень понятно, как может быть работать линейный слой при входе десяти значений разом с указанием при инициализации таких размерностей слоя?
Есть императивный подход с циклами for/while как вы любите.
Но есть ещё функциональный подход, тут три основные функции map(), reduce(), filter(), которые позволяют уйти от всяких циклов.
PyTorch исповедует map-styled функции. Функция map() заменяет простой такой цикл, когда к каждому значению массива по отдельности применяется какое-то преобразование, либо этих массивов может быть несколько - одинаковой длины n, либо ещё круче это может быть двумерный или многомерный массив и просто к каждому значению по отдельности применяется функция.

Например, torch.sin() принимает на вход многомерный тензор, а на выходе получается другой тензор такого же размера, каждый элемент которого - синус значения из входного тензора. Очень просто!

Учитывая, что все эти функции PyTorch написаны на C/C++, то такие циклы работают очень быстро. Вы должны освоить map-styled функции вместо циклов. Но чтобы разобраться со всем этим, вам нужно разобраться с многомерными тензорами.

Если у вас есть некий тензор t, то вы можете узнать его размерность так: t.shape
Допустим ответ такой (64, 3, 768). Это трехмерный тензор, у которого первая размерность t.shape[0] = 64 - это размерность батчей. t.shape[1] = 3 - количество каналов RGB (красный, зелёный, синий), t.shape[2] = 768 - размерность пикселей. 28 х 28 = 768.

torch.Linear() работает особо: он может принимать на вход тензор X любой размерности, а тензор весов W двумерный, при этом последняя размерность X должна соответствовать первой размерности W. Если тензор X одномерный, то все понятно, как работает: один пример и нейросеть на нем обучается. Если же тензор X многомерный, то один и тот же слой обучается на множестве примеров, которые хранятся в многомерном тензоре. Выход такого линейного слоя - это такой же многомерный тензор "ответов", только последняя размерность соответствует последней размерности тензора весов W.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
29.10.2024, 11:04

Программа для прогнозирования данных
если кто -то раньше занимался чем то подобным залейте пожалуйста сюда. А то я даже не знаю как реализовать даный проект. или хотя...

ПО для моделей и прогнозирования в медицине
Здравствуйте! Подскажите какое ПО, какую библиотеку лучше выбрать для моделей и прогнозирования в медицине? Архитектура скорее всего...

Датасет для задачи прогнозирования
Здравствуйте! Мне интересна тема Data mining, а именно задача прогнозирования. Могли бы вы подсказать какие методы есть для решения...

Нейросети нейросети что это за?
Объясните популярно кто специалист зачем придумали нейросети что это такое вообще? Я узнал о нейросетях совсем недавно, и...

Алгоритм вычисления вероятности события
Разработайте и представьте в виде кода программы на языке Си алгоритм вычисления вероятности события, используя классическое определение...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
60
Ответ Создать тему
Новые блоги и статьи
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru