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

 

Лекция 9 Глубокое обучение 2: генеративные модели, GAN, вариационные автоэнкодеры (VAE) (MLVU2019)



9 Глубокое обучение 2: генеративные модели, GAN, вариационные автоэнкодеры (VAE) (MLVU2019)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • 01:25:00 В этом разделе спикер сравнивает вариационные автоэнкодеры (VAE) с анализом основных компонентов (PCA), заявляя, что оба метода используются для уменьшения размерности и сопоставления данных со стандартизированным распределением, но VAE более эффективны и могут выполнять больше вещей. Однако обучение VAE намного сложнее, так как требует градиентного спуска, в то время как PCA может найти аналитическое решение. Кроме того, PCA часто предоставляет значимые измерения на основе данных, например размер улыбки для лиц, тогда как размеры, создаваемые VAE, обычно не имеют никакого значения, если не нацелена на конкретную семантическую функцию.
9 Deep Learning 2: Generative models, GANs, Variational Autoencoders (VAEs) (MLVU2019)
9 Deep Learning 2: Generative models, GANs, Variational Autoencoders (VAEs) (MLVU2019)
  • 2019.03.05
  • www.youtube.com
slides: https://mlvu.github.io/lectures/51.Deep%20Learning2.annotated.pdfcourse materials: https://mlvu.github.ioToday we discuss neural networks that can ge...
 

Лекция 10 Модели деревьев и ансамбли: деревья решений, AdaBoost, градиентный бустинг (MLVU2019)



10 древовидных моделей и ансамблей: деревья решений, AdaBoost, градиентный бустинг (MLVU2019)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • 01:20:00 В этом разделе спикер объясняет, что ансамбли, хотя и дают преимущество перед отдельными моделями, мало используются в исследованиях, поскольку модели необходимо тестировать изолированно, чтобы сравнивать их без какого-либо усиления, которое может исказить результаты. Кроме того, ансамбли могут быть дорогими при использовании с огромными нейронными сетями и, следовательно, в основном используются с крошечными моделями, такими как штампы решений или небольшие деревья решений. Спикер также повторяет, что бэггинг уменьшает варианты, а бустинг уменьшает предвзятость.
10 Tree Models and Ensembles: Decision Trees, AdaBoost, Gradient Boosting (MLVU2019)
10 Tree Models and Ensembles: Decision Trees, AdaBoost, Gradient Boosting (MLVU2019)
  • 2019.03.09
  • www.youtube.com
ERRATA: In slide 55, W_i and W_c are the wrong way around in the definition of a_t.slides: https://mlvu.github.io/lectures/52.Trees.annotated.pdfcourse mater...
 

Лекция 11 Последовательные данные: марковские модели, вложения слов и LSTM



11 Последовательные данные: модели Маркова, вложения слов и LSTM

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • 01:00:00 В этом разделе спикер обсуждает ограничения марковских моделей, когда речь идет о памяти, особенно при принятии решения о том, какую информацию стоит запомнить. Решением является долговременная кратковременная память (LSTM), которая представляет собой тип рекуррентной нейронной сети, которая имеет несколько входов для обучения, которые решают, какие фрагменты информации следует запомнить, а какие забыть. Логические элементы содержат два вектора значений от 0 до 1 или от -1 до 1, где левое значение выбирает часть, которую нужно добавить в память, а правое значение определяет, какую информацию сохранить, в зависимости от того, сколько входной информации требуется. добавлено и сколько нужно отменить. При использовании LSTM информация, выбранная для памяти, добавляется непрерывно, что способствует сохранению долговременных воспоминаний.

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

  • 01:10:00 В этом разделе спикер объясняет, как брать образцы из LSTM для создания генератора последовательности на уровне символов. Результатом является распределение вероятности следующего символа на основе входной истории. Модель учится расставлять такие вещи, как запятые, расставлять новые строки и приблизительно пятистопный ямб, что звучит по-шекспировски, если читать вслух. Модель обучена упорядочиванию данных на уровне символов, а не на уровне слов, потому что она более мощная, но ей нужно передавать всю последовательность, даже если вы выбираете только несколько символов. Спикер приводит эксперимент, в котором кто-то обучил и протестировал модель Шекспира, которая генерировала впечатляющий и вполне шекспировский текст, демонстрируя, что модель может изучать синтаксис, редактируя статью в Википедии, которая включает ссылки и определенные тексты разметки.

  • 01:15:00 В этом разделе спикер обсуждает использование LSTM для генерации текста, такого как статьи в Википедии или твиты Дональда Трампа, путем обучения сети на больших объемах данных. Они подчеркивают различные режимы, в которых может проявляться LSTM, такие как HTML или XML, и упоминают, что сеть может даже генерировать математику, которая выглядит как статьи по математике высокого уровня. Кроме того, спикер предлагает использовать LSTM для генерации случайных выходных данных с использованием случайного вектора, подаваемого в сеть, и сети кодировщика/декодера на основе вариационного внешнего кодировщика (VAE), что дополнительно демонстрируется на примере музыки, сгенерированной через нейронную сеть. обучался на фрагментах MIDI.

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

  • 01:25:00 В этом разделе спикер обсуждает набор данных Image COCO, который содержит изображения из набора данных ImageNet вместе с пятью подписями, написанными человеком, описывающими, что происходит на изображении. Докладчик предлагает простой подход к задаче создания подписей к изображениям — загрузить предварительно обученную модель классификации изображений и снять классификационный слой. Полученное отображение затем можно передать в LSTM для обучения модели созданию подписей. Докладчик также объясняет, как улучшить LSTM на уровне слов с помощью слоя встраивания, а также разницу между LSTM и марковскими моделями. Наконец, спикер обсуждает спектр методов, которые можно использовать для обработки последовательностей, от мощных до простых.
