BIG BAD DATA – Telegram
BIG BAD DATA
140 subscribers
69 photos
1 video
9 files
31 links
Сложно о простом и просто о сложном 😎🥸
👀Меня можно найти тут: @Areson251
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
Хочу дать вам немного теории по работе с ml🤓 А точнее, о подготовке к ней)

Самый первый и важный этап - собрать и предобработать входные данные. Всю информацию можно описать по ее конкретным признакам, которые в свою очередь различаются на два типа: категориальные и численные. Сегодня я расскажу Вам, товарищи, о работе с категориальными признаками.
Значения этих признаков можно относить к какой-либо группе, но при этом их порядок не важен. Эти значения не являются сравнимыми, например имя, страна, спорт и тп.
При сборе обучающей выборки часто бывает так, что находится много выбросов (аномальных значений для определенной категории) и пропусков (отсутсвие каких-то полей). Есть несколько способов для борьбы с такими случаями:
1. Удаление пропущенных значений. Самый простой способ, когда просто удаляешь строки в таблице или варианты. К сожалению, у этого метода есть очень жирный минус - огромная потеря информации, что сильно сокращает датасет.
2. Заполнение пропущенных значений. Этот способ гораздо лучше предыдущего, тк он сохраняет все исходные данные. Можно, к примеру, вставлять слово «unknown». Но все же лучше использовать медианы по столбцам, тк новые элементы будут более реальными и приближенными к первоначальным.
3. Замена максимальными значениями. В отличие от других методов, конкретно этот можно применить только к категориальным признакам, да бы не испортить всю выборку. Однако, я все равно больше склоняюсь к медианам.
4. Обнаружение и ограничение выбросов. Чтобы увидеть аномальные значения, достаточно визуализировать свою выборку. Для ограничения можно использовать процентили - (мера, в которой процентное значение общих значений равно этой мере или меньше таковой).

Также для обработки категориальных признаков можно использовать:
1. Быстрое кодирование (One-Hot encoding), суть которого заключается в распределении столбца на несколько других и присваиванием каждому из него 0 или 1. Полученные бинарные значения отобразят сгруппированость между данными и столбцами. Удобно для передачи инфы в алгоритмы.
2. Масштабирование признаков - приведение всех данных к одному формату.
3. Логарифмическое преобразование - помогает бороться с искаженными данными. Также, приближает их реальным. Важно! Работает только на положительных значениях.

Суть сей басни такова: нормально подготавливайте исходники изначально, чтобы потом не тратить неделю на поиск ошибок в коде (которых там может и не быть)🙃

#about_ml
Кстати, на этой неделе я доделала все вопросы в разделе «комбинаторика»🥳
Так, что на следующей неделе я уже начну наращивать практику. Думаю, попробую решить один из вариантов экзамена, чтобы оценить свои силы

#info
👍4👏1
Доброй ночи, товарищи!

Я тут подумала, что многие из вас наверное не знают моей темы на диплом (ну либо я ее уже озвучила и забыла об этом🙃)
Так вот, я решила работать над «методом грубого позиционирования беспилотных аппаратов». Входными данными служит огромный снимок местности со спутника (предполагается, что только по этой территории будет летать б/а), параметры беспилотника (текущее значение компаса, высота полёта, наклон и тд), и каждый момент времени поступает снимок текущей местности, где находится б/а.

Звучит очень грандиозно, но куда двигаться - непонятно😬

Пока что я написала простецкий алгоритм, который сравнивает изображения методом вычитания одного из другого. Даже можно задать шаг, с которым будет сдвигаться меньшая картинка на большей. Получается такой супер усложнённый полный перебор…
Работает он, конечно, достаточно долго (порядка 2 секунд с изображениями 1600х600 и 400х300 и шагом в 100 пикселей).

На данный момент я знаю только одно альтернативное решение этой задачи - разбор задачки с RuCode не помню какого года (вроде даже 2021). Но минус этого решения в том, что там используется нейронка , натренированная на датасете из 800 картинок.
Если я захочу применить это решение к поставленной задаче, сразу возникает вопрос: где я буду брать каждый раз обучающую выборку из ~500 картинок для абсолютно рандомной местности? Окей, всегда можно воспользоваться моим любимым вариантом - использовать синтетический датасет😂 Берём исходное изображение со спутника, нарезаем кучу ~300 картинок одинакового размера с разных участков этой местности. Оставшиеся 200 генерирует с помощью поворотов и различных фильтров (такое даже описывалось в разборе к той задаче рукода). И вуаля, можно обучать нейронку😎 Однако, на обучение нейронки может уходить от 1 дня до целой недели. А что, если беспилотник нужно запустить уже через час? Будет ли время на подготовку нейронки? А если беспилотник будет иметь возможность постоянно менять местность, по которой он летает(просто каждый раз получать новое исходное изображение)? Учить нейронку налету методом взлетов и падений?😂😂😂

Все, что остаётся сейчас делать - рыть инфу для поиска альтернативных решений на похожие задачи, ну и конечно пытаться придумать самой какой-то гениальный алгоритм)))

¡Buenas noches, amigos!

#about_ml
Хочу поделиться первыми результатами разработки диплома)

