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

 

Урок 3: Практическое глубокое обучение для программистов 2022 г.



Урок 3: Практическое глубокое обучение для программистов 2022 г.

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

  • 00:00:00 Этот урок посвящен матричным умножениям и градиентам и предназначен для студентов, более склонных к математике. Курс также включает «Нулевой урок» по настройке Linux с нуля.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • 01:30:00 В этом видео ведущий обсуждает важность проверочных наборов и метрик в глубоком обучении.
Lesson 3: Practical Deep Learning for Coders 2022
Lesson 3: Practical Deep Learning for Coders 2022
  • 2022.07.21
  • www.youtube.com
00:00 Introduction and survey01:36 "Lesson 0" How to fast.ai02:25 How to do a fastai lesson04:28 How to not self-study05:28 Highest voted student work07:56 P...
 

Урок 4: Практическое глубокое обучение для программистов 2022 г.



Урок 4: Практическое глубокое обучение для программистов 2022 г.

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

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

  • 00:05:00 В этом видео рассказывается об алгоритме «Практическое глубокое обучение для программистов 2022», ULMFiT. ULMFiT — это алгоритм машинного обучения, впервые представленный в курсе fast.ai. Позже УЛМФиТ был превращен автором в научную статью. После обучения на обзорах фильмов из Википедии и IMDB алгоритм смог предсказать настроение обзора с точностью 70%.

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

  • 00:15:00 Для конкурса Kaggle «Соревнование по сопоставлению патентных фраз и фраз в США» требуется модель, которая может автоматически определять, какие пары привязки и цели говорят об одном и том же. В этом видео ведущий предлагает превратить данные в проблему классификации, чтобы использовать методы НЛП.

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

  • 00:25:00 В этом видео рассказывается об использовании четырех библиотек для глубокого обучения — numpy, matplotlib, pandas и pytorch. Автор рекомендует прочитать «Python для анализа данных» Уэса МакКинни, если вы не знакомы с этими библиотеками. Первым шагом в обучении нейронной сети является токенизация данных, а вторым шагом — обучение сети.

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

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

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

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

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

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

  • 01:00:00 «Коэффициент корреляции Пирсона» — широко используемый показатель того, насколько похожи две переменные. Если ваши прогнозы очень похожи на реальные значения, «коэффициент корреляции Пирсона» будет высоким.

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

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

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

  • 01:20:00 На этом уроке инструктор объясняет, как использовать Pytorch для обучения модели, которая ведет себя как учащийся fast.ai. Он отмечает, что, хотя выбросы ни в коем случае нельзя удалять, их можно исследовать и, при необходимости, исправить.

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

  • 01:30:00 В этом видео Джон объясняет, как методы НЛП, такие как машинное обучение, можно использовать для создания текста, предвзятого в пользу определенной точки зрения. В видео также обсуждается проблема с прогнозами, генерируемыми методами НЛП, и то, как ее можно решить с помощью сигмовидной функции.
Lesson 4: Practical Deep Learning for Coders 2022
Lesson 4: Practical Deep Learning for Coders 2022
  • 2022.07.21
  • www.youtube.com
00:00:00 - Using Huggingface00:03:24 - Finetuning pretrained model00:05:14 - ULMFit00:09:15 - Transformer00:10:52 - Zeiler & Fergus00:14:47 - US Patent Phras...
 

Урок 5: Практическое глубокое обучение для программистов 2022 г.



Урок 5: Практическое глубокое обучение для программистов 2022 г.

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

  • 00:00:00 Этот урок посвящен линейной модели и нейронной сети с нуля с использованием Jupyter Notebook. Цель состоит в том, чтобы понять логику кода и получить ожидаемый результат.

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

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

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

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

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

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

  • 00:35:00 В этом видео объясняется, как оптимизировать модели глубокого обучения путем расчета потерь при градиентном спуске. Автор демонстрирует, как это сделать, создавая функцию для расчета потерь, а затем импортируя эту функцию в сеанс Pytorch.

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

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

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

  • 00:55:00 В этом видео автор объясняет, как построить модель с нуля на Python с помощью Pytorch и как отправить модель в Kaggle. Автор упоминает, что оператор «matrix-multiply» означает «matrix-multiply», но Python не поставляется с реализацией этого оператора.

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

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

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

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

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

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

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

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

  • 01:40:00 На этом уроке инструктор объясняет, как рассчитать наилучшее двоичное разделение для заданного столбца в наборе данных. Это особенно полезно для соревнований по машинному обучению, поскольку предоставляет базовую модель для сравнения.
