BSc: B1.O.25 MFAI 2024 Deep learning
Глубокое обучение
Квалификация выпускника: бакалавр
Направление подготовки: 09.03.01 Информатика и вычислительная техника
Направленность (профиль) образовательной программы: Математические основы искусственного интеллекта
Программу разработал(а): Иванов В. В., Оселедец И. В., д.ф.-м.н.
1. Краткая характеристика дисциплины
Изучение дисциплины (модуля) «Глубокое обучение» обеспечивает формирование и развитие компетенций обучающихся в области компьютерного зрения, их применение для решения различных прикладных задач в рамках профессиональной деятельности. В ходе освоения дисциплины обучающиеся рассматривают процесс развертывания и разработки моделей компьютерного зрения.
2. Перечень планируемых результатов обучения
Целью освоения дисциплины (модуля) является формирование знаний, умений и навыков в рамках профессиональной деятельности, позволяющих успешно работать в избранной отрасли, а также обладать компетенциями, способствующими социальной мобильности, устойчивости и конкурентоспособности обучающегося в условиях современных рыночных отношений.
Задачами дисциплины являются формирование навыков развертывания и разработки моделей компьютерного зрения, выбора правильной модели компьютерного зрения, настройки развернутой модели в реальных условиях.
Общая характеристика результата обучения по дисциплине
Знания: сформированы систематические знания о стратегии визуального восприятия роботов; о реализации моделей компьютерного зрения; знания теории и возможностей применения компьютерного зрения; методов представления изображения; методов унифицированного обнаружения объектов в реальном времени; нейронных сетей; принципов критического анализа.
Умения: сформированы умения подбирать подходящую модель под поставленную задачу; выбирать правильную модель компьютерного зрения; реализовывать алгоритм сопоставления шаблонов; проводить анализ различных моделей под поставленную задачу; получать новые знания на основе анализа, синтеза и других методов; собирать данные по сложным научным проблемам, относящимся к профессиональной области; осуществлять поиск информации и решений на основе экспериментальных действий.
Навыки (владения): сформировано владение навыками разработки моделей с достаточной для решения задачи подверженностью обучению и развертыванию; навыками точной настройки развернутой модели в реальных условиях; навыками развертывания и разработки моделей компьютерного зрения.
3. Структура и содержание дисциплины
| № раздела | Наименование раздела дисциплины (модуля) | Содержание дисциплины (модуля) по темам |
| 1. | Получение изображений и базовая обработка изображений | Компьютерное зрение в действии.
Система человеческого зрения. Оптические иллюзии. Выборка и квантование. Представление изображения. Цветовые пространства. |
| 2. | Фильтрация изображений и двоичное зрение | Шум изображения.
Свертки и ядра. Сглаживание и размытие. Пороговая обработка и гистограммы. Морфологические операции. Градиенты и обнаружение краев. |
| 3. | Экстракторы и дескрипторы функций | Гистограмма градиентов (HoG).
Масштабно-инвариантное преобразование признаков (SIFT). Угловой детектор Харриса. Соответствие шаблонов. Мешок визуальных слов. Обнаружение и распознавание лиц (Виола Джонс). |
| 4. | Модели глубокого обучения для компьютерного зрения | Вы только посмотрите один раз: унифицированное обнаружение объектов в реальном времени (YOLO).
Генеративные состязательные сети (GAN). Полностью сверточные сети (FCN) для семантической сегментации. Многодоменная сеть (MDNet) для отслеживания объектов. Общее отслеживание объектов с использованием регрессионных сетей (GOTURN) для отслеживания объектов. |
4. Методические и оценочные материалы
Задания для практических занятий:
| №
п/п |
Наименование раздела дисциплины (модуля) | Перечень рассматриваемых тем (вопросов) |
| 1. | Получение изображений и базовая обработка изображений | Загрузка и построение изображений в среде Python.
Преобразование разных цветовых пространств. Как найти скин на изображениях на основе моделей цветового пространства. Как найти точку красных глаз на лице с помощью моделей цветового пространства. |
| 2. | Фильтрация изображений и двоичное зрение | Внедрить метод Оцу.
Внедрить фильтры Собеля, Превейтта. Внедрить детектор кромок Canny. Выполните анализ различных фильтров для данных изображений. |
| 3. | Экстракторы и дескрипторы функций | Реализуйте алгоритм сопоставления шаблонов.
Реализуйте гистограмму градиента с помощью библиотеки CV2. Реализация SIFT под поставленную задачу. Внедрить определение угла Харриса. Анализ различных экстракторов под поставленную задачу. |
| 3. | Модели глубокого обучения для компьютерного зрения | Внедрить YOLO с помощью механизма трансферного обучения.
Внедрить GAN для набора данных MNIST. Реализуйте FCN и GOTURN. Анализ различных моделей под поставленную задачу. |
Текущий контроль успеваемости обучающихся по дисциплине:
| №
п/п |
Наименование раздела дисциплины (модуля) | Форма текущего контроля | Материалы текущего контроля |
| 1. | Получение изображений и базовая обработка изображений | Проверка выполнения домашних заданий;
Устный / письменный опрос |
Устный / письменный опрос:
Каковы цветовые пространства и где они используются? Какие бывают основные и второстепенные цвета? Как образ формируется в компьютерах? Как вы конвертируете RGB в изображения в градациях серого? |
| 2. | Фильтрация изображений и двоичное зрение | Проверка выполнения домашних заданий;
Устный / письменный опрос; Коллоквиум |
Устный / письменный опрос:
Какие проблемы возникают при выполнении задачи гистограммы? Примените сверточный фильтр, чтобы вычислить ответ. Какие параметры необходимы для применения различных фильтров изображений? Как вы будете вычислять градиенты изображения и их преимущества? |
| 3. | Экстракторы и дескрипторы функций | Проверка выполнения домашних заданий;
Устный / письменный опрос; Коллоквиум |
Устный / письменный опрос:
Как экстрактор признаков работает с данным изображением? В чем разница между извлечением признаков и дескрипторами? Объясните примеры дескрипторов и экстракторов признаков. Запишите плюсы и минусы SIFT, HOG и Harris |
| 4. | Модели глубокого обучения для компьютерного зрения | Проверка выполнения домашних заданий;
Устный / письменный опрос |
Устный / письменный опрос:
Чем задача классификации отличается от задачи обнаружения? Объясните механизм передачи обучения для задачи обнаружения объектов. Сколько типов моделей существует для отслеживания объектов в видео. Запишите плюсы и минусы YOLO, FCN и MDNet. Какие критерии следует учитывать при выборе модели глубокого обучения для решения задач компьютерного зрения? Объясните, как эти критерии связаны с методами настройки и наладки программно-аппаратных комплексов в контексте области машинного обучения. (ОПК-7) Какие методы оценки и сравнения результатов работы моделей глубокого обучения для компьютерного зрения могут быть использованы для принятия обоснованных решений в области машинного обучения? Объясните, какие критерии приёмки решений в области компьютерного зрения могут быть учтены при анализе и интерпретации полученных результатов. (ОПК-7) Какие основные компоненты входят в архитектуру сверточных нейронных сетей, используемых в задачах компьютерного зрения, и какие параметры этих компонентов могут подлежать настройке для оптимизации производительности модели? (ОПК-7) Какие методы оптимизации функций потерь и выбора гиперпараметров могут быть применены при обучении глубоких нейронных сетей для задач компьютерного зрения? Какие техники регуляризации и адаптивного обучения могут использоваться для улучшения обобщающей способности моделей в контексте настройки программно-аппаратных комплексов в области машинного обучения? (ОПК-7) Каким образом архитектура сверточных нейронных сетей влияет на производительность программно-аппаратных комплексов в задачах компьютерного зрения, и какие методы оптимизации можно применить для улучшения работы таких комплексов? (ОПК-7) Какие техники регуляризации и адаптивного обучения могут быть использованы для повышения обобщающей способности моделей глубокого обучения в контексте проверки работоспособности программно-аппаратных комплексов в области машинного обучения, и какие методы отладки можно применить для исследования причин недостаточной эффективности таких комплексов? (ОПК-7) Какие основные компоненты включает в себя сверточная нейронная сеть для задач компьютерного зрения, и какие программные инструменты можно использовать для создания и обучения подобных моделей? (ОПК-9) Какие методы аугментации данных могут быть применены для улучшения производительности моделей глубокого обучения в задачах компьютерного зрения, и какие программные библиотеки предоставляют инструменты для реализации этих методов в практических задачах? (ОПК-9) Какие основные компоненты включает в себя сверточная нейронная сеть для задач компьютерного зрения, и каким образом выбор архитектуры модели может повлиять на результаты обучения и качество классификации изображений? (ОПК-9) Какие методы аугментации данных могут быть применены для улучшения производительности моделей глубокого обучения в задачах компьютерного зрения, и каким образом выбор конкретных методов аугментации может повлиять на обобщающую способность модели и её способность к обнаружению объектов на изображениях? (ОПК-9) Какие методы и подходы глубокого обучения для компьютерного зрения можно использовать для создания документации или видеороликов, описывающих методику использования программного средства для распознавания объектов на изображениях? (ОПК-9) Каким образом архитектура сверточных нейронных сетей может быть оптимизирована для создания эффективной документации или видеороликов, демонстрирующих процесс обучения модели компьютерного зрения на конкретном наборе данных? (ОПК-9) Какие архитектуры нейронных сетей наиболее эффективны для задач компьютерного зрения, и какие преимущества они предоставляют по сравнению с классическими моделями машинного обучения, такими как метод опорных векторов или градиентный бустинг? (ПК-2) Какие методы обучения глубоких нейронных сетей для компьютерного зрения позволяют достичь высокой точности распознавания объектов на изображениях, и как эти методы отличаются от подходов к обучению классических моделей временных рядов или моделей обработки естественного языка? (ПК-2) Какие методы оптимизации гиперпараметров нейронных сетей для компьютерного зрения вы считаете наиболее эффективными, и какие аспекты необходимо учитывать при выборе подходящего метода в контексте создания моделей с высокой эффективностью и производительностью? (ПК-2) Каким образом использование графов для моделирования структур нейронных сетей в области компьютерного зрения может способствовать улучшению эффективности и точности распознавания объектов на изображениях, и какие преимущества предоставляет такой подход по сравнению с другими методами построения архитектур нейронных сетей? (ПК-2) Какие методы и алгоритмы глубокого обучения для компьютерного зрения можно использовать для решения конкретной задачи распознавания объектов на изображениях, учитывая требования к точности, производительности и эффективности модели? Объясните, как выбор определенной модели или архитектуры нейронной сети может повлиять на результаты исследования. (ПК-2) Каким образом применение технологий компьютерного зрения, таких как библиотека OpenCV, может улучшить процесс обработки изображений и распознавания объектов в контексте разработки систем искусственного интеллекта? Приведите примеры использования OpenCV для решения конкретных задач в области компьютерного зрения и объясните преимущества данного подхода. (ПК-2) |
Контрольные вопросы для подготовки к промежуточной аттестации:
| №
п/п |
Наименование раздела дисциплины (модуля) | Вопросы |
| 1. | Получение изображений и базовая обработка изображений | Как можно различать разные цветовые пространства?
Объясните и укажите причину появления слепого пятна в человеческом глазу. В каких сценариях компьютерное зрение лучше человеческого? Запишите различные области применения робототехники, в которых успешно применяется компьютерное зрение. |
| 2. | Фильтрация изображений и двоичное зрение | Вычислить ядра для данных изображений.
Объясните разницу между разными фильтрами. Что такое шум изображения и как он усложняет задачу компьютерного зрения? Применяйте различные комбинации фильтров для достижения требуемого вывода данного изображения. |
| 3. | Экстракторы и дескрипторы функций | Как вы различаете разные экстракторы и дескрипторы функций?
Каковы возможные методы обнаружения углов? Чем полезны углы для решения задачи роботизированного зрения? Как вы исправите различные изображения, чтобы построить карту местности? |
| 4. | Модели глубокого обучения для компьютерного зрения | Какие функции потерь используются в YOLO?
Какие изучаемые параметры FCN для семантической сегментации? Чем семантическая сегментация отличается от сегментации экземпляра? Напишите области применения для отслеживания объектов в робототехнике. |
Вопросы/Задания к промежуточной аттестации в устной/письменной форме:
- Морфологические операции; Структурирующий элемент; Эрозия; Растяжение; Открытие; Закрытие;
- Thresholding; Адаптивное пороговое значение;
- Гистограмма; Алгоритм вычисления гистограммы;
- Метод Отсу;
- Би-модальное изображение (два пика);
- Вычисление градиентов изображений; Величина градиента и ориентация;
- Вычисление градиентов с использованием ядер; Ядро Sobel; Ядро Scharr;
- Non-maxima Suppression; Порог гистерезиса; Пороговый диапазон;
- Подключенная маркировка компонентов (CCL);
- Алгоритм Розенфельда и Пфальца;
- Гистограмма ориентированных градиентов (HOG);
- Поддержка векторных машин;
- Обучение модели; Виды обучения: обучение с учителем, обучение без учителя, обучение с частичным привлечением учителя;
- Функция потерь;
- KNearest Neighbors (KNN);
- Евклидово расстояние в n-измерениях;
- Логистическая регрессия; двух классовая проблема классификации;
- Прогноз «лейбла» из «признака»;
- Градиентный спуск;
- Кластеризация: обучение без учителя;
- Кластеризация изображений на основе свойств; Извлечение доминирующих характеристик;
- Adaboost для выбора признаков; Boosting; Classifier cascade;
- Вектор признаков; Дескриптор изображения; Дескриптор признаков; Вектор признаков изображения; Алгоритмы обнаружения ключевых точек: Haaris, GFTT, Difference of Gaussians (DoG), FAST;
- Отслеживание объектов: Exhaustive Search, Mean Shift, Optical Flow;
- Нейронные сети; Нейронные сети и их роль в биологии;
- Алгоритм Perceptron; Алгоритм backpropagation;
- Изучение данных: тренировочные данные, тестовые данные; переобучение (over-fitting);
- Архитектура сверточной нейронной сети;
- Типы слоев в сверточной сети: Сверточные слои (CONV), Объединение слоев (POOL), Fully connected (FC).
Перечень учебно-методического обеспечения дисциплины:
Основная литература:
- Лекун, Я. Как учится машина: революция в области нейронных сетей и глубокого обучения / Я. Лекун; перевод Е. Арсенова; под редакцией В. Скворцова, М. Плец. — Москва: Альпина ПРО, 2021. — 335 c. — Режим доступа: https://www.iprbookshop.ru/131617.html — ЭБС «IPRbooks».
- Пылов, П. А. Основы работы с моделями машинного и глубокого обучения: учебное пособие / П. А. Пылов, Р. В. Майтак, А. В. Дягилева. — Москва, Вологда: Инфра-Инженерия, 2023. — 256 c. — Режим доступа: https://www.iprbookshop.ru/133369.html — ЭБС «IPRbooks».
Дополнительная литература:
1. Corke, P. Robotics, Vision and Control: Fundamental Algorithms in MATLAB (Springer Tracts in Advanced Robotics). — Publishing House: Springer, 2013. — 570 p. — Режим доступа: https://portal.university.innopolis.ru/reading_hall/detail.php?ID=82824 — Электронный каталог научно-технической библиотеки АНО ВО «Университет Иннополис».
Методические указания для обучающихся по освоению дисциплины
| Вид учебных занятий/деятельности | Деятельность обучающегося |
|---|---|
| Лекция | Написание конспекта лекций: кратко, схематично, последовательно фиксировать основные положения лекции, выводы, формулировки, обобщения; помечать важные мысли, выделять ключевые слова, термины. Обозначить вопросы, термины или другой материал, который вызывает трудности, пометить и попытаться найти ответ в рекомендуемой литературе. Если самостоятельно не удается разобраться в материале, необходимо сформулировать вопрос и задать преподавателю на консультации, во время семинарского (практического) занятия. |
| Практическое (семинарское) занятие | При подготовке к семинарскому (практическому) занятию необходимо проработать материалы лекций, основной и дополнительной литературы по заданной теме. На основании обработанной информации постараться сформировать собственное мнение по выносимой на обсуждение тематике. Обосновать его аргументами, сформировать список источников, подкрепляющих его.
Во время семинарского (практического) занятия активно участвовать в обсуждении вопросов, высказывать аргументированную точку зрения на проблемные вопросы. Приводить примеры из источниковой базы и научной и/или исследовательской литературы. |
| Устный/письменный опрос | Отвечать, максимально полно, логично и структурировано, на поставленный вопрос. Основная цель – показать всю глубину знаний по конкретной теме или ее части. |
| Подготовка к промежуточной аттестации | При подготовке к промежуточной аттестации необходимо проработать вопросы по темам, которые рекомендуются для самостоятельной подготовки. При возникновении затруднений с ответами следует ориентироваться на конспекты лекций, семинаров, рекомендуемую литературу, материалы электронных и информационных справочных ресурсов, статей.
Если тема вызывает затруднение, четко сформулировать проблемный вопрос и задать его преподавателю. |
| Практические (лабораторные) занятия | Практические занятия предназначены прежде всего для разбора отдельных сложных положений, тренировки аналитических навыков, а также для развития коммуникационных навыков. Поэтому на практических занятиях необходимо участвовать в тех формах обсуждения материала, которые предлагает преподаватель: отвечать на вопросы преподавателя, дополнять ответы других студентов, приводить примеры, задавать вопросы другим выступающим, обсуждать вопросы и выполнять задания в группах. Работа на практических занятиях подразумевает домашнюю подготовку и активную умственную работу на самом занятии. Работа на практических занятиях в форме устного опроса заключается прежде всего в тренировке навыков применять теоретические положения к самому разнообразному материалу. В ходе практических занятий студенты работают в группах для обсуждения предлагаемых вопросов. |
| Самостоятельная работа | Самостоятельная работа состоит из следующих частей: 1) чтение учебной, справочной, научной литературы; 2) повторение материала лекций; 3) составление планов устных выступлений; 4) подготовка видеопрезентации. При чтении учебной литературы нужно разграничивать для себя материал на отдельные проблемы, концепции, идеи. Учебную литературу можно найти в электронных библиотечных системах, на которые подписан АНО Университет Иннополис. |
| Дискуссия | Публичное обсуждение спорного вопроса, проблемы. Каждая сторона должна оппонировать мнение собеседника, аргументируя свою позицию. |
| Выполнение домашних заданий и групповых проектов | Для выполнения домашних заданий и групповых проектов необходимо получить формулировку задания от преподавателя и убедиться в понимании задания. При выполнение домашних заданий и групповых проектов необходимо проработать материалы лекций, основной и дополнительной литературы по заданной теме. |