Исходное изображение 1280х497 Яндекс карты
Сравниваемое изображение
400х300 Гугл карты
Масштаб карты на фотках одинаковый - 1 км
1 фото результат: «тепловая карта» с шагом в 101 пиксель, время работы - 2.4 сек.
2 фото результат: «тепловая карта» с шагом в 21 пиксель, время работы - 28.2 сек.

#about_ml
👍6
Я попыталась решить пробник в ШАД😅😅😅

Ну… я решила первую задачу😂
А ещё правильно думала в направлении 5 задачи🤣
Лан, посмотрю завтра разбор и буду на шаг ближе к цели😎

Вариант оставлю ниже, вдруг кому тоже будет интересно попробовать себя👇👇👇

#info
Что-то я совсем пропала😅

Продолжая тему о дипломе, расскажу Вам о изученных мною существующих решений похожих задач.

1. Решение, о котором я уже говорила - обучение нейронки на датасете из 800 картинок. Изучая подробнее, я заметила, что в аннотации обучающей выборки находятся не только координаты снимка относительно карты местности, но и угол поворота к ней.
Для меня это решение совсем не подходит. Как я уже говорила, никто не будет обучать БПЛА на определённую местность. Единственный плюс этого решения: выборка содержит фотографии в различные промежутки времени и различные погодные условия, что было бы полезно учитывать в ходе работы алгоритма.

2. Использование простейшей сверточной сети PyTorch без обучения. Использовалось свойство ядер сверточных сетей: если паттерн входного изображения совпадает с ядром, свертка с ним дает максимальный результат. В качестве ядер использовались сами входные изображения.
Этот метод решает проблему с обучением предыдущего метода. Но в противовес появляется другая: тк не учитывается поворот угла изображения, приходится перебирать все 360 ориентаций. Из-за чего может гораздо сильно возрасти время обработки.

3. Последнее решение, на мой взгляд, самое привлекательное - использование афинно инвариантного A-SIFT (масштабно-инвариантная трансформация признаков). Само решение - это поиск ближайшего соседа по метрике отношения количества сопоставленных ключевых точек к общему их числу.
Как я поняла, эта штука даже учитывает масштаб. Честно говоря, плохо разобралась в этом решении, но именно его я хочу пробовать первым:)

#about_ml
👍1
Доброй ночи, дорогие подписчики!

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

Не беда - работаем с тем, что есть) Приходится писать спецификацию требований (спасибо, что не заставили писать календарный план🥲). Но тем не менее, мне нужно придумать интерфейс для работы с моими (далеко не моими🤡) алгоритмами. Захотелось поделиться с вами прототипами) Прикладываю ниже👇

Для тех, кто не понял почему я возмущаюсь: я хотела бы заняться чисто разработкой нового алгоритма позиционирования беспилотников (ну или доработкой уже существующих), однако на защите бакалавского диплома от меня скорее требуют идею и бизнес план с чёткими требованиями, архитектурой.
Я прекрасно понимаю, что я ставлю для себя слишком высокую планку (разработка чего-то абсолютно нового) и за год вряд ли получиться хотя бы приблизиться к этой цели. Несмотря на это, я хочу уходить в направление науки и предлагаю давать выбор программистам между направлениями разработки и науки в государственных учреждениях :)

#phil_thoughts
👍2
1. Главное окно
2. Предварительная обработка изображений
3. Визуализация результатов

#about_ml
👍2
Помните, я выкладывала пост про решения задачи ориентирования б/а?)

У меня из головы все никак не выпадает второй метод. Уж сильно он меня поразил своей нетрадиционностью😁
Поэтому, я расскажу Вам о нем подробнее)))

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

Скорее всего, данное решение подойдет для обработки большого количества пакетных данных для разных подложек. Предполагается, что выбранное итоговое решение будет работать на real time камере БПЛА. Следовательно, алгоритм всегда будет иметь большое количество снимков, взятых из видеопотока. Однако, второй метод будет не эффективен из-за долгих вычислений поворота подложки к каждому снимку.

#about_ml
👍2
Доброй ночи, товарищи!
Под конец семестра нам дали, на мой взгляд, очень интересную обзорную лабу. Я хочу подробнее изучить темы, которые были в ней даны, и, соответственно, поделиться с Вами 😁

Одной из этих тем была теория решения изобретательских задач, созданная советским инженером Генрихом Альтшуллером. Суть этой теории заключается в формулировке самой задачи таким образом, чтобы в ней отсутствовали все бесмыссленные и неэффективные методы, но при этом смысл задачи оставался тем же. Основные постулаты:
* Техника, её объекты развиваются в целом закономерно.
* Закономерности развития техники познаваемы и могут быть использованы для поиска новых технических решений.
* Процесс поиска нового решения можно описать в виде последовательности интеллектуальных, мыслительных действий.
Важным элементом ТРИЗ являются противоречия: при улучшении одного парамметра, ухудшается другой. Такими противоречиями могут быть:
1) Административные - когда ты не можешь что-то сделать, потому что не знаешь или не умеешь. Самое легкое для устранения противоречие (изучить больше литературы).
2) Технические - либо ты делаешь шумоизоляцию в машине и она становится тяжелее, либо ты ездишь на, условно, легкой машине, но с шумом.
3) Физические - большинство инженеров в своих разработках упираются в ограничения законами физики.

#about_ml
👍1