Сижу в электричке и пишу пост🚊
Во всей этой суматохе с экзаменами совсем забыла рассказать о том, что сегодня я отправляюсь на летнюю школу по искусственному интеллекту от AIRI, которая будет проходить в Иннополисе!
Ждите постов о мероприятиях, лекциях и практиках)
Надеюсь, будет интересно 🧐
#dvizh
Во всей этой суматохе с экзаменами совсем забыла рассказать о том, что сегодня я отправляюсь на летнюю школу по искусственному интеллекту от AIRI, которая будет проходить в Иннополисе!
Ждите постов о мероприятиях, лекциях и практиках)
Надеюсь, будет интересно 🧐
#dvizh
👍6🔥1
На самом деле, я очень предвкушаю это мероприятие именно из-за его месторасположения. Никогда не была в Иннополисе, но очень интересно😄
Говорят, что это городок для программистов.
Ну, посмотрим, что там да как)
#dvizh
Говорят, что это городок для программистов.
Ну, посмотрим, что там да как)
#dvizh
🔥3❤1
Закончился уже второй день школы, я немного въезжаю в курс дела🤔
Каждый день здесь проходят лекции и семинары на 3 основных направления:
🖊 RL (reinforcement learning - обучение с подкреплением)
🖊 CV (computer vision - компьютерное зрение)
🖊 Робототехника
Пока что идет очень сильный упор в теорию RL. Уровень гораздо выше моего, но это и к лучшему😉
Также, сегодня нас распределили на проекты. Всего было 33 темы на 80 персон. Я состою в команде из 4 человек, которые будут работать над задачей «Сегментация и трекинг объектов на изображениях по языковым запросам». Если по простому - нужно будет выделить контуры объектов, о которых говорится в заданном тексте))
Звучит вроде просто, т. к. сегодня нам дали много материала на тему сегментации. Однако, как показывает опыт, на практике все становится совсем иначе…
Буду постепенно вводить в курс дела, рассказывать решение текущих задачек и собранных инсайтов😄
#dvizh
Каждый день здесь проходят лекции и семинары на 3 основных направления:
🖊 RL (reinforcement learning - обучение с подкреплением)
🖊 CV (computer vision - компьютерное зрение)
🖊 Робототехника
Пока что идет очень сильный упор в теорию RL. Уровень гораздо выше моего, но это и к лучшему😉
Также, сегодня нас распределили на проекты. Всего было 33 темы на 80 персон. Я состою в команде из 4 человек, которые будут работать над задачей «Сегментация и трекинг объектов на изображениях по языковым запросам». Если по простому - нужно будет выделить контуры объектов, о которых говорится в заданном тексте))
Звучит вроде просто, т. к. сегодня нам дали много материала на тему сегментации. Однако, как показывает опыт, на практике все становится совсем иначе…
Буду постепенно вводить в курс дела, рассказывать решение текущих задачек и собранных инсайтов😄
#dvizh
👍3❤2
Лежу дома в кровати и вспоминаю, как в бешеном ритме пронеслась летняя школа от AIRI💚🤍
Я настолько погрузилась в лекции, семинары, проекты, что совсем забыла про канал😅
Тем не менее, я очень вдохновилась обстановкой, ребятами, идеями и поэтому накопила кучу тем для постов.
Уже завтра более подробно расскажу про проект нашей команды, который занял 2 место!!🥈🎉
#dvizh
Я настолько погрузилась в лекции, семинары, проекты, что совсем забыла про канал😅
Тем не менее, я очень вдохновилась обстановкой, ребятами, идеями и поэтому накопила кучу тем для постов.
Уже завтра более подробно расскажу про проект нашей команды, который занял 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
⁉️Начнем с того, что такое сегментация объектов? Это соотнесение группы пикселей к определенному классу. В отличие от детекции объектов, которая выделяет их в прямоугольник, сегментация закрашивает площадь внутри контура объекта.
Получается следующая задача: на входе пользователь делает текстовый запрос - это может быть целая фраза (прим. «найди мне на картинке серого кота в шляпе») или просто одно слово (прим. «кот»); на выходе моделька выдает маску сегментированного объекта. Важное замечание! Мы работали с кастомным датасетом, который был собран с камеры робота, катающегося по кампусу МФТИ. На фотографиях видны различные столы, шкафы, пластмассовые овощи, игрушки. Было множество объектов, которые трудно встретить в популярных подборках.
❓Что решила сделать наша команда? - Провести бенчмаркинг (сравнение) различных моделей и их связок. Для анализа были выбраны предобученные модели LSeg, OWL-ViT + SAM и GroundingDino + SAM.
🔹 LSeg работает сам по себе. Но к сожалению, на наших кастомных данных он выдавал метрики порядка 0.003😬
🔹 OWL-ViT + SAM работали уже лучше. OWL-ViT выдавал bounding boxes по текстовому запросу, а SAM уже находил сам объект внутри него. Экспериментально было выявлено, что по длинному описанию в запросе метрики получаются выше, чем по запросу в виде одного слова класса объекта.
🔹 GroundingDino + SAM победители по количественным результатам в нашей подборке)) Связка работает аналогично предыдущей, однако ее метрики получились выше почти в два раза!
❗️Кроме того, Зоя (член команды) предложила интересную идею: попробовать тюнить текстовые запросы. За эту часть проекта я не шарю совсем😓 Поэтому я надеюсь, что Зоя читает этот пост и подробно пояснит в комментариях че по чем😂😂
*мне тоже интересно еще раз почитать и разобраться с этой идеей👀*
Штош, мы так и заняли 2 место среди 33 защищенных проектов🎉🎉🎉
Если кому-то интересно посмотреть картинки, то я прикрепляю к посту презенташку с выступления
#about_ml
🔥6
Ура, я получила добро на демонстрирование нашего репозитория☺️
👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇
https://github.com/Areson251/open_vocabulary_benchmark
Кому интересно позапускать и поиграть самому - добро пожаловать🤗
Хочу, чтобы большинство людей посмотрело, потому что я действительно горжусь тем, как он выглядит))
И да, не упущу возможности поклянчить звездочки на репу👀
#about_ml
👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇
https://github.com/Areson251/open_vocabulary_benchmark
Кому интересно позапускать и поиграть самому - добро пожаловать🤗
Хочу, чтобы большинство людей посмотрело, потому что я действительно горжусь тем, как он выглядит))
И да, не упущу возможности поклянчить звездочки на репу👀
#about_ml
GitHub
GitHub - Areson251/open_vocabulary_benchmark
Contribute to Areson251/open_vocabulary_benchmark development by creating an account on GitHub.
🔥5
Еееее, принимаю поздравления 🥳 👏🎉
Сегодня вышли приказы на зачисление в МФТИ иии….
Меня взяли по первому приоритету!!!😭🙏
Я безумно рада, что буду учиться на специальности «технологии искусственного интеллекта» на кафедре от Центра когнитивного моделирования🤖
Не могу подобрать слов, чтобы описать свою радость)))
#info
Сегодня вышли приказы на зачисление в МФТИ иии….
Меня взяли по первому приоритету!!!😭🙏
Я безумно рада, что буду учиться на специальности «технологии искусственного интеллекта» на кафедре от Центра когнитивного моделирования🤖
Не могу подобрать слов, чтобы описать свою радость)))
#info
🔥10🎉6
‼️Я ВЕРНУЛАСЬ‼️
Да да, я уже обосновалась у себя в общаге, более менее въехала в темп Долгопрудного (🥰) и готова продолжать писать посты!!!
Более того, я решила произвести реорганизацию канала. Изначально предполагалось, что канал будет нацелен на введение простых людей всекту дата сатанистов Data Science. Однако, я поняла, что эта тема не очень актуальна именно для формата канала, т.к. каждому новому члену этого клуба придется читать все посты с самого начала…
Но! Эта идея слишком прекрасна, чтобы полностью исключать ее. Спустя месяц размышлений, я пришла к идеальному консенсусу: ввести хештеги по тематикам постов😎
Решила сгруппировать посты по следующим тематикам:
▶️ #info здесь буду писать основную инфу по каналу (например, этот пост)
▶️ #about_ml теория машинного обучения (та самая ветка постов, которую нужно читать с самого начала)
▶️ #phil_thoughts тут можно будет найти рассуждения о различных мыслей в области философии, психологии и офк ИИ
▶️ #diff просто какие-то приколюхи или интересные факты)))
▶️ #dvizh тусовки, ивенты и тд, личны блог в теме ml короче💃
▶️#advert точно не реклама👀
Думаю, так будет удобнее всем найти интересующий трек для себя. Ну и писать посты так проще)
Этот пост летит в закреп, а я с самого начала начинаю проставлять теги для всех остальных!
С новым учебным годом кста🎉🎉
Да да, я уже обосновалась у себя в общаге, более менее въехала в темп Долгопрудного (🥰) и готова продолжать писать посты!!!
Более того, я решила произвести реорганизацию канала. Изначально предполагалось, что канал будет нацелен на введение простых людей в
Но! Эта идея слишком прекрасна, чтобы полностью исключать ее. Спустя месяц размышлений, я пришла к идеальному консенсусу: ввести хештеги по тематикам постов😎
Решила сгруппировать посты по следующим тематикам:
▶️ #info здесь буду писать основную инфу по каналу (например, этот пост)
▶️ #about_ml теория машинного обучения (та самая ветка постов, которую нужно читать с самого начала)
▶️ #phil_thoughts тут можно будет найти рассуждения о различных мыслей в области философии, психологии и офк ИИ
▶️ #diff просто какие-то приколюхи или интересные факты)))
▶️ #dvizh тусовки, ивенты и тд, личны блог в теме ml короче💃
▶️#advert точно не реклама👀
Думаю, так будет удобнее всем найти интересующий трек для себя. Ну и писать посты так проще)
Этот пост летит в закреп, а я с самого начала начинаю проставлять теги для всех остальных!
С новым учебным годом кста🎉🎉
👍8🔥5❤1
BIG BAD DATA pinned «‼️Я ВЕРНУЛАСЬ‼️ Да да, я уже обосновалась у себя в общаге, более менее въехала в темп Долгопрудного (🥰) и готова продолжать писать посты!!! Более того, я решила произвести реорганизацию канала. Изначально предполагалось, что канал будет нацелен на введение…»
Все, расставила теги на все полноценные посты - можно вычеркнуть таску из списка дел (обожаю это ощущение🤤)
Уже подумала над тем, что 4 хештегов не хватит для хорошей сортировки постов по темам, скорее всего буду расширяться. На этот раз буду записывать какие-то идеи и тезисы, как все можно красиво распределить, и составлю четкую структуру канала, чтобы в нем можно было легко ориентироваться всем новоприбывшем и олдам🤍
Уже подумала над тем, что 4 хештегов не хватит для хорошей сортировки постов по темам, скорее всего буду расширяться. На этот раз буду записывать какие-то идеи и тезисы, как все можно красиво распределить, и составлю четкую структуру канала, чтобы в нем можно было легко ориентироваться всем новоприбывшем и олдам🤍
👍3🤩2
Минусы мл:
1. Нашел тупую ошибку в датасете - нужно переобучать все с самого начала
Плюсы мл:
1. Пока обучаешь можно похавать
#phil_thoughts
1. Нашел тупую ошибку в датасете - нужно переобучать все с самого начала
Плюсы мл:
1. Пока обучаешь можно похавать
#phil_thoughts
🔥8👍2🌭1
Буквально пару дней назад заглядывала в свой канал и любовалась 38 подписчикам🥰
Захожу сейчас, А ВАС УЖЕ 65 ТОВАРИЩЕЙ!!!!😍😍😍😍😍
Я безумно рада, что люди интересуются моей деятельностью и остаются со мной! Это мотивирует стараться для Вас еще больше писать интересных постов, обзоров и выкладывать свои мысли)))
Раз уж такое дело, начну новую огромную серию постов "с нуля", да бы постараться уровнять свою публику +- до входного порога понимания "а что ваще творится в ml?"
P.S. Обещала оформить себе telegram premium, если до 31 декабря этого года наберется 100 товарищей🙂
#info
Захожу сейчас, А ВАС УЖЕ 65 ТОВАРИЩЕЙ!!!!😍😍😍😍😍
Я безумно рада, что люди интересуются моей деятельностью и остаются со мной! Это мотивирует стараться для Вас еще больше писать интересных постов, обзоров и выкладывать свои мысли)))
Раз уж такое дело, начну новую огромную серию постов "с нуля", да бы постараться уровнять свою публику +- до входного порога понимания "а что ваще творится в ml?"
P.S. Обещала оформить себе telegram premium, если до 31 декабря этого года наберется 100 товарищей🙂
#info
🔥3
Давайте начнем с самой базовой базы🤓
Вы когда-нибудь задумывались о том, что вообще из себя представляют нейронные сети?
На самом-то деле, все очень просто. Ни для кого ни секрет, что Матушка Природа создала наш мир очень продуманно, и многие изобретения человечества - лишь ее пародии. Так произошло и с нейронками, которые пришли к нам прямиком из биологии🐁. По сути своей, нейронные сети в программирование - упрощенное повторение нейронных сетей мозга, состоящие, непосредственно, из нейронов и соединяющих их синапсов. Разберемся более подробно с этими понятиями:
⭕️ Нейрон представляет из себя вычислительную единицу, которая принимает входные данные, производит над ними какие-либо вычисления и передает их дальше. Совокупности нейронов называются слоями. Также, нейроны (слои) делятся на несколько типов: входной, скрытый и выходной. Думаю, всем понятно, что входной нейрон принимает информацию и, никак не изменяя ее, передает в следующий слой (input = output). Скрытые слои по каким-то заданным правилам корректируют ее и выходной слой выдает уже изменнные значения. Важно знать! Нейроны используют только нормализованные значения данных в диапазоне [0;1] или [-1;1].
⭕️ Синапс является связью между двумя нейронами - дорожка, по которой передается информация. Связи нейронов можно представить в виде взвешенного графа, где ребра (синапсы) имеют свои веса. Соответственно, чем больше вес синапса, тем более доминирующей будет информация, передающаяся по нему. Интересно, что изначально веса инициализируются случайным образом 🎲
Соответственно, структура нейронов и связывающих их синапсов называется нейронной сетью. Приведу конкретный пример: у нас есть всего 3 нейрона:
1. Входной нейрон Н0, значение которого равно 1
2. Скрытый нейрон Н1, вес которого равен 0.36
3. Выходной нейрон Н2 = ?
Получим следующее значение выходного нейрона:
Н1 = Н0 = 1
Н2 = Н1 * 0.36 = 0.36
- Ульяна, а какой смысл имеет полученное значение? - Вы спросите меня. А я Вам отвечу:
- Уже половина первого ночи, а мне вставать в 7:30.
Ждите продолжения в следующем посте💜
#about_ml
Вы когда-нибудь задумывались о том, что вообще из себя представляют нейронные сети?
На самом-то деле, все очень просто. Ни для кого ни секрет, что Матушка Природа создала наш мир очень продуманно, и многие изобретения человечества - лишь ее пародии. Так произошло и с нейронками, которые пришли к нам прямиком из биологии🐁. По сути своей, нейронные сети в программирование - упрощенное повторение нейронных сетей мозга, состоящие, непосредственно, из нейронов и соединяющих их синапсов. Разберемся более подробно с этими понятиями:
⭕️ Нейрон представляет из себя вычислительную единицу, которая принимает входные данные, производит над ними какие-либо вычисления и передает их дальше. Совокупности нейронов называются слоями. Также, нейроны (слои) делятся на несколько типов: входной, скрытый и выходной. Думаю, всем понятно, что входной нейрон принимает информацию и, никак не изменяя ее, передает в следующий слой (input = output). Скрытые слои по каким-то заданным правилам корректируют ее и выходной слой выдает уже изменнные значения. Важно знать! Нейроны используют только нормализованные значения данных в диапазоне [0;1] или [-1;1].
⭕️ Синапс является связью между двумя нейронами - дорожка, по которой передается информация. Связи нейронов можно представить в виде взвешенного графа, где ребра (синапсы) имеют свои веса. Соответственно, чем больше вес синапса, тем более доминирующей будет информация, передающаяся по нему. Интересно, что изначально веса инициализируются случайным образом 🎲
Соответственно, структура нейронов и связывающих их синапсов называется нейронной сетью. Приведу конкретный пример: у нас есть всего 3 нейрона:
1. Входной нейрон Н0, значение которого равно 1
2. Скрытый нейрон Н1, вес которого равен 0.36
3. Выходной нейрон Н2 = ?
Получим следующее значение выходного нейрона:
Н1 = Н0 = 1
Н2 = Н1 * 0.36 = 0.36
- Ульяна, а какой смысл имеет полученное значение? - Вы спросите меня. А я Вам отвечу:
- Уже половина первого ночи, а мне вставать в 7:30.
Ждите продолжения в следующем посте💜
#about_ml
🔥4👏3👍2🐳1
тук-тук
В полной запаре дел пишу продолжение поста ☝️☝️☝️
У Вас, товарищи, было достаточно времени на подумОть о примере, описанном выше. Как Вы могли догадаться, получаемые значения на выходном нейроне могут сильно варьироваться. Что же с этим делать?
Как говорилось ранее, нейроны используют нормализованные значения. А штука, которая их нормализует, называется функцией активации. Вариантов таких функций достаточно много, в основном они отличаются диапазонами значений.
Самая популярная из них - сигмоид (верхний рисунок). Другое ее название - логистическая функция. Она имеет диапазон [0;1]. Кстати, в сети в основном встречаются примеры именно по ней))
Скорее всего Вам могут понадобиться отрицательные диапазоны. Для этого существует гиперболический тангенс (нижний рисунок), который определен в отрезке [-1; 1]. Маленькое замечание: если используются только положительные значения, использование данной функции может ухудшить итоговые метрики. Поэтому нужно правильно оценивать полезность выбранной функции.
Уже после нормализации выходных значений на нейроне, мы можем передать их в следующий слой, где повторятся те же действия с умножением на веса и функцией активации. Такие действия мы повторяем до тех пор, пока не дойдем до конца - выходного слоя.
После первой итерации (прогон всего тренировочного датасета от «начала» до «конца») мы естественно получим неправильные значения на валидационной выборке. Это показатель того, что нейронная сеть не натренирована. Легко заметить, что мы можем посчитать насколько модель ошиблась. Для подсчета ошибки используются так же различные формулы. К примеру, это может быть MSE (Mean Squared Error, среднеквадратичная функция-потерь), RMSE (Root MSE, корень из среднеквадратичной ф-ции потерь), MAE (Mean Absollute Error, средняя абсолютная ошибка) и тд...
Не буду уж на ночь глядя грузить Вас формулами. Просто верьте в силу библиотек python 😇
Хотя я бы даже посвятила отдельный пост для разбора функций потерь и как они работают...
Но это уже на следующей неделе🙃
#about_ml
В полной запаре дел пишу продолжение поста ☝️☝️☝️
У Вас, товарищи, было достаточно времени на подумОть о примере, описанном выше. Как Вы могли догадаться, получаемые значения на выходном нейроне могут сильно варьироваться. Что же с этим делать?
Как говорилось ранее, нейроны используют нормализованные значения. А штука, которая их нормализует, называется функцией активации. Вариантов таких функций достаточно много, в основном они отличаются диапазонами значений.
Самая популярная из них - сигмоид (верхний рисунок). Другое ее название - логистическая функция. Она имеет диапазон [0;1]. Кстати, в сети в основном встречаются примеры именно по ней))
Скорее всего Вам могут понадобиться отрицательные диапазоны. Для этого существует гиперболический тангенс (нижний рисунок), который определен в отрезке [-1; 1]. Маленькое замечание: если используются только положительные значения, использование данной функции может ухудшить итоговые метрики. Поэтому нужно правильно оценивать полезность выбранной функции.
Уже после нормализации выходных значений на нейроне, мы можем передать их в следующий слой, где повторятся те же действия с умножением на веса и функцией активации. Такие действия мы повторяем до тех пор, пока не дойдем до конца - выходного слоя.
После первой итерации (прогон всего тренировочного датасета от «начала» до «конца») мы естественно получим неправильные значения на валидационной выборке. Это показатель того, что нейронная сеть не натренирована. Легко заметить, что мы можем посчитать насколько модель ошиблась. Для подсчета ошибки используются так же различные формулы. К примеру, это может быть MSE (Mean Squared Error, среднеквадратичная функция-потерь), RMSE (Root MSE, корень из среднеквадратичной ф-ции потерь), MAE (Mean Absollute Error, средняя абсолютная ошибка) и тд...
Не буду уж на ночь глядя грузить Вас формулами. Просто верьте в силу библиотек python 😇
Хотя я бы даже посвятила отдельный пост для разбора функций потерь и как они работают...
Но это уже на следующей неделе🙃
#about_ml
🔥3🐳2