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

 

Ускоренный курс глубокого обучения для начинающих


Ускоренный курс глубокого обучения для начинающих

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • 01:25:00 Этот вводный курс по глубокому обучению дает общий обзор темы, подчеркивая важность нейронных сетей и отсева.
Deep Learning Crash Course for Beginners
Deep Learning Crash Course for Beginners
  • 2020.07.30
  • www.youtube.com
Learn the fundamental concepts and terminology of Deep Learning, a sub-branch of Machine Learning. This course is designed for absolute beginners with no exp...
 

Как работают глубокие нейронные сети — полный курс для начинающих



Как работают глубокие нейронные сети — полный курс для начинающих

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

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

02:00:00 - 03:00:00 В видеоролике «Как работают глубокие нейронные сети — полный курс для начинающих» обсуждается производительность нейронных сетей в различных сценариях, сравнивая ее с интеллектом человеческого уровня. Лектор вводит научное определение интеллекта как способности хорошо делать многие вещи и сравнивает производительность и универсальность машин и людей в логарифмической шкале. Видео охватывает такие темы, как ограничения сверточных нейронных сетей в классификации изображений, успех глубокого обучения в настольных играх и языковом переводе, общие ограничения рекомендателей и беспилотных автомобилей, а также растущая сложность человекоподобных роботов. В видео подчеркивается впечатляющий рост интеллекта, универсальности и производительности AlphaZero, а также аргументируется необходимость сосредоточения внимания на физическом взаимодействии для создания алгоритмов, которые могут выполнять более общий набор задач, приближая нас к человеческому интеллекту. Наконец, инструктор объясняет процесс свертки, объединения и нормализации в сверточных нейронных сетях, чтобы распознавать закономерности и делать точные прогнозы.

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

Часть 1

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

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

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

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

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

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

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

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

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

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

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

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


Часть 2

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

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

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

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

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

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

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

  • 01:35:00 В этом разделе инструктор приводит пример того, как обученная сеть LSTM может генерировать прогнозы для следующего слова в предложении. Предполагая, что LSTM был обучен на примерах детских книг, пример предложения будет «Джейн увидела Пятно». Слово «Doug» является самым последним словом, и LSTM предсказывает «Doug», «Jane» и «Spot» как жизнеспособные варианты. Затем LSTM пропускает эти прогнозы через четыре разные нейронные сети, которые учатся делать прогнозы, и LSTM предсказывает, что «пила» является наиболее вероятным следующим словом. В примере показано, как LSTM может генерировать прогнозы на основе предыдущих слов и прогнозов и избегать определенных ошибок с помощью памяти и вентилей выбора.

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

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

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

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


Часть 3

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

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

  • 02:10:00 В этом разделе видео обсуждается, как интеллект сравнивается на графике с универсальностью в качестве одной оси и производительностью в качестве другой. Компьютеры, играющие в шахматы, были первыми агентами, способными работать на сверхчеловеческом уровне: Deep Blue от IBM обыграл Гэри Каспарова в 1989 году. Самая современная шахматная программа Stockfish имеет рейтинг ELO 3447, что делает ее намного лучше. чем любой игрок-человек. Однако стоит отметить, что Stockfish специально запрограммирован для шахмат и не обладает универсальностью, в отличие от людей. Видео сравнивает Stockfish с настольной игрой Go, которая считается еще более сложной, и демонстрирует важность общности в интеллекте.

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

  • 02:20:00 В этом разделе лектор обсуждает ограничения сверточных нейронных сетей (CNN) при классификации изображений. Хотя CNN предназначены для поиска шаблонов в двумерных массивах данных, таких как пиксели на шахматной доске, было показано, что они легко ломаются за пределами набора изображений, на которых они обучаются. Хрупкость CNN демонстрируется, когда изображения искажаются, изменяется один пиксель или добавляются наклейки, чтобы обмануть CNN и заставить его неправильно классифицировать изображение. Лектор объясняет, что универсальность классификации изображений находится не там, где нам хотелось бы, даже несмотря на то, что она работает лучше, чем люди в наборе данных ImageNet. В лекции также упоминается, что алгоритм глубокого обучения DeepMind поразил мир, достигнув уровня эксперта в 29 из 49 классических игр Atari.

  • 02:25:00 В этом разделе инструктор обсуждает, как глубокие нейронные сети работают в видеоиграх и при переводе языков. После использования сверточных нейронных сетей для изучения шаблонов пикселей для видеоигр с помощью обучения с подкреплением алгоритм не смог сравниться с человеческой производительностью в 20 играх, которые требовали долгосрочного планирования. Это говорит о том, что алгоритм не смог продумать несколько шагов вперед, чтобы установить необходимые соединения. С другой стороны, языковой перевод использует долговременную кратковременную память (LSTM) для перевода более 100 языков в одно промежуточное представление. Однако стоит отметить, что перевод имеет ограничения по точности и проблемам с эффективностью из-за большого объема вычислений. Таким образом, хотя машинный перевод и имеет возможности, он не соответствует возможностям человека.

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

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

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

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

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

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


Часть 4

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

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

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

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

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

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

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

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

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

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

  • 03:50:00 В этом разделе спикер объясняет, что, хотя создание собственных сверточных нейронных сетей с нуля — отличное упражнение, уже есть много зрелых инструментов, доступных для использования. Вывод из этого раздела заключается в том, что при работе с нейронными сетями важно принимать множество тонких решений о том, как подготавливать данные, интерпретировать результаты и выбирать гиперпараметры. Понимание того, что делается с данными, и смысл, стоящий за этим, поможет получить максимальную отдачу от доступных инструментов.
How Deep Neural Networks Work - Full Course for Beginners
How Deep Neural Networks Work - Full Course for Beginners
  • 2019.04.16
  • www.youtube.com
Even if you are completely new to neural networks, this course will get you comfortable with the concepts and math behind them.Neural networks are at the cor...
 

Курс машинного обучения для начинающих (описание частей 1-5)


Курс машинного обучения для начинающих

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

01:00:00 - 02:00:00 Этот курс машинного обучения для начинающих охватывает ряд важных тем машинного обучения для новых учащихся. Преподаватель объясняет векторизацию частной производной тета в линейной регрессии, нормальное уравнение, предположения линейной регрессии и разницу между независимыми и зависимыми функциями. Курс также включает задачи логистической регрессии и классификации, обучение гипотезе логистической регрессии, функции стоимости и градиентному спуску, а также коду векторизации для функции стоимости и градиентного спуска. Кроме того, курс знакомит с библиотеками Python, методами анализа данных, построением моделей и проверкой точности с использованием линейной регрессии. Преподаватель также рассказывает о методах регуляризации и их важности в машинном обучении для предотвращения переобучения. Курс охватывает гребенчатую регрессию и регрессию лассо, которая снижает веса менее важных признаков, приближая их к нулю или полностью исключая их.

. 02:00:00 - 03:00:00 «Курс машинного обучения для начинающих» охватывает различные темы, такие как методы регуляризации, методы опорных векторов (SVM), нелинейная классификация и исследование данных. Курс представляет собой введение в SVM и объясняет, как они строят гиперплоскости с максимальными запасами, чтобы делать прогнозы при классификации точек данных. Также рассматривается концепция классификации жесткой и мягкой маржи в SVM, а также их различия. Курс также включает в себя проект прогнозирования цен на акции с использованием библиотек Python и исследует показатели оценки, такие как среднеквадратическая ошибка, среднеквадратическая ошибка и квадрат R2 для модели линейной регрессии. Регуляризованные линейные модели, такие как Ridge и Lasso, также подробно объясняются, а также демонстрируется создание простого приложения с использованием Flask.

03:00:00 - 04:00:00 Видео «Курс машинного обучения для начинающих» охватывает различные темы, связанные с машинным обучением, такие как настройка сервера и веб-сайта с использованием Flask, анализ основных компонентов (PCA), систематическая ошибка и дисперсионная торговля. -offs, регрессионные модели и вложенные операторы if-else. Преподаватели подчеркивают важность понимания концепций машинного обучения и предварительной обработки данных для текста и изображений в реальных сценариях и предоставляют практические примеры того, как работать с данными Iris и создавать простые деревья решений. Видео также охватывает такие темы, как линейные преобразования, собственные векторы и собственные значения, и объясняет, как PCA может уменьшить размерность данных при сохранении информации. В целом, видео представляет собой всеобъемлющее введение для начинающих, чтобы узнать о машинном обучении и его приложениях.

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

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