11 Sequential Data: Markov Models, Word Embeddings and LSTMs
11 Sequential Data: Markov Models, Word Embeddings and LSTMs
  • 2019.03.12
  • www.youtube.com
slides: https://mlvu.github.io/lectures/61.SequentialModels.annotated.pdfcourse materials: https://mlvu.github.ioIn the last lectures, we will discuss variou...
 

12 матричных моделей: рекомендательные системы, свертки PCA и Graph



12 матричных моделей: рекомендательные системы, свертки PCA и Graph

В первой части видео спикер обсуждает матричные модели и их применение в рекомендательных системах, которые можно использовать для товарных рекомендаций, новостей и социальных сетей. Рекомендательные системы полагаются на явную и неявную обратную связь, а также на дополнительную информацию, и ими можно манипулировать для распространения ложной информации, если они не разработаны должным образом. Матричная факторизация - это распространенный метод прогнозирования рейтингов на основе поведения пользователя, при этом проблема оптимизации поиска матриц U и M, чтобы максимально приблизить UTM к R, решается с помощью методов квадрата ошибки и вычисления нормы Фробениуса. Спикер также обсуждает методы оптимизации этой проблемы с помощью градиентного спуска и объясняет правило обновления градиента для совместной фильтрации. Кроме того, спикер описывает пять способов улучшения модели матричной факторизации, включая контроль предвзятости пользователей и фильмов, использование неявных лайков и включение информации о сайте. Наконец, спикер обсуждает возможности матричной факторизации в классической настройке машинного обучения, расширения PCA в матричной факторизации и полезность графовых моделей для хранения данных.

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

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

  • 00:05:00 В этом разделе спикер объясняет три формы данных, которые можно использовать в системах рекомендаций: явная обратная связь, неявная обратная связь и дополнительная информация. Явная обратная связь — это когда пользователя просят оценить определенный элемент, что очень ценно, но относительно редко. Неявную обратную связь можно получить, просматривая действия пользователя, такие как просмотры страниц, списки пожеланий или даже движения мыши. Дополнительная информация — это не информация о сопряжении пользователей и фильмов, а информация о самих пользователях и фильмах, например продолжительность, актеры и режиссеры. Спикер отмечает, что рекомендательные системы полезны для различных настроек, включая рекомендации по продуктам (например, Amazon), новости (например, Google News) и социальные сети (например, Twitter и YouTube).

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

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

  • 00:20:00 В этом разделе ведущий объясняет проблему оптимизации поиска матриц U и M, чтобы максимально приблизить UTM к R. Это делается с помощью метода квадрата ошибки и вычисления нормы Фробениуса. Однако проблема в том, что в рейтинговой матрице часто отсутствуют значения. Чтобы решить эту проблему, функция потерь вычисляется только по элементам R, для которых известен рейтинг в обучающей выборке, а не по всем элементам R. Докладчик также обсуждает два метода оптимизации этой проблемы, которые являются попеременной оптимизацией. и градиентный спуск. Метод градиентного спуска является более гибким и его легче добавить в вашу модель.

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

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

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

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

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

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

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

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

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

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

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

  • 01:20:00 В этом разделе спикер обсуждает проблему моделирования времени и оценок в наборе данных, где необходимо учитывать данные временных меток и трансдуктивное обучение. Они объясняют, что важно не иметь обучающих данных из будущего и что тестовый набор должен быть в будущем обучающего набора. Кроме того, спикер подводит итог лекции, подчеркивая использование матричной факторизации для решения абстрактной задачи рекомендации и обобщения рекомендации с использованием моделей графов и сверток графов. Раздел заканчивается предварительным просмотром следующей лекции по обучению с подкреплением.
12 Matrix models: Recommender systems, PCA and Graph convolutions
12 Matrix models: Recommender systems, PCA and Graph convolutions
  • 2019.03.15
  • www.youtube.com
slides: https://mlvu.github.io/lectures/62.Matrices.annotated.pdfcourse materials: https://mlvu.github.ioToday we discuss a variety of models that benefit fr...
 

13 Обучение с подкреплением: policy gradient, Q-Learning, AlphaGo, AlphaStar (MLVU2019)



13 Обучение с подкреплением: policy gradient, Q-Learning, AlphaGo, AlphaStar (MLVU2019)

Видео представляет собой введение в обучение с подкреплением и его основные компоненты, обсуждая такие примеры, как роботизированная машина для балансировки шестов и игра в крестики-нолики. Докладчик углубляется в проблемы обучения с подкреплением, включая недифференцируемые функции, задержку в получении вознаграждения и проблему распределения кредитов. Проблема присвоения кредитов решается с помощью таких методов, как случайный поиск, градиенты политик и Q-обучение, когда спикер объясняет каждый алгоритм, его преимущества и ограничения. Алгоритм Q-обучения обсуждается более подробно с объяснением того, как он работает, используя большую таблицу чисел для представления Q-значений. Презентация завершается объяснением того, как глубокое Q-обучение и AlphaGo произвели революцию в области обучения с подкреплением.

  • 00:00:00 В этом разделе инструктор представляет тему обучения с подкреплением и объясняет, чем оно отличается от обучения в автономном режиме. Обучение с подкреплением включает в себя моделирование агента, который взаимодействует с миром и учится в режиме реального времени на основе обратной связи, которую он получает. Для иллюстрации этой концепции используется пример робота-пылесоса в неизвестной среде. Также инструктор упоминает три алгоритма решения задачи обучения с подкреплением, а именно случайный поиск, градиенты политик и Q-обучение. Затем обсуждение переходит к последним разработкам в области обучения с подкреплением, с акцентом на AlphaGo, AlphaZero и непрекращающемся стремлении победить лучшего игрока мира в StarCraft II с помощью ИИ.

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

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

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

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

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

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

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

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

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

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

  • 00:55:00 В этом разделе объясняется алгоритм обучения Q, который включает изучение большой таблицы чисел для представления Q-значений. Алгоритм работает, наблюдая за немедленным вознаграждением в каждом состоянии и распространяя его обратно в начальное состояние путем повторения одной и той же траектории. Пространство состояний исследуется с помощью эпсилон-жадного исследования, процесса, в котором соблюдается наилучшая политика с небольшой вероятностью случайного исследования состояния. Затем вводится глубокое обучение Q, которое включает в себя внедрение нейронной сети для изучения функции Q-значения. Благодаря обратному распространению сеть обновляется информацией о наблюдаемых немедленных вознаграждениях и состояниях-преемниках. Наконец, объяснение того, как работает AlphaGo, обещают в оставшиеся 30 минут видео по рекомендации документального фильма «AlphaGo».

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

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

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

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

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

  • 01:25:00 В этом разделе спикер обсуждает разработку AlphaStar, последнего прорыва DeepMind в области машинного обучения, применяемого в стратегических играх в реальном времени. В отличие от игры в го, которую AlphaGo от DeepMind считала «решенной», StarCraft поставил перед машинным обучением уникальные задачи из-за разнообразного пространства действий, несовершенной информации и отсутствия дерева игры. AlphaStar использует комбинацию методов, включая торс-трансформер, глубокое ядро LSDM, сеть указателей и мультиагентное обучение. Хотя DeepMind еще не опубликовал подробностей о том, как работает AlphaStar, демонстрация его возможностей против игроков Starcraft мирового уровня впечатляет, отражая текущее состояние дел в этой области.

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

  • 01:35:00 В этом разделе спикер обсуждает полемику вокруг AlphaStar, системы искусственного интеллекта, разработанной DeepMind для игры в StarCraft. AlphaStar удалось победить профессиональных игроков в StarCraft, что привело к спорам о том, действительно ли система ИИ демонстрирует человеческую производительность или использует способности, которых у людей нет. Одним из главных преимуществ AlphaStar было то, что он мог видеть всю доску сразу, в отличие от игроков-людей, которым приходится постоянно настраивать вид камеры. Кроме того, хотя AlphaStar был ограничен примерно 600 действиями в минуту, эти действия были более высокого качества, чем действия игроков-людей, которые могли нажимать до 800 раз в минуту с большим количеством шума. Однако одной из слабостей AlphaStar было то, что она не могла хорошо реагировать на новые стратегии, возникающие во время игры, что является основной проблемой системы, которая может обеспечить понимание познания.
13 Reinforcement Learning: Policy Gradients, Q Learning, AlphaGo, AlphaStar (MLVU2019)
13 Reinforcement Learning: Policy Gradients, Q Learning, AlphaGo, AlphaStar (MLVU2019)
  • 2019.03.21
  • www.youtube.com
slides: https://mlvu.github.io/lectures/71.Reinforcement%20Learning.annotated.pdfcourse materials: https://mlvu.github.ioToday we discuss the most generic ab...
 

14 Обзор: Индуктивное смещение, Алгоритмическое смещение, Социальное влияние машинного обучения (MLVU2019)



14 Обзор: Индуктивное смещение, Алгоритмическое смещение, Социальное влияние машинного обучения (MLVU2019)

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

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

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

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

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

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

  • 00:20:00 В этом разделе спикер объясняет, что когда мы говорим о сложных темах, понятия похожи на график в нашей голове, но при их объяснении они становятся последовательностью. Чтобы помочь восстановить отношения более высокого уровня между обсуждаемыми понятиями, говорящий создает ментальную карту поиска и моделей. Модели разбиваются на конкретные экземпляры нейронных сетей, такие как линейная регрессия, линейная классификация и логистическая регрессия, а также на более сложные модели, такие как J by Ganz и v AE. Докладчик также обсуждает различные типы методов поиска, причем градиентный спуск является наиболее общим, а стохастический градиентный спуск и мини-пакетный градиентный спуск являются конкретными вариантами. Спикер отмечает, что чаще всего используется мини-пакетный градиентный спуск. Наконец, спикер обсуждает различные настройки и способы работы с данными, такие как базовая настройка разделения на функции, экземпляры и целевые значения, а также настройка последовательности работы с отдельными экземплярами в определенном порядке.

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

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

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

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

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

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

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

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

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

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

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

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

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

  • 01:30:00 В этом разделе спикер обсуждает потенциальное социальное влияние машинного обучения и необходимость ответственной разработки этих систем. Поскольку машинное обучение определяет многие решения, возникает новая проблема, связанная с зависимостью от одного неисправного компонента в масштабе, и примером может служить китайская система социального кредита. Политики и люди согласны с разработкой таких систем, поэтому необходимы компьютерщики, специалисты по информации и специалисты по данным, которые хорошо осведомлены об этих проблемах, чтобы ответственно строить и развивать эти системы. Ответственность за создание этих систем ложится на студентов, изучающих эти области, и спикер желает им удачи на экзаменах и выпускных проектах.
14 Review: Inductive Bias, Algorithmic Bias, Social impact of machine learning (MLVU2019)
14 Review: Inductive Bias, Algorithmic Bias, Social impact of machine learning (MLVU2019)
  • 2019.03.21
  • www.youtube.com
slides: https://mlvu.github.io/lectures/72.Review.annotated.pdfcourse materials: http://mlvu.github.ioThe final lecture. A review of everything we've learned...
 

Сегментация изображений и видео в Python с использованием модели сегментации всего (SAM) | YOLOv5 | YOLOv8 и СЭМ



Сегментация изображений и видео в Python с использованием модели сегментации всего (SAM) | YOLOv5 | YOLOv8 и СЭМ

В этом видео представлена модель Segment Anything Model (SAM), модель ИИ, которая может идентифицировать и извлекать объекты из изображений и видео для различных задач. SAM обучен на огромном наборе данных из 11 миллиардов изображений и 1,1 миллиарда масок и демонстрирует высокую производительность в различных задачах сегментации. Видео содержит пошаговые инструкции по использованию SAM в локальной системе, в том числе инструкции по установке необходимых пакетов, загрузке предварительно обученных контрольных точек модели и выполнению сегментации изображений и видео с помощью Python. Видео также демонстрирует, как использовать SAM с YOLOv5 или YOLOv8 для создания ограничивающих рамок вокруг интересующих объектов. У SAM также есть потенциальные применения в анимации.

  • 00:00:00 В этом разделе видео представляет модель Segment Anything Model (SAM), недавно выпущенную модель ИИ от Meta, которая может идентифицировать и извлекать объекты из изображений и видео для различных задач. SAM обучен на 11 миллиардах изображений и 1,1 миллиардах масок и имеет сильное обобщение с нулевым выстрелом для различных задач сегментации. Видео демонстрирует, как использовать SAM в демонстрационной версии, которая позволяет пользователям загружать изображение и выполнять сегментацию всего изображения или вырезать каждый объект отдельно. Пользователи также могут рисовать ограничивающие рамки, добавлять маски и выполнять мультимаскирование. У SAM также есть потенциальные применения в анимации. Видео также предоставляет дополнительную информацию об архитектуре SAM, доступности наборов данных и часто задаваемых вопросах.

  • 00:05:00 В этом разделе видео ведущий демонстрирует, как использовать модель Segment Anything Model (SAM) для создания мультимаски для разных объектов на изображении. SAM был обучен на наборе данных из 11 миллионов изображений и 1,1 миллиарда масок и демонстрирует высокую производительность в различных задачах сегментации. Ведущий показывает, как выбрать изображение, выполнить сегментацию всего изображения, а затем вырезать отдельные объекты. Докладчик также показывает, как рисовать ограничивающие рамки вокруг объектов и как загружать и распространять полученные данные. Видео завершается информацией об установке SAM и его использовании в Python, в том числе с YOLOv5 и YOLOv8.

  • 00:10:00 В этом разделе видео ведущий объясняет требования для запуска модели сегмента any в локальной системе, включая наличие графического процессора и установку необходимых пакетов, таких как Torch и Dodge Vision с поддержкой CUDA. Они демонстрируют, как клонировать репозиторий Segment Anything Model и установить все необходимые зависимости с помощью pip. В видео также рассказывается, как преобразовать модель сегментации в формат ONNX и как загрузить контрольные точки предварительно обученной модели для трех различных размеров магистрали. Затем ведущий показывает, как выполнять сегментацию изображений и видео с помощью модели. Видео также содержит подробные пошаговые инструкции для каждой задачи, чтобы зрителям было легко следовать им.

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

  • 00:20:00 В этом разделе видео докладчик демонстрирует, как использовать модель Segment Anything Model (SAM) для выполнения сегментации объектов на изображениях и видео с помощью Python. Они демонстрируют, как настроить расписание IU для повышения точности и уменьшения количества мусора в выходных данных. Они применяют модель сегментации к образцу изображения и показывают, насколько точно она сегментирует человека, здание и дерево. Затем они используют ту же модель для сегментации образца видео, устанавливая пакет метасегментации и загружая образцы видео с Google Диска. Затем докладчик копирует код из репозитория GitHub и применяет его к видео, эффективно реализуя SAM на видео.

  • 00:25:00 В этом разделе спикер обсуждает репозиторий Segment Anything Model (SAM), который содержит три разные модели с разными размерами магистрали, что позволяет пользователям определять имя модели и вызывать видео, которое они хотят реализовать. Затем спикер запускает код, необходимый для интеграции SAM с YOLOv5 или YOLOv8, используя существующие пакеты и образцы изображений. Докладчик демонстрирует, как SAM используется для сегментации зданий, деревьев и автомобилей с использованием цветовых кодов для шумоподавления на выходе. Докладчик также обсуждает различные версии модели сегментации, указывая на то, что каждая модель имеет различный размер основы. Демонстрация подчеркивает точность и скорость самой маленькой модели YOLOv8 Nano.

  • 00:30:00 В этом разделе спикер показывает, как они смогли использовать модель Segment Anything Model (SAM) с YOLOv8 для выполнения сегментации и создания ограничивающих рамок вокруг интересующих объектов. Они демонстрируют возможности модели, демонстрируя ограничивающую рамку, окружающую человека, а также сегментируют его изображение. Спикер завершает видеоурок, рассказывая об интеграции YOLOv8 с SAM и прощаясь со зрителями.
Segment Images & Videos in Python using Segment Anything Model (SAM) | YOLOv5 | YOLOv8 and SAM
Segment Images & Videos in Python using Segment Anything Model (SAM) | YOLOv5 | YOLOv8 and SAM
  • 2023.04.13
  • www.youtube.com
#SAM #segmentation #computervision #yolo #yolov8 #python #pytorch Segment Images & Videos in Python using Segment Anything Model (SAM) | YOLOv5 | YOLOv8 and ...
 

Курс YOLOv8 - Веб-приложение для обнаружения объектов в реальном времени с использованием YOLOv8 и Flask - Веб-камера / IP-камера


Курс YOLOv8 - Веб-приложение для обнаружения объектов в реальном времени с использованием YOLOv8 и Flask - Веб-камера / IP-камера

Курс YOLOv8 представляет собой серию руководств, которые помогут зрителям создать веб-приложение для обнаружения объектов в реальном времени с использованием YOLOv8 и Flask. Учебники охватывают установку необходимого программного обеспечения, такого как Python и PyCharm, создание виртуальной среды, установку пакетов и тестирование обнаружения объектов на изображениях и веб-камерах. Учебники также охватывают преобразование выходных данных из тензоров в целые числа, маркировку обнаруженных объектов и сохранение выходного видео с обнаружениями. Зрителям показывают, как интегрировать YOLOv8 с Flask и как запускать веб-приложение для обнаружения объектов в реальном времени как на видео, так и на веб-каналах в прямом эфире.

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

