DeepSchool
7.35K subscribers
47 photos
1 video
297 links
Это канал школы deepschool.ru. Здесь мы будем:
- напоминать вам теорию ML/DL в виде коротких постов,
- задавать вопросы с собеседований,
- рассказывать про полезные фреймворки
- и делиться советами, которые помогут вам в работе.

@deepschool_support
Download Telegram
🎙Интервью с Софией через 30 минут!

Подключайтесь онлайн в zoom — встречаемся в 17:00 МСК🔔
🎙Подключайтесь к эфиру в zoom, мы уже начали!

https://us06web.zoom.us/j/86337976367?pwd=ZjV0R3FGNzl2T1gzenlYdmVMNGZMdz09
DETR. End-to-End Object Detection with Transformers

DETR - одна из первых работ, в которой соединили CNN и трансформер для решения задачи детекции.

💡Интересная фишка этой модели - она не требует пост-обработки в виде Non-maximum Suppression

DETR и ее модификации на моменты выхода оказывались SOTA-моделями на COCO-датасете, а идеи из этой статьи используются в других работах.

В новом видео Миша Лиз, куратор нашего курса CV Rocket, расскажет об этой архитектуре. Из видео вы узнаете:
- Как устроена архитектура
- Зачем нужно позиционное кодирование
- Что такое "object queries"
- Как сопоставляются предсказанные и размеченные объекты

🎞 Смотрите видео и подписывайтесь на канал: https://youtu.be/SVnbFqXtrQU
Please open Telegram to view this post
VIEW IN TELEGRAM
Sharpness-Aware Minimization

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

В новой статье рассказываем про свежий подход, который улучшает обобщающую способность нейросетей. Особенно при шумных данных.
При таком подходе не просто ищут минимальное значение функции потерь, но и накладывают условие на “ровность” окружающего ландшафта.

Из статьи вы узнаете:
- почему ландшафт вокруг локального минимума может влиять на метрики
- как можно штрафовать за «неровность»
- и как апроксимировать эти вычисления на практике

Читайте нашу новую статью и знакомьтесь с SAM: https://deepschool-pro.notion.site/Sharpness-Aware-Minimization-53ada454f1d64b66ba3bf3465e67df30?pvs=4.
Надо ли DL-инженеру осваивать навыки разработчика?

В описании вакансий DL-инженеров часто встречаются термины из области Software Engineering и Dev/ML-Ops: docker, k8s, fastapi, ci/cd, ansible, MLFlow, Triton и другие. Мы уже обсуждали это явление на онлайн-интервью с Владом Лялиным и Андреем Шадриковым, но решили выпустить отдельный подкаст на эту тему.

Чтобы ответить на вопросы “почему так происходит и что делать инженерам”, мы позвали на подкаст Галину Альперович. У Гали за плечами большой опыт в разработке ML-проектов. Она работала в JetBrains и Avast, руководила ML-командами, была хедом в стартапе, а теперь развивает собственную консалтинговую компанию и переходит в Coinbase, чтобы заниматься LLM.

Из этого эпизода вы узнаете:
- чем отличается работа датасаентиста в компании и в стартапе
- кто такой mlops-инженер
- надо ли погружаться в разработку, если вы планируете решать только мл-задачи
- что “такое репозиторий по последнему слову техники”
- и заменят ли нас всех бэкендеры с доступом к открытым API больших нейросетей

Все это и даже больше в 60 минутах подкаста, которые можно комфортно ускорить в х1.5-2. Приятного прослушивания!

PS кстати, Галина — выпускница нашего курса CV Rocket. На собственном примере она подтверждает свои слова из подкаста, что хороший специалист учится всю свою жизнь :)
Базовые методы аугментации временных рядов

При работе с временными рядами нам часто не хватает данных для обучения. Простой способ увеличить их количество — аугментировать.
Но в попытках увеличить выборку, можно потерять временные признаки в данных. Например, если неосторожно вырезать окно (crop), можно упустить сезонный тренд.

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

Читайте нашу новую статью по ссылке: https://deepschool-pro.notion.site/664a7aac48a246a58ff6b800d6338211
​​Почему датасаентисты тоже разработчики

