Машинное обучение и нейронные сети - страница 33

 

CS 198-126: Лекция 3 - Введение в глубокое обучение, часть 2



CS 198-126: Лекция 3 - Введение в глубокое обучение, часть 2

В этом разделе лекции объясняется концепция обратного распространения, которая представляет собой более быстрый способ получить все частные производные, необходимые для алгоритма градиентного спуска, без выполнения избыточных операций. Лектор также обсуждает, как улучшить ванильный градиентный спуск для оптимизации глубокого обучения, и представляет импульс, RMSprop и Adam в качестве методов оптимизации. Также обсуждаются важность отслеживания истории обучения модели, использование пакетной нормализации и сборки в качестве метода повышения производительности модели, а также методы, обычно используемые в глубоком обучении для уменьшения переобучения, такого как отсев и пропуск соединений. Наконец, лектор кратко затрагивает простоту использования PyTorch и задает вопросы.

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

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

  • 00:10:00 В этом разделе объясняется концепция обратного распространения, которая представляет собой более быстрый способ получить все частные производные, необходимые для алгоритма градиентного спуска, без выполнения избыточных операций. По мере увеличения глубины сети многие вычисления становятся повторяющимися и избыточными, что делает их непригодными для обучения глубоких сетей. Обратное распространение работает путем кэширования значений во время прямого прохода и их повторного использования во время обратного прохода при вычислении частных производных. Однако, поскольку частные производные теперь включают матрицы и матрицы, кэширование становится более важным, поскольку оно экономит операции умножения, которые обычно являются более дорогостоящими. В видео объясняется, что мы можем использовать такие инструменты, как pyTorch, для автоматического кэширования необходимых нам значений.

  • 00:15:00 В этом разделе лектор обсуждает, как улучшить ванильный градиентный спуск для оптимизации глубокого обучения. Одна из проблем с ванильным градиентным спуском заключается в том, что он борется с локальными минимумами или плоскими точками, где градиент равен нулю, что не позволяет алгоритму найти лучшие решения. Чтобы решить эту проблему, лектор вводит понятие импульса, вдохновленное катящимся с холма мячом. Взяв средневзвешенное значение прошлых градиентов и добавив его к текущему градиенту, импульс может помочь преодолеть небольшие локальные минимумы и плоские пятна. Хотя технически это не настоящий градиентный спуск, импульс может позволить алгоритму преодолеть эти препятствия и, надеюсь, найти лучшие решения. Лектор также обсуждает, как масштабировать средневзвешенное значение прошлых градиентов, чтобы не слишком уменьшить текущий градиент.

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

  • 00:25:00 В этом разделе инструктор объясняет концепцию RMSprop, которая представляет собой форму градиентного спуска, и то, как она работает по сравнению с традиционными методами. Он объясняет, что RMSprop делит градиенты на квадратный корень из квадратов скользящих средних градиентов, что он демонстрирует на примерах малых и больших градиентов. Делая это, алгоритм может адаптивно регулировать скорость обучения, известную как адаптивная скорость обучения. В конечном итоге он приходит к выводу, что Адам — лучшая форма градиентного спуска, поскольку она имеет преимущества как RMSprop, так и традиционных методов.

  • 00:30:00 В этом разделе лектор представляет Адама, комбинацию RMSProp и импульса, как предпочтительный метод оптимизации для градиентного спуска в моделях глубокого обучения. Адам учитывает преимущества возможности избежать локальных минимумов с импульсом, принимая во внимание проблемы с плоскими точками, которые требуют ускорения через них. Он не меняет направление градиента, а только его масштабирование. В лекции предлагается контрольная точка модели как способ борьбы с любым неустойчивым поведением, которое может возникнуть с Adam или RMSProp после того, как они достигли локального минимума. Можно также использовать методы оптимизации второго порядка, но они требуют большей вычислительной мощности и менее распространены.

  • 00:35:00 В этом разделе инструктор объясняет важность отслеживания истории обучения модели и того, насколько хорошо она работает с новыми данными, которых она раньше не видела, чтобы эффективно определить, какая контрольная точка является лучшей. Также обсуждается метод нормализации, называемый пакетной нормализацией, который включает вычитание среднего значения и деление на стандартное отклонение для каждой отдельной активации в нейронной сети, а затем позволяет сети изменять масштаб этих значений по своему усмотрению путем умножения каждого веса на значение гаммы. и добавление смещения. Этот метод помогает нормализовать данные и создает регулярно выглядящие потерянные поверхности, которые гораздо легче отправить вниз с помощью градиентного спуска, что значительно упрощает жизнь.

  • 00:40:00 В этом разделе мы узнаем о пакетной нормализации — методе, используемом для нормализации активаций нейронов нейронной сети путем вычисления среднего значения и стандартного отклонения выходных данных определенного слоя. Эта нормализация делает поведение нейронной сети по умолчанию нормированными активациями, что делает их поведение правильным. Хотя этот метод не добавляет выразительности модели, он позволяет использовать лучшие градиенты и более нормализованный диапазон значений в качестве входных данных для всех слоев сети. Кроме того, мы узнаем об ансамблевом методе, используемом для повышения производительности модели путем обучения нескольких моделей и усреднения их прогнозов.

  • 00:45:00 В этом разделе лекции обсуждаются два метода, обычно используемые в глубоком обучении для уменьшения переобучения: отсев и пропуск соединений. Отсев включает в себя случайное удаление определенного количества нейронов перед обучением, чтобы заставить каждый нейрон научиться использовать все функции, которые были до него, заставляя его изучать тот же результат, что и другие нейроны. Напротив, пропущенные соединения позволяют изучить функцию идентификации, которая помогает распространять информацию, не добавляя шума или путаницы; он включает в себя изучение нулей для всех весов, что тривиально позволяет передавать хорошую информацию на последний уровень для правильной классификации. Оба метода, наряду с другими, обсуждаемыми в этой лекции, помогают повысить производительность за счет уменьшения переобучения и обеспечения произвольной глубины сетей.

  • 00:50:00 В этом разделе лектор объясняет, как пропуск соединений может быть полезным инструментом при построении нейронных сетей. Эти соединения могут быть добавлены для повышения производительности, делая вашу сеть лучше. У лектора не было времени подробно обсудить PyTorch, но это объясняется в домашнем задании. Они объясняют, что PyTorch может быть очень простым в использовании, если вы уже знаете, как использовать numpy. Они могут создавать функции, которые принимают значение и возвращают его, делая возможным вычисление значения градиента на определенном входе. В заключение лектор задает вопросы.
CS 198-126: Lecture 3 - Intro to Deep Learning, Part 2
CS 198-126: Lecture 3 - Intro to Deep Learning, Part 2
  • 2022.12.03
  • www.youtube.com
Lecture 3 - Intro to Deep Learning, Part 2CS 198-126: Modern Computer Vision and Deep LearningUniversity of California, BerkeleyPlease visit https://ml.berke...
 

CS 198-126: Лекция 4 - Введение в предварительную подготовку и аугментации