Докладчик также обсуждает изменения, внесенные в веб-приложение, использующее модель YOLOv8, обученную на наборе данных средств индивидуальной защиты (СИЗ). Изменения включают изменение кода для назначения разных цветов ограничивающим рамкам и прямоугольникам меток на основе имен классов, а также установку показателя достоверности выше 0,5 для отображения ограничивающих рамок и прямоугольников. Ведущий демонстрирует успешное обнаружение предметов СИЗ на видео и в прямом эфире с веб-камеры, отмечая окончание курса.

  • 00:00:00 Следующий шаг — загрузить и установить Python и PyCharm Community Edition. Не рекомендуется использовать последнюю версию Python, так как в ней могут быть ошибки и исправления ошибок. Мы можем загрузить последнюю версию версии Python 3.8, которая рекомендуется. Версия PyCharm Professional предлагает 30-дневную бесплатную пробную версию, но Community Edition достаточно для обучения. После того, как мы загрузили и установили необходимое программное обеспечение, мы можем создать пустую папку с любым именем по нашему выбору, а затем открыть ее в PyCharm, чтобы запустить проект.

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

  • 00:10:00 В этом разделе инструктор показывает, как установить YOLOv8 — единственную версию YOLO, имеющую собственный пакет. Используя pip install ultralytics, можно установить YOLOv8, и, если необходимо внести какие-либо изменения в сценарий обнаружения или обучения, репозиторий можно клонировать. Затем инструктор использует YOLOv8 для обнаружения объектов на изображении, импортируя пакет и модель YOLOv8, указывая предварительно обученный файл весов и передавая путь к входному изображению. Результаты показывают обнаруженные объекты на изображении.

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

  • 00:20:00 В этом разделе видео ведущий создает новый файл с именем «YOLOv8_webcam.py». Они импортируют YOLOv8, CB2 и математику и устанавливают «cap» равным «CV2.videoCapture(0)», что позволит им запускать YOLOv8 на своей веб-камере. Они вычисляют частоту кадров и высоту, вызывая «cap.get(5)» и «cap.get(4)» соответственно. Они объясняют, что хотят сохранить выходное видео с обнаружениями, поэтому они устанавливают имя выходного файла как «output.avi» с помощью CB2.VideoWriter(). Они передают в функцию частоту кадров и высоту, а затем устанавливают «современный» равным «YOLOv8». Затем докладчик проверяет, нормально ли работает его веб-камера, вызывая «CV2.imshow('image', image)» и «CV2.waitKey(1)» на своем изображении.

  • 00:25:00 В этом разделе курса YOLOv8 ведущий тестирует веб-камеру и проверяет, правильно ли сохраняется выходное видео. Затем он запускает обнаружения в прямом эфире, используя модель YOLOv8, и сохраняет результаты в переменной с именем «результаты». Код просматривает каждую из отдельных ограничивающих рамок, чтобы увидеть производительность. Каждая ограничивающая рамка имеет четыре координаты — X1, Y1, X2 и Y2, которые преобразуются в целочисленную форму из тензоров для дальнейшей обработки и создания ограничивающих рамок вокруг обнаруженного объекта.

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

  • 00:35:00 В этом разделе видеоурока инструктор показывает зрителям, как добавлять оценки достоверности к обнаруженным объектам, преобразовывать их в целые числа и маркировать их в соответствии с идентификатором класса. Идентификатор класса определяется типом объекта, где 0 — человек, 1 — велосипед и 2 — автомобиль. Преподаватель также покажет, как создать прямоугольник вокруг метки и сохранить выходные данные в файл с именем output.avi. Зрители могут видеть кадр за кадром в режиме реального времени, а инструктор показывает им, как остановить процесс, щелкнув по экрану. Преподаватель также отображает выходной видеофайл и подтверждает, что результаты соответствуют ожиданиям. Наконец, инструктор объявляет, что в следующем уроке они запустят YOLOv8 в Windows и поделятся результатами.

  • 00:40:00 В этом разделе курса YOLOv8 создатель демонстрирует, как выполнять обнаружение объектов на примере видео с использованием предварительно обученных весов YOLOv8. Цель состоит в том, чтобы обнаружить как велосипеды, так и людей, которые являются частью набора данных COCO. Создатель показывает, как запустить скрипт и перенаправить папку в указанную папку с видео, после чего успешно обнаруживает велосипеды, людей и другие объекты, такие как светофор. Затем создатель демонстрирует, что выходное видео с обнаружениями сохраняется в выбранной папке, показывая ограничивающие рамки вокруг обнаруженных объектов с метками и оценками достоверности. Создается функция обнаружения видео, содержащая весь код, и создается файл с именем last app dot Pi.

  • 00:45:00 В этом разделе видео спикер обсуждает шаги, необходимые для интеграции YOLOv8 с Flask для создания веб-приложения для обнаружения объектов в реальном времени. Первым шагом является установка Flask, которая выполняется с помощью pip install. Далее динамик импортирует необходимые библиотеки и инициализирует Flask. Затем они создают функцию под названием «Сгенерировать кадр», которая принимает путь к входному видеофайлу и генерирует выходные данные с ограничивающими рамками вокруг обнаруженных объектов. Наконец, спикер обсуждает кодирование изображений в виде байтов и преобразование отдельных кадров в видео с помощью клавиатуры удаления. Конечным результатом являются отдельные кадры с ограничивающими рамками вокруг обнаруженного объекта, метками и оценками достоверности.

  • 00:50:00 В этом разделе создатель видео объясняет, как интегрировать YOLOv8 с Flask для создания веб-приложения для обнаружения объектов в реальном времени. Видео демонстрирует кодирование кадров и преобразование изображения в байты с последующим зацикливанием на отдельных кадрах для обнаружения и последующего отображения кадров. В видео демонстрируется замена визуальных кадров с использованием типа средства, в то время как тип содержимого используется для отображения последующих кадров. Видео включает в себя демонстрацию, в которой видеофайл передается в качестве входных данных для обнаружения, в результате чего вокруг обнаруженных объектов появляются граничные рамки; в этом сценарии люди, велосипеды и светофоры. Видео завершается заявлением о том, что следующее руководство будет посвящено обнаружению веб-камер в прямом эфире, тем самым создавая Fly Fast API.

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

  • 01:00:00 В этом разделе видеоруководство посвящено созданию полноценной веб-страницы в формате HTML с использованием HTML и CSS для внешнего интерфейса и Flask для внутреннего интерфейса. Веб-приложение состоит из трех разных страниц: домашней страницы, страницы видео и страницы прямой трансляции с веб-камеры. На главной странице есть заголовок, контент и нижний колонтитул с примерами результатов из разных проектов. Страница видео позволяет пользователю загружать видео и запускать обнаружения YOLOv8 на этом видео. Страница прямой трансляции с веб-камеры позволяет пользователю выполнять обнаружение в прямой трансляции с веб-камеры. Видео также демонстрирует файл точечной кучи приложения Flask и три HTML-страницы.

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

  • 01:10:00 В этом разделе курса YOLOv8 основное внимание уделяется функции обнаружения, которая есть в видеофайле YOLO Dash. Функция уменьшения видео дает нам направление и обнаружение объекта, вокруг обнаруженных объектов есть выходные ограничивающие рамки с метками и оценками достоверности. Текущие кадры затем преобразуются в байты, как того требует входное изображение или кадры Flask. Веб-функция создания кадров вызывается, когда мы хотим получить доступ или перенаправить на веб-камеру в приложении, при этом удаление точки сеанса удаляет входные видеофайлы из хранилища сеанса, позволяя обнаружению происходить на новых видео или входных файлах, а не на предыдущих. те. Создается экземпляр формы файла загрузки, а путь к видеофайлу сохраняется в переменной хранилища сеанса. Хранилище сеанса впоследствии очищается, чтобы обеспечить обнаружение новых видео, предотвращая обнаружение приложением предыдущих видео или входных файлов.

  • 01:15:00 В этом разделе спикер объясняет код и HTML-файлы, используемые в курсе YOLOv8 по обнаружению объектов в реальном времени в веб-приложении с использованием Flask и веб-камеры/IP-камеры. Спикер демонстрирует, как они сохранили часть видео в хранилище сеансов и вызвали видеопуть для обнаружения в видео. Они также показывают файл точки Pi приложения Flask для проекта. Файл HTML состоит из языка, заголовка страницы, тела и заголовков с их свойствами, такими как цвет фона, семейство шрифтов, цвет текста, высота и другие элементы. Кроме того, спикер объясняет назначение радиуса границы при создании формы прямоугольника со скругленными углами.

  • 01:20:00 В этом разделе спикер демонстрирует основные страницы созданного им веб-приложения. Они начинают с показа URL-адреса главной страницы Dash, который направляет пользователя на страницу видеопотока, где он может загрузить видео и обнаружить объекты. Затем они показывают страницу UI.html, где обнаружение происходит в прямом эфире с веб-камеры. Они также демонстрируют пример страницы результатов, на которой показаны три изображения, которые они сохранили и передали в HTML. Наконец, они показывают нижний колонтитул, при нажатии на который пользователь перенаправляется на свой канал YouTube. На протяжении всей демонстрации спикер показывает стили CSS, которые они использовали для каждой страницы.

  • 01:25:00 В этом разделе спикер демонстрирует веб-приложение для обнаружения объектов в реальном времени с использованием YOLOv8 и Flask с прямой трансляцией с веб-камеры и видео. На веб-страницу добавляется CSS-стиль, и выступающий запускает заглавный файл класса Python, чтобы выполнять обнаружение на видео, а также на прямой трансляции с веб-камеры. Пользователь также может ввести видеофайл, чтобы получить обнаружение. Результаты впечатляют, поскольку модель YOLOv8 способна обнаруживать такие объекты, как люди, велосипеды, светофоры и т. д., и создавать ограничивающие рамки с метками и оценкой достоверности. В заключение спикер продемонстрировал, что обнаружение в прямом эфире с веб-камеры также работает точно.

  • 01:30:00 В этом разделе видео ведущий демонстрирует веб-приложение Flask, которое может обнаруживать объекты как в видео, так и в прямом эфире с веб-камеры с помощью YOLOv8. Приложение имеет домашнюю страницу, страницу видео с возможностью обнаружения любого входного видео и страницу прямой трансляции с веб-камеры. Затем докладчик переходит к демонстрации того, как YOLOv8 можно использовать для обнаружения средств индивидуальной защиты (СИЗ) с использованием набора данных, доступного в Roboflow, который состоит из 3235 изображений 7 различных классов. Ведущий соответствующим образом переименовывает классы, чтобы отразить фактические объекты, обнаруженные YOLOv8, а затем ведущий показывает статистику набора данных, которая включает несбалансированное распределение классов. Коэффициент разделения, используемый для набора данных, составляет 70-20-10. Наконец, докладчик демонстрирует, как импортировать модель YOLOv8 в блокнот Collab.

  • 01:35:00 В этом разделе курса YOLOv8 инструктор объясняет, как импортировать необходимые библиотеки и проверять доступ к GPU. Библиотека ОС используется для перехода к различным файлам, а библиотека изображений используется для отображения входных/выходных изображений в блокноте Google Colab. Затем набор данных обнаружения данных PPE импортируется из Roboflow и загружается во вновь созданную папку «наборы данных». Модель YOLOv8 устанавливается с помощью pip install ultralytics, а затем ее функциональность проверяется на предмет установки и работы с помощью import ultralytics.

  • 01:40:00 В этом разделе видео ведущий показывает, как загрузить и подготовить набор данных обнаружения СИЗ для обучения модели YOLOv8. Набор данных состоит из тестового и проверочного наборов, а также файла data.yml с именами классов для каждого объекта. После загрузки и переименования папки докладчик использует интерфейс командной строки для локальной реализации обучения, проверки и тестирования модели. Тренировка занимает около трех часов, и ведущий показывает результаты тренировки, включая файл лучших весов и 90-й рабочий последний вес. Модель обучалась на семи различных классах объектов СИЗ.

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

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

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

  • 02:00:00 В этом разделе ведущий обсуждает изменения, внесенные в код веб-приложения, использующего модель Yellow V8, обученную на наборе данных средств индивидуальной защиты (СИЗ). Набор данных PPE имеет семь различных классов, и их имена перечислены. Файл лучших весов был переименован в ppe.pt из набора данных Coco, который состоит из 80 различных классов. Докладчик добавил функцию, позволяющую назначать разные цвета ограничивающей рамке и прямоугольнику метки в зависимости от имени класса. Докладчик установил предел для оценки достоверности и упомянул, что ограничивающая рамка и прямоугольник появятся только в том случае, если оценка выше 0,5. Файлы Flask app.py и HTML остаются прежними. Наконец, ведущий показывает результаты обнаружения видео на наборе данных PPE и веб-камере. Приложение успешно может обнаружить элементы СИЗ в видео.

  • 02:05:00 В этом разделе ведущий демонстрирует успешные возможности обнаружения модели YOLOv8 в режиме реального времени с использованием прямой трансляции с веб-камеры. Модель способна точно обнаружить человека в защитном шлеме и пылезащитной маске, не считая отсутствия перчаток и щитков. Результаты считаются удовлетворительными и знаменуют окончание курса.