06:00:00 - 07:00:00 Видео «Курс машинного обучения для начинающих» охватывает несколько тем, связанных с бустингом, таких как основная идея бустинга, различные методы бустинга (например, градиентный бустинг, адаптивный бустинг и экстремальный бустинг). ), алгоритм обучения модели с использованием бустинга и как можно использовать бустинг для уменьшения высокого смещения в моделях машинного обучения. Кроме того, в видео обсуждается реализация алгоритмов повышения в Python с использованием таких библиотек, как scikit-learn и mlx10. В видео также затрагивается концепция наложения, метода объединения нескольких моделей для создания новой модели с более высокой производительностью. Преподаватель демонстрирует, как создать модель классификации с накоплением, используя логистическую регрессию, k-ближайших соседей, гауссовский наивный байесовский метод и модели случайного леса в Python с использованием библиотеки sklearn.

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

08:00:00 - 09:00:00 Это видео на YouTube под названием «Курс машинного обучения для начинающих» охватывает различные темы, связанные с машинным обучением. Один раздел посвящен кластеризации k-средних и подробно объясняет алгоритм, включая инициализацию центроидов, назначение кластеров и обновление кластеров до сходимости. Видео также представляет K-means++ и метод локтя как решения проблем, возникающих при случайной инициализации. Кроме того, в другом разделе рассматривается иерархическая кластеризация, объясняющая создание иерархии кластеров с использованием методов агломеративной и разделительной кластеризации. Видео завершается обсуждением проекта модели прогнозирования сердечной недостаточности, целью которого является создание системы искусственного интеллекта для здравоохранения, которая поможет в раннем выявлении проблем со здоровьем для спасения жизней.

09:00:00 - 09:50:00 Видео «Курс машинного обучения для начинающих» охватывает различные темы, связанные с машинным обучением, такие как несбалансированные данные, корреляция, разработка признаков, построение и оценка моделей, а также классификация текста с использованием методов НЛП. Преподаватель подчеркивает важность сбалансированных данных и визуализации данных для лучшего их понимания. Докладчик шаг за шагом описывает процесс создания системы обнаружения спама и ветчины, анализа и понимания данных, а также применения методов НЛП для классификации сообщений как спама или ветчины. Курс дает обзор основных концепций, на которые могут опираться начинающие энтузиасты машинного обучения.


Часть 1

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

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

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

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

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

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

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

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

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

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

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

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

Часть 2

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

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

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

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

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

  • 01:25:00 В этом разделе инструктор знакомит с библиотеками Python, которые будут использоваться в проекте, включая numpy, pandas, plotly, seaborn и matplotlib. Проект предполагает прогнозирование цен на дома в Бостоне с помощью машинного обучения, а данные загружаются из библиотеки scikit-learn. Целевой переменной является y, которая представляет собой цену продажи, а x — это независимые функции, используемые для прогнозирования модели. Затем данные преобразуются во фрейм данных, и инструктор показывает, как получить доступ к информации о данных, включая количество строк и столбцов, ненулевые значения и типы данных, используя различные функции pandas. Функция описания также используется для отображения среднего значения, стандартного отклонения, минимума, максимума и процентилей каждого столбца.

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

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

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

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

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

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

Часть 3

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

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

  • 02:10:00 В этом разделе была представлена концепция жесткой и мягкой маржи в SVM. Жесткая граница не позволяет точкам данных попасть на границу, в то время как мягкая граница позволяет некоторым точкам данных нарушать границу, чтобы избежать переобучения. Ширина поля регулируется параметром c, где очень большое значение c делает поле очень маленьким, а значение ac, равное 1, делает поле очень большим. Также обсуждалась конструкция гиперплоскости в SVM, которая определяется уравнением w, транспонируемым x минус b, равно z, где w - вектор весовых параметров, а b - член смещения. Были определены ограничения для прогнозов жесткой маржи, где все, что выше или выше маржи, считается единицей, а все, что ниже, считается нулем.

  • 02:15:00 В этом разделе видео обсуждается, как работают машины опорных векторов (SVM), и дается математическое объяснение SVM. Запас гиперплоскости записывается как 2 сверх нормы w, и чтобы максимизировать этот запас, нам нужно минимизировать норму w. SVM стремится максимизировать маржу, чтобы делать прогнозы. В видео объясняется, что мы можем написать целевую функцию, выраженную как расстояние между двумя гиперплоскостями, которое равно двум сверх нормы w, при условии, что фактическая метка данных больше или равна 1. В видео также рассматривается функция потерь, записанная как потеря шарнира или мягкая маржа, и объясняет, как она работает, чтобы получить хорошие прогнозы простым способом. Концепция линейного SVM также рассматривается перед обсуждением нелинейной классификации.

  • 02:20:00 В этом разделе видео обсуждается концепция нелинейной классификации и трюк с ядром, который может помочь в достижении нелинейной спецификации. Трюк ядра преобразует данные из одномерного пространства в многомерное, сопоставляя входные данные с функцией phi of x. Функция ядра RBF — одно из известных ядер, преобразующих данные в многомерное пространство. В видео также рассказывается об основной проблеме, которая помогает формализовать целевую функцию, вводя новую переменную, называемую дзета. Переменная дзета вводится для каждого члена i от одного до всех, округляя до n.

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

  • 02:30:00 В этом разделе спикер демонстрирует, как создать предсказатель курса акций с использованием библиотек Python, таких как NumPy, Pandas, Matplotlib, Seaborn и YFinance. Код загружает данные из Yahoo Finance и вводит код загружаемой акции. Данные настраиваются с помощью автоматической настройки, и отображается форма данных, в которой содержится в общей сложности 1256 обучающих примеров и пять столбцов. Спикер объясняет, что это отправная точка для построения предсказателя курса акций.

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

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

  • 02:45:00 В этом разделе спикер рассказывает о вычислении матриц для оценки производительности моделей линейной регрессии. Они обсуждают использование среднеквадратичной ошибки (MSE), среднеквадратичной ошибки (RMSE) и квадрата R2 для оценки эффективности модели. Спикер предоставляет вспомогательную функцию для расчета этих матриц, и они используют ее для оценки производительности своей модели линейной регрессии. Они обнаружили, что MSE и RMSE почти равны нулю, что означает, что модель точно предсказывает значения. Квадрат R2 также близок к 1, что указывает на хорошее соответствие модели.

  • 02:50:00 В этом разделе спикер обсуждает регуляризованные линейные модели, такие как гребень и лассо, и демонстрирует, как их можно реализовать с помощью Scikit-Learn в Python. Спикер объясняет, что лассо устраняет менее важные признаки, а гребень наказывает их. По словам спикера, модель хребта менее подвержена переоснащению, что делает ее лучшим выбором для сохранения модели и создания веб-сайта. Докладчик также обсуждает регрессию опорных векторов и демонстрирует, как ее можно настроить с помощью CV поиска по сетке для проверки различных значений и выбора лучшей модели.

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

Часть 4

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

  • 03:05:00 В этом разделе видео YouTube «Машинное обучение для начинающих» инструктор объясняет, как удалить мультиколлинеарность в данных с помощью анализа главных компонентов (PCA). Коррелированные переменные могут быть проблематичными в моделях машинного обучения, но PCA — это алгоритм уменьшения размерности, который может эффективно решить эту проблему. Чтобы подготовиться к изучению PCA, инструктор кратко рассматривает линейные преобразования и собственные векторы/собственные значения, которые обеспечивают основу для понимания концепции уменьшения размерности. Преподаватель рекомендует канал на YouTube для тех, кто заинтересован в более глубоком погружении в линейную алгебру, но подчеркивает, что этот материал не является обязательным для понимания PCA.

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

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

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

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

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

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

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

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

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

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

