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

 

Лекция 16.2 — Иерархические системы координат



Лекция 16.2 — Иерархические системы координат [Нейронные сети для машинного обучения]

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

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

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

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

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

 

Лекция 16.3 — Байесовская оптимизация гиперпараметров



Лекция 16.3 — Байесовская оптимизация гиперпараметров [Нейронные сети для машинного обучения]

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

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

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

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

Более того, модели гауссовых процессов не только предсказывают ожидаемый результат эксперимента, но и обеспечивают распределение предсказаний, включая дисперсию. При прогнозировании производительности новых настроек гиперпараметров, которые аналогичны предыдущим настройкам, прогнозы моделей точны и имеют низкую дисперсию. И наоборот, для настроек гиперпараметров, которые значительно отличаются от любых предыдущих экспериментов, прогнозы имеют высокую дисперсию.

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

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

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

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

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

 

Лекция 16.4 — Туман прогресса



Лекция 16.4 — Туман прогресса [Нейронные сети для машинного обучения]

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

Представьте, что вы ведете машину ночью и фокусируетесь на задних фонарях машины впереди вас. Количество фотонов, которые вы получаете от этих задних фонарей, уменьшается обратно пропорционально квадрату расстояния (1/d^2) при чистом воздухе. Однако, если есть туман, поведение меняется. На коротких расстояниях количество фотонов все еще падает как 1/d^2, потому что туман не поглощает много света в этом диапазоне. Но на больших расстояниях уменьшение следует экспоненциальной функции (e ^ (-d)), потому что туман имеет экспоненциальный эффект. Он поглощает долю фотонов на единицу расстояния, делая его более непрозрачным по мере увеличения расстояния. Это означает, что автомобиль перед вами может стать полностью невидимым на расстоянии, на котором ваша модель ближнего действия предсказала, что он будет виден. Это явление является причиной несчастных случаев, вызванных тем, что люди въезжают в заднюю часть автомобиля в тумане.

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

Поэтому долгосрочное будущее машинного обучения и нейронных сетей остается полной загадкой. Мы не можем предсказать это, основываясь на наших текущих знаниях. Однако в краткосрочной перспективе, скажем, от 3 до 10 лет, мы можем делать довольно точные прогнозы. Мне кажется очевидным, что в течение следующих пяти лет или около того большие глубокие нейронные сети продолжат совершать замечательные вещи.

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

 

Дружеское введение в глубокое обучение и нейронные сети



Дружеское введение в глубокое обучение и нейронные сети

Добро пожаловать на знакомство с глубоким обучением! Меня зовут Луис Серрано, я работаю в Udacity. Начнем с ответа на вопрос: что такое машинное обучение?

Чтобы объяснить это, давайте рассмотрим простой пример. Представьте, что у нас есть человек и торт, и наша цель — сказать человеку, чтобы он взял торт. Мы можем легко сделать это, дав одну инструкцию: «Иди и возьми торт». Человек понимает и получает пирог. Теперь попробуем решить ту же задачу с помощью робота. Это не так просто, потому что нам нужно дать роботу набор инструкций. Например: «Поверни направо, пройди десять шагов, поверни налево, пройди четыре шага и возьми торт». Это решение специфично для этого конкретного сценария и не может быть обобщено. Если бы робот находился в другом положении, нам понадобился бы совершенно другой набор инструкций.

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

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

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

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

 

Дружеское введение в рекуррентные нейронные сети



Дружеское введение в рекуррентные нейронные сети

Добро пожаловать на дружеское знакомство с рекуррентными нейронными сетями! Я Луис Серрано, инструктор по машинному обучению в Udacity. Спасибо за все отзывы о моих предыдущих видео. Мне поступило много предложений, и одно из них касалось рекуррентных нейронных сетей, поэтому я решил снять это видео.

