Thunderstruck: Disaster CNN визуализация линий электропередачи переменного тока

NET Center в VŠB пытается обнаружить образцы частичных разрядов от воздушных линий электропередачи путем анализа сигналов мощности. Этот вызов Kaggle был интересным для всех энтузиастов электроэнергии. В идеале мы могли бы обнаружить медленно увеличивающееся повреждение линий электропередачи до того, как произойдет отключение электроэнергии или возникнет электрический пожар. Однако есть много миль линий электропередач. Кроме того, повреждение линии электропередачи не сразу видно, небольшие повреждения от чего-либо (деревья, сильный ветер, производственные дефекты и т. Д.) Могут быть началом каскадных повреждений от разрядов, которые увеличивают вероятность отказа в будущем. Это великая цель. Если мы сможем успешно оценить линии, нуждающиеся в ремонте, мы сможем снизить затраты, сохранив при этом подачу электроэнергии. Я имею в виду разговоры о деньгах.

Табличный набор данных очень большой, 800 000 точек для каждого сигнала и в сумме составляет около 10 ГБ. Раздутый набор был не тем, что я искал, просто появившись после вредоносного ПО Microsoft. Я потратил так много времени, просто пытаясь загрузить этот набор данных на свой компьютер, и снова подумал о возможности снова заняться таким большим объемом управления данными.

Я решил сделать что-то безумное и сделать это проблемой CNN, а не табличной задачей. Особенно безумно превращать табличную задачу в CNN. Зачем вам брать совершенно хорошие данные и превращать их в более нечеткие и менее точные данные?

Это было быстрее

Это было хакерее

К тому же было веселее!

Вроде ... ты готов?

Высокое напряжение

Сначала мы должны взглянуть на некоторые концепции электротехники, особенно с линиями электропередач. Здесь мы видим 3 цикла или фазы, связанные с переменным током. Предоставляемые данные содержат сигналы для этих фаз и зависят друг от друга для прогнозирования проблем на линиях. Следовательно, через это оборудование проходят три разных сигнала, и между ними существует взаимозависимость. Если один из них выглядит странно, он влияет на два других.

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

В порядке. В этом есть смысл. Итак, как бы выглядели трое из них? Может ли что-то выглядеть сверхъестественным? Я так думаю!

Хорошо, это может сработать! Конечно, я вижу, что зеленая линия фазы 2 на этом изображении выглядит немного остроконечной. Может быть, это важно, а может, и нет. Однако я полагаю, что это то, что пытается обнаружить наша CNN.

Во-первых, нам нужно преобразовать все сигнальные файлы в изображения, и я выполнил это и сохранил на жестком диске (используя этот блокнот jupyter). Было гораздо быстрее вернуться и загрузить их в память, чем генерировать их каждый раз (сигналов много). Затем я вернулся и проделал то же самое с нашим тестовым набором. Я, вероятно, мог бы справиться с этим лучше, но мне нужно было запустить его только один раз.

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

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

Когда мы начинаем тренироваться, мы видим, что тренировка улучшается! Хорошо!
Оценка улучшается, как и коэффициент Мэтьюза! Хорошо!

Отлично, давайте попробуем это и рассмотрим некоторые из них.

Я заметил одну вещь: где у элементов есть правильные прогнозы. Через пару эпох мы можем увидеть тепловую карту того, что модель считает важным.

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

Однако сюжеты, на которых предсказывались неверные, закончились.

Некоторые из них показывают то, чего я ожидал. Этот показывает дикие колебания. Например, мы хотим увидеть что-то вроде того, что показано ниже, где веса указаны по всем трем сигналам.

Однако есть еще много примеров, в которых они выделяют области, которые не имеют смысла. Как здесь:

Почему он выделяет область справа? Что на протяжении всего обучения заставляло его считаться наиболее значимой областью?

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

Жесткая верхняя губа

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

При более подробном рассмотрении прогнозов кажется, что они имеют смысл. Мы видим, что получаем некоторые значения как в 0, так и в 1, и это хорошо. Набор очень смещен с расхождением почти 10: 1, впрочем, этого тоже следовало ожидать. Это относительно близко к нашему набору данных.

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

Затем мы отправляемся в Kaggle. Да будет рок!

Что ж, это было досадно.

Он набрал даже меньше, чем все 0.

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

Другие CNN в конкурсе приблизились к 0,50 иш, и победитель использовал LGBM.

Что нужно улучшить:

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

Использованная литература: