Как мне объединить два электромагнитных показания, чтобы предсказать положение датчика? - PullRequest
0 голосов
/ 19 января 2019

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

Позвольте мне упростить проблему, предположим, что датчик и излучатель находятся в одномерном мире, где есть только положение X (не X, Y, Z)и излучатель излучает энергию как функцию квадрата расстояния.

Из нарисованного ниже изображения вы увидите, что излучатель нарисован в виде круга, а датчик нарисован в виде креста.

one emitter

Например, если датчик находится на расстоянии 5 метров от излучателя, показания, которые вы получите на датчике, будут 5 ^ 2 = 25. Таким образом, правильное положение будет равно 0или 10, потому что излучатель находится в положении 5.

Итак, с одним излучателем я не могу знать точное положение датчика.Я только знаю, что есть 50% -ная вероятность, что это в 0, и 50% -ная вероятность, что это в 10.

Так что, если у меня есть два излучателя, как на следующем изображении:

two emitters

Я получу два показания.И я точно знаю, где находится датчик.Если показания 25 и 16, я знаю, что датчик находится на уровне 10.

Так что из этого факта я хочу использовать 2 излучателя, чтобы найти датчик.

Теперь, когда я объяснилВ вашей ситуации мои проблемы таковы:

  1. Излучатель имеет более сложную функцию расстояния.Это не просто квадрат расстояния.И там тоже есть шум.поэтому я пытаюсь смоделировать его с помощью машинного обучения.
  2. В некоторых областях излучатель работает не так хорошо.Например, если вы находитесь на расстоянии от 3 до 4 метров, излучатель всегда будет показывать вам фиксированное значение 9 вместо того, чтобы переходить с 9 на 16.

  3. Когда я тренирую модель машинного обучения с2 входа, прогноз очень точный.Например, если вход 25,36, а выход будет позицией 0. Но это означает, что после тренировки я вообще не могу перемещать излучатели.Если я переместу один из излучателей, чтобы он находился дальше друг от друга, предсказание будет немедленно нарушено, потому что показание будет примерно 25,49, когда правый излучатель сместится вправо на 1 метр.И прогноз может быть любым, потому что модель не видела эту входную пару раньше.И я не могу позволить себе тренировать модель на всех возможных расстояниях от двух излучателей.

  4. Излучатели могут быть немного не идентичны.Разница будет в масштабе.Например, один из излучателей может показывать на 10% больше.Но вы можете пока игнорировать эту проблему.

У меня вопрос Как мне заставить модель работать, когда излучатели могут двигаться? Дайте мне несколько идей.

Некоторые из моих идей:

  1. Я думаю, что мне нужно выяснить положение обоих излучателей относительно друг друга динамически.Но после того, как я узнал положение обоих излучателей, как мне сообщить это модели?
  2. Я попытался обучить каждый излучатель отдельно, а не соединять их в качестве входных данных.Но это означает, что есть много позиций, которые вызывают конфликт, например, когда вы читаете = 25, модель прогнозирует среднее значение от 0 до 10, потому что обе являются действительными позициями чтения = 25.Вы можете предложить тренировку для прогнозирования расстояния вместо позиции, это возможно, если нет задачи № 2 .Но поскольку существует проблема № 2, прогноз на расстоянии 3-4 метра будет неверным.Модель получит на входе значение 9, а на выходе будет среднее расстояние 3,5 метра или где-то от 3 до 4 метров.
  3. Используйте модель для прогнозирования функции плотности вероятности положения вместо прогнозирования положения.Например, когда показание равно 9, модель должна прогнозировать равномерную функцию плотности от 3 до 4 метров.И тогда вы можете как-то объединить 2 функции плотности из 2 показаний.Но я думаю, что это не будет так точно по сравнению с моделированием двух излучателей вместе, потому что функция плотности может быть довольно сложной.Мы не можемпредположить нормальное распределение или даже равномерное распределение.
  4. Используйте какой-нибудь оптимизатор для прогнозирования позиции отдельно для каждого Эмитент основан на предположении, что оба прогноза должны быть одинаковыми. Если прогнозы не совпадают, оптимизатор должен попытаться переместить прогнозы, чтобы они были точно в одной точке. Может быть подкрепление узнать, где действия: «двигаться влево», «двигаться вправо» и т. д.

Я рассказал вам свои идеи, чтобы они могли вызвать у вас некоторые идеи. Потому что это уже моя лучшая работа, но она пока не решает проблему элегантно.

Так что в идеале я бы хотел, чтобы сквозная модель получала 2 показания и давала мне координаты даже при перемещении излучателей. Как бы я поступил об этом?

PS. Излучатели могут двигаться только перед использованием. Во время использования или прогнозирования модель может предположить, что излучатель больше не будет перемещаться. Это позволяет вам успеть запустить алгоритм калибровки положения излучателей перед использованием. Может быть, вам будет полезно это знать.

1 Ответ

0 голосов
/ 23 января 2019

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

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

emit2 read1 read2 sensor
  1    25    36     0
  1    25    16     5
  2    25    49     0
  1.5  25     9     5    distance of 3 < d < 4 always reads as 3^2

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

Можете ли вы взять его оттуда?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...