Часть 5

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

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

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

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

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

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

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

  • 04:35:00 В этом разделе инструктор объясняет концепцию примеси Джини как еще одной меры примеси в дереве решений. Примесь Джини — это знак, данный для данной примеси y, равной 1 минус i равной 1, вплоть до k. Преподаватель объясняет сценарий примеси Джини на примере уникального значения категории «да» или «нет», где 0,5 — это вероятность числа «да», а числа «нет» — 0,5. Примесь усиления 0,5 является максимальной примесью Джини, которая в основном используется в качестве альтернативы энтропии, поскольку она быстрее, поскольку позволяет избежать использования логарифмической функции в энтропии. Наконец, инструктор показывает диаграмму энтропии и примеси Джини и обещает продемонстрировать, как использовать классификатор дерева решений для выполнения задачи регрессии в следующем разделе.

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

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

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

  • 04:55:00 В этом разделе видео обсуждается регрессия дерева решений и ее критерии измерения функции, включая среднеквадратичную ошибку, среднюю абсолютную ошибку и отравление. В видео подчеркивается важность гиперпараметров, особенно максимального шага, в управлении переоснащением. Также демонстрируются примеры деревьев решений и их методов, таких как график, а в видео подчеркивается важность понимания деревьев решений как ключевой концепции машинного обучения. В следующем разделе обсуждается ансамблевое обучение и три его метода: бэггинг, бустинг и суммирование, которые обычно используются в соревнованиях Kaggle.
Machine Learning Course for Beginners
Machine Learning Course for Beginners
  • 2021.08.30
  • www.youtube.com
Learn the theory and practical application of machine learning concepts in this comprehensive course for beginners.🔗 Learning resources: https://github.com/...
 

Курс машинного обучения для начинающих (описание частей 6-10)


Курс машинного обучения для начинающих

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

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

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

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

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

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

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

  • 05:35:00 В этом разделе видео обсуждаются методы бэггинга и случайного леса в машинном обучении. Бэггинг включает в себя выборку строк, что приводит к увеличению модели и уменьшению дисперсии. Случайный лес — это то же самое, но с выборкой столбцов и деревьями решений в качестве базовых моделей. Сложность поезда в деревьях решений составляет порядок n log m, умноженный на n, умноженный на d, тогда как в случайных лесах это d, умноженный на k, умноженный на n. В видео также обсуждается, как случайные леса тривиально распараллеливаются, что упрощает их обучение. Наконец, вводится концепция чрезвычайно рандомизированных деревьев, которые пробуют возможные значения для определения порога в деревьях решений.

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

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

  • 05:50:00 В этом разделе видео инструктор обсуждает техники ансамбля, в частности Буст. Повышение является еще одним популярным методом обучения ансамблю, и инструктор дает обзор повышения градиента, адаптивного повышения или AdaBoost и экстремального повышения или XGBoost. Инструктор также упоминает, что на GitHub есть набор задач, которые зрители могут попробовать, и призывает зрителей подписаться на канал YouTube, чтобы поддерживать создание большего количества бесплатного контента.

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

Часть 7

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

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

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

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

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

  • 06:25:00 В этом разделе видео обсуждается, как можно использовать повышение для уменьшения высокого смещения в моделях машинного обучения. Повышение включает в себя подгонку остатков предыдущей модели во время каждой итерации, что может привести к переобучению и увеличению дисперсии. Чтобы избежать этой проблемы, можно добавить регуляризацию и сокращение с помощью обучаемого параметра, называемого v. Опытным путем было обнаружено, что значение v, равное 0,1, приводит к значительным улучшениям. В видео также рассказывается о временной сложности деревьев решений повышения градиента и реализации повышения градиента с помощью API scikit-learn.

  • 06:30:00 В этом разделе спикер обсуждает реализацию классификатора повышения градиента с использованием API Scikit-learn. Они объясняют различные задействованные параметры, такие как потери, скорость обучения, количество оценок и многое другое. Скорость обучения используется для уменьшения чрезмерной дисперсии и предотвращения переобучения. Реализация Gradient Boosting Classifier — это всего лишь одна строка кода, а вероятность прогноза дает вероятность того, что данные верны для определенного класса. Докладчик также кратко обсуждает реализацию Gradient Boosting Regressor и подчеркивает важность изучения документации.

  • 06:35:00 В этом разделе видео «Курс машинного обучения для начинающих» инструктор обсуждает классификатор AdaBoost и его реализацию с помощью Cython API, а также алгоритм Extreme Gradient Boosting (XGBoost). Инструктор объясняет, что XGBoost — это расширенная версия Gradient Boosting, которая добавляет рандомизацию посредством выборки строк и столбцов, что делает его мощным инструментом для решения проблем машинного обучения. В этом разделе также рассматриваются различные параметры, используемые в XGBoost, и их значение для точной настройки модели.

  • 06:40:00 В этом разделе спикер рассказывает о различных пакетах для алгоритмов машинного обучения, таких как Gradient Boosting Tree, GB Linear и DART. Они обсуждают различные параметры, которые можно настроить, включая матрицу оценки и регуляризацию, а также то, как они влияют на модель. Спикер также упоминает XGBoost и показывает, как он используется в Python. Они подчеркивают важность точной настройки модели и того, как это может привести к повышению точности. Наконец, спикер представляет концепцию наложения и то, как это может помочь повысить точность моделей.

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

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

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

Часть 8

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

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

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

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

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

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

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

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

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

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

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

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

Часть 9

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

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

  • 08:10:00 В этом разделе инструктор объясняет, почему случайная инициализация центроидов в кластеризации K-средних может вызвать проблемы, и в качестве решения представляет алгоритм K-средних++. K-means++ включает в себя выбор нескольких центроидов и выбор того, который минимизирует сумму квадратов ошибок (SSE). Преподаватель также представляет метод локтя, который используется для определения оптимального количества центроидов на основе графика зависимости SSE от количества кластеров. Рекомендуется использовать K-means++ и метод локтя, а не случайную инициализацию для лучших результатов кластеризации в машинном обучении.

  • 08:15:00 В этом разделе инструктор объясняет метод оценки для k-средних, который включает минимизацию внутрикластера путем вычисления расстояния между точками внутри кластера с использованием суммы квадратов ошибок. Инициализация центроидов влияет на алгоритм, и метод k-means++ является рекомендуемым методом для выбора центроидов на основе нескольких прогонов с низким значением SSE. Количество кластеров можно определить с помощью метода локтя, где оптимальным значением k является точка поворота локтя. Преподаватель также упоминает некоторые ограничения кластеризации k-средних, такие как чувствительность к выбросам, которые можно решить с помощью методов на основе плотности, таких как DBSCAN или иерархическая кластеризация. Временная сложность кластеризации k-средних зависит от размера входных данных, количества кластеров и измерений. Преподаватель рекомендует пройти мастер-класс DSA, чтобы лучше понять концепцию временной сложности.

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

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

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

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

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

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

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

  • 08:55:00 В этом разделе мы узнаем об основах изучения данных, таких как проверка формы данных и их информации. Используя метод info(), мы можем увидеть, есть ли нулевые значения, тип данных и использование памяти. Мы также можем использовать метод description(), чтобы получить представление о статистическом распределении числовых данных. Исследовательский анализ данных (EDA) — важный шаг в машинном обучении, когда мы задаем вопросы к данным и находим ответы, которые помогают в предоставлении бизнес-решений. Для этой задачи бинарной классификации мы рассмотрим распределение классов, где «1» означает, что человек умер, а «0» означает, что человек жив.

Часть 10

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

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

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

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

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

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

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

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

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

  • 09:45:00 В этом разделе спикер рассказывает о предварительной обработке текста и применении стемминга с помощью стеммера Портера для уменьшения перегиба в словах. Спикер также упоминает об инженерии признаков, где рука кодируется до нуля и расширяется до единицы с помощью вызова метода карты. Затем обучающий набор преобразуется во встраивания слов, которые преобразуют слова в числа с использованием таких методов, как векторизатор счета, векторизатор tf-idf и набор слов. Текст преобразуется в разреженную матрицу с сохраненными элементами, которая затем используется в алгоритме Наивного Байеса для классификации. Наконец, спикер приводит пример того, как тестировать новый текст, вызывая векторизатор и модель count, чтобы определить, является ли он спамом или нет.

  • 09:50:00 В этом разделе видео спикер демонстрирует, как создать базовую систему обнаружения спама и ветчины с использованием методов обработки естественного языка (NLP), таких как преобразование вектора счета и предсказание наивного Байеса. Система принимает сообщения в качестве входных данных, предварительно обрабатывает их и прогнозирует, являются ли они спамом или нет. Спикер подчеркивает, что это всего лишь пример того, как работать с данными в НЛП, и что можно использовать различные другие техники. Спикер завершает курс и поздравляет зрителей с его завершением.
