Вопрос или проблема
Я пытаюсь оценить вес рыбы по сигналу временной последовательности изменения сопротивления, когда рыба проходит через ворота с установленными электродами.
Когда рыба проходит через ворота, наблюдается скачок сопротивления, и предполагается, что форма этого скачка зависит от веса рыбы.
Вот пример показаний сопротивления в эксперименте с рыбой весом 340 грамм:
А вот пример извлеченных всплесков из того же эксперимента с рыбой весом 340 грамм:
Однако есть и другие параметры, влияющие на форму сигнала, такие как:
- Температура воды
- Соленость воды
- Конструкция ворот (близость электродов)
Интересно, как включить этот тип данных, который является одноразмерным для каждой выборки (например, для всех образцов рыбы №12, температура=28.2 по Цельсию, соленость=410, конструкция ворот=80мм) вместе с данными временного ряда самой выборки (который представляет собой серия из ~80 точек данных).
До сих пор я пробовал главным образом нейронные сети (полностью связанные и одноразмерные сверточные архитектуры) и линейную регрессию.
Я долго искал в интернете, но не нашел предложенной архитектуры для таких данных.
Сработает ли добавление канала для каждого параметра с фиксированным значением?
Или, возможно, добавив эти параметры как часть вектора всплеска?
Есть ли у кого-нибудь идеи / ссылки на какие-нибудь исследования?
Большое спасибо!
У меня сложилось впечатление, что это такая же проблема с приборами, как и с данными/машинным обучением. Без знания деталей вашей настройки (геометрии, позиции электродов, количества рыб в резервуаре одновременно и вашего плана использования этого после того, что похоже на калибровочный этап, сложно получить хорошее представление о том, что вы на самом деле измеряете и как модель машинного обучения могла бы вам помочь.
Трудно поверить, что на эту тему существует обширная литература, не говоря уже о какой-либо модели SOTA. Насколько я знаю, это не является широко изученной проблемой.
Вы сами говорите, что полученное измерение, вероятно, зависит от “размера рыбы, ее скорости и близости к краям ворот и, вероятно, других факторов, таких как соленость и температура воды.“. Есть ли у вас доступ к этим другим переменным? Также, как выглядит ваша фактическая установка?
Вы поделились таблицей с данными по сопротивлению, солености и температуре, но ни соленость, ни температура в ней не варьируются. Есть ли у вас калибровочные кривые для них?
В данных для одной рыбы я бы предположил, что соленость и температура воды, вероятно, почти постоянны с учетом продолжительности ваших экспериментов. Но для разных экспериментов, в зависимости от того, сколько времени прошло между ними, это может измениться. Я бы попробовал провести контролируемый эксперимент, возможно, с мертвой рыбой (знаю, это мрачное предложение, но оно должно быть информативным), чтобы понять, насколько эти другие переменные вносят разнообразие.
Учитывая количество разнообразия в единственном эксперименте с рыбой, кажется, что ваша система не очень ограничена. Вы упомянули скорость и близость к электродам, но если вы считаете измерение как показания этих двух электродов, я представляю, что угол, под которым …
Теперь, если в итоге можно действительно измерить вес с помощью серии всплесков, а не одного всплеска, я бы начал с проведения разведывательного анализа данных (EDA) на этих всплесках. Создайте признаки и убедитесь, что существует хорошая корреляция с весом рыбы. Это 100% физика, так что чем больше работы вы сделаете для понимания/моделирования вашей системы, что эквивалентно инженерии признаков, тем меньше будет необходимости в сложной нейронной сети.
Трудно сказать с помощью масштаба, который вы использовали для представления данных, но кажется, что между всплесками, зарегистрированными каждым электродом, есть небольшая задержка. Это так?
Если да, это означает, что вы можете измерить скорость рыбы $v = d / \tau$, используя расстояние между электродами $d$ и задержку $\Delta t$ между всплесками (используя время, когда их значение было максимальным, это должно сработать).
Теперь, глядя на отдельные всплески, чем быстрее плавает рыба, тем короче эти всплески должны быть. Поскольку вы можете получить скорость плавания рыбы, вы можете это проверить. Для каждой рыбы получите продолжительность всплеска и нанесите их на график против скорости. Чтобы определить продолжительность всплеска $\tau$, я бы взял максимальное значение и установил порог для времени, когда считанные данные превышают и опускаются ниже x% этого значения. Вам нужно будет сделать это для каждого электрода. Альтернативно, вы можете посмотреть на распределение сопротивления, когда всплесков нет, и установить универсальный порог.
Теперь продолжительность всплеска должна быть пропорциональна длине рыбы и обратно пропорциональна ее скорости. Таким образом, такой признак, как $\tau’ = \tau / v$, должен быть полезным.
Я также предполагаю, что амплитуда всплеска должна быть пропорциональна толщине рыбы. Поэтому я бы также использовал максимальное сопротивление для каждого всплеска и использовал это в качестве признака. Если слишком много шума, вместо этого используйте 5 или 10 процентиль значений всплеска.
Я бы предположил, что для определенного вида рыб, если у вас есть длина и толщина, вы сможете неплохо предсказать вес.
Наконец, вопреки вашей теме вопроса, почему бы не использовать камеру? Вы могли бы использовать электрод для запуска захвата кадров, но, вероятно, смогли бы получить отличную оценку веса с изображения.
Ответ или решение
Теория
Чтобы решить задачу оценки веса рыбы с использованием временных рядов данных и метаданных (в этом случае, температуры воды, солёности и параметров конструкции шлюза), необходимо подойти к проблеме с точки зрения анализа данных и машинного обучения. Когда рыба проходит через ворота с электродами, возникает скачок сопротивления. Форма этого скачка может быть обусловлена не только весом рыбы, но и другими условиями, такими как температура и соленость воды, а также размером ворот. Важно учитывать все эти переменные при создании модели.
Пример
Рассмотрим гипотетическую ситуацию. Допустим, у нас есть экспериментальные данные, где зафиксировано, что рыба весом 340 грамм проходит через ворота, что вызывает определенный пик сопротивления. Помимо этого, для каждой рыбы одинаково фиксируются параметры: температура воды 28,2°C, соленость 410 ppm и расстояние между электродами 80 мм. Они выступают в качестве метаданных, оказывающих влияние на форму и величину пиков сопротивления.
Применение
Для интеграции временных рядов с метаданными существует несколько подходов:
-
Многоканальная модель: Можно рассмотреть возможность добавления дополнительных каналов к временным рядам, где каждый канал будет представлять одно из значений метаданных. Это может быть полезно при использовании рекуррентных нейронных сетей (RNN) или свёрточных нейронных сетей (CNN), хотя и может увеличивать вычислительные затраты.
-
Объединение данных: Можно включить метаданные в виде дополнительных характеристик вместе со спайковыми характеристиками, такими как длительность и амплитуда пика сопротивления, в один общий вектор признаков, который будет входным для модели. Такой подход может быть реализован через простую линейную регрессию или более сложную структуру, такую как нейронная сеть, где временные ряды будут представлены последовательностью, а метаданные как отдельные входные признаки.
-
Физическое моделирование и генерация признаков: Провести EDA (Exploratory Data Analysis) для оценки влияния метаданных на форму пиков сопротивления. Например, оценить, как температура и соленость влияют на сопротивление, проводя контролируемые эксперименты. Можно, например, использовать статистическое пороговое значение пиковой амплитуды для каждого пика и анализировать долговременные изменения для оценки других характеристик рыбы, таких как длина, скорость и толщина, путём вычисления продолжительности и максимальных изменений внутри сигнала.
-
Комбинированное использование с другими датчиками: Рассмотрите возможность использования камер для визуальной оценки, синхронизированных с электродами для обеспечения адекватного времени снятия снимков. Это может дать дополнительную информацию для более точного измерения веса рыбы.
Заключение
Учитывая уникальность задачи и возможные неопределенности в данных, настоятельно рекомендуется провести серию контролируемых экспериментов для оценки влияния метаданных. Это может помочь в создании более точных и надежных моделей машинного обучения. Поскольку подобные задачи могут не иметь обширного современного научного покрытия, возможно, придется применить инновационные подходы, комбинируя различные методы.