Возможно ли обучить нейросеть давать оценку набору данных в которых хранится оцифрованный сигнал:
Идеальный случай когда сигнал имеет форму синусоиды, но такой идеальный случай выпадает крайне редко.
Чаще всего форма сигнала имеет "линейную" составляющую т.е. функцию y=kx+b которая является следствием дискретности при оцифровке.
Острые края, углы- плохой признак.
Плавные линии- хороший признак.
С какими проблемами связано решение такой задачи с помощью машинного обучения и нейросетей?
Возможно такая нейросеть уже есть?
eegmak, можно попробовать сделать БПФ и посмотреть сколько синусоид внутри неё. Чем меньше (или чем более явно отличается "главная") - тем лучше, получается.
Иерокопус Таманский, Василий Банников, интересно попробовать нейросети как мне кажется распознавание формы сигнала отличный старт для такого, а не скучноватое распознавание рукописных букв.
Данная задача решается с помощью анализа Фурье. Ну по крайней мере в науке и технике
методу Фурье всегда доверяют поиск периодов и фаз на сигнале.
А по составу спектра уже смотрят какие примеси есть. Например Чистый синус будет иметь один пик
в части основной гармоники. Прямоугольные периодические импульсы - нечетные гармоники убывающие
по определенному затуханию.
Спектр представляет собой вектор комплексных чисел. Где есть частота и комплексная амплитуда.
И вот этот спектр уже можно подавать на вход нейросети.
Линию вида y=kx+b можно представить как очень низкую частоту (инфразвук) с большим периодом.
Впрочем возможность детектировать такой инфразвук будет заложена у вас в самом методе Фурье.
С какой частоты начнете анализ - то и получите.
eegmak, попробуй. Прелесть нейросетевых задач в том что никто из программистов не считает мегафлопы и временную сложность алгоритмов. Может быть даже это и неважно. Но во мне сидит инженер старой закалки который по привычке пытается экономить ресурсы. Когда школьники на ЧятеЖПТ хотят делать калькулятор - то у меня это вызывает изумление. Ведь это оверинжинеринг. Но никого вокруг это не беспокоит - почему я должен беспокоиться?
В вашем случае для визуального распознвавания нужна картинка. Это матрица пикселов MxN.
А для распознавания спектра нужен один комплексный вектор. Просто массив длинной K.
Я понизил размерность входных данных для вашей нейросети. Как это использовать? Думайте сами.
mayton2019, размерность можно уменьшить только с потерей данных например с помощью децимации (как это было в древнем риме)
А фурье не приводит к потери данных значит "площадь картинки" останется прежней. Хотя длина и высота векторов может поменяться
mayton2019, сами данные в числовой форме это 3 миллисекунды данных записаных с ацп частотой дискретизации 400 кгц и 8 битами глубины.
Получается примерно 1200 восьмибитных значений (восьмибитность довольно таки избыточна если что)
mayton2019, для синхронизации с вопросом который задаю, предлагаю вообразить что нужно найти паттерн заболевания в экг. Или определить чего больше в сигнале - прямоугольных импульсов или синусоидальных волн.
Это ведь всё компьютерное зрение, хотя данные экг поступают на вход как числовой вектор
mayton2019, возможно вы сможете поучаствовать в формализации критериев по которым одна синусоида "нарисована" лучше чем другая.
С точки зрения обычного человека
mayton2019, допустим человек как то может по спектру понять какой формы сигнал..
Это возможно только если знать тайный алгоритм про гармоники итд.
Но смысл если спектр это тот же самый сигнал только после определенного преобразования. Все равно нужен человек который может и без преобразования определить синус от прямоугольника
mayton2019, вы говорите про случай экг. У нас есть здоровый человек как эталон, оборудование которое барахлит..
Как определить что оборудование барахлит зная что человек здоровый?
Оборудование вносит изменения в спектр сигнала.
Но эти изменения носят не постоянный характер. Статистически распределение такое что оборудование рандомно искажает экг здорового человека.
А спектр мы считаем для случаев в которые включены все рандомные искажения.
Если бы была возможность удалить из выборки заведомо непохожее на экг - это было бы повышением точности при сравнении спектров
Вы говорите вопросы на которые просто нельзя ответить "со слов".
Нужно смотреть глазами форму графика. Как он искажается? Как барахлит? Вибрация? Постоянная
составляющая? Белый шум? Фон сети питания.... да много чего может быть.
Больше устного ТЗ не надо. И вообще я думаю что хабр это не формат вашего вопроса.
mayton2019, вот вы нарисуете от руки синусоиду и я нарисую синусоиду.
Мы сможем по спектру определить кто точнее справился с задачей?
Мне кажется в этой аналогии вся суть
Кто точнее - подскажет ошибка. Или среднее квадратическое отклонение. Но до того как мы его начнем
вычислять нам нужны точне знания эталона. Тоесть амплитуда-частота-фаза. А это вам даст метод Фурье.
mayton2019, амплитуда частота и фаза достаточны для задания формы сигнала?
Мне кажется нет, иначе на генераторах сигнала(например rigol) отсутствовала бы функция "генерация по точкам".
eegmak, форма сигнала может быть любой по твоему тех-заданию. Но я отвечаю по поводу синусоиды. Формула синусоиды
y = a + b*sin(d*a*(x+c))
где a,b,c,d - это постоянная составляющая, амплитуда, фаза и некий множитель для частоты. Все в радианах.
Подстраивать под реальный график очень сложно.
mayton2019, если прямоугольник будет в сигнале это хуже чем если амплитуда одного "гребня" подскочит.
А на спектре вполне может выглядеть одинаково(утверждаю)
mayton2019, "дельта" от изменения одного гребня (на прямоугольник или по амплитуде) не заметна на спектре как минимум если даже есть.
Но утверждаю что различные изменения формы сигнала могут привести к одинаковому спектру с дельтой ниже распознования
mayton2019, кликбейт :) там про фурье а не про анализ ээг.
Во всем есть тонкости, если бы спектрограмма сердцебиения была более показательна наверняка ее бы использовали врачи, но дельта некоторых процессов становится нечитаемой в такой форме.
Для нейросети более полезно когда у нейрона диапазон изменения (полезного,который относится к признаку) меняется с большей амплитудой. Спектр приводит к тому что мелкие детали становятся менее заметны чем они были видны на исходном сигнале. Хотя в численной форме конечно же это один и тот же сигнал который может без потерь возвращен в исходную форму.
mayton2019, простой пример с экг:
Если у вас будет спазм в сердце который происходит один-два раза за день то нужно искать его на временной шкале а не на шкале без времени.
eegmak, после анализа Фурье ты можешь автоматически (абсолютно точно) расставить
по всей длине ЭКГ разметку главной гармоники. А уже зная главную гармонику анализировать
отклонения 80% всех периодов от этих спазмов во всем графике.
Поясню на примере. Допустим у тебя есть квази-линейный график в виде облака точек.
И ты хочешь найти самую некрасивую точку (выброс). То для этого ты строишь
линейную регрессию. Она показывает как это облако расположено. И уже фактическое
расстояние от линии регрессии до точек даст тебе все выбросы и аномалии.
В твоем случае (периодическая функция) роль этой регрессии выполняет главная гармоника
Фурье. Ну если хочешь - возьми 2 и 3 и прочие гармоники.