Machine Learning Course for Beginners
Machine Learning Course for Beginners
  • 2021.08.30
  • www.youtube.com
Learn the theory and practical application of machine learning concepts in this comprehensive course for beginners.🔗 Learning resources: https://github.com/...
 

Машинное обучение для всех — полный курс



Машинное обучение для всех — полный курс

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

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

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

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


Часть 1

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

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

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

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

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

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

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

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

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

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

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

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


Часть 2

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

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

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

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

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

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

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

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

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

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

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

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


Часть 3

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

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

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

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

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

  • 02:25:00 Среднеквадратическая ошибка (MSE) — это мера того, насколько хорошо работает прогноз, и она тесно связана со средней абсолютной ошибкой. RMSE рассчитывается путем взятия суммы всех квадратов остатков и используется для измерения того, насколько хорошо прогноз работает по сравнению с его ожидаемым значением.

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

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

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

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

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

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


Часть 4

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

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

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

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

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

  • 03:25:00 Машинное обучение — это область анализа данных, которая помогает делать прогнозы относительно неизвестных данных. В этом курсе инструктор объясняет, как использовать анализ основных компонентов (PCA) для уменьшения размерности набора данных. Это позволяет упростить визуализацию и различение точек данных.

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

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

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

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

  • 03:50:00 В этом видео рассказывается о машинном обучении и его различных этапах, включая обучение без учителя. В нем также рассказывается, как выполнять кластеризацию с использованием k-средних. Видео завершается обсуждением контролируемого обучения и его различных этапов, включая классификацию и регрессию.
Machine Learning for Everybody – Full Course
Machine Learning for Everybody – Full Course
  • 2022.09.26
  • www.youtube.com
Learn Machine Learning in a way that is accessible to absolute beginners. You will learn the basics of Machine Learning and how to use TensorFlow to implemen...
 

Ускоренный курс TensorFlow 2.0


Ускоренный курс TensorFlow 2.0

Видео «Ускоренный курс TensorFlow 2.0» охватывает основы нейронных сетей и их архитектуры, уделяя особое внимание классификации изображений. Преподаватель использует игру «Змейка» и набор данных fashion mnist в качестве примеров для обучения нейронной сети в процессе корректировки весов и смещений на основе функций потерь. Видео показывает важность предварительной обработки данных и использования функций активации, таких как сигмоид и ReLU, для создания более сложных моделей. Докладчик также подчеркивает важность данных тестирования и обучения и демонстрирует, как загружать и изменять данные изображения для модели. Наконец, докладчик показывает, как определить архитектуру модели в Keras, обучить ее с помощью методов компиляции и подгонки и делать прогнозы для определенных изображений с помощью «model.predict».

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

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

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

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

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

  • 00:20:00 В этом разделе спикер обсуждает функции активации и их роль в нейронных сетях. Эти функции позволяют усложнить модель, включив нелинейные функции, которые лучше подходят для аппроксимации реальных данных. Сигмоид — это одна из основных функций активации, которая преобразует выходные данные в диапазон от 0 до 1. Недавно использованная функция — Rectified Linear Unit (ReLU), которая устанавливает отрицательные значения в 0 и делает положительные значения более положительными, таким образом сохраняя данные. точек в диапазоне от 0 до положительной бесконечности. Спикер также объясняет, что функции потерь имеют решающее значение для понимания того, как необходимо корректировать веса и смещения в моделях. Они рассчитывают ошибку между прогнозируемым выходом и фактическим выходом, обеспечивая более эффективную настройку и регулировку.

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

  • 00:30:00 В этом разделе видео рассказывается о необходимых для установки пакетах, таких как tensorflow, keras, numpy и matplotlib, для построения графиков и отображения изображений. Видео также объясняет разницу между тестовыми и обучающими данными, где около 90-80% данных передаются в сеть для ее обучения, а оставшиеся данные используются для проверки точности и гарантии того, что сеть не просто запоминает данные. данные. В видео используется Keras для разделения набора данных на данные обучения и тестирования с метками. Наконец, видео дает представление о представлении метки, где каждому изображению присвоена определенная метка от 0 до 9.

  • 00:35:00 В этом разделе инструктор демонстрирует, как загружать и изменять данные изображения для модели TensorFlow 2.0. Он создает список имен меток, показывая, что представляет каждый номер метки. Затем он использует библиотеку Matplotlib для отображения изображений и объясняет, что они представляют собой массивы размером 28x28 пикселей. Значения пикселей делятся на 255, чтобы уменьшить размер данных и упростить работу с моделью. Измененные данные, состоящие из десятичных значений, загружаются в модель, которая будет предсказывать класс, т. е. номер метки, от 0 до 9. В заключение инструктор упомянул, что продемонстрирует настройку, обучение и тестирование модели в следующий раздел.

  • 00:40:00 В этом разделе ускоренного курса TensorFlow 2.0 спикер объясняет архитектуру нейронной сети для классификации изображений. Входные данные представляют собой массив 28x28 пикселей со значениями в градациях серого, который сглаживается в список из 784 пикселей для подачи на входной слой нейронной сети. Выходной слой имеет 10 нейронов, каждый из которых представляет один из 10 классов (0-9). Цель состоит в том, чтобы наиболее активный нейрон представлял предсказанный класс. Докладчик также затрагивает скрытые слои, подчеркивая, что двухслойная сеть возможна, но не идеальна для более сложных задач распознавания изображений.

  • 00:45:00 В этом разделе ускоренного курса TensorFlow 2.0 инструктор объясняет концепцию скрытых слоев в нейронных сетях. Добавляя скрытый слой со 128 нейронами, сеть может анализировать изображение и выявлять шаблоны, которые могут помочь лучше распознать изображение. Выбор 128 нейронов несколько произволен, а количество нейронов для скрытого слоя зависит от приложения. Затем инструктор переходит к определению архитектуры или слоев модели в Keras. Архитектура включает сглаженный входной слой, два плотных или полностью связанных слоя и выходной слой с 10 нейронами и активацией softmax, чтобы дать вероятность того, что сеть распознает определенный класс.

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

  • 00:55:00 В этом разделе докладчик демонстрирует, как использовать модель для прогнозирования конкретных изображений. Он объясняет, что вам нужно использовать метод «model.predict» и передать список или массив np, который включает входную форму изображений. Затем метод даст вам группу прогнозов, так как он ожидает, что вы передадите кучу разных вещей, и предскажет их все, используя модель. Результатом является серия различных списков, каждый из которых содержит прогнозы модели для определенного изображения. Ведущий отмечает, что в обучающих видео этой функции иногда пренебрегают, но важно понять, как использовать модель на практике.
  • 01:00:00 В этом разделе спикер показывает, как интерпретировать и проверять сетевые прогнозы с помощью функции np.argmax(), которая находит индекс наибольшего числа в списке. Они берут значение этой функции и передают его в имена классов, чтобы получить фактическое имя предсказанного класса. Затем докладчик настраивает базовый цикл for для отображения нескольких изображений из тестовых изображений и показывает соответствующий прогноз для каждого из них. Они показывают, как это можно использовать для проверки точности предсказания модели и того, что предсказание имеет смысл по отношению к отображаемому входному изображению. Наконец, спикер отмечает быстрое исправление ошибки, с которой он столкнулся.

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

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

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

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

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

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

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

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

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

  • 01:50:00 В этом разделе видео спикер объясняет, как сохранять и загружать модели в TensorFlow, чтобы не приходилось переобучать модель каждый раз, когда делается прогноз, что может быть особенно неудобно для больших моделей, которые могут занять дни, недели, а то и месяцы на тренировки. После увеличения размера словаря модели спикер показывает, как сохранить модель с помощью функции «model.save()», и дает ей имя с расширением «.h5», которое является расширением, используемым для сохраненных моделей в TensorFlow. и Керас. В будущих видеороликах спикер планирует обсудить модели контрольных точек и пакетную загрузку моделей с разными объемами данных.

  • 01:55:00 В этом разделе спикер объясняет, как сохранить и загрузить модель в TensorFlow 2.0. Модель можно сохранить в бинарных данных, что экономит время при прогнозировании, поскольку модель не нужно каждый раз переобучать. Чтобы загрузить модель, необходимо добавить одну строку кода с именем файла. Затем докладчик демонстрирует, как протестировать модель на внешних данных, открыв текстовый файл в коде и предварительно обработав данные, чтобы их можно было передать в модель. Важно отметить, что размер текстового файла должен быть не более 250 слов, чтобы соответствовать обучающим данным. Предварительная обработка включает удаление нежелательных символов, таких как запятые и скобки.
  • 02:00:00 В этом разделе создатель видео обсуждает процесс кодирования и сокращения данных до 250 слов, чтобы их можно было использовать в модели для прогнозирования. Такие символы, как точки, кавычки и скобки, необходимо удалить, чтобы обеспечить правильное сопоставление слов. Создается функция для поиска сопоставлений для всех слов в данных и возврата закодированного списка. После того, как данные закодированы, модель используется для создания прогноза, а исходный текст, закодированный обзор и прогноз печатаются. Наконец, определена функция review_in_code для преобразования строковых данных в закодированный список.

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

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