CS 198-126: Лекция 4 - Введение в предварительную подготовку и аугментации

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

  • 00:05:00 В этом разделе лекции автор обсуждает репрезентативное обучение и поверхностное обучение. При неглубоком обучении конвейер машинного обучения начинается с ввода X, функции извлекаются из него с помощью экстрактора функций, а затем извлеченные функции передаются в алгоритм машинного обучения для получения выходных данных Y. Фасилитатор объясняет, что извлечение функций зависит по данным и может быть
    простой для табличных данных, но сложный для таких данных, как текст, аудио или изображения. Однако для изображений в классическом компьютерном зрении доступны специализированные экстракторы признаков.

  • 00:10:00 В этом разделе лектор объясняет концепцию извлечения признаков и ее развитие в машинном обучении. В классическом машинном обучении для создания моделей используется запрограммированный вручную экстрактор признаков, такой как Hog, который фиксирует информацию о границах изображения. Однако этот процесс сложен, поскольку экстракторы признаков различаются для разных задач. Глубокое обучение обеспечивает сквозной процесс, изучая как извлечение признаков, так и прогнозирование выходных данных. Лектор объясняет, что этот процесс позволяет изучать абстрактные представления входных данных, которые передаются через слои изученных экстракторов признаков в нейронной сети, что приводит к иерархическим представлениям. В лекции приводится пример того, как глубокие нейронные сети изучают представления изображений автомобилей.

  • 00:15:00 В этом разделе спикер объясняет, как глубина нейронных сетей помогает улучшить представления. Ранние слои сети обнаруживают низкоуровневые детали, такие как края, в то время как более поздние слои фокусируются на более конкретных функциях, таких как двери или окна на изображении. Последние слои пытаются определить, действительно ли входное изображение является тем, что модель научилась распознавать, создавая абстрактную ментальную модель. Затем докладчики обсуждают трансферное обучение как способ использовать предварительно обученные модели и избежать необходимости обучать модели с нуля, что может быть дорогостоящим с точки зрения времени, вычислений и данных.

  • 00:20:00 В этом разделе спикер обсуждает концепцию расслоения в нейронных сетях и то, как можно использовать предварительное обучение и трансферное обучение для повышения точности и скорости моделей. Докладчик объясняет, как более ранние слои захватывают общие функции, такие как формы и узоры, а более поздние слои захватывают более абстрактные функции, такие как объекты и люди. Концепция заморозки, при которой определенные слои сохраняются и используются в последующих моделях, также обсуждается как способ настройки моделей под конкретные задачи. Техника замораживания может ускорить обучение модели и повысить точность, но следует позаботиться о том, чтобы слои были заморожены на соответствующем уровне.

  • 00:25:00 В этом разделе инструктор обсуждает перенос обучения в нейронных сетях, в частности метод тонкой настройки, при котором предварительно обученная модель дополнительно обучается на выходных слоях и незамороженных слоях. Они подчеркивают важность учета размера и сходства нового набора данных с исходным набором данных при принятии решения о заморозке или точной настройке предварительно обученной модели. Кроме того, они объясняют важность встраивания в нейронные сети и то, как они могут уменьшить размерность категориальных переменных, упрощая их представление в пространстве преобразования. Использование вложений проиллюстрировано на примере отображения книжных жанров в векторное пространство меньшей размерности.

  • 00:30:00 В этом разделе лекции профессор рассказывает о многомерных данных и о трудностях, возникающих при попытке их представления. Профессор вводит понятие скрытого пространства более низкого измерения, которое включает в себя кодирование всей важной информации, представляющей многомерные данные, в пространство более низкого измерения. Цель состоит в том, чтобы зафиксировать эту информацию через то, что называется скрытым пространством функций, и во многих случаях это может быть достигнуто с помощью вложений. Профессор приводит пример того, как одномерная структура может быть представлена с использованием только одной переменной вместо трех переменных в трехмерном пространстве, чтобы данные не были разбросаны в многомерном пространстве. Наконец, профессор объясняет, как изучать встраивания, обучая модель классифицировать изображения в наборе данных MNIST с использованием функции потерь softmax и использовать выходные данные некоторых слоев в модели как представление изображения.

  • 00:35:00 В этом разделе спикер обсуждает преимущества предварительно обученных сетей и трансферного обучения, которые позволяют сэкономить время и вычислительные мощности при достижении лучших результатов. Предварительно обученные сети можно обучать на больших наборах данных, что может привести к лучшим представлениям. Трансферное обучение позволяет применять знания, полученные от одной предварительно обученной сети, к другой задаче, что делает его особенно полезным при обработке естественного языка. Затем вводится предварительное обучение с самоконтролем, которое позволяет учиться без контроля над метками, обучаясь на необработанных данных.

  • 00:40:00 В этом разделе лектор обсуждает неконтролируемое обучение, которое представляет собой тип обучения, при котором не предоставляются метки, но модель все же изучает шаблоны и отношения в наборе данных. Примеры неконтролируемого обучения включают анализ основных компонентов (PCA) и кластеризацию. Затем лектор рассказывает об обучении с самостоятельным наблюдением, которое включает в себя наблюдение за самими данными, а не за внешними метками. Этот метод включает предсказание скрытых частей или свойств данных из наблюдаемых частей. Самоконтролируемое обучение выгодно в ситуациях, когда помеченных данных мало или их сбор дорог.

  • 00:45:00 В этом разделе лекции спикер обсуждает обучение с самостоятельным наблюдением и различные связанные с ним задачи, такие как предтекстовая задача и последующая задача. Эти задачи можно использовать в различных областях, таких как компьютерное зрение, NLP и RL. Затем спикер приводит примеры обучающих задач с самостоятельным наблюдением, таких как задача-головоломка, где изображение делится на девять фрагментов, перемешивается, и модель просят предсказать первоначальный порядок. Другая задача — задача поворота, когда изображение поворачивается на некоторый угол, а модель просят предсказать угол поворота. Эти задачи можно использовать для предварительной подготовки моделей и передачи изученных представлений последующим задачам, таким как классификация изображений и обнаружение объектов.

  • 00:50:00 В этом разделе лекции вводится понятие моделей предварительного обучения с использованием обучения с самоконтролем (SSL). Одним из примеров SSL в компьютерном зрении является обучение модели прогнозированию угла поворота изображения и сосредоточению внимания на ориентации объекта, местоположении, позе и типе вместо низкоуровневых деталей. Эта идея не ограничивается CV, поскольку SSL также может применяться к NLP и аудио, например, для предсказания одного или нескольких слов из предложений. Известная модель NLP под названием BERT использует модель Transformer для прогнозирования замаскированных слов из двух предложений одновременно и изучает встраивание на уровне слов и предложений. BERT имел огромный успех в НЛП.

  • 00:55:00 В этом разделе лекции спикер обсуждает возобновившийся интерес к самоконтролируемому обучению (SSL) в компьютерном зрении (CV) после успеха BERT в обработке естественного языка (NLP). Говорят, что современное состояние CV похоже на BERT. В лекции представлен обзор репрезентативного обучения, трансфертного обучения и SSL, а также представлены различные концепции и методологии. Хотя в этой лекции нет домашнего задания, есть домашнее задание для всего кластера на ноутбуке High Crush, которое должно быть готово в следующий вторник, а в будущей лекции по Advanced SSL для CV будет домашнее задание. Слайд-колода доступна на веб-сайте для ознакомления.
CS 198-126: Lecture 4 - Intro to Pretraining and Augmentations
CS 198-126: Lecture 4 - Intro to Pretraining and Augmentations
  • 2022.12.03
  • www.youtube.com
Lecture 4 - Intro to Pretraining and AugmentationsCS 198-126: Modern Computer Vision and Deep LearningUniversity of California, BerkeleyPlease visit https://...
 

CS 198-126: Лекция 5 - Введение в компьютерное зрение



CS 198-126: Лекция 5 - Введение в компьютерное зрение