Начнем с простого примера. Представьте, что у вас есть идеальный сосед по комнате, который готовит три вида еды: яблочный пирог, гамбургер и курицу. Его кулинарное решение основано на погоде. Если солнечно, он готовит яблочный пирог, а если идет дождь, готовит бургер. Мы можем смоделировать этот сценарий с помощью простой нейронной сети, где на входе будет погода (солнечная или дождливая), а на выходе — соответствующая еда (яблочный пирог или бургер).

Чтобы представить еду и погоду, мы используем векторы. Векторы еды: [1 0 0] для яблочного пирога, [0 1 0] для гамбургера и [0 0 1] для курицы. Векторы погоды: [1 0] для солнечной и [0 1] для дождливой. Мы можем сопоставить эти векторы, используя матричное умножение, где входной вектор умножается на матрицу для получения выходного вектора.

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

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

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

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

 

Дружественное введение в генеративно-состязательные сети (GAN)



Дружественное введение в генеративно-состязательные сети (GAN)

Здравствуйте, я Луис Серрано, и это видео о генеративно-состязательных сетях (GAN). Сети GAN, разработанные Яном Гудфеллоу, представляют собой значительный прогресс в машинном обучении с многочисленными приложениями. Одним из самых интересных применений GAN является генерация лиц. Вы можете увидеть это в действии на сайте thispersondoesnotexist.com, где все изображения людей генерируются нейронной сетью.

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

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

В этом видео мы создадим простую пару GAN с использованием Python без каких-либо пакетов глубокого обучения. Наша задача — генерировать лица в мире под названием «Наклонная земля», где все выглядят вытянутыми и ходят под углом 45 градусов. В мире Slanted Land есть ограниченные технологии, включая экраны 2x2 пикселя, которые отображают черно-белые изображения. Мы создадим нейронные сети с одним слоем для генерации лиц людей в Slanted Land.

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

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

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

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

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

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

 

Ограниченные машины Больцмана (RBM) - дружеское введение



Ограниченные машины Больцмана (RBM) - дружеское введение

Привет, я Луис Серрано, и это видео о машинах Больцмана с ограниченным доступом (RBM). RBM — это мощные алгоритмы, используемые в обучении с учителем, уменьшении размерности и генеративном машинном обучении.

Начнем с загадки. Через дорогу есть дом, куда иногда приходят люди. Мы видим, что трое, Аиша, Бето и Камерон, часто приходят, но не всегда вместе. Иногда появляется только Аиша, иногда это Бето или Кэмерон, а иногда приходит больше одного из них, включая дни, когда никто из них не появляется. Мы исследуем эту закономерность и обнаруживаем, что они не знают друг друга, поэтому нам нужно найти другую причину их появления.

Мы обнаруживаем, что в доме есть домашние животные, собака по имени Декарт и кошка по имени Эйлер. Аиша и Кэмерон любят собак, поэтому они появляются, когда рядом Декарт. С другой стороны, у Бето аллергия на собак, но он обожает кошек, поэтому он появляется только в присутствии Аиши. Мы присваиваем баллы для представления их предпочтений, причем положительные баллы указывают на то, что им нравится, а отрицательные — на то, что им не нравится. Теперь мы хотим выяснить вероятность различных сценариев. Мы присваиваем баллы каждому сценарию и конвертируем их в вероятности. Один из подходов заключается в использовании функции softmax для преобразования оценок в вероятности, гарантируя, что более высокие оценки соответствуют более высоким вероятностям.

Мы создаем ограниченную машину Больцмана (RBM) с видимыми и скрытыми слоями. Видимый слой представляет наблюдаемые данные (люди), а скрытый слой представляет ненаблюдаемые данные (домашние животные). RBM состоит из узлов, соединенных весами, каждому соединению присваиваются баллы. Чтобы обучить RBM, нам нужно найти веса, соответствующие вероятностям, которые мы получили из данных. Мы хотим, чтобы RBM назначал высокие вероятности сценариям, в которых появляются Аиша и Кэмерон или только Бето, и низкие вероятности другим сценариям. Регулируя веса, мы можем влиять на вероятности, присваиваемые RBM. Цель состоит в том, чтобы согласовать RBM с наблюдаемыми данными и имитировать желаемые вероятности.

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

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

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

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

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

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

 