Python TensorFlow для машинного обучения — учебник по классификации текста при помощи нейронной сети



Python TensorFlow для машинного обучения — учебник по классификации текста при помощи нейронной сети

В этом учебном пособии на YouTube ведущий освещает ряд тем, связанных с Python TensorFlow для машинного обучения и классификации текста при помощи нейронной сети. Они начинают с обсуждения процесса настройки в Google Colab и импорта необходимых библиотек, прежде чем сосредоточиться на наборе данных Wine Reviews и использовать Matplotlib для построения гистограмм различных функций. В учебнике рассматриваются концепции машинного обучения, в том числе обучение с учителем, разница между качественными и количественными данными, а также входные данные и прогнозы в сценариях классификации, таких как бинарная и многоклассовая классификация. Другие затронутые темы включают функции потерь, нейронные сети, функции активации, градиентный спуск и обратное распространение, а также реализацию нейронных сетей в TensorFlow. Наконец, ведущий реализует нейронную сеть с использованием TensorFlow для классификации текста, демонстрируя преимущества использования пакетов и библиотек для повышения эффективности.

Вторая часть видеоурока охватывает различные аспекты машинного обучения с помощью TensorFlow в Python, уделяя особое внимание классификации текста в нейронной сети. Учебное пособие охватывает разделение данных на наборы для обучения и тестирования, создание простой модели с помощью TensorFlow и Keras, масштабирование и балансировку наборов данных, использование рекуррентных нейронных сетей и использование TensorFlow Hub для классификации текста. В учебнике подчеркивается важность оценки точности модели и использования различных компонентов нейронной сети, таких как функции активации, выпадающие слои и различные типы ячеек. Учебное пособие завершается обобщением основных выводов, включая построение нейронных сетей, использование TensorFlow для классификации текста и работу с числовыми данными.

  • 00:00:00 В этом разделе видео Кайли Ин начинает с того, что показывает зрителям, как настроить новый блокнот в Google Colab и импортировать необходимые библиотеки, такие как NumPy, Pandas, Matplotlib, TensorFlow и TensorFlow Hub. После импорта этих библиотек она загружает набор данных под названием «Wine Reviews» в виде CSV-файла и читает его как Pandas DataFrame, выбирая столбцы, которые ей интересны для анализа, такие как страна, описание, баллы и цена. Она решает сосредоточиться на анализе взаимосвязи между столбцами описания и баллов, чтобы увидеть, можно ли обучить модель нейронной сети классифицировать, находится ли обзор вина в нижней или верхней части спектра баллов.

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

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

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

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

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

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

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

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

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

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

  • 00:55:00 В этом разделе видеоруководства по использованию Python TensorFlow для машинного обучения и классификации текста нейронной сети ведущий создает новый фрейм данных с нулевыми результатами, а другой — с единичными результатами, чтобы различать пациентов с диабетом. и те без. Следующий шаг включает в себя визуализацию количества пациентов с диабетом и диабетом, что кажется неубедительным, поскольку среди различных значений нет разделимой закономерности. Это подчеркивает важность машинного обучения в прогнозировании диабета путем совместного рассмотрения всех признаков. Наконец, ведущий разбивает фрейм данных на значения x и y для дальнейшего анализа.
  • 01:00:00 В этом разделе спикер объясняет, как разделить данные на наборы для обучения и тестирования с помощью модуля Scikit-learn. Спикер импортирует модуль, вызывает функцию train_test_split и передает входные и выходные функции. Размер теста установлен на 20%, а размер обучения установлен на 60% набора данных. Затем временные наборы используются для создания проверочных и тестовых наборов с разделением 50/50. Наконец, спикер строит простую модель, используя TensorFlow и Keras, в частности плотный слой с 16 нейронами, тесно связанными с предыдущим слоем.

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

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

  • 01:15:00 В этом разделе видеоруководство посвящено нормализации и балансировке набора данных с помощью процесса, называемого случайной избыточной выборкой. Визуализируя данные, инструктор демонстрирует, как набор данных для пациентов с диабетом и пациентов без диабета сильно несбалансирован, что приводит к тому, что нейронная сеть может плохо обучаться. При использовании случайного сэмплера в набор данных добавляется больше случайных выборок, уравновешивая длины двух категорий. Это достигается за счет импорта другого пакета под названием Imbalance Learn Dot Over Sample, который включает в себя Random Over Sampler. Набор данных снова разделяется с помощью функции fit_resample, что делает оба результата примерно равными единице. После повторного запуска ячеек точность модели приближается к 50 %, что указывает на то, что балансировка набора данных привела к повышению производительности модели.

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

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

  • 01:30:00 В этом разделе видеоучебник рассказывает, как разделить набор данных на наборы для обучения, проверки и тестирования и как преобразовать их в объект tf.data.Dataset в TensorFlow. Инструктор использует больший размер пакета и tf.data.autotune из-за большого размера набора данных и корректирует код функции, чтобы изменить целевую переменную на «метку», поскольку данные уже были помечены. В руководстве также объясняется, как работает концентратор TensorFlow, который используется для классификации текста в этом руководстве. Видео также демонстрирует, как визуализировать наборы данных в объектах набора данных TensorFlow.

  • 01:35:00 В этом разделе видеоурока рассказывается, как использовать TensorFlow Hub, репозиторий предварительно обученных моделей машинного обучения, для помощи в классификации текста. В видео объясняется, что компьютеры не понимают текст, поэтому текст необходимо преобразовать в числа, понятные компьютеру. Для этого преобразования видео использует nnlm, встраивание текста на основе токенов, обученное новостям Google на английском языке, и преобразует весь текст в вектор чисел. Затем в видео показано, как построить модель нейронной сети с использованием TensorFlow Keras с плотным слоем, функцией активации ReLU и выводом двоичной классификации. Видео компилирует модель и оценивает ее на данных обучения и проверки, показывая точность около 40%.

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

  • 01:45:00 В этом разделе пользователь оценивает нейронную сеть, созданную и обученную в предыдущем разделе. Потери уменьшаются, а точность увеличивается, но пользователь прекращает обучение досрочно, всего через пять эпох. Модель оценивается на тестовых данных, точность составляет около 83%. Затем пользователь показывает, как воссоздать модель с помощью LSTM, и начинает с создания кодировщика с максимальным токеном, установленным на 2000. Затем модель определяется с использованием кодировщика и слоя внедрения с входным размером, установленным на длину словаря кодировщика. и выходное измерение установлено на 32. Наконец, добавляется слой LSTM с 32 узлами.

  • 01:50:00 В этом разделе видео инструктор строит нейронную сеть, добавляя плотный слой и выпадающий слой, чтобы предотвратить переоснащение. Функция активации для вывода — сигмовидная, а для ввода требуется токенизатор. Установлено, что точность модели составляет около 53, а потери — около 0,7. Затем модель обучается путем оценки данных обучения и проверки. В конце обучения точность тестовых данных оказывается равной 84. Учебное пособие заканчивается тем, что инструктор подводит итоги, а именно учит тому, как построить нейронную сеть с прямой связью, использовать TensorFlow для классификации текста и реализовать числовые значения. данные.
Python TensorFlow for Machine Learning – Neural Network Text Classification Tutorial
Python TensorFlow for Machine Learning – Neural Network Text Classification Tutorial
  • 2022.06.15
  • www.youtube.com
This course will give you an introduction to machine learning concepts and neural network implementation using Python and TensorFlow. Kylie Ying explains bas...
 