Эта лекция по компьютерному зрению охватывает различные темы, в том числе историю компьютерного зрения и его развитие на протяжении многих лет. Преподаватель также объясняет глубокое обучение и то, как оно улучшает классические методы компьютерного зрения. В лекции рассматривается концепция сверток и то, как они используются в качестве экстракторов признаков в компьютерном зрении, что приводит к созданию сверточных нейронных сетей (CNN). Кроме того, в лекции обсуждается роль рецептивных полей и вводятся объединяющие слои как метод увеличения рецептивного поля CNN. В целом лекция представляет собой обзор компьютерного зрения как области и методов, используемых для извлечения информации из изображений. Во второй части лекции обсуждаются различные техники сохранения размера изображения при свертках, в том числе padding и same padding. Также рассматривается концепция шага в сверточных слоях, демонстрирующая, как она может имитировать эффект объединяющего слоя. Объясняется анатомия CNN и ее гиперпараметры, включая размер ядра, шаг, отступы и слои объединения, с акцентом на то, как сверточный слой действует как экстрактор признаков, который передает низкоразмерные блоки признаков в полносвязную сеть. сеть для классификации. В лекциях также рассматривается архитектура сети LeNet для классификации рукописных цифр и важность нормализации данных изображения перед их передачей через нейронную сеть. Наконец, аугментация данных обсуждается как метод создания дополнительных обучающих данных, и подчеркивается важность контрольных точек модели во время обучения.

  • 00:00:00 В этом разделе инструктор представляет компьютерное зрение как область ИИ, которая занимается извлечением информации из изображения на семантическом уровне. Они описывают классификацию, обнаружение и сегментацию как задачи, которые может выполнять модель машинного обучения. Чтобы машина могла понимать изображение и выполнять эти задачи, она должна иметь более высокий уровень понимания содержимого изображения, поэтому модели предназначены для извлечения таких функций, как края, для классификации изображений. Инструктор объясняет, что область компьютерного зрения уходит своими корнями в когнитивную науку и психологию, а разработки в области извлечения признаков, таких как свинья, появились в результате эксперимента, проведенного на кошках в 1959 году.

  • 00:05:00 В этом разделе лекции инструктор обсуждает, как глубокое обучение заменило классические методы компьютерного зрения, когда экстракторы признаков программировались вручную. Глубокое обучение позволяет моделям изучать не только сопоставления признаков с выходными данными, но и сами экстракторы признаков, и этот прорыв произошел в 2012 году с нейронной сетью Алекса Краевски. Преподаватель рассказывает о проблеме визуального распознавания изображений ImageNet и о том, как AlexNet резко сократил количество ошибок, что стало поворотным моментом для глубокого обучения. Затем лекция переходит к обсуждению того, как изображения представлены в цифровом виде в виде матриц, и использованию значений яркости для представления изображений в градациях серого.

  • 00:10:00 В этом разделе лекции инструктор обсуждает концепцию цветовых измерений и каналов в изображениях. Каждый цветной пиксель можно разбить на три разных значения, что означает, что изображение RGB может быть представлено тремя матрицами для каждого компонента. Затем эти матрицы можно наложить друг на друга, чтобы сформировать трехмерную матрицу, называемую тензором. Преподаватель отмечает, что это важная концепция для понимания сверточных нейронных сетей (CNN), поскольку обычные нейронные сети или многослойные персептроны бесполезны для обработки больших изображений из-за необходимости преобразования трехмерного тензора в вектор, что приводит к массивному количество элементов.

  • 00:15:00 В этом разделе спикер обсуждает количество параметров полносвязного слоя в компьютерном зрении. Слой принимает 120 000 входных данных и выводит 10-мерный вектор, что означает, что матрица весов должна иметь размерность 10 на 120 000, что дает 1,2 миллиона весов и 10 параметров из вектора смещения. Такое количество параметров сделало бы сеть слишком большой и трудной для обучения, особенно если требуется многомерный результат. Кроме того, рассмотрение каждого пикселя как отдельной функции является неортодоксальным в классификации изображений, поскольку люди склонны разбивать изображения на разные части и использовать эту информацию для построения ментальной модели. Спикер предлагает смотреть на локальные области изображения, а не на отдельные пиксели, чтобы лучше понять данные.

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

  • 00:25:00 В этом разделе обсуждается концепция трансляционной инвариантности и обработки локальной области в компьютерном зрении. Традиционная сетевая архитектура не может удовлетворить эти требования, что побуждает исследователей вместо этого разрабатывать сверточные нейронные сети (CNN). Операция свертки, используемая в CNN, объясняется использованием весового фильтра, который может скользить по изображению и вычислять скалярные произведения для создания новых выходных данных. Также вводится метод разделения веса, при котором каждый патч проходит через слой с одинаковыми весами и смещениями для получения одинакового представления, что делает CNN способными удовлетворять критериям, установленным для компьютерного зрения.

  • 00:30:00 В этом разделе лекции спикер объясняет процесс сверток, который включает в себя взятие поэлементного произведения фильтра на входной патч и суммирование результатов. Этот процесс позволяет алгоритмам компьютерного зрения фокусироваться на отдельных участках входного изображения, а не на всем изображении, и использовать один и тот же фильтр для каждого участка, разделяя веса. Стратегически разрабатывая фильтры, алгоритмы могут извлекать различные виды информации, например обнаружение границ. Спикер представляет собой пример фильтра, предназначенного для обнаружения вертикальных краев путем выделения высоких активаций в середине свернутого вывода с низкими активациями по краям.

  • 00:35:00 В этом разделе лекции инструктор объясняет концепцию сверток в компьютерном зрении и то, как они используются для извлечения признаков. Сверточные нейронные сети (CNN) используют фильтры, которые могут извлекать различные функции из изображения, и эти фильтры можно изучить в процессе глубокого обучения. Используя больше фильтров, CNN могут извлекать различные типы функций из входного изображения и использовать информацию обо всех из них. Преподаватель также обсуждает, как обобщить процесс свертки на входное изображение с несколькими каналами, а результат этого процесса называется картой активации, которая представляет собой активацию различных функций.

  • 00:40:00 В этом разделе спикер обсуждает концепцию представления изображений в формате RGB и то, как карта активации может иметь трехмерную структуру. Процесс включает в себя извлечение различных функций и их свертку для получения 3D-вывода. Эта операция свертки является общей и может применяться к любому 3D-входу, что позволяет накладывать сверточные слои друг на друга, что приводит к глубоким нейронным сетям. Кроме того, спикер подробно описывает реализацию концепции рецептивного поля, которая не ограничивается только сверточными нейронными сетями.

  • 00:45:00 В этом разделе обсуждается концепция рецептивных полей в картах активации. Рецептивное поле относится к области ввода, которая влияет на каждый элемент карты активации. В этом разделе объясняется, как работают рецептивные поля и как увеличение размера рецептивного поля может повлиять на производительность сети. Также отмечается, что на рецептивные поля могут влиять различные сверточные фильтры и что слишком большое или маленькое рецептивное поле может привести к пропуску важной информации во входных данных.

  • 00:50:00 рецептивное поле, в этом разделе лекции профессор объясняет, как размер рецептивного поля влияет на способность сверточной нейронной сети (CNN) классифицировать изображение. Наличие небольшого рецептивного поля может привести к тому, что сеть не сможет обрабатывать достаточно информации для задачи классификации изображений, в то время как большое рецептивное поле может привести к переоснащению. В лекции также затрагивается важность введения нелинейностей за счет использования функций активации в CNN. Профессор объясняет, что, хотя две разные свертки могут иметь одно и то же рецептивное поле, их выходы не будут одинаковыми из-за введения нелинейностей через функции активации.

  • 00:55:00 В этом разделе лектор представляет объединение слоев как метод увеличения восприимчивого поля сверточных нейронных сетей без добавления слишком большого количества слоев, которые могут сделать модель слишком большой. Слои объединения включают в себя просмотр квадратных областей входных данных и применение либо максимальных, либо средних операций. Например, максимальное объединение два на два позволяет модели выбирать только одно значение из каждого фрагмента из четырех пикселей, тем самым уменьшая размеры входных данных на два. Лектор также объясняет, как максимальное объединение сохраняет важную информацию из локальной области, что делает его общим для уменьшения пространственных измерений активации.
  • 01:00:00 В этом разделе спикер обсуждает различные методы сохранения высоты и ширины изображения во время сверток, в том числе процесс отступа и одинаковый отступ. То же заполнение — это когда вы искусственно увеличиваете размер ввода, окружая его нулями или другими константами, чтобы сохранить пространственные размеры карты активации. Это предпочтение в сообществе глубокого обучения, но нет эмпирических доказательств того, что это приводит к более высокой производительности по сравнению с обычным дополнением. Кроме того, спикер обсуждает концепцию шага в свертках и то, как он может иметь тот же эффект, что и объединяющий слой.

  • 01:05:00 В этом разделе лектор обсуждает использование шага в сверточных слоях, которые могут действовать как приближение к объединяющему слою в компьютерном зрении. Он объясняет, что использование шага, превышающего единицу, похоже на объединение слоев свертки и объединения, но не дает при этом каких-либо особых преимуществ. Он также представляет формулу для определения размеров активации вывода, которые зависят от таких факторов, как исходные размеры ввода, размер фильтра, размер заполнения и шаги. Затем лектор объясняет, как можно выполнить обратное распространение градиентов через сверточные слои, подчеркнув, что PyTorch упрощает определение сверточных слоев с использованием нескольких параметров.

  • 01:10:00 В этом разделе лектор обсуждает гиперпараметры сверточных слоев и то, как они составляют анатомию CNN. Эти гиперпараметры включают размер ядра, шаг, отступы и слои объединения. Лектор объясняет, что сверточный слой можно рассматривать как средство извлечения признаков, которое преобразует многомерные входные данные в низкоразмерные блоки признаков, которые можно передать в полносвязную сеть для задачи классификации. На выходе сверточного слоя в конце получается низкоразмерный блок признаков, который можно передать в MLP внутри красного прямоугольника, который является классификатором. Наконец, лектор объясняет, что существуют разные типы слоев пула, но нормой в сообществе глубокого обучения является использование максимального пула вместо среднего пула.

  • 01:15:00 В этом разделе видео объясняет структуру сверточной нейронной сети (CNN) на реальном примере. Сеть под названием LeNet была разработана Яном Лакуном для классификации рукописных цифр. В видео объясняется, что сеть LeNet берет входные данные и сворачивает их в карты объектов, растягивает эти карты до меньших размеров, применяет еще одну свертку и объединение до тех пор, пока не получит меньшее представление входных данных, прежде чем пропустить их через полностью связанные слои для получения выходных данных. представляющий одну из десяти возможных цифр. Далее в видео объясняются варианты дизайна для архитектур CNN, такие как наложение свертки, ReLU и слои объединения, а также использование слоев пакетной нормализации для повышения стабильности обучения. Наконец, в видео обсуждаются некоторые часто используемые наборы данных в компьютерном зрении, такие как набор данных классификации рукописных цифр MNIST и набор данных CIFAR-10.

  • 01:20:00 В этом разделе лекции инструктор обсуждает несколько популярных наборов данных компьютерного зрения, включая MNIST, CIFAR-10 и ImageNet. В частности, набор данных ImageNet представляет собой набор данных из миллиона изображений, который широко использовался в качестве эталона для оценки алгоритмов компьютерного зрения. Преподаватель также подчеркивает важность нормализации данных изображения перед их передачей в нейронную сеть и сложность сбора и маркировки данных, которая требует тщательного рассмотрения, чтобы гарантировать, что данные получены из аналогичного распределения. Кроме того, больший объем данных может помочь предотвратить переоснащение, но сбор больших наборов данных может быть дорогостоящим и трудоемким.

  • 01:25:00 В этом разделе лекция посвящена теме увеличения данных, когда можно искусственно создать больше данных из одного изображения, внеся небольшие изменения в его яркость, контрастность, цвет, обрезав, перевернув или повернув изображение, и назначив присвойте им одну и ту же метку для создания новых наборов обучающих данных. Этот метод является очень дешевым и простым способом создания новых данных из уже существующих наборов данных. Кроме того, в лекции также подчеркивается важность контрольных точек модели при обучении сверточных нейронных сетей, поскольку время обучения обычно занимает от нескольких часов до нескольких дней или даже недель, а потеря прогресса из-за внезапного прерывания, такого как сбой машины или случайное отключение, может быть дорогостоящей. Крайне важно хранить моментальные снимки скорости модели на разных этапах процесса обучения, чтобы продолжить с последнего моментального снимка, если обучение будет прервано.
CS 198-126: Lecture 5 - Intro to Computer Vision
CS 198-126: Lecture 5 - Intro to Computer Vision
  • 2022.12.03
  • www.youtube.com
Lecture 5 - Intro to Computer VisionCS 198-126: Modern Computer Vision and Deep LearningUniversity of California, BerkeleyPlease visit https://ml.berkeley.ed...
 

CS 198-126: Лекция 6 - Расширенные архитектуры компьютерного зрения



CS 198-126: Лекция 6 - Расширенные архитектуры компьютерного зрения

Эта лекция о передовых архитектурах компьютерного зрения посвящена сверточным нейронным сетям (CNN) и их различным методам. Лектор объясняет архитектуру AlexNet и VGG, а затем углубляется в передовые методы, такие как остаточные значения для поддержания остаточных значений для более высокой точности и более простых архитектур. Обсуждается использование узких мест и сверток один за другим, а также важность возможности изучения идентичности в архитектурах компьютерного зрения. В лекции также рассматриваются проблемы исчезающих градиентов в нейронных сетях и то, как их можно облегчить с помощью пакетной нормализации и остаточных сетей. Подробно объясняются такие методы, как глобальное среднее пулирование и свертка с разделением по глубине, после чего следует обсуждение архитектуры мобильной сети и ее преимуществ.

