BIG BAD DATA – Telegram
BIG BAD DATA
140 subscribers
69 photos
1 video
9 files
31 links
Сложно о простом и просто о сложном 😎🥸
👀Меня можно найти тут: @Areson251
Download Telegram
Подготовка к диплому бурно продвигается, защита уже совсем скоро) Думаю, напишу о нем подробно, когда уже выступлю, т.к. вношу правки почти каждый день😅
А пока, давайте продолжим тему обучения нейронок.

Сегодня поговорим об обучении без учителя 🥸
Собирать большие размеченные данные зачастую нелегко. Это требует много ресурсов и времени. Поэтому придумали еще один способ обучать модели: без использования правильных ответов в конкретных ситуациях. Скорее, вообще без каких-либо ответов.
На вход алгоритму обучения поступает множество различных (не размеченных) данных, и его цель заключается в поиске закономерностей между ними. Отсюда вытекают следующие задачи, в которых используются данный метод:
◦ Классификация (или кластеризация): наиболее распространенная задача этого вида обучения. Алгоритм находит общие признаки входных данных, подбирает похожие и группирует их вместе. Примитивный пример - разделить фотографии, на которых изображены кошки и собаки (не путать с обучением с учителем, конкретно с object detection, где нейронки выделяют границы объектов на фотографии. Здесь алгоритм просто присваивает определенный класс изображению, не определяя границы самого объекта).
◦ Поиск ассоциаций: на основе какой-то группы объектов проводятся ассоциации с другими объектами. Задача часто используется в анализе покупок клиентов продуктовых магазинов. К примеру, если вы часто покупаете колбасы и готовый маринованный шашлык, то скорее всего приложение данного магазина предложит Вам стейки с вашей личной скидкой :) Была забавная история, когда молодая девушка покупала продукты и приложение магазина предложило ей товары для беременных со скидкой. На что отец девушки сильно рассердился и пожаловался компании за ложную информацию. Однако, в скоре действительно оказалось, что девушка была беременна. Отец принес свои извинения компании.
◦ Обнаружение аномалий: так же эта задача классифицируется как поиск выбросов в выборке данных. В качестве примера можно привести банковскую сферу - поиск мошеннических операций. Если считать, что все операции по картам происходят в радиусе одной страны, то операция, проведенная в Москве и Доминикане за один час могут быть подозрительными.

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

#about_ml
🔥2
Уже завтра защита диплома😳🤯

повторяю текст, придумываю себе вопросы, думаю что надеть🥸💅

#dvizh
Насколько я понимаю, в этом году первый раз в аудитории вместе с нами будет находиться только комиссия. Даже немного обидно, хотелось выступать перед толпой гостей, однокурсников и преподавателей. Штош, наверное так даже меньше будут трястись руки и дрожать голос)))
Во всей этой суматохе совсем забыла сказать, что защитила диплом на «отлично»🥳🥳

#info
🔥6
Как же хорошо, когда вопросы для подготовки к экзамену совпадают с темами постов в канале😁😁
Завершим трек постов про типы обучения сетей самым, на мой взгляд, интересным методом - обучение с подкреплением.

Для начала введем основные термины:
🔹Environment (среда) - инициализированные условия, в которых "находится" наша нейроночка и которые могут повлиять на ее работу (соответственно, сеть тоже может повлиять на свое окружение);
🔹Action (действие) - изменение среды под влиянием нейронной сети;
🔹State (состояние) - состояние среды в каждый момент времени;
🔹Reward (награда) - величина, которую получает нейронка от ее среды после взаимодействия с ней. Награда оценивает "правильность" действия;
🔹Agent (агент) - наша нейронная сеть, которая в установленной среде выполняет какие-то действия за определенную награду.

В общем, Reinforcement Learning (обучение с подкреплением) - метод обучения, при котором нейронка, находясь в обусловленном окружении, не знает что конкретно ей нужно делать, но при этом она может изменить состояние своей среды и получить ответ в характере горячо/холодно.
Классический пример для этой задачи - игра в пинг понг. Агенту отбивает мячик, за что он получает награду +1. Если же он промахивается, в этом случае награда будет -1 😢.
Есть несколько алгоритмов обучения с подкреплением:
🔸State-Action-Reward-State-Action (SARSA) - алгоритм, в основе которого лежит определенная стратегия выбора действий нейронной сети. К примеру, заранее определенная вероятность положительной наибольшей награды для каждого действия.
🔸Q-Learning - здесь изначально все действия считаются оптимальными. Алгоритм оптимизирует свои веса за счет максимизации оценки Q (упрощено: награда в перспективе). В таком подходе алгоритм будет более самостоятельным.
🔸Deep Q-Networks - использует нейронные сети для поиска оптимального значения в исследуемой среде. Выбор действия основывается на опыте положительных действий подключенной нейронки.