Полный курс TensorFlow 2.0 — учебник по нейронным сетям Python для начинающих (описание частей 1–4)



Полный курс TensorFlow 2.0 — учебник по нейронным сетям Python для начинающих

00:00:00 - 01:00:00 В этом видео представлено введение в TensorFlow 2.0, библиотеку для обработки данных и машинного обучения. Преподаватель объясняет, что такое тензор и как использовать тензоры для хранения частично определенных вычислений. Он также демонстрирует, как использовать функции TF dot rank и TF dot reshape для управления количеством измерений в тензоре.

01:00:00 - 02:00:00 В видеоруководстве объясняется, как использовать линейную регрессию для прогнозирования значений в наборе данных. В качестве примера используется набор данных Титаника. Докладчик объясняет, как линейная регрессия используется для прогнозирования значений в наборе данных и как создавать столбцы признаков в наборе данных с помощью TensorFlow.

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

03:00:00 - 04:00:00 В этом видео объясняется, как использовать TensorFlow для построения сверточной нейронной сети для распознавания изображений. Видео охватывает основы сверточных нейронных сетей, в том числе то, как они работают и как использовать предварительно обученные модели.

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

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

06:00:00 - 06:50:00 Этот видеоурок знакомит с основами TensorFlow 2.0, мощной библиотеки машинного обучения. После знакомства с TensorFlow и его ключевыми понятиями, учебник знакомит зрителей с серией руководств по различным задачам машинного обучения, таким как глубокое обучение и обучение с подкреплением.


Часть 1

  • 00:00:00 Этот видеоурок учит начинающих использовать TensorFlow 2.0 для нейронных сетей в Python. Преподаватель объясняет различия между искусственным интеллектом, нейронными сетями и машинным обучением и предоставляет ресурсы для курса, включая практические упражнения и примеры кода.

  • 00:05:00 Машинное обучение — это область искусственного интеллекта, которая позволяет компьютерам генерировать правила для себя без необходимости явного программирования.

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

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

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

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

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

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

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

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

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

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


Часть 2

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

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

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

  • 01:15:00 Видео знакомит с набором данных «Титаника» и объясняет, почему линейная регрессия — хороший алгоритм для предсказания того, кто выживет на корабле. Набор данных загружается в pandas и Excel.

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

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

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

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

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

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

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

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


Часть 3

  • 02:00:00 В этом видео автор рассказывает о процессе создания нейронной сети в TensorFlow 2.0 и объясняет различные доступные модели. Затем они показывают, как построить нейронную сеть и обучить ее с помощью классификатора dnn.

  • 02:05:00 В этом видео создается функция обучения и оценки для нейронной сети. Лямбда используется для определения функции в одной строке. Затем функция используется для обучения нейронной сети. Отображается точность обученной нейронной сети.

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

  • 02:15:00 В этом видео рассматриваются основы нейронных сетей, включая классификацию и кластеризацию.

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

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

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

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

  • 02:40:00 В этом видео показано, как запустить модель в TensorFlow 2.0 с помощью команды Mean. Это полезная команда для сравнения ожидаемых значений переменных в модели.

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

  • 02:50:00 «Полный курс TensorFlow 2.0 — Python Neural Networks for Beginners Tutorial» содержит пошаговое руководство по созданию базовой нейронной сети на Python. Первый слой — это входной нейрон, за ним следует скрытый слой, а затем — выходной слой. Выходной слой имеет один нейрон для каждой части входной информации, а нейроны скрытого слоя связаны друг с другом и с выходным слоем. Скрытый слой соединен с входным слоем и с выходным слоем, который называется плотно связанной нейронной сетью.

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


Часть 4

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

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

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

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

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

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

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

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

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

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

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

  • 03:55:00 В этом видео инструктор объясняет, как найти фильтр на изображении с помощью перекрестного произведения. Фильтр определяется на основе того, насколько похожи значения пикселей между изображением и фильтром.
TensorFlow 2.0 Complete Course - Python Neural Networks for Beginners Tutorial
TensorFlow 2.0 Complete Course - Python Neural Networks for Beginners Tutorial
  • 2020.03.03
  • www.youtube.com
Learn how to use TensorFlow 2.0 in this full tutorial course for beginners. This course is designed for Python programmers looking to enhance their knowledge...
 

Полный курс TensorFlow 2.0 — учебник по нейронным сетям Python для начинающих (описание частей 5–7)



Полный курс TensorFlow 2.0 — учебник по нейронным сетям Python для начинающих


Часть 5

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

  • 04:05:00 В этом видео инструктор объясняет, как операции объединения, такие как min и max, используются для уменьшения размерности карты объектов. Затем он демонстрирует, как это делается, показывая, как выбирать значения из карты объектов и генерировать карту объектов с уменьшенной размерностью. Затем инструктор показывает, как использовать операцию объединения «два на два», чтобы вдвое уменьшить размер карты объектов. Затем он демонстрирует, как использовать операцию максимального объединения для поиска объектов в области. Затем он демонстрирует, как использовать усредненную операцию объединения для поиска объектов в области. Наконец, инструктор показывает, как использовать Kerris для создания сверточной нейронной сети.

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

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

  • 04:20:00 В этом видео показано, как использовать предварительно обученные модели в TensorFlow 2.0 для повышения точности классификаций.

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

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

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

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

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

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

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


Часть 6

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

  • 05:05:00 В этом видео объясняются основы TensorFlow 2.0, включая описание слоя простой рекуррентной нейронной сети (RNN) и слоя долговременной кратковременной памяти (LSTM). Слой LSTM предназначен для того, чтобы помочь слою RNN запомнить предыдущие предложения в текстовой последовательности, что может становиться все труднее по мере увеличения длины последовательности.

  • 05:10:00 Полный курс TensorFlow 2.0 — Python Neural Networks for Beginners Tutorial охватывает основы нейронных сетей, включая рекуррентные нейронные сети, которые используются для анализа настроений в обзорах фильмов.

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

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

  • 05:25:00 В этом обзоре из 1 абзаца объясняется, как функция декодирования целых чисел кодирует текст в обзор фильма в Python. Эта функция берет последовательность слов и превращает их в целые числа, а затем использует текстовую функцию ENCODE для кодирования целых чисел. Наконец, модель используется для прогнозирования отзыва для данного фрагмента текста. Ожидается, что первый отзыв будет положительным на 72%, а второй — на 23%.

  • 05:30:00 В этом финальном видео полного курса TensorFlow 2.0 рекуррентная нейронная сеть создается для создания пьесы на основе текста Шекспира. Файл загружается и считывается, и вычисляется длина текста. Первые 250 символов считываются и анализируются для определения схемы кодирования. Символы кодируются как целые числа, и создается словарь. Индекс каждого символа вычисляется и сохраняется в словаре.

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

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

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

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

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


Часть 7

  • 06:00:00 В этом видео TensorFlow 2.0 Complete Course — Python Neural Networks for Beginners Tutorial пользователь объясняет, как создать последовательность текста с помощью рекуррентной нейронной сети. Первый шаг — сбросить статус сети и сгенерировать список прогнозов. Затем пользователь обучает сеть на сценарии фильма категории B и показывает результаты.

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

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

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

  • 06:20:00 TensorFlow — это библиотека машинного обучения, которая позволяет пользователям создавать модели, способные учиться на данных. В этом видео инструктор объясняет, как работает обучение Q и как оно используется для оптимизации поведения агента в моделируемой среде. Далее он объясняет, как использовать таблицу сигналов для оптимизации поведения агента.

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

  • 06:30:00 Видео «TensorFlow 2.0 Complete Course — Python Neural Networks for Beginners Tutorial» знакомит с языком программирования TensorFlow 2.0 и связанными с ним структурами данных и алгоритмами для нейронных сетей, которые являются типом модели машинного обучения. Затем в видеоролике показано, как создать и обучить простую модель нейронной сети с помощью программного обеспечения для тренажерного зала openAI.

  • 06:35:00 Полный курс TensorFlow 2.0 начинается с введения в модель актер-критик, которая используется для обучения нейронной сети. Затем показано, как создать среду замерзшего озера с помощью NumPy и TensorFlow. Курс рассказывает, как использовать q-обучение для решения проблемы навигации в окружающей среде.

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

  • 06:45:00 В этом заключительном модуле «Полный курс TensorFlow 2.0 — Python Neural Networks for Beginners Tutorial» инструктор объясняет, как использовать контрольную таблицу для настройки значения эпсилон, чтобы медленно увеличивать среднее вознаграждение по мере перемещения агента. лабиринт.

  • 06:50:00 Этот видеоурок знакомит с основами TensorFlow, мощной библиотеки машинного обучения. После знакомства с TensorFlow и его ключевыми понятиями, учебник знакомит зрителей с серией руководств по различным задачам машинного обучения, таким как глубокое обучение и обучение с подкреплением.