Также лектор исследует передовые архитектуры компьютерного зрения и фокусируется на оптимизации моделей сверточных нейронных сетей с использованием пошаговых локальных сверток и сверток один за другим. Он подчеркивает важность понимания этих оптимизаций и проблем, которые могут возникнуть с некоторыми оптимизациями при эффективном построении будущих сетей. Лекция завершается обсуждением компромисса между точностью, производительностью и размером модели, выделенного сравнением эффективной сетевой модели с другими сетями. Учащихся уведомляют о предстоящей викторине и домашнем задании, которое нужно выполнить в следующую пятницу.

  • 00:05:00 В этом разделе спикер начинает с повторения предыдущей лекции, а затем углубляется в более продвинутые архитектуры CNN. Они извиняются за грубое вступление в последней лекции и вносят последние правки перед началом. Происходит короткий обмен мнениями о микрофоне, но затем оратор перескакивает в лекцию.

  • 00:10:00 В этом разделе спикер рассматривает архитектуру сверточной нейронной сети (CNN) и ее отличия от стандартной плотной нейронной сети. Докладчик поясняет, что сверточный слой в CNN аналогичен слою в плотной нейронной сети с изученными параметрами, такими как фильтры и условия смещения. Докладчик объясняет, как фильтр создает выходную карту для каждого местоположения на входе, а несколько фильтров генерируют разные выходные каналы. Докладчик также объясняет, как можно использовать слой пула для уменьшения размера выходного тома. В целом спикер подчеркивает, что механика CNN похожа на плотную нейронную сеть, где свертки заменяют матричное умножение.

  • 00:15:00 В этом разделе спикер объясняет использование максимального пула в сверточных нейронных сетях для уменьшения размера объема признаков и ускорения сверток. Этот метод включает в себя получение максимального значения в каждом маленьком квадрате объема функции и использование его в качестве вывода. Докладчик также затрагивает концепцию сегментации, которая включает в себя маркировку каждого пикселя изображения определенной классификацией, и отмечает, что для этой задачи выходной размер будет таким же, как и входной размер. Раздел заканчивается кратким введением в передовые архитектуры CNN, с акцентом на ResNet как на наиболее важную из лекций.

  • 00:20:00 В этом разделе лектор обсуждает различные архитектуры компьютерного зрения с акцентом на сверточные нейронные сети (CNN). Лекция начинается с обсуждения мотивации CNN, которая включает в себя наложение сверточных слоев и слоев объединения для синтеза информации из низкоуровневых функций и ее обработки до более высоких функций. Затем лекция переходит к обсуждению архитектуры AlexNet, которая стала новаторским достижением, позволившим достичь уровня ошибок около 17% в ImageNet в 2012 году. Однако лектор отмечает, что эти архитектуры больше не являются современными, так как были достигнуты успехи в архитектуре трансформаторов, которые будут обсуждаться в последующих лекциях.

  • 00:25:00 В этом разделе спикер обсуждает архитектуру AlexNet и VGG, двух широко используемых нейронных сетей компьютерного зрения. AlexNet включает пять сверточных слоев, при этом конечным результатом является сглаженный одномерный вектор, пропущенный через три плотных слоя, и функция softmax для создания прогнозируемого класса. С другой стороны, VGG имеет 23 сверточных слоя и три плотных слоя. Кроме того, спикер подчеркивает использование сверток «один за другим» в качестве формы заполнения, а также добавления и уменьшения размерности.

  • 00:30:00 В этом разделе лектор обсуждает продвинутые архитектуры компьютерного зрения, уделяя особое внимание сверточным нейронным сетям (CNN). В лекции особое внимание уделяется использованию сверток «один за другим» для сохранения размера входных данных, а также комбинации сверток по глубине и точечных для повышения эффективности вычислений. В лекции также подчеркивается важность изучения низкоуровневых функций на более ранних этапах классификатора и описываются проблемы со слепым наложением слоев. Чтобы решить эти проблемы, лекция объясняет использование остатков для поддержания остаточных значений в обратном направлении, что приводит к более высокой точности и упрощению архитектуры.

  • 00:35:00 В этом разделе лекции обсуждается понятие остатков в глубоких сверточных нейронных сетях. Хотя добавление дополнительных слоев не должно снижать точность, поскольку преобразование идентичности можно изучить, на практике добавление дополнительных слоев влияет на предыдущие идентичности после преобразования, что приводит к исчезновению градиентов, взрыву градиентов и разрушению градиентов. Остатки решают эту проблему, сохраняя информацию с предыдущих этапов для будущих вычислений, упрощая изучение преобразования идентичности. В лекции также обсуждаются узкие места в обработке остатков, когда добавление остатков увеличивает время сходимости, но не обязательно результаты. Решением этой проблемы является настройка размера и частоты узкого места.

  • 00:40:00 В этом разделе лекции спикер обсуждает важность возможности изучения идентичности в архитектурах компьютерного зрения. Они объясняют, что если все веса и смещения сети равны нулю, сеть будет выводить то же самое, что она принимает, что облегчает ей распознавание того, когда у нее достаточно информации, чтобы сделать хорошую классификацию и прекратить обучение. более сложные функции. Докладчик также затронул вопрос выбора количества слоев в сети, причем два — это обычный выбор в архитектуре ResNet.

  • 00:45:00 В этом разделе лекции ведущий обсуждает проблему исчезающих градиентов в нейросетях и как это может повлиять на обновления весов. Проблема исчезающего градиента возникает, когда частные производные отдельных шагов становятся слишком маленькими в цепочке умножения или слишком большими, что может вызвать проблемы с последовательным обновлением весов. В презентации также рассказывается о том, как пакетная нормализация и остаточные сети помогают решить проблему исчезающего градиента. Затем лекция переходит к обсуждению глобального среднего пула, который используется для замены полносвязных слоев в сверточных нейронных сетях (CNN) и создания карт признаков для каждой категории в задачах классификации.

  • 00:50:00 В этом разделе лекции спикер обсуждает, как использование плотных слоев в нейронных сетях часто приводит к переобучению и снижению производительности. Чтобы предотвратить это, они предлагают использовать глобальное усреднение (GAP), которое генерирует карты функций, усредняет их и передает их в функцию softmax без настройки каких-либо параметров. Докладчик также представляет концепцию разделимых по глубине сверток, которые используют карты признаков более низкого измерения для каждого канала отдельно перед их разумным объединением, чтобы сократить объем вычислений и сохранить данные из каждого канала. Этот метод особенно важен для масштабирования вычислений по широкому диапазону фильтров в глубоких нейронных сетях.

  • 00:55:00 В этом разделе лекции спикер обсуждает архитектуру мобильной сети, которая использует глубину и поточечную свертку для уменьшения количества вычислений, необходимых для изображения. Применяя слой «один к трем» к каждому каналу изображения, а затем объединяя результаты и применяя к ним меньшую поточечную свертку, достигается результат, значительно сокращающий количество вычислений. Архитектура мобильной сети имеет меньше параметров и быстрее сходится, при этом обеспечивая точность Inception of D3. Спикер также продолжает обсуждение сжимающих и захватывающих сетей, где вы можете сжимать и расширять карты объектов, используя плотные слои и масштабирование, что требует меньше вычислительных ресурсов.

  • 01:00:00 В этом разделе лектор обсуждает, как можно использовать пошаговые локальные свертки и поочередные свертки для оптимизации модели сверточной нейронной сети (CNN). Он также упоминает, как понимание оптимизаций и проблем, с которыми сталкиваются некоторые оптимизации, может помочь более эффективно создавать будущие сети. Лекция завершается сравнением точности, производительности и размера модели эффективной сети с другими сетями, подчеркивая, что между этими показателями всегда существует компромисс.
CS 198-126: Lecture 6 - Advanced Computer Vision Architectures
CS 198-126: Lecture 6 - Advanced Computer Vision Architectures
  • 2022.12.03
  • www.youtube.com
Lecture 6 - Advanced Computer Vision ArchitecturesCS 198-126: Modern Computer Vision and Deep LearningUniversity of California, BerkeleyPlease visit https://...
 

CS 198-126: Лекция 7 - Обнаружение объектов



CS 198-126: Лекция 7 - Обнаружение объектов