Lesson 5: Practical Deep Learning for Coders 2022
Lesson 5: Practical Deep Learning for Coders 2022
  • 2022.07.21
  • www.youtube.com
00:00:00 - Introduction00:01:59 - Linear model and neural net from scratch00:07:30 - Cleaning the data00:26:46 - Setting up a linear model00:38:48 - Creating...
 

Урок 6: Практическое глубокое обучение для программистов 2022 г.



Урок 6: Практическое глубокое обучение для программистов 2022 г.

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

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

  • 00:00:00 В этом уроке авторы показывают, как создать дерево решений, чтобы предсказать, какие мужчины выживут на Титанике.

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

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

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

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

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

  • 00:30:00 В видео объясняется, как вычислить ошибку Out-of-Bag Error или ошибку OOB, которая является мерой точности прогнозов, сделанных на основе данных, не используемых при обучении модели машинного обучения. Он отмечает, что если ошибка OOB высока, это говорит о том, что модель неправильно предсказывает данные.

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

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

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

  • 00:50:00 Видео объясняет, почему машина повышения градиента (GBM) более точна, чем случайный лес, но что вы можете использовать GBM. Пошаговое руководство демонстрирует, как выбрать соревнование Kaggle и занять первое место.

  • 00:55:00 Это видео на YouTube содержит руководство по началу работы с глубоким обучением для программистов. Основное внимание уделяется практическому глубокому обучению для программистов с советами о том, как организовать соревнование, получить набор для проверки и быстро выполнить итерацию.

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

  • 01:05:00 В этом видео инструктор обсуждает, как использовать быструю библиотеку искусственного интеллекта show_batch(), чтобы быстро увидеть, как выглядят данные для моделей машинного обучения. Он рекомендует использовать resnet26d для быстрой тренировки и точности.

  • 01:10:00 Видео демонстрирует, как отправить модель глубокого обучения в Kaggle менее чем за минуту с помощью загрузчика данных и файла CSV, который включает прогнозы и метки модели.

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

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

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

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

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

  • 01:40:00 В этом видео Джереми объясняет, как можно использовать глубокое обучение для повышения точности проектов кодирования. Он отмечает, что наборы данных часто могут иметь самые разные входные размеры и соотношения сторон, что затрудняет создание точных представлений с помощью прямоугольников. Вместо этого он предлагает использовать квадратные представления, которые хорошо работают в большинстве случаев.
Lesson 6: Practical Deep Learning for Coders 2022
Lesson 6: Practical Deep Learning for Coders 2022
  • 2022.07.21
  • www.youtube.com
00:00 Review02:09 TwoR model04:43 How to create a decision tree07:02 Gini10:54 Making a submission15:52 Bagging19:06 Random forest introduction20:09 Creating...
 

Урок 7: Практическое глубокое обучение для программистов 2022 г.



Урок 7: Практическое глубокое обучение для программистов 2022 г.

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

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

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

  • 00:05:00 В этом разделе видео Джереми обсуждает практические аспекты запуска моделей глубокого обучения в Kaggle и способы использования быстрых хакерских методов для определения использования памяти моделями. Он демонстрирует трюк, называемый накоплением градиента, который можно использовать, если модель вылетает из-за «ошибки cuda out of memory», чтобы избежать необходимости покупать более крупный графический процессор. Регулируя размер пакета и количество изображений, можно гарантировать, что модель использует минимально возможный объем памяти, не влияя на скорость обучения.

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

  • 00:15:00 В этом разделе Джереми обсуждает вопросы с форума, касающиеся lr_find() и накопления градиента. Он объясняет, что lr_find() использует размер пакета загрузчиков данных, а накопление градиента позволяет экспериментировать с различными пакетами, чтобы найти оптимальный размер для разных архитектур. Джереми рекомендует выбирать самый большой размер пакета, который может поместиться в вашем графическом процессоре, но упоминает, что не всегда необходимо использовать самый большой размер пакета. Эмпирическое правило состоит в том, чтобы разделить размер пакета на два и разделить скорость обучения на два. Наконец, Джереми демонстрирует, как использовать накопление градиента в fastai, разделив размер пакета на желаемое значение накопления и передав обратный вызов GradientAccumulation при создании обучающего модуля, что позволяет ему обучать несколько моделей на карте емкостью 16 ГБ.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • 01:45:00 В этом разделе Джереми и Джон обсуждают тему поиска по гиперпараметрам и то, как он часто используется при построении отдельных моделей. Тем не менее, нет никаких правил, кроме эмпирического правила Джереми, когда дело доходит до проведения исследования гиперпараметров. В ответ на вопрос о том, можно ли строить системы рекомендаций на основе средних оценок пользовательского опыта вместо совместной фильтрации, Джереми объясняет, что было бы не идеально, если бы все, что у вас есть, это история покупок. Вместо этого для составления точных рекомендаций необходимы детализированные данные, такие как демографическая информация о пользователях и метаданные о продуктах.