YOLOv8 Course - Real Time Object Detection Web Application using YOLOv8 and Flask - Webcam/IP Camera
YOLOv8 Course - Real Time Object Detection Web Application using YOLOv8 and Flask - Webcam/IP Camera
  • 2023.04.07
  • www.youtube.com
#objectdetection #yolov8 #yolo #computervision #opencv #flask #webapplicationdevelopment #computervision YOLOv8 Crash Course - Real Time Object Detection Web...
 

Сегментация и отслеживание объектов в реальном времени с использованием YOLOv8 | Подсчет транспортных средств (въезд и выезд)



Сегментация и отслеживание объектов в реальном времени с использованием YOLOv8 | Подсчет транспортных средств (въезд и выезд)

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

  • 00:00:00 В этом разделе видео ведущий объясняет, как реализовать сегментацию объектов с отслеживанием с помощью YOLOv8 и алгоритма глубокой сортировки. Видео демонстрирует сегментацию и отслеживание транспортных средств, в том числе подсчет количества въезжающих и выезжающих транспортных средств, а также типов транспортных средств. Реализация также включает расчет скорости транспортных средств, присвоение каждому транспортному средству уникального идентификатора и определение маршрутов. Докладчик предоставляет необходимые шаги для реализации этого в различных IDE, включая Anaconda Navigator, PyCharm, Spider и Visual Studio. Необходимые зависимости, такие как библиотеки, должны быть установлены, чтобы избежать каких-либо ошибок при выполнении скрипта predict.5.

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

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

  • 00:15:00 В этом разделе спикер обсуждает концепцию динамического измерения расстояния на основе расстояния между объектом и камерой. Они объясняют, что это может быть достигнуто с помощью формулы, в которой расстояние в метрах равно пикселю расстояния, деленному на PPM (пикселей на метр), умноженному на константу 3,6, деленной на частоту кадров в секунду. Затем спикер приступает к написанию функции для вычисления угла и возврата скорости на основе расстояния и времени. Они также создают еще две функции — set_d и CCW — и пишут функцию get_direction для вычисления направления объекта на основе оси Y.

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

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

  • 00:30:00 В этом разделе спикер обсуждает результаты своей сегментации объектов в реальном времени и отслеживания с использованием YOLOv8 для подсчета транспортных средств. Они добились точных результатов и даже могут оценить скорость каждого транспортного средства, а также отследить идентификатор и следы. Кроме того, обнаружение и сегментация каждого транспортного средства были выполнены точно, а также указано общее количество транспортных средств. Они сделали этот код доступным исключительно для своих сторонников Patreon, которые будут иметь доступ ко всему коду и проектам, которыми они делятся. Наконец, они приглашают зрителей протестировать демо-видео, внедрить код на свои сайты или присоединиться к членству в Patreon.