В лекции обсуждается обнаружение объектов, в частности добавление локализации к простой классификации CNN, метод IOU для обнаружения объектов, система R-CNN и оптимизация алгоритмов обнаружения объектов для минимизации времени обработки с помощью YOLO. Видео объясняет YOLO, нарезая изображение, и обсуждает проблемы с обнаружением объектов YOLO, в том числе использование блоков привязки для устранения двусмысленности. Наконец, исследуется архитектура YOLO, которая представляет собой полностью сверточную нейронную сеть для обнаружения объектов, а хранение большого количества классов для классификации представлено как постоянный исследовательский вопрос. Спикер рекомендует прочитать «Желтую газету», но не советует RCNN из-за нечитабельности.

  • 00:00:00 В этом разделе лектор обсуждает процесс добавления локализации в простую классификацию CNN для обнаружения ориентиров. Добавляя выход X и Y в сеть, сеть выводит точное местоположение определенной функции на изображении, например, носа животного. Затем лектор объясняет, как расширить эту сеть, добавив больше выходных данных, чтобы получить ограничивающую рамку для кошки в целом. Лектор также исследует различные идеи расширения сети, чтобы придумать ограничивающую рамку, и процесс обучения сети выполнению этой расширенной задачи.

  • 00:05:00 В этом разделе лектор обсуждает метод IOU (intersection over Union) для обнаружения объектов. Этот подход направлен на максимальное перекрытие между предсказанной ограничивающей рамкой и реальной ограничивающей рамкой путем вычисления площади пересечения и деления ее на площадь Союза. Лектор объясняет, что чем ближе это значение к 1, тем лучше детекция. Кроме того, лектор затрагивает проблемы обнаружения нескольких объектов на одном изображении, упоминая базовое решение с использованием исчерпывающего поиска или скользящих окон. Однако этот подход имеет серьезные проблемы, в том числе неэффективность и необходимость слишком большой вычислительной мощности.

  • 00:10:00 В этом разделе спикер обсуждает предлагаемое решение проблемы низких соотношений сторон при обнаружении объектов, которым является система под названием R-CNN. Его основная идея состоит в том, чтобы угадывать вероятные ограничивающие рамки и запускать их классификацию, используя классические алгоритмы немашинного обучения для сегментации изображения и предложения набора ограничивающих рамок для объектов. Этот подход работает, потому что края изображения, скорее всего, будут границами ограничивающей рамки. Алгоритм также использует немаксимальное подавление для устранения избыточности, вызванной потенциальной классификацией одного и того же объекта несколько раз. Однако эта система по-прежнему медленная, потому что большинство изображений имеют тысячи различных областей сегментации, в зависимости от того, как определен классический алгоритм.

  • 00:15:00 В этом разделе лектор объясняет, как оптимизировать алгоритмы обнаружения объектов, чтобы минимизировать время обработки. Один из способов — создать карту объектов, которая извлекает ключевую информацию из изображения, а затем выполнять классификацию только в той части карты объектов, которая необходима для обнаружения каждого объекта, что избавляет от необходимости каждый раз повторно запускать полную сверточную нейронную сеть. Затем лектор знакомит с YOLO, алгоритмом обнаружения объектов, в котором используется единая сверточная нейронная сеть для вывода местоположения и ограничивающих рамок нескольких объектов на изображении. Архитектура YOLO состоит из сверточных слоев и слоя классификации, что позволяет сократить время обработки и одновременное обнаружение нескольких объектов.

  • 00:20:00 В этом разделе видео объясняет, как работает YOLO (You Only Look Once), разбивая изображение на сетку, где каждая сетка представляет один вектор классификации или ограничивающую рамку. Теоретически это означает, что количество объектов, которые можно классифицировать, равно количеству сеток на изображении. YOLO также использует ширину и высоту XY, где координата XY является серединой ограничивающей рамки, а ширина и высота — размером рамки. Затем в видео объясняется немаксимальное подавление — процесс, который устраняет перекрытия и выбирает наилучшую ограничивающую рамку с наивысшей достоверностью для каждого графика классификации.

  • 00:25:00 В этом разделе мы узнаем о проблемах с обнаружением объектов YOLO, в том числе о том, что несколько объектов находятся в центре одной и той же ячейки, и о том, как выводить несколько классификаций и ограничивающих рамок в одной ячейке. Решением этой проблемы является использование блоков привязки, где перед классификацией определяются общие ограничивающие блоки, а набор данных классифицируется на основе сходства с этими блоками привязки. Это позволяет детерминистически определить, какой объект следует отнести к какому вектору, и устраняет неоднозначность дублирующихся ограничивающих рамок.

  • 00:30:00 В этом разделе обсуждается архитектура YOLO, которая представляет собой полностью сверточную нейронную сеть для обнаружения объектов. Сеть YOLO выполняет один проход по изображению и проста по конструкции, исключая классические компоненты, такие как скользящие окна. Используя якорные ящики и другие методы, YOLO может соответствовать точности RCNN, резко повышая его скорость. Кроме того, исследуется концепция якорных блоков, которые представляют собой геометрические фигуры, соответствующие объектам на изображении. Трудно обнаружить объекты с якорными блоками одинаковой формы и размера, которые перекрывают друг друга. Однако существуют алгоритмы, которые могут найти математически оптимальные блоки привязки для разделения этих объектов. Наконец, обсуждение касается хранения большого количества классов для классификации, что все еще является вопросом классификации, который в настоящее время изучается исследователями.

  • 00:35:00 В этом разделе спикер рекомендует техническую статью под названием «Желтая книга» для тех, кто интересуется чтением об обнаружении объектов. С другой стороны, спикер советует не читать RCNN из-за его нечитабельности. Докладчик предлагает аудитории задать любые вопросы, прежде чем завершить лекцию.
CS 198-126: Lecture 7 - Object Detection
CS 198-126: Lecture 7 - Object Detection
  • 2022.12.03
  • www.youtube.com
Lecture 7 - Object DetectionCS 198-126: Modern Computer Vision and Deep LearningUniversity of California, BerkeleyPlease visit https://ml.berkeley.edu/decal/...
 

CS 198-126: Лекция 8 - Семантическая сегментация



CS 198-126: Лекция 8 - Семантическая сегментация

В лекции обсуждается сегментация изображений, в том числе семантическая сегментация и сегментация экземпляров. Основная цель сегментации — обнаружить все объекты на изображении и выделить их. Лектор объясняет, как сверточная нейронная сеть (CNN) может использоваться для семантической сегментации и как субдискретизация может помочь с дорогостоящими в вычислительном отношении изображениями с полным разрешением. Также обсуждаются различные подходы к преобразованию небольшого объема обратно в размер изображения. Лекция представляет U-Net, модель семантической сегментации, которая сочетает в себе предыдущие улучшения с пропуском соединений, и объясняет, как ее можно расширить до сегментации экземпляров с использованием подхода Mask R-CNN. Демонстрируется предварительно обученная модель семантической сегментации, а спикер рассказывает о предобучении и предстоящих заданиях курса.

  • 00:00:00 В этом разделе лекция посвящена сегментации изображений, в частности, семантической сегментации и сегментации экземпляров. Семантическая сегментация включает в себя поиск конкретных пикселей, в которых присутствует объект на изображении, в то время как сегментация экземпляров определяет, где каждый экземпляр каждого класса находится на изображении. Конечная цель сегментации — обнаружить все объекты на изображении и выделить их. Этот метод полезен, потому что люди воспринимают объекты через комбинацию отдельных компонентов, и способность более конкретно идентифицировать и классифицировать эти компоненты имеет важное значение. Сегментация предлагает полезные приложения, такие как обнаружение объектов и идентификация отношений между объектами.

  • 00:05:00 В этом разделе лектор обсуждает концепцию сегментации и подход к ней. Идея состоит в том, чтобы создать связанные сегменты, группируя их по какому-то критерию сходства. Классический подход к этому заключался в том, чтобы определить функцию для группировки пикселей на основе их сходства в некотором показателе, таком как интенсивность. Однако лектор упоминает более новые подходы к глубокому обучению, такие как скользящие окна, которые могут научиться выполнять сегментацию вместо использования фиксированного алгоритма.

  • 00:10:00 В этом разделе спикер объясняет, как сверточная нейронная сеть (CNN) может использоваться для семантической сегментации. Вместо того, чтобы запускать подход скользящего окна CNN несколько раз, вместо этого можно использовать операцию свертки. Это позволяет добиться желаемых эффектов без неэффективного пересчета общих функций. Сверточный слой можно использовать как фильтр для изображения, а выходной слой будет отображать один к одному исходное изображение, независимо от его размера. Заполнение также можно использовать для обработки случаев, когда размер ввода меньше размера фильтра.

  • 00:15:00 В этом разделе лектор обсуждает проблему субдискретизации больших изображений, чтобы сделать семантическую сегментацию более осуществимой, поскольку обработка изображений с полным разрешением может потребовать больших вычислительных ресурсов. Решение состоит в том, чтобы постепенно понижать разрешение изображения с каждым слоем свертки и удалять избыточную информацию, создавая меньший объем для работы. Это изображение с пониженной дискретизацией затем подвергается повышающей дискретизации в конце для создания карты сегментации исходного изображения, где каждый пиксель сегментируется в определенный класс на основе максимального результата классификации. В лекции также кратко обсуждаются различные подходы к заполнению и обработке краев изображений.

  • 00:20:00 В этом разделе инструктор обсуждает различные подходы к преобразованию небольшого объема, например карты сегментации, обратно в изображение размером с исходное входное изображение. Классический подход включает в себя увеличение изображения и использование функций интерполяции, таких как ближайший сосед или линейная интерполяция, для заполнения дополнительного пространства. Однако такой подход может привести к некоторой потере деталей. Преподаватель предлагает изученный подход, который использует деконволюцию, которая включает передачу входного слоя по выходному слою и удаление пикселей на исходном входном изображении один за другим. Преподаватель дает краткий обзор сверток и объясняет, как работает деконволюция, меняя местами входной и выходной слои.

  • 00:25:00 В этом разделе лектор приводит пример простого входного изображения и объясняет метод декомпозиции, который включает просмотр каждого пикселя входного изображения и использование фильтра для проецирования его на выходное изображение. Лектор отмечает ограничение этого метода в том, что он может перезаписывать уже записанные значения. Чтобы решить эту проблему, лектор представляет пошаговый подход, включающий сверточные свертки для понижения дискретизации входного изображения до представления с низким разрешением, а затем использование D-сверток для повышения его дискретизации до исходного размера. Лектор отмечает, что этот метод выгоден тем, что изучается повышающая выборка, а не просто классический алгоритм, который обеспечивает большую адаптивность и уточнение форм.

  • 00:30:00 В этом разделе мы узнаем об U-Net, модели семантической сегментации, которая сочетает в себе предыдущие усовершенствования с пропуском соединений. Пропускные соединения позволяют извлекать информацию с разных уровней пути понижающей дискретизации при повышающей дискретизации. Существуют также различные варианты U-Net, такие как модели семейства Deep Flat и модели на основе Transformer, такие как Sendformer. U-Net также можно расширить для решения проблемы сегментации экземпляров с помощью подхода Mask R-CNN, который предсказывает расположение объектов в пределах идентифицированного значения.

  • 00:35:00 В этом разделе лектор обсуждает полную сегментацию экземпляров с использованием Mask R-CNN, которая полезна для беспилотных автомобилей, обнаруживающих очертания объектов, таких как автомобили, пешеходы или рюкзаки. Лектор объясняет, как потенциальная ограничивающая рамка сжимается в изображение фиксированного размера и классифицируется. Метки для объектов собираются с помощью различных методов, таких как привлечение людей или использование вспомогательных методов. Матрица изучается так же, как фильтр, и при выводе изображения из эксплуатации лектор объясняет, что это проекция, в которой фильтр умножается на каждое соответствующее значение пикселя, а затем повторяется по изображению, что на самом деле не инвертирует свертка. .

  • 00:40:00 В этом разделе лектор и студент демонстрируют предварительно обученную модель семантической сегментации, которая была обучена на облачном графическом процессоре. Модель запускается на изображении из Японии, и результаты показывают, что модель может обнаруживать несколько объектов с разной точностью. Учащийся также упоминает, что к модели можно применить порог оценки, чтобы отфильтровать информацию с низкими оценками точности. В целом, демонстрация служит примером того, как семантическая сегментация может применяться к изображениям реального мира.

  • 00:45:00 В этом разделе спикер рассказывает о предварительном обучении и о том, как можно предварительно обучить модель на AWS и других разгруженных сервисах. Они также упоминают обязательное назначение резидента и рекомендуемую дополнительную единицу, которая включает сегментацию. Сроки выполнения и ссылки указаны на веб-сайте курса, и они побуждают студентов приходить в рабочее время с любыми вопросами. В целом, в этом разделе представлена некоторая логистическая информация о курсе и предстоящих заданиях.