Ещё в 2018 году работодатели требовали от DS-специалистов основы математики, теорию ML/DL, git и базовые знания python. Теперь даже для джунов к этому списку прибавляются Docker, FastAPI, k8s/ansible, CI/CD и прочие термины из Dev и Ops.

Чтобы соответствовать рынку, необходимо постоянно учиться и изучать смежные области. Но надо с чего-то начать. Первым делом советуем привести в порядок репозитории с экспериментами — и хотим вам помочь с этим. Мы подготовили лекцию, которую проведём в четверг 3 августа.

На онлайн-лекции мы обсудим:
🔹почему датасаентисты тоже разработчики
🔹требования к DL-инженеру на рынке в 2023 году и почему они растут
🔹что изменить в экспериментах, чтобы приблизиться к соответствию этим требованиям
🔹какие шаги нужно предпринять и какие инструменты использовать, чтобы сделать эксперименты воспроизводимыми, прозрачными и доступными для команды
🔹и представим наш курс CV Rocket, подарим скидки на обучение и список полезных библиотек для CV инженера

Лекцию будут вести:
- Тимур Фатыхов — один из основателей школы DeepSchool, ex Lead CV Engineer KoronaPay
- Андрей Шадриков — Head of R&D в компании Verigram, команда которого занимает топовые позиции в независимых тестах биометрических систем

🗓 Лекция пройдет в четверг 3 августа в 18:00 Мск

🎁 При регистрации по ссылке в боте вы получите доступ к одной из лекций нашего курса CV Rocket с разбором сверточных архитектур от VGG до Effnet. Лекция освежит в памяти основные открытия в сверточных архитектурах, поможет подготовиться к собеседованиям или улучшить свои модели!

Регистрируйтесь на лекцию в боте, чтобы повышать свои навыки в CV!
Увидимся на лекции!
Виды представления лидарных данных. Часть 3

Завершаем знакомство с лидарными данными!

В
прошлый раз мы рассмотрели два способа их представления: Bird’s Eye View и Spherical проекции, а также затронули подход Bag-of-Points. В заключительной статье мы познакомимся с Voxel-based, Сylinder-based и Polar Bird’s Eye View проекциями.

Эти представления:
- требуют более сложной логики обработки
- подходят для построения пайплайнов на базе 3D sparse convolutions
- широко применяются в SOTA решениях для достижения высокого качества в perception-задачах

Читайте нашу новую статью по ссылке: https://deepschool-pro.notion.site/3-c9b063b9051746eaafe131b635c249cd?pvs=4
Как навести порядок в экспериментах

Напоминаем, что сегодня мы проведем онлайн-лекцию, на которой расскажем, как навести порядок в экспериментах CV-инженера.

Также по пути мы обсудим:
🔹требования к DL-инженеру на рынке в 2023 году
🔹с чего начать, чтобы приблизиться к соответствию этим требованиям
🔹почему датасаентисты тоже разработчики
🔹а также представим наш курс CV Rocket, подарим скидки на обучение и поделимся списком полезных библиотек для CV инженера

🎁 При регистрации по ссылке в боте вы получите доступ к одной из лекций нашего курса CV Rocket с разбором сверточных архитектур от VGG до Effnet. Лекция освежит в памяти основные открытия в сверточных архитектурах, поможет подготовиться к собеседованиям или улучшить свои модели!

Регистрируйтесь по ссылке в боте, смотрите лекцию и развивайтесь в DL!

🗓 До встречи в 18:00 мск
История YOLO. Часть 2

Мы продолжаем знакомиться с одной из самых популярных моделей для детекции — YOLO. Точнее, мы рассмотрим вторую модель — YOLOv2, или YOLO9000. Если YOLOv1 не достигла качественных SOTA детекторов, то YOLOv2 обошла всех и по скорости, и по качеству.

В этой статье мы узнаем:
- как авторам удалось выбить SOTA
- как сочетать существующие подходы для повышения метрик
- почему модель также называют YOLO9000

Читайте нашу статью по ссылке: https://deepschool-pro.notion.site/YOLO-history-Part-2-bf67f9cac3964611962290db5af03cd2
Как научиться решать end-to-end задачи в CV

Если вы хотите закрыть пробелы в знаниях Computer Vision и освоить весь путь создания DL-проектов: от сбора данных до деплоя веб-сервисов — приходите учиться на программу CV Rocket от нашей команды.