Дружелюбное введение в глубокое обучение с подкреплением, Q-сети и градиенты политики



Дружелюбное введение в глубокое обучение с подкреплением, Q-сети и градиенты политики

Привет, я Луис Серрано, и это дружеское введение в глубокое обучение с подкреплением и градиенты политики. Обучение с подкреплением применяется в беспилотных автомобилях, робототехнике и сложных играх, таких как го, шахматы и игры Atari. Основное различие между обучением с подкреплением и прогнозным машинным обучением заключается в том, что при обучении с подкреплением у нас есть агент, который взаимодействует с окружающей средой, собирая вознаграждения и наказания для создания данных, в то время как прогнозное машинное обучение опирается на существующие данные для обучения модели. В этом видео мы рассмотрим важные концепции, такие как марковские процессы принятия решений (MDP), уравнение Беллмана и то, как нейронные сети могут помочь в обучении с подкреплением с помощью Q-сетей и градиентов политики.

Давайте начнем с примера обучения с подкреплением с использованием MDP под названием Grid World. В Grid World у нас есть сетка, представляющая вселенную, и наш агент, изображенный в виде круга. Сетка содержит специальные квадраты, в том числе квадраты с деньгами и квадрат с драконом, который приводит к окончанию игры. Цель агента — максимизировать очки, перемещаясь по сетке, собирая награды или наказания. Мы можем определить наилучшую стратегию для агента, используя уравнение Беллмана, которое вычисляет значение каждого состояния на основе максимальных значений его соседних состояний. Затем мы можем вывести политику, которая предоставляет агенту инструкции по наилучшему пути для максимизации очков.

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

Поняв уравнение Беллмана и используя коэффициенты вознаграждения и скидки, мы можем решить MDP и найти наилучшую политику обучения с подкреплением. Левая сторона указывает, что агент должен двигаться вправо, чтобы найти наилучшее значение. Политика предписывает агенту двигаться вправо с вероятностью 1 и в других направлениях с вероятностью 0. Напротив, стохастическая политика будет сильно способствовать движению вправо, но все же даст другим направлениям шанс в зависимости от полученного вознаграждения. . Например, стохастическая политика справа отдает приоритет состоянию справа, потому что оно имеет наивысшее значение, в то время как состояние слева имеет самый низкий приоритет из-за его низкой оценки. Однако вероятности по-прежнему не равны нулю, что позволяет агенту исследовать пространство, даже если он не всегда получает лучшую награду.

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

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

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

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

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

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

 

Дружелюбное введение в машинное обучение



Дружелюбное введение в машинное обучение

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

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

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

Теперь давайте перейдем к другому примеру. Предположим, мы хотим создать систему обнаружения спама в электронной почте. Мы собрали данные о предыдущих электронных письмах, в том числе о том, были ли они помечены как спам или нет. Анализируя эти данные, мы можем определить функции, которые могут указать, является ли электронное письмо спамом или нет. Например, мы можем обнаружить, что электронные письма, содержащие слово «дешево», часто помечаются как спам. Используя наивный алгоритм Байеса, мы можем связать вероятности с этими функциями. В этом случае, если письмо содержит слово «дешево», мы обнаружим, что 80% таких писем помечены как спам. Комбинируя несколько функций и связанных с ними вероятностей, мы можем создать классификатор, который предсказывает, является ли электронное письмо спамом, на основе его функций.