Сейчас RL довольно стремительно развивается в индустрии. Однако, этому препятствует достаточно много сложностей. Одна из проблем для большинства задач - постоянное изменение состояния среды вне зависимости от действий нейроночки. Например, изменение расположения машин, пешеходов и других объектов на дороге для обучающегося беспилотного транспорта.

Но смотреть на падающих роботов boston dynamics все равно смешно

#about_ml
👍2
Фуууххх, жестко отдыхала две недели, что аж забыла про канал😅😅 Тем не менее, я готова рассказать об итоговых результатов своего диплома!

Напоминаю, что тема работы звучит так: "Разработка и исследование метода грубого позиционирования БПЛА". На нашей кафедре уже проводились исследования и разработка точного метода позиционирования. Однако, для корректной и быстрой работы этого алгоритма необходимо на вход подавать маленькие окрестности территорий, размеры которых существенно отличаются от размеров изначальных карт местности. Было предложено разработать метод грубого позиционирования, на выходе которого получаются несколько вариантов наиболее вероятных окрестностей, где в текущий момент находится беспилотник.
⁉️Целью моей работы являются поиск и анализ наиболее популярных методов позиционирования и разработка метода, основанного на использовании одного из исследуемых алгоритмов. Также, были поставлены следующие задачи:
анализ существующих алгоритмов;
разработка алгоритмов предварительной обработки входных данных;
постановка условий эксперимента;
разработка алгоритмов проведения экспериментов;
разработка алгоритмов для визуализации и анализа результатов.
Объектами для сравнительного анализа были выбраны такие алгоритмы как: обучение нейронной сети, взаимная корреляция изображений, алгоритм масштабно-инвариантной трансформации признаков SIFT и афинный аналог SIFT (A-SIFT). Каждый из этих методов имеет свои недостатки: требуется обучение, чувствителен к преобразованиям изображений, либо затрачивает много времени на обработку больших изображений. Было принято решение протестировать и доработать алгоритмы корреляции и sift.
Разработанный метод представляет собой совокупность модулей, включающей в себя модуль предварительной обработки изображений, модуль сравнения изображений (он же модуль эксперимента) и модуль анализа результатов (отображение).
Первой из основных функций была реализована «предварительная обработка входных данных». Функция отвечает за обработку входных данных и бортовых датчиках. Из алгоритмов реализованы:
⭕️ вырез меньшего изображения из большего;
⭕️ поворот изображения на угол θ.

#about_ml
👍1
Затем, было поставлено 3 эксперимента на зависимость вероятности предсказывания правильных координат от угла поворота изображений, поступающих с камеры б/а. Общие условия эксперимента были поставлены следующим образом: задается максимальный угол поворота изображений-шаблонов. Затем, начиная с 0 градусов на каждом значении угла поворота вырезается случайным образом заданное количество шаблонов. Все шаблоны обрабатываются алгоритмом позиционирования, на выходе которого получается черно-белое изображение, где белый пиксель – наиболее вероятное место расположения, а черный – менее вероятное. На каждом полученном аналоге тепловой карты соответствующем своему шаблону находятся экстремумы. По входному пороговому количеству экстремумов принято решение, что если «правильные» координаты шаблона попадают в список полученных экстремумов, то метод определил их корректно. В результате эксперимента строится график зависимости количества правильно предсказанных координат от угла поворота входных изображений.

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

2️⃣Во втором эксперименте тестировался алгоритм сравнения характеристик распределения векторов. Карта местности дробится на более маленькие изображения-оригиналы с определенным шагом наложения. Затем, каждый оригинал сравнивается с шаблоном и на полученных характерных точках сифта и афинного сифта строятся вектора. Пример работы для одной итерации также представлен на фото ниже (как и все последующие в принципе).
Затем вычисляется коэффициент вариации для каждой итерации алгоритма. Была выдвинута гипотеза, что по его значению можно судить о месторасположении на карте. Представлены тепловые карты мат. ожидания, среднего квадратического отклонения и коэффициента вариации по длинам и углам отклонения от нормали векторов для обоих алгоритмов.
По полученным результатам видно, что данный алгоритм дает вероятность предсказания не более 50%. Результаты значительно лучше метода корреляции, однако все равно недостаточно хороши для использования.

3️⃣И последним экспериментом тестировался метод анализа параллельных отрезков. Эксперимент проводился аналогично второму, однако вместо коэффициента вариации использовалось количество параллельных отрезков между двумя изображениями. Ниже приведены две итерации для одного и того же шаблона. Зеленым цветом подсвечиваются вектора, которые были учтены в качестве выбранной метрики, а красным те-, которые не вошли в ее число. Также, были подобраны наиболее оптимальные значения размера оригинального изображения и шага наложения срезов. Оригинал и шаблоны должны иметь одинаковые размеры, а шаг наложения должен быть в пределах одной четверти изображения шаблона.
По результирующим графикам видно, что от 5 градусов поворота метод дает вероятность предсказания порядка 40-60%, что уже является приемлемыми показаниями относительно других методов.
Хочу еще уточнить: чтобы эксперимент не был примитивным, карта местности вырезана из Yandex карт, а все изображения-шаблоны вырезались из Google карт. Хотя в алгоритмах обрабатываются черно-белые изображения, их пиксели все равно не будут идентичны друг другу.

