Как правильно использовать мой нейронный net с dl4j? - PullRequest
0 голосов
/ 05 февраля 2020

Моя проблема:

Я реализовал модель прямой связи и рекуррентную модель с deeplearning4j для обнаружения аномалий в одномерном сигнале. Возможно, мне не хватает абстракции, но я подумал, что смогу решить эту проблему следующим образом:

  1. Предварительная обработка данных. У меня есть 5 различных категорий отказов, и у меня есть около 40 примеров. Каждый сбой имеет свою собственную «структуру».
  2. Построение нейрона net с 5 выходными нейронами, по одному на каждый сбой.
  3. Обработка и оценка.
  4. Теперь я хотел чтобы проверить мой net с реальными данными, и он должен обнаружить аномалии в очень длинном 1D сигнале. Идея заключалась в том, что net должен как-то «перебирать» сигнал и обнаруживать в нем эти сбои.

Возможен ли такой подход? У тебя есть идеи?

Заранее спасибо!

1 Ответ

1 голос
/ 05 февраля 2020

Это зависит от того, как выглядит структура этих дефектов.

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

Существует несколько способов моделирования этой проблемы:

Раздвижное окно

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

Если у ваших реальных данных недостаточно данных, вы можете дополнить их и если в нем больше данных, чем длина примера, вы скользите по последовательности (например, при размере окна 2 последовательность abcd превращается в [ab], [bc], [cd] и вы получаете 3 классификации).

Насколько я знаю, в DL4J нет ничего такого, что могло бы реализовать это решение. Но с другой стороны не должно быть слишком сложно реализовать это самостоятельно, используя RecordConverter.toRecord и RecordConverter.toArray для преобразования ваших реальных данных в NDArrays.

Рекуррентная сеть

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

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

Какое для вас правильное решение будет полностью зависеть от вашего конкретного конкретного варианта использования.

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