После обучения вы повысите свою ценность на рынке, улучшите процессы в команде и научитесь решать полный цикл CV-задач:
🔹собирать чистые данные
🔹быстрее обучать модели
🔹ускорять нейросети
🔹создавать веб-сервисы
🔹автоматизировать их деплой
🔹настраивать мониторинг приложений
🔹решать задачи распознавания лиц, текстов, генерации и многое другое

Что особенного в нашей программе:
🔸12 спикеров из разных отраслей и компаний
🔸много фидбека и общения со спикерами: на zoom-лекциях, в рамках code review, на семинарах, в чате, на 1-on-1 встречах
🔸сложные задачи: 2 больших end-to-end проекта, которые с гордостью можно добавить в резюме
🔸40 студентов-практиков — у нас сильное комьюнити студентов, которые помогают друг другу и по курсу, и в работе

Оставляйте заявку на консультацию на нашем сайте ➡️ Мы с вами свяжемся, чтобы договориться о времени встречи ➡️ На консультации ответим на все ваши вопросы, расскажем подробнее о программе и поможем определить, подходит ли курс под ваши цели и задачи

Всем, кто оставит заявку до 12:00 мск 9 августа, мы вышлем промокод на скидку 10,000 руб.
Оставить заявку
🎞 Запись подкаста с Софией Потаповой

София — выпускница ФИВТ МФТИ, работала в беспилотниках Яндекса, а сейчас co-founder стартапа SmallTalk.

На подкасте с Софией мы обсудили:
- задачи и атмосферу в команде беспилотников Яндекса
- минусы и плюсы переезда в Англию
- как София стала co-founder'ом стартапа
- советы для тех, кто хочет запустить свой стартап

Смотрите наше интервью на Youtube и подписывайтесь на наш канал: https://youtu.be/BE-WaqEN884
Please open Telegram to view this post
VIEW IN TELEGRAM
Как работает камера

Когда мы делаем фотографию 3D объекта, он проецируется на 2D плоскость — сенсор камеры. Понимание этого процесса позволит совершать обратное действие: из 2D фотографий восстанавливать 3D модель объекта.

Это особенно важный навык в задачах AR/VR и беспилотниках. Но также поможет и в задачах, где мы хотим оценить размер объекта. Например, когда надо определить площадь поверхности, загруженность самосвала или расстояние до пешехода.

В этой статье мы рассмотрим:
- геометрию формирования изображения на сенсоре камеры (pinhole модель)
- как рассчитываются координаты точки на сенсоре для точки из реального мира
- как переходить от одной системы координат к другой
- что такое внутренние и внешние параметры камеры и зачем они нужны

Читайте новую статью по ссылке: https://deepschool-pro.notion.site/c1c2f3d5265943b7a228eed71b89c060?pvs=4
Атаки на нейросети и как от них защититься

Сегодня нейросети встречаются повсюду: в автопилотах или системах автоматического прохождения таможни, при распознавании лиц для оплаты в магазине или для доступа к личной информации. Но насколько легко их обмануть и можем ли мы им доверять?

В этой статье мы узнаем:
- почему современные нейросети не превосходят человека в CV
- как обмануть нейросеть и заставить ее предсказывать на картинке тигра вместо молотка
- как сделать нейросеть устойчивой к таким попыткам обмана

Читайте новую статью по ссылке: https://deepschool-pro.notion.site/Adversarial-training-98ff4f876b6f437d90830976789e9d68?pvs=4
Как решать графовые задачи с помощью нейросетей

Объекты реального мира часто определяются через их связи с другими объектами. Такие объекты элегантно описываются с помощью графов.

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

Читайте нашу новую статью по ссылке:
https://deepschool-pro.notion.site/1665b8940c27431f95a801da2577c072?pvs=4
Сегментация плоскости земли

Классическая задача при обработке лидарных данных — определить точки облака, которые относятся к плоскости земли. Она нужна для работы с современными системами беспилотного транспорта, роботами и результатами аэросъемки.

В статье мы рассмотрим:
- мотивацию решения задачи
- два классических алгоритма ее решения: CSF и Patchwork
- практические советы по применению этих алгоритмов

Читайте нашу новую статью по ссылке: https://deepschool-pro.notion.site/3a979f729da540a984fa6e9e534cc4ec?pvs=4
​​Как определить, что клиент сделал хорошую фотографию лица?