CS 198-126: Lecture 8 - Semantic Segmentation
CS 198-126: Lecture 8 - Semantic Segmentation
  • 2022.12.03
  • www.youtube.com
Lecture 8 - Semantic SegmentationCS 198-126: Modern Computer Vision and Deep LearningUniversity of California, BerkeleyPlease visit https://ml.berkeley.edu/d...
 

CS 198-126: Лекция 9 - Автоэнкодеры, VAE, генеративное моделирование



CS 198-126: Лекция 9 - Автоэнкодеры, VAE, генеративное моделирование

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

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

  • 00:05:00 В этом разделе лектор обсуждает сжатие изображений и то, как оно зависит от понимания данных на каком-то уровне. Сжатие может сэкономить место и уменьшить количество битов, необходимых для отправки изображения по сети. Алгоритм JPEG работает, отбрасывая часть высокочастотной информации и отношений пикселей к пикселям, которые не имеют решающего значения для человеческого восприятия. Затем лектор предполагает, что для определенных типов изображений, таких как изображения кошек, могут быть разработаны более продвинутые схемы сжатия с более глубоким знанием того, как изображение структурировано, помимо корреляции пикселей. В целом, алгоритмы сжатия подчеркивают важность понимания данных в машинном обучении.

  • 00:10:00 В этом разделе лектор обсуждает концепцию автокодировщиков, типа нейронной сети, используемой для изучения признаков, которая использует структуру кодер-декодер для сжатия входных данных и последующего их восстановления. Он сравнивает его с более ранними методами, такими как собственные грани, которые использовали PCA для извлечения признаков, и показывает структуру сети автоэнкодера. Часть кодировщика сокращает входные данные до уровня узкого места, а часть декодера восстанавливает их обратно в исходную форму. Цель состоит в том, чтобы свести к минимуму разницу между исходными и реконструированными данными. Лектор поднимает вопрос о том, почему сеть, которая производит тот же вывод, что и ввод, может быть полезной, и объясняет, что ключ заключается в изученных особенностях данных, которые можно использовать для других задач.

  • 00:15:00 В этом разделе лекции инструктор объясняет концепцию слоя узких мест в автоэнкодерах и то, как он заставляет сеть сжимать входные данные, тем самым изучая некоторые особенности данных. Он также обсуждает ограничения этой сетевой структуры и желательные свойства кода, такие как его небольшой размер и сходство кодов для похожих изображений. Преподаватель знакомит с концепцией вариационных автоэнкодеров, которые основаны на автоэнкодерах, но обладают волшебными свойствами, которые позволяют получать разумные результаты, когда к скрытым векторам применяются различные операции. Затем он обсуждает генеративную основу для генерации изображений и текста, которая включает в себя выборку скрытого вектора, содержащего информацию об изображении или тексте, которые необходимо сгенерировать.

  • 00:20:00 В этом разделе лекции спикер обсуждает использование скрытых векторов как способ представления признаков или «генов» в наборе данных лиц. Скрытый вектор действует как своего рода распределение вероятностей по возможным наборам генов для индивидуума, а структура лица является функцией генов в этом наборе. Кодер берет входное изображение и создает скрытый вектор, а декодер берет этот скрытый вектор и производит оценку исходного изображения. Чтобы наложить структуру на скрытое пространство, используются вероятностные кодировки.

  • 00:25:00 В этом разделе лекции спикер объясняет использование вероятностных распределений при сопоставлении входных данных с областью возможных выходных данных, чтобы заставить близлежащие векторы в скрытом пространстве декодироваться в похожие изображения. Эта концепция важна для вариационных автоэнкодеров (VAE), которые используют распределение Гаусса для вывода параметров круга в скрытом пространстве, из которого выбирается код. Потеря VAE включает в себя условие реконструкции и условие, которое заставляет выходные данные кодера выглядеть как нормальное распределение, не позволяя ему обучаться только одной точке для вывода и вместо этого поощряя большие наборы, которые должны быть закодированы в одну и ту же точку. Докладчик отмечает противоположные цели в этой потере, в которой автоэнкодер предпочел бы отображать каждый ввод в одну точку, но дополнительный член вынуждает точки быть близко к центру плоскости и иметь некоторую дисперсию, что приводит к дискам вместо отдельные точки.

  • 00:30:00 В этом разделе лекции спикер обсуждает преимущества использования структурированных скрытых пространств в автоэнкодерах. Применяя структуру в скрытом пространстве, автоэнкодеры могут эффективно интерполировать изображения, что показано в популярной онлайн-демонстрации, где пользователи могут перемещать ползунок между двумя лицами знаменитостей и видеть, как ползунок разумно интерполирует между двумя лицами. Спикер объясняет, что это стало возможным благодаря использованию вариационного автоэнкодера, который заставляет скрытые векторы жить вместе в одном пространстве и декодировать близлежащие точки из близлежащих векторов. Докладчик отмечает, что, хотя детали обучения вариационных автоэнкодеров могут быть сложными из-за используемой выборки, подход является произвольным и может быть изменен для соответствия различным приложениям.

  • 00:35:00 В этом разделе лекции спикер обсуждает, как использование дискретных токенов необходимо для определенных областей, таких как обработка естественного языка (NLP), поскольку трудно определить, что означает изменение слова определенным процент. В результате он обсуждает использование векторного квантования в качестве хака для расширения вариационных автоэнкодеров (VAE) для работы с дискретными токенами. При векторном квантовании кодовая книга действительных токенов используется для округления любых выходных векторов из VAE до ближайшего токена, что обеспечивает лучшее представление дискретных данных. Однако выбор кодовой книги остается проблемой.

  • 00:40:00 В этом разделе докладчик обсуждает функцию потерь для вариационного автоэнкодера (VAE), которая используется для изучения расположения кодовых слов, соответствующих различным кластерам в распределении данных. Функция потерь включает в себя потери при реконструкции, которые гарантируют, что выходные данные декодера будут аналогичны входным данным, и потери фиксации, которые гарантируют, что векторы, полученные от кодера, близки к кодовым словам, представляющим центры этих кластеров. Чтобы предотвратить жесткое кодирование входных данных сетью, кодировщик создает несколько кодовых слов для каждого входа, что приводит к увеличению набора кодовых слов и позволяет сети генерировать большее разнообразие выходных данных.

  • 00:45:00 В этом разделе видео ведущий обсуждает метод создания новых изображений с помощью VQ-VAE путем выборки некоторого C из нормального распределения и пропускания его через декодер, в результате чего получается новое изображение, которое еще не было видел раньше. Кроме того, ведущий объясняет, что однородная выборка элементов кодовой книги может быть неэффективной, поскольку некоторые кодовые слова используются чаще, чем другие, в истинном распределении данных. Следовательно, изучение априорных кодовых слов может быть полезным при создании новых данных. Наконец, докладчик делает резюме лекции, начиная с автокодировщиков, переходя к вариационным автокодировщикам и заканчивая вариационными автокодировщиками с векторным квантованием.
CS 198-126: Lecture 9 - Autoencoders, VAEs, Generative Modeling
CS 198-126: Lecture 9 - Autoencoders, VAEs, Generative Modeling
  • 2022.12.03
  • www.youtube.com
Lecture 9 - Autoencoders, VAEs, Generative ModelingCS 198-126: Modern Computer Vision and Deep LearningUniversity of California, BerkeleyPlease visit https:/...
 

CS 198-126: Лекция 10 - GAN