Real-Time Object Segmentation and Tracking using YOLOv8 | Vehicles Counting (Entering and Leaving)
Real-Time Object Segmentation and Tracking using YOLOv8 | Vehicles Counting (Entering and Leaving)
  • 2023.01.29
  • www.youtube.com
#yolo #yolov8 #objectdetection #objectsegmentation #objecttracking #computervision #machinelearning #artificialintelligence Real-Time Object Segmentation and...
 

Отслеживание объектов в реальном времени с использованием YOLOv8 и DeepSORT | Подсчет транспортных средств (въезжающих и выезжающих транспортных средств)



Отслеживание объектов в реальном времени с использованием YOLOv8 и DeepSORT | Подсчет транспортных средств (въезжающих и выезжающих транспортных средств)

Видео демонстрирует реализацию отслеживания объектов в реальном времени с использованием YOLOv8 и DeepSORT для подсчета количества транспортных средств, въезжающих и выезжающих с шоссе. Докладчик предоставляет пошаговое руководство, начиная с клонирования репозитория GitHub, установки необходимых пакетов, настройки каталога и изучения скрипта отслеживания. В учебнике рассматривается использование двусторонних очередей, предварительной обработки, немаксимальной регрессии и функции Deep SORT для создания уникальных идентификаторов и определения имен классов. Ведущий также объясняет, как добавить функцию подсчета транспортных средств с помощью линии на экране, и каждый раз, когда след транспортного средства пересекается с этой линией, количество увеличивается. Пользовательский интерфейс устанавливается с помощью определенной функции. Наконец, ведущий показывает, как текущий вывод скрипта может обнаруживать пересечения с линией и подсчитывать въезжающие и выезжающие автомобили.

  • В разделе 00:00:00 видео показана демонстрация реализации отслеживания объектов с помощью глубокой сортировки в YOLO V8. Учебное пособие расскажет о создании приложения для подсчета количества транспортных средств, въезжающих и выезжающих с шоссе. Докладчик предоставляет пошаговое руководство по использованию PyCharm IDE и подробно объясняет каждый шаг. Первый шаг — клонировать репозиторий GitHub и установить необходимые пакеты. В видео также есть раздел, посвященный настройке каталога и проверке скрипта отслеживания.

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

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

  • 00:15:00 В этом разделе видео разбирается код создания пользовательского интерфейса (UI) со скругленным прямоугольником и текстовой меткой, а также то, как программа добавляет обнаруженные объекты в двустороннюю очередь для генерации тропы. Код также включает в себя предварительную обработку и немаксимальную регрессию для изменения размера кадров и выполнения обнаружений. Функция Deep SORT вызывается для назначения уникальных идентификаторов и определения имен классов, а set.modern.names помогает извлекать информацию из набора данных COCO и создавать ограничивающие рамки.

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

  • 00:25:00 В этом разделе ведущий объясняет, как функция подсчета транспортных средств была добавлена в систему отслеживания объектов в реальном времени с использованием YOLOv8 и DeepSORT. Система использует линию на экране, и каждый раз, когда след автомобиля пересекает эту линию, счет увеличивается. Счетчик может увеличиваться независимо от того, въезжает ли транспортное средство в зону или покидает ее, в зависимости от направления движения транспортного средства. Ведущий также показывает, как настраивается пользовательский интерфейс с помощью конкретной функции.
Real-Time Object Tracking using YOLOv8 and DeepSORT | Vehicles Counting (Vehicles Entering& Leaving)
Real-Time Object Tracking using YOLOv8 and DeepSORT | Vehicles Counting (Vehicles Entering& Leaving)
  • 2023.01.11
  • www.youtube.com
#yolo #yolov8 #objectdetection #objectracking #opencvpython #opencv #computervision #machinelearning #artificialintelligence #deepsort #multiobjecttracking#...