Lesson 7: Practical Deep Learning for Coders 2022
Lesson 7: Practical Deep Learning for Coders 2022
  • 2022.07.21
  • www.youtube.com
00:00 - Tweaking first and last layers02:47 - What are the benefits of using larger models05:58 - Understanding GPU memory usage08:04 - What is GradientAccum...
 

Урок 8. Практическое глубокое обучение для программистов, 2022 г.



Урок 8. Практическое глубокое обучение для программистов, 2022 г.

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

В этом видео на YouTube представлен обзор глубокого обучения для программистов. Спикер объясняет, что упорство важно в этой области, и советует, если вы хотите добиться успеха, вы должны продолжать идти, пока что-то не будет закончено. Он также рекомендует помогать другим новичкам на forums.fast.ai.

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

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

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

  • 00:15:00 Видео демонстрирует, как использовать приложение для совместного обучения fast.ai, чтобы предсказать, какой фильм может понравиться пользователю. Приложение использует скрытые факторы (фильмы и факторы) для расчета предвзятости пользователя, которая затем используется для прогнозирования того, какой фильм может понравиться пользователю.

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

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

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

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

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

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

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

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

  • 01:00:00 В этом видео ведущий объясняет, как осуществляется глубокое обучение в 21 веке. Сегодня глубокое обучение осуществляется иначе, чем 10 лет назад, и докладчик приводит пример того, как это изменение работает. Вместо Max Pooling алгоритмы глубокого обучения теперь используют Stride 2 Convolution. Кроме того, модели глубокого обучения теперь используют один плотный слой в конце вместо слоя максимального пула. Наконец, ведущий дает краткий обзор того, как fast.ai обрабатывает обучение и прогнозирование глубокого обучения.

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

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

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

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

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

  • 01:30:00 Джереми поделился некоторыми советами по повышению продуктивности, в том числе проводил время, изучая что-то новое каждый день и не слишком усердно работая.

  • 01:35:00 Это видео на YouTube — урок по глубокому обучению для программистов, и спикер объясняет, что упорство важно в этой области. Он советует, если вы хотите добиться успеха, вы должны продолжать работать до тех пор, пока что-то не будет завершено, даже если оно не самого лучшего качества. Он также рекомендует помогать другим новичкам на forums.fast.ai.
Lesson 8 - Practical Deep Learning for Coders 2022
Lesson 8 - Practical Deep Learning for Coders 2022
  • 2022.07.21
  • www.youtube.com
00:00 - Neural net from scratch04:46 - Parameters in PyTorch07:42 - Embedding from scratch12:21 - Embedding interpretation18:06 - Collab filtering in fastai2...
 

Урок 9: Основы глубокого обучения для стабильного распространения, 2022 г.



Урок 9: Основы глубокого обучения для стабильного распространения, 2022 г.

