Работа с данными временных рядов довольно громоздка, учитывая разнообразие компонентов в данных и шаги, которые необходимо предпринять при подготовке данных для обучения из дампа необработанных данных. Более того, использование моделей машинного обучения или глубокого обучения в такой форме данных довольно сложно, особенно если вы новичок в этой области. В этой статье я хочу поделиться своими наблюдениями и несколькими советами о том, как решить некоторые из основных проблем в классификации данных временных рядов с несколькими метками.
В последние несколько дней я работал над проблемой классификации с несколькими метками, включающей данные временных рядов, и я столкнулся со многими новыми вещами (включая большой красный флаг), хотел поделиться несколькими указателями, чтобы любой, кто работает над аналогичной постановкой задачи может получить толчок.
Несколько ссылок на TensorFlow тут и там, но в целом он не зависит от фреймворка😊
- Очень важно понимать шкалу значений в ваших данных, разберитесь с этим в самом начале
- Я использовал tf.data для загрузки, обработки и обработки данных из CSV-файла, и это был очень простой и простой в использовании вызов функций (можно передать несколько функций — дополнительное преимущество)
- Я видел, как многие разработчики начинали с больших масштабов и постепенно снижали сложность модели, и я сам виноват в этом в прошлом. Но извлеченный урок — начните с малого и увеличивайте сложность, если вы чувствуете, что обучение становится насыщенным после определенных эпох. Меньшая модель (если она работает наравне с большей моделью) всегда выгоднее из-за задержки при развертывании.
- Всегда используйте собственный цикл обучения или переопределяйте метод model.fit(), чтобы иметь лучший контроль над обучением, чем при использовании высоко абстрактного способа обучения модели
- Когда дело доходит до классификации по нескольким меткам, отслеживание или зависимость только от точности и потерь – это НЕТ. Используйте точность, отзыв, f1-счет, поскольку они являются лучшими индикаторами. Это самый большой красный флаг!
- Напишите фрагменты кода для этих показателей и правильно настройте пользовательские обратные вызовы для эффективного обучения
- Используйте кривую ROC и Precision-Recall, чтобы понять выходные данные вашей модели, учитывая тот факт, что вы можете установить пороговые значения для сигмовидного вывода для установки метки 1/0 для нейронов
- Активно отслеживайте свои тренировки с помощью любых инструментов с открытым исходным кодом или скриптов кода. Лучше использовать инструменты, которые могут выполнять тяжелую работу, и вы можете сосредоточиться на данных и модели, а не на других вещах (существует множество инструментов). Короче говоря, начните применять методы MLOps.
- И последнее: используйте Docker и напишите код таким образом, чтобы он позволял вам вставлять контейнер в среду с несколькими GPU или TPU, и он по-прежнему работал без сбоев для расширенного учебного упражнения
Я буду продолжать делиться своими взглядами и давать еще несколько советов по мере того, как буду решать поставленную задачу. А пока я надеюсь, что приведенные выше советы помогут вам при работе над похожей постановкой задачи.
Будьте в курсе последних видео-новостей, стратегий и идей, отправленных прямо на ваш почтовый ящик!
Первоначально опубликовано на https://www.plexflo.com.