CS 198-126: Лекция 10 - GAN

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

  • 00:00:00 В этом разделе лектор проводит обзор скрытых переменных и кодов, используемых для сжатия и преобразования изображений в более сжатые представления. Также представлена идея использования автоэнкодеров для генерации новых изображений из скрытого вектора. Лектор отмечает сложность оценки того, что делает изображение хорошим, реалистичным, и именно здесь в игру вступают GAN (генеративно-состязательные сети). С двумя сетями, одна из которых генерирует данные, а другая пытается определить, настоящие они или фальшивые, сети соревнуются друг с другом в настройке, похожей на теорию игр. Дискриминатор выигрывает, когда правильно классифицирует изображения, а генератор выигрывает, когда обманывает дискриминатор.

  • 00:05:00 В этом разделе инструктор объясняет концепцию высокого уровня, лежащую в основе GAN, в которой участвуют две сети — дискриминатор и генератор — конкурирующие друг с другом. В отличие от автоэнкодеров, где узкое место находится посередине, в GAN есть что-то среднее между генератором и дискриминатором, гораздо более многомерное. На вход генератора подается какой-то случайный вектор шума, выбранный из многомерной гауссианы. Затем генератор получает переменную скрытого шума и решает, как присвоить ей случайное значение, чтобы он мог генерировать целый набор входных данных или целый набор реально выглядящих изображений. Сети дискриминатора и генератора обучаются совместно с помощью градиентного спуска, чередующегося между ними, с целью обмануть другую сеть.

  • 00:10:00 В этом разделе лектор объясняет, как работают GAN, имея сеть, которой передаются реальные и поддельные данные, чтобы обучить генератор выявлять шаблоны, которые делают изображения реальными. Дискриминатор — это тот, кто оценивает, является ли изображение реальным или фальшивым, и по мере того, как он учится, он начинает замечать закономерности и обновлять свое суждение. Надежда состоит в том, что генератор научится улучшать себя, создавая что-то с большей формой или объектами, которые имеют смысл в контексте сцены. Функция потерь для GAN состоит только из потери классификации от дискриминатора, а оценка генератора противоположна ей. Чтобы обучить генератор, дискриминатор должен хорошо оценивать изображение, чтобы обеспечить обратную связь с генератором.

  • 00:15:00 В этом разделе лектор объясняет важность способности дискриминатора точно классифицировать изображения для улучшения генератора. Дискриминатор может нуждаться в обновлении больше, чем генератор, чтобы он мог различать значимую разницу между реальными и сгенерированными изображениями. Затем лектор разбивает функцию потерь, которая соответствует отрицательной кросс-энтропийной потере, при этом генератор хочет минимизировать ее, а дискриминатор хочет ее максимизировать. Генератор выигрывает, когда его данные выглядят реальными, а дискриминатор выигрывает, когда правильно различает настоящие и поддельные изображения. Две сети находятся в сценарии теории игр, где они соревнуются друг с другом, чтобы развиваться и становиться лучше.

  • 00:20:00 В этом разделе видео докладчики объясняют концепцию функции ценности в GAN, которая противоположна функции потерь, используемой в традиционных моделях машинного обучения. Функция значения показывает, насколько хорошо работает генератор, и должна быть максимизирована дискриминатором путем правильной классификации поддельных и реальных данных. Веса генератора замораживаются на первом этапе, чтобы дискриминатор можно было обучить на пакетах реальных и поддельных данных. На втором этапе дискриминатор замораживается, а веса генератора обновляются, чтобы генерировать несколько более качественные поддельные изображения. Этот процесс повторяется до тех пор, пока генератор не создаст реалистичные изображения, которые даже дискриминатор не сможет классифицировать как фальшивые.

  • 00:25:00 В этом разделе спикер обсуждает условные GAN, которые предоставляют решение для генерации изображений с большим контролем над генерируемыми классами. Текущая настройка GAN требует многократной случайной загрузки генератора до тех пор, пока не будет сгенерирован желаемый объект или изображение, но для наборов данных с большим количеством классов этот подход не идеален. Добавляя однократный вектор к вектору случайного шума, это позволяет генератору иметь больший контроль над генерируемым классом. Горячий вектор соответствует желаемому классу, и генератор обучен генерировать изображение с этим конкретным классом.

  • 00:30:00 В этом разделе лекции спикер обсуждает идею стимулирования генератора использовать определенную функцию в условной модели GAN. Спикер объясняет, что недостаточно просто сказать генератору сгенерировать конкретное изображение, поскольку у генератора нет стимула использовать данную информацию. Решение состоит в том, чтобы также предоставить дискриминатору ту же метку, создав для него стратегию определения того, соответствует ли сгенерированное изображение его метке. Это заставляет генератор обращать внимание на метку, поскольку он хочет избежать обнаружения дискриминатором, что приводит к выводу, соответствующему данной метке. Также обсуждается архитектура как генератора, так и дискриминатора.

  • 00:35:00 общая проблема с GAN, что генератор может перестать обучаться, и если дискриминатор становится слишком хорошим, у генератора нет направления для улучшения. В этом сценарии веса генератора в конечном итоге станут равными нулю. Кроме того, генератор может дать сбой и попасть в коллапс режима, при котором он выводит только небольшой набор примеров, которые хорошо обманывают дискриминатор. Эта проблема возникает из-за того, что дискриминатор изучает сверхчеткие границы решений, а генератор побуждается повторно выводить эти поддельные примеры. Наконец, есть также проблемы с процедурой обучения с GAN, поскольку их ванильная настройка не сходится, а их функция потерь становится плоской.

  • 00:40:00 В этом разделе лектор обсуждает некоторые общие проблемы с GAN, которые могут затруднить их обучение. Одна из проблем заключается в том, что всегда будет компромисс между генератором и дискриминатором, при этом дискриминатор пытается перестроиться на определенные функции в реальных изображениях, и нет четкого способа узнать, когда GAN закончил обучение. Затем лектор переходит к ненасыщающей потере, которая представляет собой простую переформулировку цели генератора, и решает проблему, заключающуюся в том, что генератор получает небольшую частную производную только тогда, когда дискриминатор распознает сгенерированные изображения как поддельные. Ненасыщающие потери максимизируют альтернативный член и позволяют генератору иметь больше возможностей для изменений.

  • 00:45:00 В этом разделе лектор объясняет математический трюк, лежащий в основе кросс-энтропийной потери, используемой в GAN. Вместо того, чтобы слепо пытаться минимизировать отрицательную кросс-энтропийную потерю, цель генератора состоит в том, чтобы максимизировать вероятность того, что он будет классифицирован как единица, используя кросс-энтропийную потерю бинарного класса. Эта ненасыщающая потеря дает большие градиенты генератора, позволяя нам тренироваться быстрее, когда дискриминатор просто выключает генератор. Тем не менее, лектор отмечает, что это продвинутый материал, без викторин или домашних заданий, но они доступны, чтобы больше рассказать о продвинутых методах обучения GAN.
CS 198-126: Lecture 10 - GANs
CS 198-126: Lecture 10 - GANs
  • 2022.12.03
  • www.youtube.com
Lecture 10 - GANsCS 198-126: Modern Computer Vision and Deep LearningUniversity of California, BerkeleyPlease visit https://ml.berkeley.edu/decal/modern-cv t...
 

CS 198-126: Лекция 11 — Продвинутые GAN



CS 198-126: Лекция 11 — Продвинутые GAN

В этой лекции по продвинутым GAN рассматриваются различные методы повышения стабильности и качества моделей GAN, включая билинейную повышающую дискретизацию, транспонированную свертка, условные GAN, StyleGAN и CycleGAN. В лекции также обсуждается использование контролируемого случайного шума, адаптивная нормализация экземпляров и обработка видео в GAN. Для достижения большей стабильности и результатов лектор рекомендует использовать большие размеры пакетов и обрезать диапазон случайного шума во время тестирования, предостерегая при этом от чрезмерного ослабления дискриминатора. Кроме того, предлагается начать с широкого распределения различных размеров скрытого пространства для создания различных изображений. Наконец, лекция касается Big Gan, который помогает генерировать GAN в очень больших масштабах.

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

  • 00:05:00 В этом разделе лектор обсуждает способы повышения дискретизации карт признаков для генераторов в GAN. Сначала он описывает билинейную повышающую дискретизацию, когда новые карты объектов создаются путем взятия пустой карты объектов большего размера и заполнения ее средним значением всех ближайших соседей. Затем он вводит транспонированную свертку, которая дополняет карту объектов таким большим количеством отступов, что к тому времени, когда окно свертки скользит по ней, выходная карта объектов оказывается больше, чем входная. Лектор отмечает, что это наиболее распространенные способы повышения дискретизации карт объектов, и обычно их достаточно, чтобы увеличить размер генераторов.

  • 00:10:00 В этом разделе лекции спикер обсуждает условные GAN и как с ними обращаться в генераторе. Входные данные для генератора теперь включают скрытый и условный вектор, который сообщает ему, что генерировать. Докладчик предлагает объединить векторы вместе или обработать их по отдельности перед объединением. Они также кратко касаются передачи нескольких элементов в дискриминатор. Затем лекция переходит к StyleGAN, новой архитектуре генератора, которая включает в себя художественное чутье и предварительную обработку скрытых векторов перед операциями свертки.

  • 00:15:00 В этом разделе спикер обсуждает необходимость подпитки латентного, чтобы дать всем разным сверткам доступ к закодированному в нем стилю для получения более качественных текстур. Текстура — это случайный шум, и было бы гораздо проще снабдить модель источниками случайности. В этом разделе представлена используемая архитектура, которая разделяет генератор на два разных компонента. Первый искомый, чей скрытый вектор поступает в генератор. Внедрение нужного компонента заключается в предварительной обработке латентного для решения проблемы неиспользуемых латентных пространств, что затрудняет генерацию определенных изображений. Предварительные процессы включают в себя прохождение скрытого через плотные слои, пока у нас не будет нового модифицированного скрытого имени W.

  • 00:20:00 В этом разделе видео обсуждается концепция адаптивной нормализации экземпляров (AdaIN) и то, как она привносит стиль в сеть. AdaIN заменяет пакетную норму и использует вектор стиля, чтобы указать, насколько масштабировать и смещать, что позволяет получать более значимые результаты. Вектор стиля проходит через один полносвязный слой, который используется для изменения масштаба и смещения всех активаций. Конечная цель — расширить доступ к случайности за счет создания большого количества карт признаков, которые представляют собой чисто случайный шум.

  • 00:25:00 В этом разделе лектор обсуждает добавление контролируемого случайного шума к каждой карте объектов, что позволяет сети масштабировать количество шума вверх или вниз на основе изученных значений B. Этот контролируемый случайный шум помогает создавать более качественные текстуры и дефекты, позволяя создавать отдельные волоски и морщины. Контролируемый шум добавляется после каждой свертки и позволяет сети контролировать величину шума. В лекции также обсуждаются новые инновации в стиле GAN, в том числе скрытый вектор, интегрированный в каждый слой, и использование адаптивной нормализации экземпляров для медленного внедрения стиля.

  • 00:30:00 В этом разделе лектор обсуждает два передовых метода GAN: StyleGAN и CycleGAN. StyleGAN генерирует случайные лица со значительным улучшением текстуры за счет случайного шума, а CycleGAN переносит изображения из одного набора данных в другой. Один термин потери посвящен реалистичности преобразованных изображений, а другой измеряет, можно ли восстановить изображение обратно в исходное состояние. CycleGAN может делать реалистичные фотографии и превращать их в картины Моне, превращать зебр в лошадей и изменять времена года на картине. Хотя между кадрами в видео нет согласованности, этот метод все же может дать достойные результаты.

  • 00:35:00 В этом разделе спикер объясняет, что видео можно использовать для обучения дискриминатора распознавать настоящие и поддельные видео, но это требует значительных вычислений по сравнению с обработкой изображений. Видео должно обрабатываться покадрово, но некоторые кадры можно пропустить, чтобы сделать процесс более эффективным. Дискриминатор можно использовать для обеспечения согласованности сгенерированных видео от одного кадра к другому. Более того, спикер советует быть осторожным при использовании моделей GAN в некоторых демонстрациях, таких как превращение обезьяны в лошадь, так как это не всегда может работать эффективно, и результат может быть не таким, как ожидалось. Наконец, спикер обсуждает, как GAN масштабируется, когда большие размеры пакетов и больше данных передаются в более крупные модели, и объясняет некоторые компромиссы между стабильностью, надежностью, разнообразием и качеством.

  • 00:40:00 В этом разделе лектор обсуждает некоторые приемы для повышения стабильности и результатов с помощью GAN. Одним из ключей к лучшей стабильности является использование больших размеров пакетов, что особенно полезно для сложных задач, таких как GAN. Еще один совет — урезать диапазон случайного шума во время тестирования, чтобы избежать результатов, выходящих за рамки опыта модели. Однако это связано с ограничением разнообразия генерируемых изображений. Лектор также подчеркивает, что допущение некоторой нестабильности во время обучения необходимо для достижения хороших результатов, и предостерегает от чрезмерного ослабления дискриминатора.

  • 00:45:00 В этом разделе спикер предостерегает от использования узкого распределения для скрытого пространства, поскольку генератор может многократно генерировать похожие изображения, что затрудняет создание множества изображений. Спикер предлагает начать с широкого распределения разных размеров, чтобы дать модели отличное начальное представление о том, как генерировать изображения. Кроме того, они сообщают, что функция дискриминатора может быть полезна несколькими различными способами, помимо случайного создания одного изображения. Наконец, они представляют Big Gan, который помогает генерировать GAN в очень больших масштабах.
