Всем привет! Это Данила Ляпин, наставник курса «Специалист по Data Science». Собрал для вас подборку материалов по компьютерному зрению и обучению нейросетей. Здесь вы найдёте полноценные курсы, туториалы, обзорные статьи и справочные материалы. Подборка пригодится как новичкам в ML, так и практикующим инженерам — старался пояснять в описаниях, для кого подойдёт конкретный материал.
Глава из учебника по машинному обучению о свёрточных нейросетях для распознавания изображений. Объясняется, почему полносвязные сети неэффективны для картинок, как работают свёртки и зачем нужна инвариантность к сдвигам.
Разбираются ключевые блоки: max pool, global average pool, residual connection, регуляризация через аугментации, label smoothing и mixup. В конце перечислены знаковые архитектуры, заметно повлиявшие на мир свёрточных нейронных сетей в задаче классификации картинок (и не только).
Перейти →
Цель руководства — на простых примерах дать фундаментальное понимание того, как работает нейронная сеть и почему обучение сети связано с подбором правильных весов и смещений на основе данных. Автор объясняет концепции на примере предсказания цены дома. Повествование строится вокруг визуализации процесса: от базовой модели с одним входом и одним выходом к моделям с несколькими параметрами. На английском языке.
Перейти →
Статья о том, как работают паддинг и страйд в свёрточных сетях. Автор на простых примерах объясняет, почему изображение уменьшается после применения фильтров (border effects), как padding помогает сохранить размер, а stride — уменьшить его специально. Подходит новичкам, на английском языке.
Перейти →
Курс знакомит с фундаментальными идеями компьютерного зрения и тем, как нейронная сеть может «понимать» изображения, чтобы решать те же задачи, которые решает человеческая зрительная система. К концу курса вы сможете создавать классификаторы изображений уровня профессиональных приложений и будете готовы к более продвинутым темам вроде GAN и сегментации изображений. На английском языке.
Перейти →
Документация по двумерному свёрточному слою в PyTorch. Описывает назначение ‘torch.nn.Conv2d’, его входные и выходные данные, основные параметры (‘kernel_size’, ‘stride’, ‘padding’, ‘dilation’, ‘groups’ и так далее), а также ключевые переменные. На английском языке.
Перейти →
Предобработка данных — критически важный шаг в любом ML-пайплайне, и PyTorch предлагает разнообразные инструменты и техники для этого процесса. В статье разбираются лучшие практики предобработки данных в PyTorch с фокусом на загрузку данных, нормализацию, трансформацию и аугментацию. Эти практики необходимы для подготовки данных к обучению модели, улучшения производительности модели и обеспечения обучения на высококачественных данных. На английском языке.
Перейти →
Эта статья — полноценная техно-история YOLO. Авторы рассказывают, что представляет из себя задача детекции, как работала самая первая YOLO и как её дорабатывали во всех последующих версиях. В тексте встречаются термины из машинного обучения, но в целом статья написана доступным языком и будет понятна и интересна как опытным читателям, так и начинающим.
Перейти →
Видеолекция, в которой автор объясняет, что такое YOLO в целом, разбирает архитектуру сети YOLO v3 и как она детектирует объекты на разных масштабах. Рассказывает, что такое anchor boxes и как вычисляются bounding boxes, объясняет процесс обучения сети и, в заключение, что такое objectness score. На английском языке.
Статья от разработчиков YOLOv4 и фреймворка Darknet. Автор сравнивает нейросети для детекции объектов по скорости и точности, показывает, почему YOLOv4 и DL-фреймворк Darknet работают быстрее и точнее, чем DL-фреймворки и нейронные сети: Google TensorFlow EfficientDet, Facebook* Detectron RetinaNet/MaskRCNN, PyTorch YOLOv3-ASFF и многие другие. При этом YOLOv4 требует в 5 раз более дешевое оборудование.
Автор делится сравнительными графиками, рассказывает об особенностях разработки и делится выводами о создании нейросетей для детекции. Много полезных ссылок на инструкции и код. Must-read.
*принадлежит компании Meta, деятельность которой признана экстремистской и запрещена на территории РФ.
Перейти →
Практическое объяснение того, как работают ключевые модули и классы PyTorch: ‘torch.nn’, ‘torch.optim’, ‘Dataset’ и ‘DataLoader’. Чтобы понять, что они делают, автор сначала обучает нейросеть на MNIST только с базовыми тензорными операциями, а затем постепенно добавляет по одному компоненту, показывая, как каждый делает код короче или гибче. Требует знания основ PyTorch и тензорных операций (или NumPy). Есть ссылка на ноутбук. На английском языке.
Перейти →
Несмотря на большое количество библиотек и фреймворков, которые дают надежду на то, что технология работает «из коробки», обучать нейронные сети не так просто. Андрей Карпатый (Tesla, OpenAI) объясняет, почему это так и почему подход к обучению «быстрее, выше, сильнее» не работает и ведёт к дополнительным страданиям. Затем он подробно описывает свой подход и делится советами. Не подходит для абсолютных новичков. На английском языке.
Перейти →
Культовый курс от Стэнфордского университета. В свободном доступе можно посмотреть лекции за разные годы, почитать конспекты и познакомиться с практическими заданиями. Считается одним из наиболее полных курсов, посвящённых компьютерному зрению, постоянно обновляется. Может быть сложен для восприятия, если вы абсолютный новичок и никогда не работали с Python. На английском языке.
Перейти к курсу →
Смотреть лекции →
Перейти к конспектам →
Источник


