Вопрос или проблема
Мне нужно несколько советов по проблеме, над которой я работаю с автомобильными данными. Автомобили предоставляют серию кодов каждую секунду, которые сохраняются, хотя количество может варьироваться.
Например, на первом временном шаге автомобиль может отправить 3 кода:
(1, 2), (3, 5), (7, 9)
и количество временных шагов может варьироваться (до появления ошибки).
Теперь у некоторых из этих кодов есть связанные значения ошибок. Например, (1, 2) может быть критической ошибкой, обозначающей проблему с вашей шиной. Но подавляющее большинство из них не имеет этого. Таких критических ошибок около 15, в то время как других кодов 5500.
Коды на самом деле состоят из двух отдельных независимых кодов.
Задача состоит в том, чтобы предсказать заранее, вероятно ли появление любого из этих кодов.
Что я пробовал:
Я пытался сделать это с однослойной GRU RNN сетью с встраиваниями для всех кодов. Я прогнозирую вероятность следующего кода в последовательности на каждом шаге (считая каждый код шагом).
Я пробовал изменять параметры, такие как количество нейронов и т.д., но не получаю никаких результатов с этим (точность менее 5 процентов после нескольких эпох).
- Как я могу улучшить эту модель?
- Есть ли какой-либо метод, с помощью которого я могу рассматривать все эти коды на каждом шаге?
- Какие другие алгоритмы, помимо глубокого обучения, я могу здесь применить?
Заранее спасибо
Если я правильно понимаю, вы сейчас пытаетесь предсказать следующий код из 5500 возможных. Думаю, это слишком много вариантов для выбора, нельзя ожидать хорошей производительности в этом случае.
Поскольку задача заключается в предсказании 15 кодов ошибок, я бы представил проблему как задачу маркировки последовательности: метка на каждом шаге — это либо «ничего» (часто представляется как “_
” в задачах маркировки последовательности), либо один из 15 кодов ошибок. Метка будет представлять наиболее вероятный исход для следующего шага, а не для текущего. Таким образом, система может использовать историю кодов (обычные характеристики) без необходимости предсказывать все из них, только критические. Обратите внимание, что если несколько кодов ошибок могут произойти одновременно, возможно, вам придется выбрать один как метку (может быть, их можно ранжировать по приоритету?).
Насколько я знаю, стандартным методом для маркировки последовательностей является Условное случайное поле (CRF). В традиционном подходе вам придется провести некоторую инженерную работу с признаками: например, пытаться не только давать коды как признаки, но и такие признаки, как частота появления кода за последние N шагов. Думаю, современный подход состоит в обучении RNN и использовании векторного представления в качестве признаков для CRF, но я могу быть не в курсе последней информации по этому вопросу.
Ответ или решение
Для предсказания вероятности появления определенных ошибок в данных от автомобилей, вам нужно обдумать выбор модели подходящей к специфике задачи и данных. На данный момент вы уже попробовали использовать однослойную рекуррентную нейронную сеть GRU с кодировками для всех кодов. Однако, результаты оказались неудовлетворительными. Рассмотрим, что можно предпринять для улучшения модели и какие альтернативы существуют, включая методы, не относящиеся к глубокому обучению.
Теория (T):
На основе теории машинного обучения и обработки последовательностей, ваша задача классифицируется как проблема маркировки последовательностей. Это подразумевает, что мы пытаемся спрогнозировать вероятностное появление 15 критичных кодов в последовательности, при этом игнорируя остальные 5485 «обычных» кодов. Основная цель — выделить те сигналы, которые могут предшествовать появлению этих критичных событий.
Одной из возможных моделей, которую стоит рассмотреть, является сеть CRF (Conditional Random Fields), особенно для задач, где требуется учитывать исторический контекст для предсказания с высокой точностью в условиях временной зависимости данных. Однако, может потребоваться внимание к работе с характеристиками данных и к построению признаков, что было бы более удобным для классической версии CRF.
Пример (E):
На практике, CRF часто сопровождаются рядом дополнительных шагов по предобработке и созданию признаков для модели: например, стоит рассмотреть создание агрегированных признаков, таких как частота встречаемости определённого кода в последние N секунд, или вероятностный анализ появления определённых кодов для выявления закономерностей, влияющих на критическую ошибку.
Модель RNN в сочетании с CRF может предложить современные подходы, позволяющие генерировать векторы признаков, которые более эффективно будут использованы в CRF. При обучении RNN можно внедрить слои внимания (attention), которые помогают сосредоточиться на определённых временных шагах ввода, что может быть критично для выявления сингулярных ошибок в потоке некритических кодов.
Применение (A):
-
Улучшение текущей модели GRU:
- Изменение архитектуры: Увеличение глубины сети, добавление более сложных слоев, таких как слои внимания или LSTM, обеспечивающие лучшую обработку скрытых состояний.
- Балансировка данных: Дисбаланс данных может сильно повлиять на производительность модели. Стоит рассмотреть технику oversampling для критических кодов или применение метрик оценки, таких как F1-Score, вместо простой точности.
- Гиперпараметрическая оптимизация: Экспериментируйте с размерами векторов кодировок и слоями dropout для лучшего управления overfitting.
-
Альтернативные модели:
- Conditional Random Fields: Они могут быть использованы для моделирования вероятностей появления критических кодов в зависимости от контекста и предыдущих шагов. Важно учесть особенности формирования признакового пространства.
- Подходы с использованием последовательностей трансформеров: BERT или более легкие вариации, например, TinyBERT или DistilBERT, могут быть настроены для решения задачи маркировки последовательностей и эффективно работать с большой вариативностью кода.
-
Методы машинного обучения без нейронных сетей:
- Подходы основанные на статистическом анализе: Использование регрессионных моделей или деревьев решений (например, Random Forest), основывающихся на признаках со скрытыми вероятностными паттернами.
В заключение, интеграция этих моделей требует тщательного эксперимента с допустимыми параметрами и признаками. Постепенное улучшение и комбинирование методов, описанных выше, позволит значительно улучшить точность и надежность в прогнозировании критических событий в автомобильных данных. Кроме того, периодическая оценка и валидация модели на новых данных, а также ее настройка под изменяющиеся условия, будут важными шагами для поддержания производительности системы на высоком уровне.