![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Кривая ROC (рабочая характеристика приемника) за 10 минут!
Кривая ROC (рабочая характеристика приемника) за 10 минут!
Привет! Меня зовут Луис Серрано, и в этом видео мы обсудим кривую рабочих характеристик приемника (ROC). Кривая ROC широко используется для оценки моделей машинного обучения и принятия важных решений.
Начнем с набора данных, содержащего синие и красные точки, где синие точки помечены как положительные, а красные — как отрицательные. Мы построим модель машинного обучения, которая соответствует этому набору данных. Например, рассмотрим эту строку. Обратите внимание, что синяя сторона линии классифицирует каждую точку на этой стороне как синюю или положительную, а красная сторона классифицирует точки на этой стороне как красные или отрицательные. Однако модель допускает некоторые ошибки. Одним из примеров является красная точка, расположенная в синей области, что является ложным срабатыванием. Другой пример — синяя точка под линией в красной области, что является ложным отрицательным результатом. Чтобы лучше понять ложные срабатывания и ложные отрицания, посмотрите мое другое видео о тестировании машинного обучения и метриках ошибок.
Теперь давайте рассмотрим два разных примера для одного и того же типа модели. Модель слева — это медицинская модель, где положительные точки представляют больных пациентов, а отрицательные — здоровых. С другой стороны, модель справа — это модель обнаружения спама, в которой положительные моменты — это спам-сообщения, а отрицательные — не спамовые или «хамские» сообщения.
В медицинской модели ложноположительный результат возникает, когда здоровый человек диагностируется как больной, что приводит к ненужным тестам. Ложноотрицательный результат случается, когда больной человек диагностируется как здоровый, что приводит к отсутствию лечения. В этом случае ложноотрицательные результаты считаются хуже, потому что лучше отправить здорового человека на дополнительные анализы, чем отправить больного домой без лечения. Таким образом, мы стремимся изменить модель, чтобы уменьшить количество ложных отрицательных результатов.
В модели обнаружения спама ложные срабатывания — это хорошие электронные письма, классифицированные как спам и отправленные в папку со спамом. Ложноотрицательные — это спам-письма, неправильно классифицированные как «ветчина» и доставленные в папку «Входящие». Здесь ложные срабатывания считаются хуже, потому что получение случайных писем со спамом в папке «Входящие» предпочтительнее, чем важные электронные письма, помеченные как спам. Поэтому мы сосредоточены на уменьшении ложных срабатываний в этой модели.
Эти две модели представляют крайности, и большинство моделей находятся где-то посередине, допуская некоторые ложные положительные или ложные отрицательные результаты. Однако важность, приписываемая каждому типу ошибок, может различаться. Таким образом, для каждого типа модели нам необходимо определить оптимальную точку для установки порога классификации.
В этом видео я покажу вам полезный метод, помогающий принимать такие решения. Мы рассмотрим гипотетический набор данных, представленный этой линией. Наши модели будут параллельными переводами этой линии. Для каждой модели мы будем записывать количество правильно классифицированных красных и синих точек.
Мы начинаем с линии внизу, где все синие точки классифицированы правильно, а ни одна из красных точек не классифицирована правильно. Это дает нам 0 правильных красных точек и 5 правильных синих точек. Мы наносим эти значения и перемещаем линию, чтобы покрыть одну точку за раз, записывая правильные классификации. Этот процесс продолжается до конца. В конце у нас всегда есть 5 правильных синих точек и 0 правильных красных точек. Наносим эти точки и вычисляем площадь под кривой. В этом случае площадь составляет 21 из 25 квадратов, что дает площадь под кривой 0,84. Область находится в диапазоне от 0 до 1, причем более высокие значения указывают на лучшую производительность модели. Мы можем использовать эту кривую ROC для принятия решений о нашей модели. Хорошая модель будет представлена точкой на кривой с небольшим количеством ложноположительных и ложноотрицательных результатов. В зависимости от наших конкретных требований, таких как минимизация ложных срабатываний в медицинской модели или ложных срабатываний в модели обнаружения спама, мы можем выбрать соответствующие точки на кривой.
В качестве альтернативы мы можем рассматривать точки данных как имеющие оценки от 0 до 1, присвоенные моделью. Применяя порог, мы можем преобразовать эти оценки в дискретные прогнозы. Мы настраиваем порог и наблюдаем, как модель работает на разных уровнях. Этот процесс создает кривую ROC. Выбор точки на кривой помогает нам выбрать подходящий порог для наших прогнозов. При этом стоит отметить, что площадь под кривой менее 0,5 не свидетельствует о худшей модели. На самом деле, это все еще может быть хорошей моделью. Например, модель с площадью 0 соответствует модели, делающей все ошибки, но если мы перевернем прогнозы, она станет почти такой же хорошей, как модель без ошибок. Таким образом, модели с площадями ниже 0,5 все еще могут быть эффективными.
Спасибо за внимание! Если вам понравилось это видео, подпишитесь, чтобы получать больше контента. Не стесняйтесь лайкать, делиться и комментировать, особенно если у вас есть предложения для будущих видео. Вы также можете связаться со мной в Твиттере @LuisLikesMath. Посетите Академию Луиса Серрано для получения дополнительной информации о видео, книгах и курсах. До встречи в следующем видео!
Линейная регрессия: дружеское введение
Линейная регрессия: дружеское введение
Привет, я Луи Серрано, и это дружеское введение в линейную регрессию. Это видео является первой частью серии из трех частей, в которых я расскажу о линейной регрессии, логистической регрессии и методах опорных векторов. Однако давайте пока сосредоточимся на линейной регрессии.
Как правило, объяснения линейной регрессии включают сложные понятия, такие как линейная алгебра, матрицы, производные, исчисление и функции ошибок. Но для меня это может быть подавляющим. У меня визуальный склад ума, и я предпочитаю понимать линейную регрессию с помощью более интуитивного подхода, используя точки и линии.
Позвольте мне продемонстрировать, что я имею в виду. Во-первых, давайте определим линейную регрессию на примере цен на жилье. Представьте, что у нас есть пять домов с разным количеством комнат. У нас есть третий дом, и мы хотим оценить его цену при продаже. Для этого мы смотрим цены на похожие дома и пытаемся сделать обоснованное предположение. Увидев, что первый дом стоит 150 000 долларов, второй — 200 000 долларов, четвертый — 300 000 долларов, а пятый — 350 000 долларов, мы можем оценить, что дом номер три может стоить около 250 000 долларов.
По сути, здесь мы выполнили линейную регрессию. Мы нанесли дома на график с количеством комнат по горизонтальной оси и ценой по вертикальной оси. Мы заметили, что цены, казалось, следуют прямой линии, поэтому мы поместили дом номер три на линию, чтобы сделать наилучшую оценку. Этот простой подход, заключающийся в том, чтобы провести линию через набор точек и использовать ее для прогнозов, является сущностью линейной регрессии.
В действительности при расчете цен учитываются дополнительные факторы, усложняющие данные. Тем не менее, мы все еще можем подобрать линию, которая близко соответствует ценам на жилье. Линейная регрессия может применяться к различным сценариям, таким как расчет цен на акции в финансах или определение продолжительности жизни пациентов в медицине. Приложения многочисленны.
Теперь давайте обсудим, как мы на самом деле выполняем линейную регрессию. Нам нужен алгоритм или процедура, чтобы найти линию, которая лучше всего соответствует точкам. Для простоты мы сосредоточимся на базовом алгоритме, который включает небольшие корректировки линии до тех пор, пока она не будет хорошо соответствовать точкам.
Вот краткий алгоритм:
Чтобы переместить линию к точке, мы выполняем повороты и переводы. Вращение линии по часовой стрелке или против часовой стрелки регулирует наклон, а перемещение линии вверх или вниз регулирует точку пересечения по оси Y. Корректировки производятся путем добавления или вычитания небольших сумм, которые определяются скоростью обучения.
Повторяя этот процесс несколько раз, линия постепенно приближается к точкам, что приводит к хорошей подгонке. Количество эпох определяет, сколько раз мы повторяем процесс, и его можно регулировать в зависимости от желаемой точности и доступных вычислительных ресурсов.
Это основная идея линейной регрессии. Это мощный инструмент для подгонки линий к точкам данных и прогнозирования. Я надеюсь, что это интуитивное объяснение поможет вам лучше понять линейную регрессию.
У нас есть кое-что, что ближе к главному, и есть четыре случая, которые нужно проверить, чтобы убедиться, что квадратный трюк работает эффективно. Давайте рассмотрим другой случай, когда точка находится ниже линии и справа от оси Y. Уравнение представлено снова. На первом этапе мы выбираем небольшую скорость обучения 0,01. На втором шаге мы применяем эту скорость к наклону и y-пересечению. Теперь вертикальное расстояние отрицательно, потому что точка находится ниже линии (-4), в то время как горизонтальное расстояние остается положительным, так как точка находится справа от оси Y (+5). Чтобы изменить наклон, мы прибавляем 0,01 умножить на (-4) умножить на 5, в результате чего получится -0,2. Вычитая -0,2, мы уменьшаем наклон, заставляя линию двигаться по часовой стрелке. Для y-перехвата мы добавляем скорость обучения, умноженную на расстояние по вертикали, что составляет 0,01 умножить на (-4), в результате чего получается -0,04. Новое линейное уравнение становится y = 1,8 - 0,2x + 2,96 - 0,04. Обратите внимание, что наклон меньше, что указывает на вращение по часовой стрелке, а точка пересечения с осью Y меньше, что указывает на смещение вниз. Эта корректировка приближает нас к сути. Хотя мы проверили только два из четырех случаев, я рекомендую вам протестировать их все, чтобы убедиться, что второй шаг работает стабильно. Наконец, давайте рассмотрим алгоритм линейной регрессии. Алгоритм работы следующий:
Теперь возникает вопрос: этот алгоритм лучше или такой же, как существующие? Эта ситуация напоминает мне блестящего математика по имени Джон Борвейн, с которым я когда-то работал. Он искал формулы для вычисления цифр числа пи и обнаружил, что когда формула очень близка к пи, это была беспроигрышная ситуация, потому что либо он открывал новую формулу, либо находил что-то очень близкое к пи. Точно так же с этим алгоритмом у нас беспроигрышная ситуация. Он либо превосходит существующие алгоритмы, либо оказывается столь же эффективным, но проще.
Удивительно, но этот алгоритм точно такой же, как тот, который используется в традиционной линейной регрессии, такой как градиентный спуск с квадратичной ошибкой. Традиционный подход включает в себя минимизацию квадратичной ошибки путем вычисления расстояния между точками и линией, а затем использования производных, исчисления и градиентного спуска или решения линейных систем уравнений. Задача, которую я предлагаю вам, состоит в том, чтобы убедиться, что квадратный трюк эквивалентен традиционному методу квадратичной ошибки, путем вычисления квадратной ошибки, взятия производных и выполнения небольших шагов, противоположных направлению производной, точно так же, как градиентный спуск. Вы обнаружите, что производная квадрата разности тесно связана с вертикальным и горизонтальным расстояниями. Это демонстрирует, что квадратный трюк эквивалентен традиционному подходу.
Вторая проблема связана с измерением качества или качества линии. Ранее мы обсуждали квадратичную ошибку, которая включает в себя возведение расстояний в квадрат. Другим более простым методом является абсолютная ошибка, когда мы складываем абсолютные значения расстояний без учета их знаков. Плохая линия имеет большие оранжевые расстояния, в то время как хорошая линия имеет меньшие оранжевые расстояния из-за ее более близкого расположения к точкам. Используя исчисление, вы можете минимизировать абсолютную ошибку и выполнять шаги градиентного спуска. Вы можете разработать абсолютный трюк, который имеет дело только с горизонтальным расстоянием и включает оператор if для обработки положения линии относительно точки. Исследуя эту задачу, вы обнаружите абсолютный трюк. Не стесняйтесь кодировать его и наблюдать за его эффективностью.
Это видео посвящено линейной регрессии. Помните, что это часть серии из трех частей, которая включает приемы для логистической регрессии и машин опорных векторов. Оставайтесь с нами для предстоящих видео. Если вам понравился этот контент, рассмотрите возможность подписки, лайков и распространения. Я ценю ваши комментарии, вопросы и предложения. Дайте мне знать, как вы справились с задачами, и не стесняйтесь предлагать темы для будущих видео. Вы также можете связаться со мной в Твиттере (@LouisLikesMath). Спасибо, и увидимся в следующем видео.
Логистическая регрессия и алгоритм персептрона: дружеское введение
Логистическая регрессия и алгоритм персептрона: дружеское введение
Существует лучший алгоритм, который может обрабатывать все три случая одновременно. Теперь я объясню трюк с персептроном, который решает все эти случаи вместе. Рассмотрим прямую с таким же уравнением и синюю точку, лежащую на красной линии. Нам нужно скорректировать положение линии, чтобы разместить эту точку. Для этого мы немного уменьшим значение -6, скажем, на 0,1, что сдвинет линию вверх. Далее мы отрегулируем наклон линии, чтобы повернуть ее. Например, если мы хотим повернуть линию, чтобы она была круче, мы можем уменьшить значение 2 до 1,8.
Точно так же, если точка находится дальше в этом направлении, нам нужно больше повернуть линию, чтобы приблизить ее. В этом случае мы могли бы уменьшить значение 2 до 1,4. Однако, если точка находится на другой стороне, нам нужно повернуть линию в противоположном направлении. Итак, нам может понадобиться увеличить значение 2, скажем, до 2,2. Пройдемся по этому процессу еще раз, более аккуратно. Когда точка находится недалеко от оси Y, мы уменьшаем значение -6 на небольшую величину, например на 0,01, что немного сдвигает линию вверх.
Теперь давайте рассмотрим значение 2. Если точка имеет координаты (4, 5), горизонтальное расстояние равно 4. Чтобы настроить наклон, мы можем умножить 4 на скорость обучения, скажем, 0,04, чтобы уменьшить значение 2 , Это повернет линию вокруг оси. Точно так же мы можем применить тот же принцип к значению 3. Например, если точка имеет координаты (4, 5), вертикальное расстояние равно 5. Умножая 5 на скорость обучения, например 0,05, мы можем уменьшить значение из 3. Это еще больше повернет линию. Наконец, после уменьшения 2 на 0,04, 3 на 0,05 и -6 на 0,01 уравнение принимает вид 1,96x + 2,95y - 6,01. Этот метод, известный как трюк с персептроном, касается как направления, так и величины корректировок. Подводя итог, при скорости обучения 0,01 мы можем обновить уравнение в виде ax + by + c = 0, уменьшив a на скорость обучения, умноженную на b, уменьшив b на скорость обучения, умноженную на q, и уменьшив c на a скорость обучения.
Однако есть еще одно соображение: случай, когда синяя область находится вверху, а красная область внизу, с неверно классифицированными точками. В этом сценарии мы бы добавили значения вместо их вычитания. Например, если у нас есть -2x - 3y + 6 = 0 вместо 2x + 3y - 6 = 0, мы должны добавить небольшое количество к a, b и c. Принимая во внимание расположение точек относительно оси Y, мы можем определить, увеличивать или уменьшать значения. Теперь давайте перейдем к алгоритму логистической регрессии, который является еще лучшим подходом.
Я не буду вдаваться в подробности, но дам вам схему и два задания. Первая задача называется градиентным спуском и включает использование функции ошибок для измерения производительности классификатора. Цель состоит в том, чтобы минимизировать ошибку и улучшить алгоритм с помощью исчисления. Процесс градиентного спуска похож на алгоритм персептрона, который мы обсуждали ранее.
Вторая задача — выбрать подходящую функцию активации для логистической регрессии. Функция активации отвечает за преобразование взвешенной суммы входных данных в значение вероятности от 0 до 1.
Одной из часто используемых функций активации является сигмовидная функция, имеющая S-образную кривую. Она отображает любое действительное число в значение от 0 до 1. Сигмовидная функция определяется как:
σ (z) = 1 / (1 + e ^ (-z))
Здесь z представляет собой взвешенную сумму входных данных и рассчитывается как:
г = а х + б у + с
В логистической регрессии цель состоит в том, чтобы найти оптимальные значения для a, b и c, которые максимизируют вероятность наблюдаемых данных. Это достигается путем минимизации функции стоимости, часто называемой функцией кросс-энтропийных потерь.
Функция стоимости измеряет несоответствие между предсказанными вероятностями и фактическими метками классов. Одна из распространенных форм функции стоимости:
J(a, b, c) = -1/m * Σ(y * log(σ(z)) + (1-y) * log(1-σ(z)))
В этом уравнении m представляет количество обучающих примеров, y — истинная метка класса (0 или 1), а σ(z) — прогнозируемая вероятность положительного класса.
Чтобы минимизировать функцию стоимости, можно применить градиентный спуск. Идея градиентного спуска заключается в итеративном обновлении значений параметров (a, b и c) в направлении, противоположном градиенту функции стоимости по отношению к этим параметрам. Этот процесс продолжается до сходимости, при которой функция стоимости минимизируется.
Уравнения обновления для градиентного спуска в логистической регрессии аналогичны уравнениям в алгоритме персептрона. Используя скорость обучения (α), обновления параметров выглядят следующим образом:
a := a - α * ∂J/∂ab := b - α * ∂J/∂bc := c - α * ∂J/∂c
Частные производные (∂J/∂a, ∂J/∂b, ∂J/∂c) представляют собой градиенты функции стоимости по каждому параметру. Их можно вычислить с помощью исчисления.
Путем итеративного обновления значений параметров с использованием градиентного спуска логистическая регрессия может научиться классифицировать данные с большей гибкостью по сравнению с алгоритмом персептрона. Это широко используемый и эффективный алгоритм для задач бинарной классификации.
В заключение, логистическая регрессия основывается на принципах алгоритма персептрона, но вводит вероятностную структуру и другую функцию стоимости. Применяя градиентный спуск, он оптимизирует параметры, чтобы максимизировать вероятность наблюдаемых данных. Выбор сигмовидной функции активации позволяет логистической регрессии производить оценки вероятности принадлежности к классу.
Машины опорных векторов (SVM): дружеское введение
Машины опорных векторов (SVM): дружеское введение
Привет, меня зовут Луис Серрано, и это дружеское введение в машины опорных векторов, или сокращенно SVM. Это третье видео из трех, посвященных линейным моделям. Если вы еще не смотрели первую, она называется «Линейная регрессия», а вторая — «Логистическая регрессия». Это видео основано на концепциях, рассмотренных во втором видео.
Во-первых, я хотел бы отдать должное студентам класса машинного обучения, который я преподавал в Университете Квест в Британской Колумбии, Канада. Они помогли мне разработать ключевую идею для этого видео, и это был замечательный опыт работы с ними. На фото вы видите меня с моим другом Ричардом Хосино, который также является профессором университета.
Теперь давайте погрузимся в SVM. Методы опорных векторов — это важный алгоритм классификации, целью которого является разделение точек двух классов с помощью линии. Однако SVM делает еще один шаг вперед, чтобы найти наилучшую возможную линию, которая максимизирует разделение между точками. Обычно SVM объясняется с точки зрения линейной оптимизации или градиентного спуска. Но в этом видео я расскажу о методе, которого не встречал в литературе, который я называю «методом малых шагов». Это итеративный подход, при котором мы постоянно улучшаем способность линии к классификации.
Для начала давайте повторим предыдущее видео о логистической регрессии и алгоритме персептрона. В этом видео мы стремились найти линию, которая разделяет данные на два класса: красные точки и синие точки. Алгоритм персептрона начинается со случайной линии и итеративно настраивается на основе обратной связи от точек. Алгоритм делает небольшие шаги, чтобы постепенно улучшать способность линии правильно классифицировать точки.
Теперь давайте представим дополнительный шаг в SVM. Вместо того, чтобы находить только одну линию, мы стремимся найти две параллельные линии, которые находятся как можно дальше друг от друга, но при этом эффективно разделяют данные. Чтобы проиллюстрировать это, представьте себе два набора параллельных линий, равноудаленных от основной линии. Цель состоит в том, чтобы максимально увеличить расстояние между этими двумя линиями. Чем больше расстояние, тем лучше классификация.
Далее нам нужно обучить алгоритм для выбора наилучшей строки. Мы достигаем этого, умножая линейные уравнения на разные константы. Делая это, мы можем контролировать расстояние между линиями. Большая константа приводит к более широкому разделению, а меньшая константа сближает линии. Таким образом, мы можем найти оптимальные линии, которые максимизируют расстояние.
Чтобы разделить линии с помощью уравнений, давайте рассмотрим пример уравнения: 2x + 3y - 6 = 0. Умножение этого уравнения на постоянный коэффициент не меняет саму линию, но влияет на расстояние между линиями. Мы можем настроить эту константу, чтобы расширить или сжать линии.
Чтобы формализовать алгоритм SVM, мы включаем скорость расширения, которая определяет размер шага для разделения строк. Умножая уравнения линий на значение, близкое к 1, например 0,99, мы постепенно увеличиваем расстояние между линиями на каждой итерации.
Таким образом, алгоритм SVM выполняет следующие шаги:
Это краткий обзор алгоритма SVM и того, как он включает метод малых шагов для улучшения классификации. Это эффективный метод решения задач классификации, и я надеюсь, что это видео дает уникальный взгляд на SVM.
Теперь мы собираемся рассмотреть еще один аспект, который способствует ошибке в нашей модели. Этот аспект основан на расстоянии между двумя линиями. Чтобы продемонстрировать это, давайте рассмотрим две машины опорных векторов (SVM), которые классифицируют набор данных. Первый SVM имеет более широкие линии, но неверно классифицирует точку, а второй SVM имеет узкие линии, но правильно классифицирует все точки. Вопрос в том, какой из них лучше? Ответ зависит от различных факторов, таких как набор данных, модель и сценарий. Однако мы можем проанализировать это, используя функции ошибок.
Вспомним вычисление ошибки в алгоритме персептрона. Когда точка правильно классифицирована, ошибка равна нулю. Если точка неправильно классифицирована, ошибка зависит от ее расстояния от границы. Точки, расположенные ближе к границе, имеют меньшие ошибки, а более удаленные — большие. Нам нужна функция ошибок, которая фиксирует это отношение расстояния. Точно так же в SVM у нас есть две ошибки классификации: синяя ошибка классификации и красная ошибка классификации. Каждая ошибка измеряет расстояние от ошибочно классифицированной точки до соответствующей границы. Суммируя эти расстояния, мы получаем ошибку классификации.
Кроме того, у нас есть маржинальная ошибка, которая указывает на близость линий. Большая погрешность предела означает, что линии расположены ближе друг к другу, а меньшая погрешность предела предполагает, что линии находятся дальше друг от друга. Мы хотим, чтобы наша модель имела небольшую погрешность, указывающую на широкие линии. Следовательно, чем меньше ошибка, тем лучше наша модель. Интересно, что предельная ошибка напоминает термин регуляризации в регуляризации L2.
Подводя итог, можно сказать, что ошибка SVM состоит из ошибки классификации и предельной ошибки. Ошибка классификации измеряет количество ошибочно классифицированных точек и степень неправильной классификации. Погрешность поля указывает, насколько далеко друг от друга находятся строки. Вместе эти две ошибки образуют общую ошибку SVM. Наша цель — свести к минимуму эту ошибку, используя градиентный спуск, аналогичный приему SVM по настройке положения и разделения линий.
Возвращаясь к сравнению двух моделей, модель слева имеет большую ошибку классификации, но небольшую ошибку предела, поскольку линии находятся далеко друг от друга. С другой стороны, модель справа имеет небольшую ошибку классификации, но большую погрешность из-за близкого расположения линий. Решение о том, какая модель лучше, зависит от наших предпочтений и требований. Мы можем использовать параметр C, гиперпараметр, чтобы контролировать важность ошибки классификации по отношению к погрешности поля. Маленькая буква C подчеркивает ошибку предела, в результате чего получается модель, подобная модели слева, в то время как большая буква C отдает приоритет ошибке классификации, что приводит к модели, аналогичной модели справа.
Важно отметить, что выбор гиперпараметров можно определить путем экспериментов и тестирования различных значений для оценки производительности модели. Гиперпараметры играют решающую роль в алгоритмах машинного обучения и позволяют нам точно настраивать наши модели.
Спасибо за внимание к этой серии видеороликов о линейных моделях. Я надеюсь, что вы нашли его информативным и приятным. Не стесняйтесь лайкать, делиться и комментировать. Ваш отзыв приветствуется. Оставайтесь с нами, чтобы увидеть больше видео в будущем.
Шумоподавляющие и вариационные автоэнкодеры
Шумоподавляющие и вариационные автоэнкодеры
Привет, я Луис Серрано, и в этом видео мы будем обсуждать автоэнкодеры. В частности, мы сосредоточимся на шумоподавлении и вариационных автоэнкодерах.
Автоэнкодеры являются популярными моделями генераторов и являются частью серии, в которую входят генеративно-состязательные сети и ограниченные машины Больцмана. Если вам нравятся модели генераторов, обязательно ознакомьтесь со ссылками в комментариях.
Чтобы понять автокодировщики, давайте представим, что вы хотите понять книгу, поэтому вы просите свою умную подругу Аишу резюмировать ее для вас. Задача Аиши — сократить книгу до нескольких страниц, чтобы вам было легче ее понять. Затем мы оцениваем качество резюме Аиши, прося другую нашу подругу, Берту, переписать всю книгу на основе резюме Аиши. Мы сравниваем переписанную книгу Берты с оригинальной книгой, чтобы оценить их работу.
В идеале Аиша должна максимально точно резюмировать основные идеи книги, а Берта преуспеет в воссоздании книги на основе этих идей. Заставляя Аишу и Берту сокращать и перестраивать книгу соответственно, они получают глубокое понимание ее содержания. Эта концепция лежит в основе автоэнкодеров. Они значительно упрощают данные, а затем реконструируют их, извлекая в процессе наиболее полезные функции.
Автоэнкодеры представляют собой алгоритмы уменьшения размерности и являются частью неконтролируемого машинного обучения. В контексте реальных наборов данных давайте рассмотрим набор данных изображений лиц. Каждое изображение кодируется с использованием нескольких чисел для представления цвета каждого пикселя. Аиша, которую теперь называют кодировщиком, обобщает этот набор данных, извлекая такие характеристики, как размер глаз, цвет волос и другие характеристики лица. Затем эти черты передаются Берте, декодеру, который помогает реконструировать лица по этим извлеченным чертам.
Размер точки данных относится к количеству чисел, необходимых для ее кодирования. В этом случае мы уменьшаем размерность набора данных изображения лица, суммируя его в меньший набор признаков, а затем снова увеличивая его в процессе реконструкции.
Автоэнкодеры состоят из двух частей: кодера, который сжимает данные, и декодера, который расширяет их обратно. Цель состоит в том, чтобы реконструированный вывод был максимально похож на исходный ввод. Сокращенные или упрощенные данные называются скрытым пространством, которое суммирует и уплотняет данные для получения ценной информации.
Два важных типа автоэнкодеров — это шумоподавляющие автоэнкодеры и вариационные автоэнкодеры. Шумоподавляющие автоэнкодеры обучены брать поврежденные данные, такие как зашумленные изображения, и генерировать четкие и четкие версии этих изображений. С другой стороны, вариационные автоэнкодеры обучены генерировать новые данные, выбирая образцы из упрощенного скрытого пространства, которое представляет собой версию исходного пространства данных с более низким размером.
Вариационные автоэнкодеры особенно эффективны при создании изображений с высоким разрешением, таких как пробелы. В видео вы можете найти образцы лиц, сгенерированных вариационным автоэнкодером.
Прежде чем углубляться в автоэнкодеры, нужно усвоить основную концепцию — уменьшение размерности. Чтобы проиллюстрировать эту концепцию, давайте рассмотрим пример набора изображений. Эти изображения представляют собой простые изображения размером 2x2 пикселя, каждый пиксель имеет свой цвет: красный, синий, желтый и зеленый. Каждый пиксель имеет значение интенсивности в диапазоне от 0 до 1, где 1 представляет полную интенсивность цвета, а 0 представляет белый цвет.
Каждая точка данных в этом наборе данных описывается четырьмя значениями интенсивности, соответствующими четырем цветам. Однако при ближайшем рассмотрении мы замечаем своеобразное свойство: интенсивности пикселей в верхнем правом и нижнем левом углах всегда одинаковы, как и интенсивности пикселей в верхнем левом и нижнем правом углах. Это означает, что нам больше не нужно независимо кодировать все четыре значения интенсивности. Вместо этого мы можем представить каждую точку данных всего двумя значениями: интенсивностью верхнего левого и нижнего правого пикселей.Сделав это, мы уменьшили размерность нашего набора данных с четырех до двух. Это сокращение позволяет нам фиксировать основную информацию об изображениях, отбрасывая избыточные или коррелирующие функции. Это также упрощает представление данных и может помочь в различных задачах, таких как визуализация, хранение и анализ.
Автоэнкодеры используют аналогичный принцип уменьшения размерности, но более сложным и изученным способом. Вместо того, чтобы вручную выбирать, какие функции оставить, а какие отбросить, автоэнкодеры учатся автоматически извлекать наиболее информативные функции из входных данных.
Давайте углубимся в архитектуру и процесс обучения автоэнкодеров. Как упоминалось ранее, автоэнкодеры состоят из кодировщика и декодера.
Кодер берет входные данные, такие как изображение, и применяет серию преобразований, чтобы закодировать их в низкоразмерное представление, известное как скрытое пространство. Скрытое пространство — это сжатое представление входных данных, фиксирующее их наиболее важные особенности.
Декодер берет представление в скрытом пространстве и применяет обратные преобразования для максимально точного восстановления исходных входных данных. Цель состоит в том, чтобы свести к минимуму разницу между входными данными и реконструированным выходом, эффективно изучив сжатое представление, которое может точно воспроизвести ввод.
Чтобы обучить автоэнкодер, нам нужен набор входных данных, для которых у нас есть как исходные образцы, так и соответствующие им выходные данные. Во время обучения автоэнкодер учится минимизировать ошибку реконструкции, которая обычно измеряется с помощью функции потерь, такой как среднеквадратическая ошибка (MSE) или двоичная кросс-энтропия.
Процесс обучения включает в себя подачу входных данных через кодировщик для получения представления скрытого пространства. Затем представление скрытого пространства передается через декодер для восстановления данных. Реконструкция сравнивается с исходным входом, и расхождение между ними используется для обновления весов кодировщика и декодера посредством обратного распространения ошибки и градиентного спуска.
Итеративно обучая автоэнкодер на большом наборе данных, он постепенно учится извлекать наиболее важные признаки из входных данных и становится способным реконструировать их с минимальными потерями.
Автоэнкодеры с шумоподавлением и вариационные автоэнкодеры — два популярных варианта базовой архитектуры автоэнкодера.
Шумоподавляющие автоэнкодеры специально разработаны для обработки зашумленных или поврежденных входных данных. Во время обучения автоэнкодеру представляются входные данные, которые были преднамеренно искажены, например, путем добавления случайного шума или внесения искажений. Затем автоэнкодер учится очищать ввод от шума, восстанавливая исходные чистые данные с максимально возможной точностью. Эта возможность шумоподавления позволяет автоэнкодеру изучать надежные представления, более устойчивые к шуму.
Вариационные автоэнкодеры (VAE) используют другой подход, включая вероятностное моделирование в структуру автоэнкодера. VAE нацелены на изучение скрытого пространства, которое следует определенному распределению вероятностей, например распределению Гаусса. Это позволяет VAE генерировать новые точки данных путем выборки из изученного распределения в скрытом пространстве.
Обучение VAE включает не только минимизацию ошибки реконструкции, но и максимизацию вероятности того, что распределение скрытого пространства соответствует желаемому распределению. Это достигается за счет комбинации потерь при реконструкции и члена регуляризации, называемого расхождением Кульбака-Лейблера (KL), который измеряет разницу между изученным распределением и желаемым распределением.
Одновременно оптимизируя потери при реконструкции и расхождение KL, VAE учатся генерировать новые выборки данных, которые демонстрируют характеристики, аналогичные обучающим данным, при этом исследуя разнообразие изученного скрытого пространства.
Автоэнкодеры — это мощные модели обучения без учителя, которые могут изучать компактные представления входных данных. Они состоят из кодера и декодера, которые работают вместе для сжатия и восстановления данных. Автоэнкодеры с шумоподавлением и вариационные автоэнкодеры — это два заметных варианта, которые расширяют базовую архитектуру автоэнкодера и предлагают дополнительные возможности, такие как шумоподавление и генеративное моделирование.
Давайте рассмотрим некоторые дополнительные примеры в этом разделе. Первый пример, который у нас есть, выглядит как полностью цветное изображение, за исключением зеленого пикселя в правом нижнем углу, значение которого равно 0,2. Шумоподавляющий кодер способен раскрасить за нас всю картинку. Далее у нас есть еще один пример белой картинки, за исключением синего пикселя со значением 0,8 в правом верхнем углу. Кодер neocenter определяет, что картинка должна быть белой, и преобразует синий пиксель в белый. Я рекомендую вам изучить репозиторий и поэкспериментировать со своими собственными изображениями, чтобы увидеть результаты. Таким образом, эти внешние кодировщики заставляют любое изображение напоминать одно из изображений в обученном наборе данных.
Другие кодировщики, которые мы использовали до сих пор, имели только один слой, но важно отметить, что это не всегда так в нейронных сетях. Кодировщики могут иметь несколько уровней и сложную архитектуру, например сверточные или рекуррентные уровни. Вот пример сверточного кодировщика, используемого для шумоподавления изображений рукописных символов в наборе данных MNIST. Как видите, эти типы автокодировщиков шумоподавления хорошо справляются с очисткой зашумленных изображений.
Теперь давайте перейдем к другому интересному свойству автоэнкодеров. У них есть возможность генерировать совершенно новые точки данных, например, новые изображения. Эти сгенерированные изображения являются не просто копиями изображений в наборе данных, а совершенно новыми и уникальными изображениями, которые очень похожи на изображения в наборе данных. Эта способность поистине замечательна. Например, автоэнкодер может сгенерировать лицо несуществующего человека или написанную от руки цифру, которая никогда раньше не рисовалась. Чтобы сгенерировать эти новые изображения, нам нужно только сосредоточиться на декодере и забыть о кодировщике. Декодер берет набор чисел, называемый скрытым представлением, и генерирует изображение на основе этих чисел. Этот процесс обеспечивает визуальное представление скрытого пространства.
Чтобы проиллюстрировать это, давайте рассмотрим пример. Предположим, мы вводим в декодер числа 0,3 и 0,8. Он генерирует изображение с интенсивностью 0,12 и 0,95. Мы можем визуализировать скрытое пространство в виде квадрата, где горизонтальная ось соответствует красно-зеленой диагонали, а вертикальная ось соответствует сине-желтой диагонали изображения. Каждая точка в этом квадрате представляет собой изображение, и по мере продвижения вправо интенсивность красно-зеленой диагонали увеличивается. Точно так же, когда мы движемся снизу вверх, интенсивность сине-желтой диагонали увеличивается. Эта визуализация позволяет нам понять скрытое пространство и его связь с генерируемыми изображениями.
В скрытом пространстве мы можем выбрать любую точку равномерно, что эквивалентно выбору двух чисел и прохождению их через декодер. Этот процесс позволяет нам генерировать любое из этих изображений с одинаковой вероятностью. Однако в некоторых случаях мы можем захотеть создать только определенные изображения, которые существуют в наборе данных, исключая другие. Эта ситуация распространена, когда скрытое пространство велико и содержит шум, и только небольшая его часть представляет нужные изображения. Чтобы решить эту проблему, мы можем использовать технику, называемую вариационными автоэнкодерами.
В случае с вариационными автоэнкодерами мы обучаем два нормальных распределения, которые позволяют нам выбирать точки, которые, скорее всего, будут находиться внутри определенной интересующей области. Например, если у нас есть небольшая область овальной формы в скрытом пространстве, где существуют желаемые изображения, мы хотим, чтобы автоэнкодер генерировал изображения внутри или рядом с этой областью с большей вероятностью, чем в остальной части пространства. Мы достигаем этого путем обучения двух нормальных распределений, по одному для каждой координаты в скрытом пространстве. Эти распределения позволяют нам выбирать точки, которые, вероятно, будут ближе к центру желаемой области. Используя эти выбранные точки в качестве скрытого представления и пропуская их через декодер, мы можем генерировать изображения, которые более сфокусированы и соответствуют нашим желаемым критериям.Процесс обучения вариационных автоэнкодеров включает в себя одновременную оптимизацию двух целей: потери при реконструкции и потери при регуляризации. Потери при реконструкции измеряют, насколько хорошо сгенерированные изображения соответствуют входным изображениям, подобно традиционным автоэнкодерам. Потеря регуляризации, часто называемая расхождением Кульбака-Лейблера (KL), способствует тому, чтобы скрытое распределение напоминало известное предварительное распределение, обычно стандартное нормальное распределение.
Добавление потерь регуляризации вводит компромисс во время обучения. С одной стороны, мы хотим, чтобы реконструированные изображения были очень похожи на входные изображения, что достигается за счет минимизации потерь реконструкции. С другой стороны, мы хотим, чтобы скрытое распределение соответствовало предшествующему распределению, способствуя созданию разнообразных и реалистичных изображений. Баланс этих целей имеет решающее значение для обеспечения того, чтобы модель отражала важные особенности данных, сохраняя при этом творческий подход и новизну в сгенерированных изображениях.
Как только вариационный автоэнкодер обучен, мы можем выбирать точки из предыдущего распределения (часто стандартного нормального распределения) и передавать их через декодер для создания новых изображений. Управляя процессом выборки, мы можем исследовать различные области скрытого пространства и генерировать разнообразные варианты входных данных.
Вариационные автоэнкодеры широко используются в различных приложениях, таких как генерация изображений, генерация текста и обнаружение аномалий. Они обеспечивают мощную основу для обучения и создания сложных распределений данных, позволяя контролировать генерируемые выходные данные.
Таким образом, автоэнкодеры, в том числе шумоподавляющие и вариационные автоэнкодеры, предлагают потрясающие возможности в обработке и генерации изображений. Они могут удалять шум из изображений, восстанавливать недостающие части и генерировать совершенно новые и уникальные изображения. Автокодировщики с шумоподавлением используют архитектуру кодер-декодер для изучения базовой структуры данных, в то время как вариационные автокодировщики добавляют вероятностное моделирование для захвата различных вариаций в сгенерированном выводе. Эти методы произвели революцию в области обучения без учителя и нашли широкое применение в исследованиях компьютерного зрения и искусственного интеллекта.
Деревья решений — дружеское введение
Деревья решений — дружеское введение
Добро пожаловать в Академию Серрано! В этом видео мы обсудим деревья решений, которые являются очень популярными моделями машинного обучения. Деревья решений эффективны в реальных сценариях и интуитивно понятны. Они имитируют то, как люди принимают решения, что упрощает их интерпретацию.
Чтобы проиллюстрировать, как работают деревья решений, давайте воспользуемся примером системы рекомендаций. Представьте, что вам нужно решить, надевать ли утром куртку. Вы можете начать с проверки, идет ли дождь на улице. Если идет дождь, то лучше надеть куртку. Но если дождя нет, то можно дополнительно учитывать температуру. Если будет холодно, вы наденете куртку, а если тепло, то нет. Этот процесс принятия решений можно представить в виде дерева решений, где каждое решение становится узлом, а доступные варианты становятся ребрами, ведущими к новым узлам или окончательным решениям.
Для данной задачи может быть несколько деревьев решений. Например, другое дерево решений может включать в себя проверку понедельника, цвета вашей машины и того, пили ли вы в этот день кофе. Однако не все деревья решений одинаково эффективны. Первое дерево решений, которое мы обсуждали, кажется, работает хорошо, в то время как второе содержит нерелевантные узлы. Поиск наилучшего дерева решений — цель машинного обучения. Машинное обучение помогает нам найти дерево решений, которое лучше всего соответствует данным. Давайте рассмотрим пример, чтобы понять этот процесс.
Рассмотрим небольшой набор данных из системы рекомендаций для приложений на основе демографических данных пользователей. Набор данных включает столбцы для пола, возраста и загруженного приложения. Мы хотим сформулировать правило, чтобы рекомендовать приложения будущим пользователям на основе этого набора данных. Анализируя данные, мы можем наблюдать тенденции. Например, все молодые люди в наборе данных скачали TikTok, поэтому разумно рекомендовать TikTok 16-летней девушке. Точно так же, если мы видим, что женщины в возрасте 30 лет в основном скачивают YouTube, мы можем порекомендовать YouTube 30-летней женщине. Следуя этому подходу, мы можем давать рекомендации для разных пользователей на основе их демографической информации.
Интуиция, стоящая за деревьями решений, согласуется с математическими принципами, используемыми в машинном обучении. Деревья решений могут обрабатывать как категориальные, так и числовые данные. Для числовых данных мы определяем наилучшую точку разделения, оценивая различные возможности. Каждая точка разделения создает пень решения, и мы сравниваем точность этих пней, чтобы найти лучший. Как только мы найдем наилучшее разделение, мы можем продолжить построение дерева решений, повторяя процесс на полученных подмножествах данных. Этот итеративный процесс позволяет нам строить более крупные деревья решений.
Деревья решений — это мощные модели машинного обучения, которые обеспечивают точные прогнозы и легко интерпретируются. Они имитируют процессы принятия решений человеком и могут обучаться на различных типах данных. Найдя лучшее дерево решений для конкретной проблемы, мы можем дать эффективные рекомендации или прогнозы на основе имеющихся данных.
Дружеское введение в теорему Байеса и скрытые модели Маркова
Дружеское введение в теорему Байеса и скрытые модели Маркова
Привет и добро пожаловать во введение в основную теорему и скрытые марковские модели. Я Луис Серрано из Udacity, где преподаю курсы по машинному обучению и искусственному интеллекту. В этом сценарии у нас есть два друга по имени Алиса и Боб, которые живут далеко друг от друга и общаются по телефону. Настроение Боба меняется в зависимости от погоды. Если солнечно, Боб счастлив, а если идет дождь, Боб раздражителен. Алиса может определить погоду по настроению Боба.
Давайте усложним сценарий. Боб в основном счастлив, когда солнечно, но бывают и исключения. В основном он сварливый, когда идет дождь, но бывают и исключения. Мы рассчитали вероятности на основе прошлых данных. Когда солнечно, Боб счастлив с вероятностью 80% и раздражителен с вероятностью 20%. Когда идет дождь, Боб злится с вероятностью 60% и счастлив с вероятностью 40%.
Теперь рассмотрим конкретную ситуацию. Боб говорит Алисе, что эта неделя была эмоциональной. В понедельник он был счастлив, во вторник он был сварлив, в среду он снова был счастлив, в четверг он был сварлив, а в пятницу он был счастлив. Алиса пытается определить погоду по настроению Боба.
Чтобы определить вероятность этой последовательности настроений, мы используем скрытую марковскую модель. В нем есть наблюдения (настроение Боба) и скрытые состояния (погода). Мы вычисляем вероятности перехода (вероятность перехода из одного состояния в другое) и вероятности эмиссии (вероятность того, что наблюдения будут испускаться из скрытых состояний).
В этом видео мы ответим на четыре вопроса. Во-первых, как рассчитать эти вероятности? Во-вторых, какова вероятность того, что случайный день будет солнечным или дождливым, независимо от настроения Боба? В-третьих, если Боб счастлив сегодня, какова вероятность того, что сегодня солнечно или дождливо? И в-четвертых, если Боб счастлив три дня подряд, какова наиболее вероятная погода?
Мы можем рассчитать вероятности, анализируя прошлые данные. Мы подсчитываем появление определенных погодных условий и настроения Боба, чтобы оценить вероятность. Имея достаточно данных, мы можем получить хорошие оценки реальных вероятностей.
Чтобы определить вероятность того, что случайный день будет солнечным или дождливым, независимо от настроения Боба, мы можем либо подсчитать случаи появления солнечных и дождливых дней в прошлых данных, либо использовать вероятности перехода. В этом случае мы находим, что 2/3 вероятно будет солнечным, а 1/3 - дождливым.
Если Боб счастлив сегодня, вероятность того, что будет солнечно или дождливо, изменится. Мы используем теорему Байеса для обновления вероятностей. Например, если Боб счастлив и сегодня среда, мы рассматриваем априорные вероятности (2/3 солнечно и 1/3 дождливо) и вероятности выбросов (80 % солнечно и 20 % сердито, когда солнечно, 40 % счастливо и 60 % сердито, когда дождливый). Используя теорему Байеса, мы вычисляем апостериорные вероятности (8/10 солнечных и 2/10 дождливых).
Эти вероятности позволяют нам делать выводы о погоде на основе настроения Боба. Если Боб счастлив, скорее всего, будет солнечно. Если Боб сварливый, скорее всего, будет дождь. Вероятности меняются в зависимости от новой информации.
Мы используем скрытые модели Маркова и теорему Байеса, чтобы определить погоду по настроению Боба. Анализируя прошлые данные, мы рассчитываем вероятности перехода и вероятности выбросов. Это помогает нам определить вероятность определенных погодных условий на основе настроения Боба.
Энтропия Шеннона и прирост информации
Энтропия Шеннона и прирост информации
Привет, я Луи Серрано, и я здесь с Шеннон, чтобы поговорить об энтропии и получении информации. Если вам интересно более подробное объяснение, я написал сообщение в блоге на эту тему. Вы можете найти ссылку в разделе комментариев.
Начнем с введения понятия энтропии, которое берет свое начало из физики. Мы можем проиллюстрировать это, используя три состояния воды: твердое (лед), жидкое (вода) и газообразное (водяной пар). Каждое состояние имеет различный уровень энтропии, который измеряет скорость, с которой движутся частицы внутри объекта. Лед имеет низкую энтропию, потому что его частицы движутся медленно, что делает его стабильным веществом. Вода имеет среднюю энтропию, так как частицы движутся немного быстрее. Водяной пар обладает высокой энтропией, потому что частицы внутри него движутся очень быстро.
Энтропия — это понятие не только в физике, но и в математике, особенно в теории вероятностей. Чтобы продемонстрировать это, давайте рассмотрим пример с тремя ведрами, в каждом из которых находятся шарики разных цветов. В ведре 1 четыре красных шара, в ведре 2 три красных и один синий шар, а в ведре 3 два красных и два синих шара. Основываясь на интуиции, мы можем сделать вывод, что ведро 1 имеет низкую энтропию, ведро 2 имеет среднюю энтропию, а ведро 3 имеет высокую энтропию.
Чтобы подтвердить нашу интуицию, мы можем измерить энтропию, изучив, насколько мы можем изменить набор шаров в каждом ведре. В первом наборе с четырьмя красными шарами возможна ограниченная перестановка, поскольку все шары неразличимы по цвету. Во втором наборе мы можем переставить шары несколькими способами. Наконец, для третьего набора у нас есть еще больше возможных аранжировок. Мы можем рассчитать количество договоренностей, используя биномиальный коэффициент, который дает количественную меру энтропии. Основываясь на степени возможной перегруппировки, мы можем подтвердить, что ведро 1 имеет низкую энтропию, ведро 2 имеет среднюю энтропию, а ведро 3 имеет высокую энтропию.
Однако есть более точный способ определения энтропии на основе информации. Давайте представим игру с этими ведрами. Мы начинаем с определенного расположения шаров и рисуем их случайным образом, пытаясь воспроизвести точную последовательность исходного расположения. Если нам это удастся, мы выиграем значительную сумму денег. В противном случае мы ничего не выиграем. Теперь возникает вопрос: с каким ведром лучше всего играть, а с каким хуже?
Поразмыслив, мы понимаем, что Ведро 1 — лучший выбор, потому что все шары красные, что упрощает воспроизведение исходной последовательности. Ведро 2 — средний выбор, так как он содержит смесь красных и синих шаров, а Ведро 3 — худший выбор, так как мы понятия не имеем, какой цвет мы будем рисовать. Мы можем рассчитать вероятность выигрыша в каждой игре, учитывая вероятность извлечения определенного мяча из ведра. Для ведра 1 вероятность выигрыша равна 100%, так как все шары красные. Для корзины 2 вероятность ниже из-за наличия синих шаров, а для корзины 3 она самая низкая, так как есть равные шансы вытянуть как красные, так и синие шары.
Теперь давайте суммируем вероятности и соответствующие им уровни энтропии в таблице. Мы можем заметить, что корзина 1 имеет высокую вероятность победы, что приводит к низкой энтропии. Бакет 2 имеет умеренную вероятность, что указывает на среднюю энтропию. Наконец, корзина 3 имеет самую низкую вероятность выигрыша, что приводит к высокой энтропии.
Чтобы установить формулу для энтропии, мы можем использовать понятие логарифмов. Вместо того, чтобы иметь дело с произведениями, мы можем преобразовать их в суммы, используя логарифмы. Логарифм произведения равен сумме логарифмов. Логарифмируя произведение вероятностей, мы можем преобразовать его в сумму отдельных вероятностей. Это преобразование позволяет вычислить энтропию как среднюю информативность или неопределенность, связанную с событием.
Формула для энтропии дается:
Энтропия = - (p1 * log(p1) + p2 * log(p2) + ... + pn * log(pn))
где p1, p2, ..., pn представляют вероятности различных исходов или состояний. Логарифмическая функция (обычно с основанием 2) используется для учета экспоненциального характера информации.
Применив эту формулу к нашему примеру, давайте посчитаем энтропию для каждого ведра. В корзине 1, где все шары красные, вероятность вытащить красный шар равна 1 (100%). Таким образом, энтропия для корзины 1 равна:
Энтропия (ведро 1) = - (1 * log2 (1)) = 0
Поскольку логарифм 1 равен 0, энтропия равна 0, что указывает на отсутствие неопределенности или прироста информации.
Для ведра 2 есть три красных шара и один синий шар. Вероятность вытащить красный шар равна 3/4, а вероятность вытащить синий шар — 1/4. Следовательно, энтропия для Bucket 2 равна:
Энтропия (ведро 2) = - (3/4 * log2 (3/4) + 1/4 * log2 (1/4))
Подсчитав значения, получаем:
Энтропия (ковш 2) ≈ 0,811
Это значение представляет собой умеренный уровень неопределенности или получения информации.
Переходя к ведру 3, где есть два красных и два синих шара, вероятность вытащить красный или синий шар равна 1/2 каждого. Таким образом, энтропия для корзины 3 равна:
Энтропия (ведро 3) = - (1/2 * log2 (1/2) + 1/2 * log2 (1/2))
Упрощая выражение, находим:
Энтропия (ведро 3) = - (1/2 * (-1) + 1/2 * (-1)) = 1
Энтропия для корзины 3 равна 1, что указывает на самый высокий уровень неопределенности или получения информации.
Энтропия количественно определяет уровень неопределенности или информации в системе. Используя концепцию вероятностей, мы можем вычислить энтропию как среднее информационное содержание, связанное с различными исходами. Более высокие значения энтропии указывают на большую неопределенность, тогда как более низкие значения энтропии указывают на меньшую неопределенность или более предсказуемые результаты. Понимание энтропии и прироста информации полезно в различных областях, включая теорию информации, машинное обучение и анализ данных, поскольку оно позволяет нам измерять и анализировать сложность и предсказуемость систем.
Наивный байесовский классификатор: дружественный подход
Наивный байесовский классификатор: дружественный подход
Привет, я Луис Серрано, и в этом видео мы рассмотрим наивный байесовский классификатор. Ваша база знаний имеет решающее значение для вероятности и невероятно полезна для машинного обучения. Вместо того, чтобы рассматривать это как сложную формулу, включающую отношения вероятностей, давайте думать о ней как о вероятности того, что событие произойдет при условии, что у нас есть информация о другом событии. Наивный Байес расширяет эту концепцию, делая наивные предположения для упрощения математики при работе с несколькими событиями.
Для иллюстрации создадим детектор спама. Мы начинаем с набора данных из 100 электронных писем, где 25 являются спамом, а 75 — нет. Наша цель — определить свойства, которые коррелируют со спамом. Давайте сосредоточимся на слове «купить». Среди спамовых писем 20 содержат слово «купить», а 5 писем, не являющихся спамом, содержат его. Исходя из этого, мы можем сделать вывод, что если письмо содержит слово «купить», то с вероятностью 80% это спам.
Теперь давайте рассмотрим другое слово «дешево». Среди спам-писем 15 имеют пометку «дешево», а среди не спамовых писем — 10. Если в письме есть слово «дешево», вероятность того, что это спам, составляет 60 %.
Но что, если мы хотим проанализировать и «купить», и «дешевить» вместе? Среди писем со спамом 12 содержат оба слова, а среди писем, не являющихся спамом, таких сочетаний нет. Если в письме есть слова «купить» и «дешево», это спам с вероятностью 100 %. Однако 100% уверенность кажется слишком сильной и нереалистичной для классификатора.
Проблема возникает из-за того, что мы не обнаружили ни одного письма, не являющегося спамом, со словами «купить» и «дешево». Чтобы решить эту проблему, мы могли бы собрать больше данных, но давайте рассмотрим альтернативное решение. Мы можем сделать предположения, чтобы оценить возникновение таких случаев. Предположим, что 0,5% писем содержат как «купить», так и «дешево». Это предположение основано на процентном соотношении случаев «купить» и «дешево» в нашем наборе данных.
Теперь, исходя из этого предположения, мы можем вычислить вероятность того, что электронное письмо является спамом, если оно содержит слова «купить» и «дешево». Применяя теорему Байеса, мы находим, что вероятность составляет приблизительно 94,737%.
Наивный байесовский классификатор предполагает заполнение таблицы данными. Однако, когда определенные события слишком редки в наборе данных, мы делаем наивное предположение, что события независимы. Это предположение упрощает расчеты, хотя в действительности оно может и не соответствовать действительности. Делая эти предположения, мы можем оценить вероятности и построить классификатор спама.
Бета-распределение за 12 минут!
Бета-распределение за 12 минут!
Здравствуйте, меня зовут Луис Серрано, и в этом видео мы рассмотрим тему бета-распределений. Бета-распределения являются важной концепцией вероятности и статистики, поскольку они моделируют вероятность вероятности. Давайте углубимся в эту увлекательную тему.
Чтобы понять бета-распределения, давайте рассмотрим пример с тремя монетами: монета один, монета два и монета три. Эти монеты могут выпасть либо орлом, либо решкой. Однако все три монеты сфальсифицированы, то есть ни одна из них не выпадет орлом с вероятностью в половину.
Предположим, что первая монета выпадает орлом с вероятностью 0,4, вторая монета — с вероятностью 0,6 и третья монета — с вероятностью 0,8. Теперь представьте, что мы случайным образом выбираем одну из этих монет, не зная, какая именно. Задача состоит в том, чтобы угадать, какую монету мы выбрали, подбросив ее пять раз.
Предположим, мы получили три орла и две решки в таком порядке. Вопрос в том, какую монету, по вашему мнению, мы схватили? Интуитивно мы можем склоняться ко второй монете, поскольку ожидается, что она выпадет решкой три раза из пяти. Однако по-прежнему существует неопределенность. Возможно, мы выбрали монету один или три, и наблюдаемая последовательность орла и решки была просто совпадением.
Чтобы определить вероятности выбора каждой монеты, мы можем применить теорему Байеса. Разберем каждый случай по отдельности.
Для монеты один вероятность выпадения орла три раза и решки два раза рассчитывается следующим образом: (0,4 * 0,4 * 0,4) * (0,6 * 0,6) = 0,0230.
Для второй монеты вероятность равна: (0,6 * 0,6 * 0,6) * (0,4 * 0,4) = 0,0346.
Для монеты три вероятность равна: (0,8 * 0,8 * 0,8) * (0,2 * 0,2) = 0,0205.
Поскольку это единственные три возможных события, их вероятности в сумме должны равняться единице. Нормируем эти вероятности, разделив каждую из них на сумму: 0,0230 + 0,0346 + 0,0205. Это дает нормированные вероятности: 0,295, 0,443 и 0,262 для первой, второй и третьей монет соответственно.
Как мы видим, вторая монета имеет наибольшую вероятность, но все еще есть шанс, что мы выбрали первую или третью монету. Эти вероятности получаются с помощью теоремы Байеса, которая является мощным инструментом в теории вероятностей. Если вы хотите узнать больше об этом, у меня есть видео на моем канале, в котором это подробно объясняется.
Теперь давайте рассмотрим тот же пример, но с большим количеством монет. Допустим, мы бросаем монету, и она семь раз падает орлом и три раза решкой. Эта монета может быть одной из десяти монет, каждая из которых имеет разную вероятность выпадения орла в диапазоне от 0,0 до 0,9, увеличиваясь на 0,1 для каждой монеты.
Как вы думаете, какую монету мы выбрали в данном случае? Опять же, наиболее вероятным вариантом является монета, которая выпадает орлом в 70% случаев, что соответствует монете семь. Чтобы рассчитать вероятности выбора каждой монеты, мы выполняем аналогичные вычисления, как и раньше.
Для каждой монеты вычисляем вероятность выпадения орла семь раз и трижды решки. Мы используем формулу: (p^7) * ((1-p)^3), где p представляет вероятность выпадения орла. Затем мы нормализуем эти вероятности, разделив каждую из них на сумму всех вероятностей.
По мере увеличения количества монет вычисления становятся более сложными. Однако основной принцип остается прежним. Мы рассчитываем вероятности каждой монеты на основе наблюдаемых результатов и вероятностей, связанных с каждой монетой. Нормируя эти вероятности, мы получаем распределение, отражающее нашу неуверенность в том, какая монета была выбрана.
Теперь давайте обобщим эту концепцию на бета-версию. Бета-распределение — это непрерывное распределение вероятностей, определенное на интервале [0, 1]. Он характеризуется двумя параметрами формы, часто обозначаемыми как альфа и бета. Эти параметры определяют форму распределения.
Бета-распределение особенно полезно для моделирования вероятностей, поскольку оно является гибким и может принимать различные формы в зависимости от значений альфа и бета. Это позволяет нам зафиксировать широкий диапазон вероятностных распределений, от равномерного до асимметричного и от концентрированного до рассеянного.
Функция плотности вероятности (PDF) бета-распределения задается формулой: f (x) = (x ^ (альфа-1)) * ((1-x) ^ (бета-1)) / B (альфа, бета), где B(альфа, бета) — бета-функция, обеспечивающая интегрирование распределения до 1 на интервале [0, 1].
Среднее значение бета-распределения определяется по формуле: E[X] = альфа / (альфа + бета), а дисперсия равна Var[X] = (альфа * бета) / ((альфа + бета)^2 * ( альфа + бета + 1)).
Бета-распределение обычно используется в различных областях, таких как байесовская статистика, машинное обучение и анализ решений. Он может моделировать неопределенные величины, такие как показатели успешности, пропорции или вероятности, и может использоваться для оценки параметров, проверки гипотез и создания случайных выборок.
Бета-распределения являются фундаментальной концепцией вероятности и статистики, особенно при работе с неопределенными вероятностями. Они обеспечивают гибкую основу для моделирования широкого диапазона вероятностных распределений. Понимая свойства и области применения бета-распределений, мы можем принимать более обоснованные решения и более эффективно анализировать данные.