Это видео представляет собой введение в глубокое обучение, в котором обсуждается, как работают модели стабильной диффузии и как их можно применять для создания новых изображений. Видео включает в себя демонстрацию того, как использовать библиотеку Diffusers для создания изображений, похожих на рукописные цифры. Он также вводит концепцию стабильной диффузии, которая является методом обучения нейронных сетей. Основная идея состоит в том, чтобы изменить входные данные нейронной сети, чтобы изменить выходные данные. В этом видео инструктор обсуждает, как создать нейронную сеть, которая сможет правильно идентифицировать рукописные цифры из зашумленного ввода. В этом видео рассказывается, как обучить модель машинного обучения с помощью алгоритма глубокого обучения. Модель инициализируется набором скрытых переменных (представляющих данные) и использует декодер для понимания необработанных данных. Затем текстовый кодировщик используется для создания машиночитаемых подписей к данным. Наконец, U-Net обучается с использованием заголовков в качестве входных данных, а градиенты («функция оценки») используются для настройки уровней шума в обучающих данных.

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

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

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

  • 00:15:00 В этом видео на YouTube представлено краткое введение в глубокое обучение с изложением основ стабильной диффузии. Автор предоставляет набор блокнотов Colab «diffusion-nbs», которые можно использовать для изучения основ глубокого обучения. Видео завершается рекомендацией поиграть с предоставленным материалом и изучить другие ресурсы.

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

  • 00:25:00 В этом уроке обсуждаются основы глубокого обучения и способы использования Colab для создания высококачественных изображений. 51 шаг, необходимый для создания образа, сравнивается с тремя-четырьмя шагами, доступными по состоянию на октябрь 2022 года.

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

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

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

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

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

  • 01:05:00 В этом видео представлена идея стабильной диффузии — метода обучения нейронных сетей. Основная идея состоит в том, чтобы изменить входные данные нейронной сети, чтобы изменить выходные данные.

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

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

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

  • 01:25:00 В этом видео инструктор показывает, как можно использовать нейронную сеть, называемую U-Net, для аппроксимации изображения. Проблема в том, что U-Net требует много места для хранения, что может быть проблемой для Google с его большим облаком TPU.

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

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

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

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

  • 01:50:00 Видео объясняет, как можно использовать две нейронные сети для кодирования текста и изображений. Первая нейронная сеть используется для кодирования текста, а вторая нейронная сеть используется для кодирования изображений. Цель состоит в том, чтобы две сети производили одинаковые выходные данные для заданного ввода. Сходство выходов определяется скалярным произведением характеристик входа и характеристик вывода.

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

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

  • 02:05:00 В этом видео автор описывает, как работают алгоритмы глубокого обучения и как они пытаются найти лучшее предположение для скрытого (неизвестного) изображения. Автор также описывает, как настроить параметры алгоритма для улучшения результатов.

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

  • 02:15:00 В этом видео обсуждаются некоторые новые направления исследований в области глубокого обучения, которые могут повысить стабильность и распространение технологии.
Lesson 9: Deep Learning Foundations to Stable Diffusion, 2022
Lesson 9: Deep Learning Foundations to Stable Diffusion, 2022
  • 2022.10.19
  • www.youtube.com