Великое правило анализа данных "мусор на входе - мусор на выходе" работает во всех областях. Чтобы улучшить работу моделей, можно отбросить некачественные семплы на обучении и не пропускать их при инференсе. Сегодня мы рассмотрим как это можно делать в задаче распознавания лиц.

В новой статье мы расскажем:
- зачем определять качество фотографии
- какие нюансы возникают в задаче face recognition
- и как их разрешить

Читайте нашу статью по ссылке: https://deepschool-pro.notion.site/Face-Image-Quality-Assessment-b66ddfddcd8d4263a7a2318f1c2d0b48?pvs=4
Новый формат “Заметки DeepSchool”

Интересный факт: у Ксюши ушло 8 часов на создание картинок к статье про ViT :) А всего подготовка материала заняла более 30 часов.

Иногда у нас уходит целая неделя на подготовку статьи, так как всегда кажется, что можно раскрыть тему чуууть подробнее.

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

Если вам понравятся такие посты, ставьте реакции) По ним мы поймем, как вам такой формат, и какие темы можно развернуть подробнее в виде большой статьи.

В первой заметке расскажем про линтеры👇
Зачем использовать линтер?

Как правильно назвать класс: MyClass или my_class? Думаем большинству очевидно, что правильней первый вариант. Но почему? Потому что в питоне так принято :)

Классы мы называем в CamelCase, функции и переменные в snake_case 🐍, а константы при помощи CAP_CASE.

Такое единообразие (консистентность) помогает при разработке: если вы увидели что-то в CAP_CASE, вы дважды подумаете, прежде чем изменить значение этой переменной.

В python3 нам повезло, что все пишут практически одинаково и здесь огромная заслуга PEP8 — документа с соглашениями о том, как надо писать код на python.

А в чем, собственно, проблема?

Представьте, что ваш коллега создал Merge Request, в котором совсем не соблюден codestyle: неверно названы переменные, нет отступов, избыточно длинные строки кода, и много чего еще — хотелось бы вам тратить время на замечания об этом? Конечно нет, ведь MR-ы созданы не для того, чтобы спорить о синтаксисе.

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

Это решение и есть линтеры. Линтер — программа, которая проверяет наш код на соответствие правилам. Не только тем из них, что упомянуты выше, но и более сложным. Например, не слишком ли много локальных переменных в функции? А методов в классе? Кстати, такие проверки связаны с кошельком Миллера и реализованы, например, в wemake

А теперь представьте, что вам пришлось бы считать количество переменных во время MR

Надеемся, уже сейчас удалось продать вам идею об использовании линтеров. В начале с ними будет больно и это нормально. Зато спустя время ваш код станет проще читать и поддерживать, а ваша команда не будет тратить силы на споры о том, какие кавычки лучше: одинарные или двойные🙃

Для питона есть разные линтеры, которые различаются правилами, строгостью и типами проверок. Начать свое знакомство с ними можно, например, с этой статьи.

Кстати, на нашей программе Computer Vision Rocket, мы уделяем много внимания качеству кода: рассказываем как писать тесты, использовать линтер и автоматизировать эти проверки в gitlab CI. А еще мы внимательно ревьюим код студентов. Запишитесь на консультацию, мы ответим на любые ваши вопросы, покажем, как проходит обучение и code-review :)
Гессиан

Наверняка вы слышали про “методы второго порядка” — когда используют вторые производные функции потерь для более быстрого поиска оптимума. Важный элемент этих методов — гессиан. Он и является второй производной по параметрам модели.

Главная проблема гессиана — его долго считать. И ученые придумали различные методы для его аппроксимации с целью экономии вычислений. А недавно появились и алгоритмы оптимизации, которые используют эти аппроксимации для более быстрой сходимости моделей.

Если подзабыли теорию, не страшно, мы напомним ее в нашей новой статье, а также:
- напомним о методе Ньютона
- объясним как работает Sophia — свежий оптимизатор, использующий методы второго порядка
- и покажем на примерах преимущество этих методов

Читайте нашу статью, чтобы лучше разобраться в методах второго порядка: https://deepschool-pro.notion.site/a4b4e52621b447e5beb33de13986a469?pvs=4