TensorFlow 2.0 Complete Course - Python Neural Networks for Beginners Tutorial
TensorFlow 2.0 Complete Course - Python Neural Networks for Beginners Tutorial
  • 2020.03.03
  • www.youtube.com
Learn how to use TensorFlow 2.0 in this full tutorial course for beginners. This course is designed for Python programmers looking to enhance their knowledge...
 

Keras с курсом TensorFlow - Учебное пособие по глубокому обучению Python и нейронным сетям для начинающих



Keras с курсом TensorFlow - Учебное пособие по глубокому обучению Python и нейронным сетям для начинающих

Курс Keras с TensorFlow ориентирован на обучение пользователей тому, как использовать Keras, API нейронной сети, написанный на Python и интегрированный с TensorFlow. Он охватывает основы организации и предварительной обработки данных, построения и обучения искусственных нейронных сетей, а также важность нормализации данных и создания проверочных наборов. Курс также предоставляет такие ресурсы, как видео и текстовые файлы, а также руководство по настройке графического процессора для повышения эффективности. Пользователи также узнают, как сохранять и загружать модели, включая варианты сохранения всего, только архитектуры или только веса. Курс подходит для тех, у кого есть базовые навыки программирования и некоторый опыт работы с Python.

Второй раздел «Курса Keras с TensorFlow» охватывает множество тем, начиная с загрузки весов в новую модель Keras с той же архитектурой, что и исходная модель. Затем инструктор объясняет, как подготовить и предварительно обработать данные изображения для обучения сверточной нейронной сети классифицировать изображения как кошек или собак, прежде чем перейти к построению и обучению последовательной модели Keras для первой CNN. В этом разделе приведены сведения об обучении модели с использованием генератора, содержащего данные меток для проверки во время подбора модели, а также о том, как построить матрицу путаницы для оценки производительности модели. В заключение демонстрируется, как настроить предварительно обученную модель VGG 16 для классификации изображений кошек и собак, настроить ее предварительную обработку, а также обучить ее.