(All lesson resources are available at http://course.fast.ai.) This is the first lesson of part 2 of Practical Deep Learning for Coders. It starts with a tut...
 

Проблемы глубокого обучения (д-р Разван Паскану - DeepMind)



Проблемы глубокого обучения (д-р Разван Паскану - DeepMind)

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

Доктор Разван Паскану из DeepMind обсуждает проблему забывания в глубоком обучении и то, как модели могут справиться с этим. Несмотря на то, что некоторые знания могут оставаться после того, как происходит забывание, трудно определить, сколько информации было потеряно. Д-р Паскану упоминает, что недавние статьи о целевом забывании были сосредоточены на конфиденциальности данных, но в этой области необходимы дополнительные исследования и внимание.

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

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

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

  • 00:15:00 В этом разделе д-р Разван Паскану-DeepMind обсуждает важность непрерывного обучения и требования к системе, которая может постоянно эффективно обучаться. Он подчеркивает, что существует много разновидностей непрерывного обучения, что затрудняет определение и определение каждой конкретной проблемы. Более того, определение непрерывного обучения также может создавать противоречия, и некоторые проблемы становятся более заметными в зависимости от используемых задач и контрольных показателей. Доктор Паскану-DeepMind предполагает, что один из способов обосновать непрерывное обучение — это сосредоточиться на реальных проблемах, таких как непрерывное полуконтролируемое обучение, которое имеет практическое применение, облегчая отслеживание прогресса. Другой способ — сосредоточиться на обучении с подкреплением.

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

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

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

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

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

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

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

  • 00:55:00 В этом разделе доктор Разван Паскану обсуждает концепцию предварительного обучения и добавления индуктивных смещений в модели глубокого обучения. Он объясняет, что предварительное обучение может помочь обеспечить правильную передачу информации между узлами и может привести к значительному улучшению эксклюзивных устройств. Кроме того, д-р Паскану описывает уникальный подход к добавлению индуктивных смещений путем формирования поверхности потерь, а не добавления члена регуляризатора, который может помочь установить весовые коэффициенты на нуле и повысить эффективность обучения. Он также занимается проблемами, связанными с катастрофическим забыванием, и проблемой декомпозиции проблем в машинном обучении.
  • 01:00:00 В этом разделе доктор Паскану обсуждает идею забывания в глубоком обучении и то, как модели могут восстанавливаться после этого. Он предполагает, что некоторые знания все еще скрыты даже после того, как модель забыла определенные вещи, но трудно определить, сколько знаний на самом деле потеряно. Д-р Паскану упоминает о готовящихся статьях о целенаправленном забывании, в которых определенные точки данных удаляются из модели для защиты конфиденциальности, но он считает, что в этой области необходимы дополнительные исследования.
Challenges in Deep Learning (Dr Razvan Pascanu - DeepMind)
Challenges in Deep Learning (Dr Razvan Pascanu - DeepMind)
  • 2022.11.17
  • www.youtube.com
This talk will cover some of the most important open problems in Deep Learning. A big part of the talk will be focused on Continual Learning as one main open...
 

CS 198-126: Modern Computer Vision Fall 2022 (Калифорнийский университет, Беркли), лекция 1 — Введение в машинное обучение



CS 198-126: Лекция 1 — Введение в машинное обучение

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

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

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

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

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

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

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

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

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

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

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

  • 00:50:00 В этом разделе инструктор рассказывает о концепции смещения и дисперсии в моделях машинного обучения. Модель с высоким смещением будет иметь одинаковую точность между данными обучения и тестирования, потому что она постоянно выдает один и тот же результат независимо от ввода. С другой стороны, модель с высокой дисперсией слишком точно соответствует данным, что приводит к большим потерям при тестировании на новых данных. Преподаватель подчеркивает компромисс между сложностью модели и ее обобщением, что важно понимать при выборе модели для конкретной задачи. Наконец, преподаватель призывает студентов посещать занятия и прикладывать усилия, чтобы узнать о машинном обучении и глубоком обучении, даже если это не является их главным приоритетом.
CS 198-126: Lecture 1 - Intro to Machine Learning
CS 198-126: Lecture 1 - Intro to Machine Learning
  • 2022.12.03
  • www.youtube.com
Lecture 1 - Intro to Machine LearningCS 198-126: Modern Computer Vision and Deep LearningUniversity of California, BerkeleyPlease visit https://ml.berkeley.e...
 

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



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

В этой лекции на YouTube «Введение в глубокое обучение» инструктор обсуждает основы моделей глубокого обучения и способы их обучения с использованием градиентного спуска, охватывая различные строительные блоки для нейронных сетей и почему глубокое обучение является такой распространенной технологией. Лекция знакомит с персептроном и стекированием нескольких персептронов для создания более сложной и сложной нейронной сети, а также объясняет, как вычислить выходные данные путем умножения матриц и окончательного сложения со средним уровнем, использующим функцию активации ReLU. Докладчик рассматривает использование функции Softmax и функции активации ReLU, используя функции потерь в качестве метрик для оценки того, насколько хорошо работает модель, а также концепцию оптимизации градиентного спуска. Наконец, инструктор обсуждает идею глубокого обучения и то, как большая нейронная сеть обеспечивает низкие потери, несмотря на ее способность запоминать данные. Также лектор знакомит с концепцией настройки гиперпараметров в нейронных сетях для повышения их производительности с конкретными наборами данных. Он отмечает, что для гиперпараметров не существует универсальных значений, и предлагает изучить различные варианты, такие как номера слоев и функции активации. Из-за нехватки времени лекция резко обрывается, но лектор уверяет студентов, что предстоящая викторина не будет слишком сложной и будет доступна на платформе GreatScope.

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

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

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

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

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

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

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

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

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

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

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

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

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