Итоговый метод основан на сравнении параллельных отрезков, в основе которого лежит алгоритм A-SIFT. Разработанный метод позволит погасить погрешность бортовых датчиков при нормализации поворота изображений и даст удовлетворительные результаты при позиционировании беспилотного летательного аппарата на местности. В перспективе разработки метода планируется:
❗️улучшать показания предсказания алгоритма;
❗️протестировать алгоритм на искаженных фотографиях;
❗️разработать алгоритм корректировки масштаба и перспективы изображений-шаблонов;
❗️и протестировать на реальных данных.
👍2
That`s all. Thank u so much🫡

#about_ml
Сижу в электричке и пишу пост🚊

Во всей этой суматохе с экзаменами совсем забыла рассказать о том, что сегодня я отправляюсь на летнюю школу по искусственному интеллекту от AIRI, которая будет проходить в Иннополисе!
Ждите постов о мероприятиях, лекциях и практиках)
Надеюсь, будет интересно 🧐

#dvizh
👍6🔥1
На самом деле, я очень предвкушаю это мероприятие именно из-за его месторасположения. Никогда не была в Иннополисе, но очень интересно😄
Говорят, что это городок для программистов.
Ну, посмотрим, что там да как)

#dvizh
🔥31
Закончился уже второй день школы, я немного въезжаю в курс дела🤔

Каждый день здесь проходят лекции и семинары на 3 основных направления:
🖊 RL (reinforcement learning - обучение с подкреплением)
🖊 CV (computer vision - компьютерное зрение)
🖊 Робототехника
Пока что идет очень сильный упор в теорию RL. Уровень гораздо выше моего, но это и к лучшему😉
Также, сегодня нас распределили на проекты. Всего было 33 темы на 80 персон. Я состою в команде из 4 человек, которые будут работать над задачей «Сегментация и трекинг объектов на изображениях по языковым запросам». Если по простому - нужно будет выделить контуры объектов, о которых говорится в заданном тексте))
Звучит вроде просто, т. к. сегодня нам дали много материала на тему сегментации. Однако, как показывает опыт, на практике все становится совсем иначе…

Буду постепенно вводить в курс дела, рассказывать решение текущих задачек и собранных инсайтов😄

#dvizh
👍32
Лежу дома в кровати и вспоминаю, как в бешеном ритме пронеслась летняя школа от AIRI💚🤍

Я настолько погрузилась в лекции, семинары, проекты, что совсем забыла про канал😅

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

#dvizh
👍9
И так, сегментация и трекинг объектов по языковым запросам.

⁉️Начнем с того, что такое сегментация объектов? Это соотнесение группы пикселей к определенному классу. В отличие от детекции объектов, которая выделяет их в прямоугольник, сегментация закрашивает площадь внутри контура объекта.
Получается следующая задача: на входе пользователь делает текстовый запрос - это может быть целая фраза (прим. «найди мне на картинке серого кота в шляпе») или просто одно слово (прим. «кот»); на выходе моделька выдает маску сегментированного объекта. Важное замечание! Мы работали с кастомным датасетом, который был собран с камеры робота, катающегося по кампусу МФТИ. На фотографиях видны различные столы, шкафы, пластмассовые овощи, игрушки. Было множество объектов, которые трудно встретить в популярных подборках.

Что решила сделать наша команда? - Провести бенчмаркинг (сравнение) различных моделей и их связок. Для анализа были выбраны предобученные модели LSeg, OWL-ViT + SAM и GroundingDino + SAM.
🔹 LSeg работает сам по себе. Но к сожалению, на наших кастомных данных он выдавал метрики порядка 0.003😬
🔹 OWL-ViT + SAM работали уже лучше. OWL-ViT выдавал bounding boxes по текстовому запросу, а SAM уже находил сам объект внутри него. Экспериментально было выявлено, что по длинному описанию в запросе метрики получаются выше, чем по запросу в виде одного слова класса объекта.
🔹 GroundingDino + SAM победители по количественным результатам в нашей подборке)) Связка работает аналогично предыдущей, однако ее метрики получились выше почти в два раза!

❗️Кроме того, Зоя (член команды) предложила интересную идею: попробовать тюнить текстовые запросы. За эту часть проекта я не шарю совсем😓 Поэтому я надеюсь, что Зоя читает этот пост и подробно пояснит в комментариях че по чем😂😂

*мне тоже интересно еще раз почитать и разобраться с этой идеей👀*

Штош, мы так и заняли 2 место среди 33 защищенных проектов🎉🎉🎉
Если кому-то интересно посмотреть картинки, то я прикрепляю к посту презенташку с выступления

#about_ml
🔥6