В третьем разделе инструктор представляет MobileNets, более компактную и быструю альтернативу более сложным моделям. Они демонстрируют загрузку и использование MobileNets в Jupyter Notebook, организацию набора данных для цифр жестового языка и тонкую настройку модели для новой задачи классификации. Преподаватель подчеркивает важность правильного указания итератору местоположения набора данных на диске, количества слоев, которые необходимо заморозить во время обучения, и настройки гиперпараметров для уменьшения проблем переобучения. В последнем разделе рассказывается об увеличении данных и его потенциале для уменьшения переобучения и увеличения размера набора данных, а также приводятся инструкции по различным типам увеличения (например, смещение, переворачивание, вращение), сохранению дополненных изображений на диск и добавлению их обратно в тренировочный процесс. набор.

  • 00:00:00 В этом разделе объясняется, что курс ориентирован на обучение использованию Keras, API нейронной сети, написанного на Python и интегрированного с TensorFlow. Он начинается с основ организации и предварительной обработки данных, а затем переходит к созданию и обучению искусственных нейронных сетей. Курс рекомендует некоторые базовые навыки программирования и некоторый опыт работы с Python, но также даст краткое введение в каждую концепцию глубокого обучения, прежде чем переходить к реализации кода. Курс также предоставляет видео и текстовые ресурсы, в том числе файлы кода, используемые в курсе, которые регулярно тестируются и поддерживаются, а доступ для загрузки к этим файлам доступен членам Deep Lizard Hive Mind. Далее объясняется, что Keras был разработан с акцентом на обеспечение быстрых пользовательских экспериментов, и, будучи интегрированным с TensorFlow, Keras теперь полностью интегрирован с TensorFlow API. Даны рекомендации по изучению нескольких API-интерфейсов нейронных сетей и отказу от одного навсегда, чтобы продемонстрировать опыт и сравнение между ними, что делает кандидата более ценным.

  • 00:05:00 В этом разделе курса Keras with TensorFlow обсуждается необходимость GPU, и отмечается, что для курса он не требуется. Однако, если пользователь хочет использовать графический процессор, доступно руководство по настройке графического процессора для работы с TensorFlow. Рекомендуется сначала пройти курс с процессором, а затем настроить графический процессор для повышения эффективности и скорости. В следующем разделе обсуждается, как подготовить и обработать числовые данные для искусственной нейронной сети, а также различные форматы данных, которые ожидает последовательная модель в Keras. Функция подгонки ожидает, что входные данные (x) будут в массиве NumPy, тензоре TensorFlow, сопоставлении dict, наборе данных TF или генераторе Keras. Целевые данные (y) также должны быть в том же формате, что и x.

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

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

  • 00:20:00 В этом разделе видео ведущий объясняет, как создать модель нейронной сети с помощью Keras API, интегрированного с TensorFlow. Модель представляет собой последовательную модель и создается как экземпляр класса Sequential. Первый плотный слой создает первый скрытый слой и имеет 16 единиц с функцией активации ReLU. Второй плотный слой создает второй скрытый слой и имеет 32 единицы с функцией активации ReLU. Последний слой — это выходной слой с двумя модулями, представляющими два возможных выходных класса. Ведущий объясняет, что за выходным слоем следует функция Softmax, которая дает вероятности для каждого выходного класса. Затем докладчик демонстрирует, как использовать функцию model.summary() для отображения визуальной сводки архитектуры модели.

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

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

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

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

  • 00:45:00 В этом разделе мы рассмотрим использование матрицы путаницы, чтобы визуально наблюдать, насколько хорошо модель нейронной сети предсказывает тестовые данные. Импортируя необходимые пакеты и создавая матрицу путаницы с помощью scikit-learn, мы можем сравнить истинные метки тестового набора с предсказанными метками и, таким образом, лучше понять точность прогнозов нашей модели. Мы также видим, как построить матричную функцию путаницы и как определенные значения в ней получаются, предварительно обрабатываются и визуализируются. Ссылка на полезную функцию для курса Keras with TensorFlow также доступна в блоге Deep Lizard.

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

  • 00:55:00 В этом разделе инструктор рассказывает о различных способах сохранения и загрузки модели в Keras с помощью TensorFlow. Первый и наиболее полный вариант — сохранить и загрузить все, что касается модели, включая ее архитектуру, веса и конфигурацию обучения. Второй вариант — сохранить только архитектуру модели с помощью функции «в JSON», которую затем можно использовать для создания новой модели с той же архитектурой позднее. Третий вариант — сохранить только веса модели с помощью функции «сохранить веса», которую можно загрузить в новую модель для обновления ее весов, но не сохранять никаких других сведений о модели. Преподаватель также объясняет, что тот же процесс можно выполнить с использованием строк YAML вместо строк JSON.
  • 01:00:00 В этом разделе ведущий обсуждает загрузку весов в новую модель Keras с той же архитектурой, что и исходная модель. Он объясняет, что форма загружаемых грузов должна соответствовать форме архитектуры модели, чтобы отображение весов работало. Затем докладчик показывает, как загрузить и заполнить новую модель весами из исходной модели, используя функции «загрузить веса» и «получить веса» в Keras. Затем раздел переходит к новой теме, которая занимается подготовкой и обработкой данных изображений для обучения сверточной нейронной сети классифицировать изображения как кошек или собак, используя набор данных из конкурса Kaggle «кошки против собак». Ведущий объясняет вручную и программно шаги, необходимые для подготовки данных к обработке.

  • 01:05:00 В этом разделе инструктор распределяет данные по трем подмножествам: наборы для обучения, проверки и тестирования. Набор данных, используемый в руководстве, содержит 25 000 изображений кошек и собак, но для ускорения процесса обучения используется только 1000 изображений для обучения, 200 для проверки и 100 для тестирования. Данные организованы в разные каталоги для каждого набора, и структура каталогов проверяется, чтобы убедиться, что она еще не существует. Изображения выбираются случайным образом на основе имен файлов, где изображения кошек и собак содержат слова «кошка» и «собака» в соответствующих именах файлов. Наконец, для каждого набора указывается путь к данным, указывающий на правильное место на диске.

  • 01:10:00 В этом разделе видео объясняется, как подготовить данные для последовательной модели Keras путем создания пакетов данных с помощью генератора данных изображения. Наборы для обучения, проверки и тестирования определяются и изменяются до заданной высоты и ширины для единообразия. Функция предварительной обработки tf.keras.applications.VGG16.preprocess_input применяется к изображениям перед их передачей в сеть. Видео предупреждает зрителей, чтобы они не беспокоились о технических деталях предварительной обработки, поскольку это будет объяснено в следующих эпизодах. Кроме того, в видео указано, что перемешивание равно false для тестового набора, объясняя, что при выполнении логического вывода неустановленные метки для тестового набора необходимы для просмотра результатов прогнозирования в матрице путаницы, и данные не должны перемешиваться для доступа к ним.

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

  • 01:20:00 В этом разделе руководства TensorFlow последовательная модель Keras используется для первой сверточной нейронной сети (CNN). Первый слой модели представляет собой двумерный сверточный слой с 32 фильтрами и размером ядра 3x3, за которым следует популярная функция активации ReLU с «таким же» дополнением для заполнения изображений нулями. Входная форма указана как 224x224x3 для изображений в формате RGB. Затем за первым сверточным слоем следует слой максимального объединения с размером пула 2x2 и шагом 2. Добавляется еще один сверточный слой 2D, аналогичный первому, но с 64 фильтрами вместо 32, за которым следует еще один слой максимального объединения. Сглаженный вывод слоя максимального пула затем передается в плотный выходной слой с двумя узлами, соответствующими коту и собаке соответственно. За выходным слоем следует функция активации softmax, чтобы дать вероятности для каждого соответствующего выхода из модели.

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

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

  • 01:35:00 В этом разделе видео обсуждается, как построить матрицу путаницы для оценки производительности модели при классификации изображений кошек и собак с использованием Keras API TensorFlow. Матрица путаницы строится с использованием функции из scikit-learn, и индексы классов корректируются соответствующим образом. Диагональ матрицы путаницы представляет правильные прогнозы, и модель кажется переоснащенной. В следующем разделе будет показано, как настроить предварительно обученную модель VGG 16 для классификации изображений кошек и собак, которая выиграла конкурс ImageNet 2014 года. Видео также кратко объясняет функцию предварительной обработки VGG 16, которая только вычитает среднее значение RGB, вычисленное для каждого пикселя обучающего набора, из данных изображения.

  • 01:40:00 В этом разделе инструктор объясняет предварительную обработку, которая была выполнена для модели VGG-16, и то, как новые данные необходимо обрабатывать таким же образом, чтобы они соответствовали первоначальному обучению VGG-16. Инструктор упоминает, что Keras имеет встроенные функции для популярных моделей, таких как VGG-16, в которых есть предварительная обработка, соответствующая соответствующей модели. Преподаватель также объясняет, что модель VGG-16 изначально предсказывала для 1000 различных классов imageNet, и цель состоит в том, чтобы изменить последний выходной слой, чтобы предсказать только два выходных класса, соответствующих кошке и собаке. Наконец, инструктор создает новую последовательную модель, перебирая каждый слой VGG-16 и исключая последний выходной слой. Эта новая модель предназначена для тонкой настройки и имеет только два выходных класса.

  • 01:45:00 В этом разделе мы увидим, как изменить и обучить точно настроенную модель VGG 16 на наборе данных о кошках и собаках. Последний слой в модели, который предсказывает 1000 выходных классов, был удален, и добавлен новый плотный слой, который имеет только два выходных класса для кошек и собак. Все предыдущие слои были настроены как необучаемые, за исключением выходного слоя, содержащего 8000 обучаемых параметров. Модель компилируется с использованием категориальной кросс-энтропии в качестве потерь и точности в качестве метрики, и она обучается с использованием метода fit() путем передачи набора обучающих данных и набора проверки.

  • 01:50:00 В этом разделе инструктор обсуждает результаты обучения модели VGG 16 на изображениях кошек и собак с уточнением точности обучающих и проверочных наборов. Модель VGG 16 уже была обучена на изображениях кошек и собак из сетевой библиотеки изображений, и обучение, которое выполняется на выходном слое, состоит в том, чтобы научить модель выводить только классы кошек или собак. Всего за пять эпох модель VGG 16 имела точность обучения 99%, в то время как точность проверки была на уровне 98%, что указывает на то, насколько хорошо эта модель обобщает данные о кошках и собаках в проверочных наборах по сравнению с простой сверточной нейронной сетью. В следующем эпизоде отлаженная модель VGG 16 будет использоваться для вывода для прогнозирования изображений кошек и собак в тестовом наборе, и, учитывая точность проверочного набора, мы должны ожидать хороших результатов и на тестовом наборе. .

  • 01:55:00 В этом разделе видео инструктор обсуждает использование матрицы путаницы для оценки производительности точно настроенной модели VGG16 на невидимом тестовом наборе. Анализируется диагональ матрицы путаницы, которая показывает, что модель достигла уровня точности 96%. Хотя для модели VGG16 подход к тонкой настройке был минимальным, инструктор объясняет, что в следующих эпизодах будут рассмотрены дополнительные методы тонкой настройки для других предварительно обученных моделей, таких как MobileNets. Эти модели меньшего размера с низким энергопотреблением лучше подходят для развертывания на мобильных устройствах благодаря значительно меньшему размеру и количеству параметров.
  • 02:00:00 В этом разделе видео инструктор представляет MobileNets — меньшую и более быструю альтернативу более крупным моделям, таким как VGG 16. Хотя MobileNet не так точны, как некоторые из этих тяжелых моделей, снижение точности относительно небольшое. Инструктор описывает этапы загрузки и работы с MobileNets в Jupyter Notebook, включая импорт необходимых пакетов, загрузку и назначение модели MobileNet, а также создание функции под названием «prepare_image» для изменения размера и форматирования изображений перед их передачей через MobileNet. модель для обработки. В целом основное внимание уделяется пониманию компромиссов между точностью и размером/скоростью при работе с различными моделями глубокого обучения и способам их эффективного использования.

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

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

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

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

  • 02:25:00 В этом разделе курса Keras с TensorFlow инструктор объясняет, как настроить предварительно обученную модель MobileNet для новой задачи классификации. Первый шаг — загрузить модель MobileNet и изучить ее слои с помощью функции «model.summary()». Затем они выбирают слои от шестого до последнего слоя и создают новый плотный выходной слой с 10 единицами. Далее следует создание новой функциональной модели, которая передает все предыдущие слои вплоть до шестого и последнего слоя, а также мобильную сеть на выходной уровень. Создается новая модель, и следующим шагом является замораживание всех слоев, кроме последних 23, для обучения. Инструктор отмечает, что количество замораживаемых слоев требует личных экспериментов и может варьироваться в зависимости от задачи.

  • 02:30:00 В этом разделе инструктор настраивает исходную модель MobileNet, обучая только последние 23 слоя и заменяя выходной слой тем, который имеет 10 классов вместо 1000. Модель компилируется и обучается с использованием оптимизатора Adam со скоростью обучения 0,0001 и категориальной функцией кросс-энтропийных потерь. После обучения в течение 30 эпох модель достигает 100% точности на тренировочном наборе и 92% точности на проверочном наборе. Несмотря на некоторое переобучение, при этом точность проверки ниже, чем точность обучения, инструктор предполагает, что запуск большего количества эпох или настройка гиперпараметров может помочь уменьшить проблему переобучения.

  • 02:35:00 В этом разделе видео инструктор показывает, как использовать точно настроенную модель на тестовом наборе и наносить прогнозы на матрицу путаницы. Матрица путаницы указывает на то, что модель показала хорошие результаты с в основном правильными прогнозами на тестовом наборе. Модель имеет точность 90% на тестовом наборе, что ожидается, учитывая точность на проверочном наборе. Преподаватель подчеркивает, что серия статей о MobileNet дала представление о том, как точно настраивать модели для пользовательских наборов данных и использовать трансферное обучение. В следующем эпизоде будет показано, как использовать увеличение данных на изображениях с помощью Keras API TensorFlow.

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

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