CS 198-126: Lecture 11 - Advanced GANs
CS 198-126: Lecture 11 - Advanced GANs
  • 2022.12.03
  • www.youtube.com
Lecture 11 - Advanced GANsCS 198-126: Modern Computer Vision and Deep LearningUniversity of California, BerkeleyPlease visit https://ml.berkeley.edu/decal/mo...
 

CS 198-126: Лекция 12 - Диффузные модели



CS 198-126: Лекция 12 - Диффузные модели

В этой лекции о моделях диффузии спикер обсуждает интуицию, стоящую за моделями диффузии — предсказание шума, добавляемого к изображению, и его устранение для получения исходного изображения. Лекция охватывает процесс обучения, расширенную архитектуру и примеры моделей распространения при создании изображений и видео. Кроме того, в лекции подробно рассматриваются модели скрытой диффузии, которые сжимают модель в скрытое пространство, чтобы запустить диффузию в семантической части изображения. Докладчик также представляет обзор связанных моделей, таких как Dolly Q, модель Google Imagine и Make a Video от Facebook, а также их способность создавать 3D-модели с использованием текста.

  • 00:00:00 В этом разделе видео спикер знакомит с диффузионными моделями, новым классом генеративных моделей. Они объясняют, что целью генеративных моделей является изучение лежащего в основе распределения данного набора данных, чтобы новые данные могли быть сгенерированы из того же распределения. Спикер также упоминает два основных метода обучения распределений: максимизация правдоподобия или минимизация метрики расхождения. Лекция будет посвящена математике моделей диффузии, и спикер отмечает, что эта лекция будет более математически сложной, чем предыдущие.

  • 00:05:00 В этом разделе лекции о моделях распространения спикер обсуждает использование как вариационных автоэнкодеров (VAE), так и генеративно-состязательных сетей (GAN) в моделировании распределений, имитирующих распределение данных. Спикер объясняет, что обе модели работают, беря выборку из случайного шума и преобразовывая ее во что-то, похожее на то, что она получена из распределения данных. Однако модели диффузии в этом процессе делают несколько крошечных шагов вместо одного большого, что создает цепь Маркова, которую легче анализировать. Диффузионная модель имеет прямой процесс, когда к изображению добавляется шум, а затем добавляется больше шума, чтобы создать зашумленную версию изображения. Существует также обратный процесс, при котором изображение очищается от шума, чтобы вернуться к исходному изображению.

  • 00:10:00 В этом разделе видео лектор объясняет концепцию обратной обработки в моделях диффузии, где новое изображение может быть сгенерировано путем обращения последовательности шагов зашумления. Задача состоит в том, чтобы найти обратное распределение, которое трудно вычислить, используя точное распределение, поэтому аппроксимация выполняется с помощью функции Q и функции P. Функция P представлена нейронной сетью, которая пытается узнать среднее значение и дисперсию обратного распределения, которое считается гауссовым. Видео также охватывает процесс обучения модели диффузии, который требует минимизации или максимизации функции потерь.

  • 00:15:00 В этом разделе лекции спикер обсуждает применение вариационной вариационной нижней границы к диффузионным моделям, в результате чего получается функция потерь, напоминающая сумму меньших функций потерь. Они объясняют, что термины L от 0 до L от T-1 способствуют потерям, и что они сосредоточатся на анализе L от T, который определяется от 1 до T-1. Докладчик продолжает объяснять, как расхождение KL между Q of X T-1 и распределением, которое нейронная сеть пытается предсказать, приводит к члену, который измеряет потерю L2 между изученным средним значением и средним значением из условного распределения. Авторы диффузионных статей предлагают параметризовать мю тэты, изученное мю, в форме, аналогичной Q от X Т-1, чтобы упростить выражение и сделать возможным предсказание одного члена вместо того, чтобы предсказывать все внутри красного прямоугольника.

  • 00:20:00 В этом разделе лектор объясняет основную интуицию, лежащую в основе моделей диффузии, которая состоит в том, чтобы предсказать шум, который был добавлен к изображению, а затем удалить его, чтобы вернуть исходное изображение. Цель состоит в том, чтобы свести к минимуму шум между исходным шумом и прогнозируемым шумом, а процесс обучения включает добавление шума к изображениям в наборе данных, передачу их через модель, прогнозирование шума и минимизацию расстояния между прогнозируемым и фактическим шумом. Затем модель можно использовать для синтеза новых изображений, начиная со случайного шума и удаляя его с помощью предсказанного шума. Лектор также отмечает, что X of T, являющаяся рассеиваемой переменной, не обязательно должна быть изображением.

  • 00:25:00 В этом разделе спикер обсуждает модели диффузии и их способность предсказывать шум изображения с такими же размерами, как вход/выход. Одна модель с такими же размерами — это та же единица измерения, которая использовалась в лекции по сегментации. Тем не менее, авторы статьи добавили в модель множество современных приемов CV, включая блоки resnet, модули внимания, норму захвата и активацию взмахов. Они смогли показать, что он работает очень хорошо, и в более поздней статье было использовано больше временных шагов для дальнейшего улучшения его качества. Спикер также предоставляет изображение и ссылку на слайд, содержащий архитектуру модели.

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

  • 00:35:00 В этом разделе лекции спикер обсуждает некоторые архитектурные улучшения, которые можно внести в модель блока, которая часто используется в различных статьях. Эти улучшения включают увеличение размера модели, использование модулей внимания и адаптивную нормализацию. Докладчик также представляет идею классифицированного руководства, которое включает в себя обучение классификатора прогнозированию меток классов как на исходных, так и на зашумленных изображениях, и использование полученного градиента для улучшения модели распространения. Наконец, спикер упоминает использование метрик, таких как FID, точность и полнота, для измерения качества генеративных моделей.

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

  • 00:45:00 В этом разделе лектор обсуждает концепцию моделей скрытой диффузии, которые представляют собой еще один класс моделей диффузии, используемых для обучения на изображениях высокой размерности, поскольку в таких случаях невозможно обучить большую модель диффузии. Лектор объясняет, что исследователи обнаружили, что больше битов используется для захвата деталей на уровне пикселей и меньше для захвата некоторых семантических деталей изображения, что бесполезно. Чтобы точно генерировать изображения, генеративную модель необходимо запускать на семантической части изображения. Лектор дает обзор того, как этого можно достичь, что включает в себя изучение скрытого пространства и сжатие модели до скрытого пространства для запуска в нем диффузии. Это позволяет преобразовывать изображение в скрытое и обратно с использованием модели кодировщика и декодера.

  • 00:50:00 В этом разделе спикер обсуждает несколько моделей, связанных с распространением, в том числе Dolly Q, создание изображений с помощью модели Google Imagine и создание видео с помощью Facebook Make a Video. Кроме того, Google расширил модель Imagine для создания видео. Спикер также упомянул возможность создания 3D-моделей с использованием текста, а также применения машинного зрения к RL, что позволяет достичь самых современных результатов в автономном RL, согласно статье, опубликованной ранее в этом году. Спикер предоставляет ссылки на документы и ресурсы для дальнейшего обучения.
CS 198-126: Lecture 12 - Diffusion Models
CS 198-126: Lecture 12 - Diffusion Models
  • 2022.12.03
  • www.youtube.com
Lecture 12 - Diffusion ModelsCS 198-126: Modern Computer Vision and Deep LearningUniversity of California, BerkeleyPlease visit https://ml.berkeley.edu/decal...