Переходим к следующему примеру. Допустим, мы работаем в App Store или Google Play, и наша цель — рекомендовать приложения пользователям. Мы можем собирать данные о пользователях, их характеристиках и загруженных ими приложениях. Анализируя эти данные, мы можем построить дерево решений, которое будет направлять наши рекомендации. Дерево решений состоит из вопросов, основанных на характеристиках пользователя, что приводит к рекомендации конкретных приложений. Например, мы можем спросить, моложе ли пользователь 20 лет. На основании ответа мы можем порекомендовать конкретное приложение. Если пользователь старше, мы можем задать другой вопрос, например его пол, чтобы уточнить нашу рекомендацию. Дерево решений помогает нам давать персонализированные рекомендации по приложениям на основе пользовательских атрибутов.

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

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

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

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

 

Машинное обучение: тестирование и метрики ошибок



Машинное обучение: тестирование и метрики ошибок

Привет и добро пожаловать в этот учебник по тестированию машинного обучения и метрикам ошибок. Меня зовут Луис Серрано, и я работаю в Udacity, где преподаю машинное обучение. Это моя фотография. Сегодня мы сосредоточимся на двух вопросах: во-первых, насколько хорошо работает моя модель? Как только мы это выясним, как нам улучшить его на основе этих показателей? Давайте погрузимся прямо и посмотрим на некоторые данные. У нас есть синие и красные точки, и мы хотим обучить модель их разделению. Наша простейшая модель — это линейная модель, представляющая собой линию, которая разрезает данные на синий и красный. Он допускает некоторые ошибки, но в целом хорош. Давайте также рассмотрим более сложную модель, использующую полином более высокой степени. Эта модель лучше разделяет точки, но какая из них лучше?

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

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

Хотя может показаться, что мы теряем данные, разделяя их на наборы для обучения и тестирования, есть способ решить эту проблему. Мы можем разделить данные на k равных наборов, обычно используя технику, называемую k-кратной перекрестной проверкой. Каждая порция данных используется как для обучения, так и для тестирования, а в конце результаты усредняются. Этот подход позволяет нам лучше использовать данные, при этом оценивая производительность модели.

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

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

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

Можем ли мы объединить эти две оценки в одну? Один из простых способов совместить показатели точности и полноты — взять их среднее значение. Давайте рассчитаем среднее значение для предоставленных оценок точности и отзыва. Слева точность 69,5, а справа 66,95. Взяв среднее значение этих двух оценок, мы получим 68,225. Однако это среднее значение может не давать достаточной информации и не может существенно отличаться от точности. Чтобы понять последствия этого среднего балла, давайте рассмотрим крайний пример, связанный с обнаружением мошенничества с кредитными картами.

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

Для модели, которая классифицирует все транзакции как хорошие, точность составляет 100 % (поскольку все классифицированные как плохие на самом деле хорошие), а отзыв равен 0 % (поскольку ни одна из мошеннических транзакций не обнаружена). Если мы возьмем среднее значение точности и полноты, мы получим 50%. Однако давать такой высокий балл модели, которая плохо работает, не кажется уместным. Точно так же для модели, которая классифицирует все транзакции как мошеннические, точность составляет 0,16% (правильно классифицировано 472 из всех транзакций), а отзыв составляет 100% (поскольку все мошеннические транзакции обнаруживаются). Опять же, среднее значение между точностью и полнотой будет около 50%, что не совсем точно отражает плохую производительность модели.

Чтобы обойти это ограничение, мы можем использовать другой тип среднего, называемый средним гармоническим, который также известен как оценка F1. Среднее гармоническое вычисляется по формуле 2 * (точность * полнота) / (точность + полнота). Оценка F1 обеспечивает более сбалансированное представление, особенно когда одна метрика (точность или полнота) значительно отличается от другой.

Для медицинской модели точность составляет 55,7, а полнота — 83,3. Вычисляя балл F1 по формуле среднего гармонического, мы получаем 66,76%. Для модели обнаружения спама точность составляет 76,9, а полнота — 37. Оценка F1 составляет 49,96%. А для линейной модели точность равна 75, а полнота — 85,7. Оценка F1 составляет 80%.

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

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

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

Причина обращения: