LINUX.ORG.RU

Отсеивание «плохих» пиков на диаграмме

 


1

1

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

Имеется: диаграммы распространения ультразвука в некой среде. На них мне программно надо найти пики. С этим проблем нет, это реализуется просто. Но, надо отсеять «плохие» пики и оставить только нужные, на которых будут строиться дальнейшие расчёты.

Пример того, что нужно отсеять:
Раз
Два

Пример того, что нужно оставить:
Раз
Два

Ответ на: комментарий от AntonI

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

с этим проблем нет, но цитируя ТСа «Если бы я мог … я бы смог» ничего другое ему не поможет

flant ★★★★
()
Ответ на: комментарий от flant

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

Ок. Не могли бы Вы описать очень крупными мазками последовательность действий по подключению прецептрона к задаче ТС?

AntonI ★★★★★
()
Ответ на: комментарий от AntonI

варианта два:

выразить график в числовом виде. и каждому пику присвоить булево значение в зависимости от его «хорошести». точнее конечно нужно 100500 разных примеров. это классика жанра в подготовке датасета, объяснять не нужно.

второй вариант - использовать изображения. у нас получится обычный условный классификатор кошечек и собачек.

ну и дальше тренировать сеть. залог успеха в многообразии и объёме тренировочных данных.

flant ★★★★
()
Ответ на: комментарий от flant

Естественно мы говорим про вариант 1.

Итак,

  1. есть 100500 вариантов зависимостей f(t) (последовательностей чиселок) полученных от установки.

  2. Мы как то пляшем с бубном и вырезаем из них пики - локальные экстремумы с достаточно большой амплитудой +/- 50 отсчетов от пика например.

  3. Для каждого такого пика мы РУКАМИ (!!!) ставим галочку плохой/хороший.

  4. берем нейросеть со 101 входом и 2мя выходами и прогоняем это все через нее. Бинго! Теперь она (наверное) может распознавать пики.

  5. Если не вышло - поиграть подбирая разные типы нейросетей.

Я ничего не забыл/перепутал?

AntonI ★★★★★
()
Ответ на: комментарий от AntonI

вот всё, что ты описал это data scince. да, это серьёзная задача. и в данном случае нейросеть нужна для неё, а не она для нейросети. а если воспринимать весь это процесс как какую-то нибудь рутину перед началом нового проекта тогда конечно кажется избыточно.

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

flant ★★★★
()
Последнее исправление: flant (всего исправлений: 1)
Ответ на: комментарий от flant

Ок, то есть я правильно понимаю ситуацию.

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

Все задачи услоно можно разбить на три класса:

  1. там где нейросети не применимы/не оправданы. Например задачи прямого численного моделирования - нужно посчитать обтекание крыла самолета, сетка 10^9 точек. Ну или задача ТС.

  2. Там где можно выбирать между нейросетью или каким то другим методом. Например посчитать число рыб по фото мелкого залива сделанного с беспилотника/самолета. Или задача ОБРАБОТКИ данных численного/натурного эксперимента - есть набор входных параметров, есть какие то признаки у результата, надо научится предсказывать какие признаки будут у того или иного набора. Такие штуки могут быть полезны в смысле понимания куда надо копать/развиваться, но эксперимент/полномаштабное моделирование они не заменяют а только дополняют. Хороший специалист своей межушной нейросетью сделает все то же самое.

  3. Там где нейросети предпочтительны или вообще не имеют конкурентов. Например всякие распознавания сложных образов или рисование картинки по текстовому запросу юзера.

Но нужно иметь минимальную компетенцию что бы понимать где какой инструмент юзать. А то многие датасатанисты (вроде @ox55ff) как тот столяр у которого из инструмента только молоток и он ничем другим пользоваться не умеет, да и молоток держит не за тот конец…

Почему оно так сложилось второй вопрос, ИМНО виновато бурное развитие, что приводит к нехватке кадров, большому финансированию и флеру таинственности и загадочности. Я так в свое время научного руководителя выбирал - клюнул на то что он занимается синергетикой. Это была тогда очень модная тема и казалось ужжжасно круто (ничего непонятно но очень интересно)! В итоге, с его подачи, я занимаюсь совершенно другими, гораздо более интересными вещами. А что такое синергетика ознакомился ка то походу - ну да, местами она полезна;-)

AntonI ★★★★★
()
Последнее исправление: AntonI (всего исправлений: 1)
Ответ на: комментарий от AntonI

я в целом согласен с твоей классификацией, но не с тем куда ты определил задачу ТСа. точнее не с тем как ты думаешь, она выглядит с его стороны.

ты пишешь, что перед ним вполне детерминистская история для решения которой мол подучите матчасть, составьте матмодель и будет вам счастье. и здесь спору нет. НО что если человек далёк от физики? тогда с его точки зрения это и есть «всякие распознавания сложных образов».

он же не спрашивает, как в принципе правильно решается такая задача, он спрашивает как её можно решить имея наш айтишный инструментарий.

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

flant ★★★★
()
Ответ на: комментарий от flant

НО что если человек далёк от физики?

Физики в задаче ТСа немного. Если он такими вещами занимается то уж какое то представление о всей это кухне имеет. ИМНО порог вхождения что в фильтры, что в нейронки примерно одинаковый - но в случае ТСа фильтры рулят за счет того, что не нужен большой объем данных для обучения. Подготовка таких данных в случае нейронки это и будет основная часть работы, даже если это как то автоматизировано (скажем меряем для тестов образцы с заранее известной толщиной).

Главное что на выходе де-факто нейронная сеть и будет в себе содержать тот самый фильтр, только дорога к этому ответу окажется куда длиннее;-)

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

Дык у ТСа итоговая задача совсем не айтишная. И я тоже совсем не айтишные задачи решаю;-)

AntonI ★★★★★
()