![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Выборка Томпсона, однорукие бандиты и бета-распределение
Выборка Томпсона, однорукие бандиты и бета-распределение
Здравствуйте, меня зовут Луи Сорано, и в этом видео я расскажу о концепции одноруких бандитов и о бета-распространении. Представьте себя в казино с рядом игровых автоматов, широко известных как однорукие бандиты. Когда вы играете на этих автоматах, возможны два исхода: либо выпадает монета, что означает выигрыш, либо ничего не выпадает, что приводит к проигрышу. Цель состоит в том, чтобы определить, какие машины хороши, а какие нет, чтобы максимизировать свой выигрыш.
Каждая машина в ряду имеет разную вероятность производства монеты, обозначаемую как «p». Например, если машина слева имеет вероятность 0,1 (10%), это означает, что в среднем вы можете рассчитывать на выигрыш монеты в 10% случаев, а в 90% случаев вы будете проигрывать. Точно так же машина справа имеет вероятность 0,7 (70%), что указывает на то, что у вас больше шансов выиграть монету, 70% времени и 30% вероятность проигрыша.
Проблема в том, что вы не знаете фактических значений «p» для каждой машины, поэтому вам нужно оценить их, играя на машинах. Цель состоит в том, чтобы сыграть на всех машинах и определить машины с более высокой вероятностью выигрыша, чтобы сосредоточиться на них, а время от времени давать неэффективным машинам шанс улучшиться.
Есть две стратегии для рассмотрения: стратегия «исследовать» и стратегия «использовать». Стратегия исследования включает в себя игру на каждой машине несколько раз, чтобы собрать данные и оценить вероятность выигрыша. Например, если вы играете на первом автомате 15 раз и выигрываете дважды, вы оцениваете вероятность как 2/15. Повторяя этот процесс для каждой машины, вы можете сравнить их предполагаемые вероятности и определить те из них, которые имеют наибольшую вероятность выигрыша.
С другой стороны, стратегия эксплойта включает в себя меньшее количество игр на каждой машине и принятие решений на основе доступных данных. Сыграв на автомате всего пару раз, у вас может не хватить информации для точной оценки вероятности его выигрыша. Этот подход рискует упустить потенциальных победителей, поскольку он может не исследовать достаточно места для сбора достаточного количества данных.
Чтобы найти оптимальную стратегию, вам нужно сочетание разведки и эксплуатации. Этот подход, известный как выборка Томпсона, предполагает поддержание бета-распределения для каждой машины. Бета-распределение представляет собой вероятность выигрыша на основе количества выигрышей и проигрышей. Обновляя бета-распределение при каждой игре, вы можете уточнить свои оценки.
Выборка Томпсона включает соревнование между машинами с оттенком случайности. Случайные точки выбираются из бета-распределений, и машина с наибольшим значением в этой точке выбирается для следующей игры. Этот метод позволяет исследовать все машины, отдавая предпочтение тем, которые обладают более высокой производительностью.
Выборка Томпсона с использованием бета-распределения имеет широкое применение помимо азартных игр. Он используется в A/B-тестировании для веб-дизайна и рекламы, медицинских испытаниях для определения эффективности экспериментальных лекарств и различных сценариях принятия решений, где решающее значение имеют исследование и эксплуатация.
В заключение, выборка Томпсона с бета-распределением — это мощный метод, который сочетает в себе исследование и эксплуатацию для принятия оптимальных решений. Это позволяет вам максимизировать свой выигрыш, сосредоточившись на машинах с более высокой вероятностью выигрыша, продолжая изучать другие возможности. Выборка Томпсона находит применение в различных областях и предлагает практический подход к принятию решений в условиях неопределенности.
Спасибо за просмотр, и если вы нашли это видео полезным, пожалуйста, подпишитесь, поставьте лайк и поделитесь им. Я также рекомендую вам ознакомиться с моей книгой Rocking Machine Learning, где я объясняю машинное обучение под наблюдением в доступной и увлекательной форме. Вы можете найти книгу и другие ресурсы в разделе комментариев ниже. Не стесняйтесь оставлять комментарии и предложения для будущих тем, и не забудьте подписаться на меня в Твиттере.Биномиальное и пуассоновское распределения.
Биномиальное и пуассоновское распределения.
Видео Серрано посвящено биномиальному распределению и распределению Пуассона. Он начинает с описания проблемного сценария: представьте себе, что вы управляете магазином и наблюдаете за количеством людей, входящих в него с течением времени. Отмечается, что каждый час в магазин заходят в среднем три человека, хотя реальное количество колеблется. Серрано подчеркивает, что появление клиентов происходит случайно, без каких-либо конкретных закономерностей в течение дня.
Главный вопрос, рассматриваемый в видео, звучит следующим образом: учитывая эту информацию, какова вероятность того, что в ближайший час в магазин войдут пять человек? Серрано показывает, что ответ равен 0,1008, но продолжает объяснять, как эта вероятность рассчитывается с использованием распределения Пуассона.
Прежде чем углубиться в распределение Пуассона, Серрано вводит более простое распределение вероятностей, известное как биномиальное распределение. Чтобы проиллюстрировать эту концепцию, он использует аналогию с многократным подбрасыванием необъективной монеты. Предполагая, что монета имеет 30%-й шанс приземлиться орлом и 70%-й шанс приземлиться решкой, Серрано проводит эксперименты, в которых монета подбрасывается 10 раз. Он демонстрирует, что среднее количество полученных орлов сходится к ожидаемому значению, которое является произведением вероятности выпадения орла и количества подбрасываний (0,3 * 10 = 3).
Далее Серрано исследует вероятность выпадения разного количества решек при 10-кратном подбрасывании монеты. Он объясняет, что существует 11 возможных исходов: ноль решек, одна решка, две решки и так далее, до десяти решек. Затем Серрано вычисляет вероятности для каждого исхода, подчеркивая, что наивысшая вероятность возникает при выпадении трех решек. Он строит гистограмму, представляющую биномиальное распределение, с количеством голов на горизонтальной оси и соответствующими вероятностями на вертикальной оси.
Чтобы рассчитать эти вероятности, Серрано разбивает процесс. Например, чтобы определить вероятность выпадения орла без нуля, он отмечает, что каждый бросок должен привести к выпадению решки, что имеет вероятность 0,7. Поскольку подбрасывания являются независимыми событиями, он умножает эту вероятность саму на себя в десять раз, что дает вероятность 0,02825.
Серрано переходит к объяснению расчета вероятности выпадения одной решки. Сначала он рассматривает сценарий, в котором только при первом подбрасывании выпадает орёл (вероятность 0,3), а при остальных бросках выпадает решка (вероятность 0,7 каждый). Это дает вероятность 0,321. Однако это только одна возможность, поэтому Серрано выделяет десять способов, при которых один бросок может привести к выпадению орла, а остальные — к решке. Он отмечает, что эти события взаимоисключающие, а значит, их вероятности складываются. Следовательно, вероятность выпадения одной головы равна 10 * 0,3 * 0,7^9 = 0,12106.
Серрано продолжает этот процесс для двух орлов, вычисляя вероятность того, что первые два броска приведут к орлу (0,3 ^ 2 * 0,7 ^ 8 = 0,00519). Затем он определяет, что есть 45 способов получить два орла из десяти подбрасываний (10 выбирают 2). Умножая это на вероятность двух орлов для каждого сценария, он получает общую вероятность двух орлов, которая составляет 45 * 0,3 ^ 2 * 0,7 ^ 8 = 0,12106.
Используя аналогичные расчеты для разного количества голов, Серрано вычисляет вероятности для каждого исхода. Нанесенные на гистограмму, эти вероятности образуют биномиальное распределение. Он объясняет, что по мере того, как количество бросков приближается к бесконечности, биномиальное распределение стремится к нормальному распределению из-за центральной предельной теоремы. Однако он отмечает, что эта тема будет раскрыта в следующем видео.
Переходя к распределению Пуассона, Серрано вводит понятие распределения Пуассона как альтернативу биномиальному распределению для ситуаций, когда количество событий, происходящих в течение фиксированного интервала времени или пространства, является редким и случайным. Он объясняет, что распределение Пуассона особенно полезно, когда известна средняя частота появления, но точное количество случаев неизвестно.
Чтобы проиллюстрировать применение распределения Пуассона, Серрано вновь обращается к примеру с людьми, входящими в магазин. Он подчеркивает, что в среднем в магазин заходит три человека в час. Однако фактическое количество людей, входящих в определенный час, может сильно различаться.
Затем Серрано задает вопрос: какова вероятность того, что ровно пять человек войдут в магазин в течение следующего часа, если средняя скорость составляет три человека в час? Чтобы вычислить эту вероятность с помощью распределения Пуассона, он использует формулу:
P (X = k) = (e ^ (-λ) * λ ^ k) / k!
Где P(X = k) представляет вероятность ровно k вхождений, e — основание натурального логарифма, λ — средняя частота появления, а k — желаемое количество вхождений.
Применяя формулу, Серрано подставляет значения λ = 3 (средняя скорость трех человек в час) и k = 5 (желаемое количество событий). Он объясняет, что e^(-3) представляет собой вероятность нулевых вхождений (e^(-3) ≈ 0,0498). Умножив это на λ^k и разделив на k! (факториал 5), он приходит к вероятности 0,1008 для ровно пяти человек, вошедших в магазин в течение следующего часа.
Серрано подчеркивает, что распределение Пуассона обеспечивает более точную аппроксимацию, когда средняя частота возникновения относительно высока, а желаемое количество событий относительно редко. По мере того, как средняя скорость увеличивается или желаемое число становится более распространенным, распределение Пуассона становится менее точным, и альтернативные распределения могут оказаться более подходящими.
Таким образом, видео Серрано исследует концепции биномиального распределения и распределения Пуассона. Сначала он вводит биномиальное распределение по аналогии с многократным подбрасыванием необъективной монеты. Он вычисляет вероятности выпадения разного количества орлов и строит гистограмму, представляющую биномиальное распределение.
Переходя к распределению Пуассона, Серрано объясняет его применение в сценариях с редкими и случайными событиями, например, когда люди входят в магазин. Используя формулу распределения Пуассона, он вычисляет вероятность определенного количества событий с учетом средней скорости. В примере он определяет вероятность того, что ровно пять человек войдут в магазин в час со средней скоростью три человека в час.
Объясняя эти распределения вероятностей и их расчеты, Серрано дает зрителям более глубокое понимание принципов, лежащих в основе случайных явлений и связанных с ними вероятностей.
Модели гауссовых смесей
Модели гауссовых смесей
Привет, меня зовут Луис Серрано, и в этом видео я буду обсуждать гауссовские смешанные модели (GMM) и их применение в кластеризации. GMM — это мощные и широко используемые модели для кластеризации данных.
Кластеризация — это обычная задача для различных приложений, таких как классификация аудио, где GMM можно использовать для различения разных звуков, например инструментов в песне, или для отделения вашего голоса от фонового шума при взаимодействии с голосовыми помощниками. GMM также полезны при классификации документов, позволяя разделять документы по темам, таким как спорт, наука и политика. Еще одним приложением является сегментация изображений, где GMM могут помочь в разделении пешеходов, дорожных знаков и других автомобилей на изображениях, которые видят беспилотные автомобили.
При кластеризации мы стремимся сгруппировать точки данных, которые кажутся сгруппированными вместе. Традиционные алгоритмы кластеризации относят каждую точку к одному кластеру. Однако GMM вводят концепцию мягкой кластеризации, когда точки могут одновременно принадлежать нескольким кластерам. Это достигается путем присвоения баллов вероятности или процента принадлежности к каждому кластеру.
Алгоритм GMM состоит из двух основных шагов. Первый шаг включает в себя окрашивание точек на основе их связи с распределением Гаусса. Каждой точке назначается цвет в зависимости от ее близости к разным гауссианам. На этом шаге определяются назначения мягкого кластера.
Второй шаг — оценка параметров Гаусса по точкам. Алгоритм находит среднее значение, дисперсию и ковариацию каждой гауссианы, которая лучше всего соответствует назначенным ему точкам. Этот шаг включает в себя вычисление центра масс, дисперсий и ковариаций, которые предоставляют информацию о форме и ориентации распределения данных.
Алгоритм GMM выполняет итерации между этими двумя шагами, обновляя параметры Гаусса и назначения мягких кластеров до тех пор, пока не будет достигнута конвергенция. Начальные гауссианы могут быть выбраны случайным образом, и алгоритм продолжается до тех пор, пока в назначениях или параметрах не произойдет незначительного изменения.
Используя GMM, мы можем эффективно кластеризовать сложные наборы данных, которые содержат пересекающиеся кластеры или точки, принадлежащие нескольким кластерам. GMM предлагают гибкий и вероятностный подход к кластеризации, что делает их ценным инструментом в различных областях.
Для более подробного объяснения и примеров GMM вы можете посмотреть мое видео на моем канале, где я углубляюсь в математику и реализацию алгоритма. Ссылку на видео можно найти в разделе комментариев.
Алгоритм продолжает повторяться между первым и вторым шагами, пока не достигнет точки сходимости, в которой изменения становятся незначительными. На каждой итерации цвета точек обновляются на основе текущего набора гауссовых распределений, а новые гауссианы создаются на основе цветных точек.
По мере продвижения алгоритма распределения Гаусса постепенно адаптируются к данным, захватывая основные кластеры. Гауссианы представляют собой распределение вероятностей точек данных, принадлежащих определенному кластеру. Алгоритм стремится максимизировать вероятность наблюдаемых данных с учетом смешанной модели Гаусса.
Конечным результатом алгоритма смешанной модели Гаусса является набор гауссианов, представляющих кластеры в данных. Каждый гауссиан связан с определенным кластером и предоставляет информацию о его среднем значении, дисперсии и ковариации. Анализируя параметры гауссианы, мы можем получить представление о структуре и характеристиках кластеров, присутствующих в данных.
Алгоритм смешанной модели Гаусса — это мощный инструмент для мягкой кластеризации, когда точки данных могут одновременно принадлежать нескольким кластерам. Он может обрабатывать сложные наборы данных с перекрывающимися кластерами или нелинейно разделяемыми шаблонами. Это делает его применимым в различных областях, таких как сегментация изображений, классификация документов и классификация аудио.
Алгоритм гауссовой смешанной модели представляет собой итеративный процесс, который чередуется между окрашиванием точек на основе текущих гауссианов и обновлением гауссианов на основе окрашенных точек. Он сходится к решению, в котором гауссианы точно представляют лежащие в основе кластеры в данных, обеспечивая эффективную кластеризацию и анализ.
Кластеризация: K-средних и иерархическая
Кластеризация: K-средних и иерархическая
Привет, я Луис Серрано. В этом видео мы узнаем о двух важных алгоритмах кластеризации: кластеризации k-средних и иерархической кластеризации. Кластеризация — это метод обучения без учителя, который включает группировку данных на основе сходства. Мы применим эти алгоритмы к маркетинговому приложению, в частности к сегментации клиентов.
Наша цель — разделить клиентскую базу на три отдельные группы. У нас есть данные о возрасте клиентов и их вовлеченности на определенную страницу. Нанеся эти данные на график, мы можем визуально идентифицировать три кластера или группы. Первая группа состоит из людей в возрасте от 20 лет с низкой вовлеченностью (2-4 дня в неделю). Вторая группа включает людей в возрасте от 30 до 40 лет с высокой вовлеченностью. В третью группу входят люди в возрасте 50 лет с очень низкой вовлеченностью.
Теперь давайте углубимся в алгоритм кластеризации k-средних. Представьте, что мы — владельцы пиццерий, пытающиеся определить лучшие места для трех пиццерий в городе. Мы хотим эффективно обслуживать наших клиентов. Мы начинаем со случайного выбора трех мест и размещения пиццерии в каждом месте. Мы направляем клиентов в ближайшую пиццерию в зависимости от их местонахождения.
Затем мы перемещаем каждую пиццерию в центр домов, которые она обслуживает. Этот шаг гарантирует, что местоположение является оптимальным для обслуживания окружающих клиентов. Мы повторяем процесс назначения клиентов в ближайшую пиццерию и перемещения салонов в центры до тех пор, пока алгоритм не сойдется и кластеры не стабилизируются.
Определение количества кластеров может быть сложной задачей. Чтобы решить эту проблему, мы можем использовать метод локтя. Мы вычисляем диаметр каждой кластеризации, который представляет собой наибольшее расстояние между двумя точками одного цвета. Сопоставляя количество кластеров с диаметром, мы можем определить точку «локтя», где улучшение становится менее значительным. Эта точка изгиба указывает на оптимальное количество кластеров, которое в данном случае равно трем.
Теперь давайте перейдем к иерархической кластеризации. Опять же, мы стремимся найти кластеры в наборе данных. Начнем с рассмотрения двух ближайших точек и группировки их вместе. Затем мы итеративно объединяем следующие ближайшие пары, пока не решим остановиться на пороге расстояния. Этот метод приводит к дендрограмме, древовидной структуре, которая представляет кластеры.
Определение порога расстояния или количества кластеров может быть субъективным. Однако альтернативным подходом является метод «добавь и отбрось». Мы наносим расстояния между парами точек на дендрограмме и изучаем высоту изогнутых линий. Анализируя высоты, мы можем принять обоснованное решение о пороге расстояния или количестве кластеров.
Кластеризация K-средних и иерархическая кластеризация являются ценными алгоритмами для группировки данных на основе сходства. Кластеризация K-средних включает итеративное перемещение центроидов для оптимизации назначений кластеров, в то время как иерархическая кластеризация строит дендрограмму для представления кластеров. Метод локтя и метод добавления и опускания можно использовать для определения оптимального количества кластеров или порога расстояния.
Анализ главных компонентов (PCA)
Анализ главных компонентов (PCA)
В этом видео мы узнаем об анализе главных компонентов (PCA), который представляет собой метод уменьшения размерности. PCA используется для уменьшения количества столбцов в большом наборе данных при сохранении как можно большего количества информации. Спроецировав данные в пространство меньшего размера, мы можем упростить набор данных. В этом видео мы рассмотрим несколько шагов: проекции мод, матрица дисперсии-ковариации, собственные значения и собственные векторы и, наконец, PCA.
Чтобы понять концепцию, давайте рассмотрим задачу фотографирования группы друзей. Нам нужно определить лучший угол для захвата изображения. Точно так же при уменьшении размерности мы хотим уловить суть данных при уменьшении количества измерений. Мы можем добиться этого, спроецировав данные на идеальную линию, которая максимизирует разброс точек. Мы сравним разные проекции и определим, какая из них обеспечивает лучшее разделение точек.
Уменьшение размерности имеет решающее значение в сценариях, когда у нас есть большой набор данных с многочисленными столбцами, которые трудно обрабатывать. Например, в наборе данных о жилье у нас может быть несколько характеристик, таких как размер, количество комнат, ванные комнаты, близость к школам и уровень преступности. Уменьшая размеры, мы можем объединить связанные функции в одну функцию, например, объединить размер, количество комнат и ванных комнат в функцию размера. Это упрощает набор данных и фиксирует важную информацию.
Давайте сосредоточимся на примере, где мы переходим от двух столбцов (количество комнат и размер) к одному столбцу. Мы хотим зафиксировать изменение данных в одной функции. Проецируя данные на линию, которая лучше всего представляет разброс точек, мы можем упростить набор данных с двух измерений до одного измерения. Этот процесс можно расширить, чтобы уменьшить размерность с пяти до двух, что позволит собрать важную информацию в меньшем пространстве.
Чтобы понять ключевые понятия, такие как среднее значение и дисперсия, давайте рассмотрим балансировку весов. Среднее значение — это точка, в которой веса уравновешиваются, а дисперсия измеряет разброс весов от среднего. В двумерном наборе данных мы вычисляем отклонения в направлениях x и y, чтобы измерить разброс данных. Однако сами по себе дисперсии могут не отражать различия между наборами данных. Мы вводим ковариацию, которая измеряет разброс и корреляцию между двумя переменными. Вычисляя ковариацию, мы можем различать наборы данных с одинаковыми дисперсиями.
Теперь давайте применим эти концепции к PCA. Мы начинаем с центрирования набора данных в начале координат, создавая ковариационную матрицу из дисперсий и ковариаций набора данных. Эта матрица, обычно обозначаемая как Sigma, фиксирует разброс и корреляции между переменными. Следующие шаги связаны с собственными значениями и собственными векторами, которые дают представление об основных компонентах данных. Наконец, мы применяем PCA для проецирования данных на основные компоненты, уменьшая размеры и упрощая набор данных.
PCA — это мощный метод уменьшения размерности. Это помогает фиксировать важную информацию в наборе данных, уменьшая количество измерений. Проецируя данные на идеальную линию или пространство, мы можем упростить сложные наборы данных и сделать их более управляемыми.
Как Netflix рекомендует фильмы? Матричная факторизация
Как Netflix рекомендует фильмы? Матричная факторизация
Системы рекомендаций — это очень интересные приложения машинного обучения, которые широко используются такими платформами, как YouTube и Netflix. Эти системы анализируют пользовательские данные и используют различные алгоритмы, чтобы предлагать фильмы и видео, соответствующие предпочтениям пользователей. Один из популярных методов, используемых в этих системах, называется матричной факторизацией.
Чтобы понять, как работает матричная факторизация, давайте рассмотрим гипотетический сценарий во вселенной Netflix. У нас есть четыре пользователя: Анна, Бетти, Карлос и Дана, и пять фильмов: «Фильм 1», «Фильм 2», «Фильм 3», «Фильм 4» и «Фильм 5». Пользователи выставляют оценки фильмам по шкале от одной до пяти звезд, и цель состоит в том, чтобы предсказать эти рейтинги.
Мы создаем таблицу, в которой строки представляют пользователей, а столбцы — фильмы. Каждая запись в таблице соответствует оценке пользователя для определенного фильма. Например, если Анна оценивает Фильм 5 на четыре звезды из пяти, мы записываем эту оценку в таблицу под строкой Анны и столбцом Фильм 5.
Теперь давайте рассмотрим вопрос о том, как люди ведут себя с точки зрения предпочтений в отношении фильмов. Мы изучаем три разные таблицы, чтобы определить, какая из них более реалистична. В первой таблице предполагается, что все пользователи оценивают все фильмы на 3 балла, что нереально, поскольку предполагается, что у всех одинаковые предпочтения. Третья таблица состоит из случайных оценок, которые также не совсем точно отражают поведение человека. Однако вторая таблица, в которой показаны зависимости между строками и столбцами, представляется наиболее реалистичным представлением.
Анализируя вторую таблицу, мы наблюдаем такие зависимости, как пользователи со схожими предпочтениями и фильмы со схожими оценками. Например, первая и третья строки в таблице идентичны, что указывает на то, что у Анны и Карлоса очень похожие предпочтения. Это сходство позволяет Netflix рассматривать их как одного и того же человека при рекомендации. Мы также заметили, что столбцы 1 и 4 одинаковы, что позволяет предположить, что фильм 1 и фильм 4 могут быть похожи с точки зрения содержания или привлекательности. Кроме того, мы находим зависимость между тремя строками, где значения во второй и третьей строках можно сложить, чтобы получить значения в четвертой строке. Эта зависимость подразумевает, что предпочтения одного пользователя могут быть получены из предпочтений других пользователей. Эти зависимости, хотя и не всегда поддающиеся явному объяснению, дают ценную информацию, которую можно использовать в рекомендательных системах.
Чтобы использовать эти зависимости и делать рейтинговые прогнозы, в игру вступает матричная факторизация. Матричная факторизация включает в себя разложение большой сложной матрицы на произведение двух меньших матриц. В этом случае большая матрица представляет собой таблицу рейтингов фильмов пользователей, а меньшие матрицы представляют пользовательские предпочтения и характеристики фильмов.
Чтобы найти эти две меньшие матрицы, мы вводим такие функции, как комедия и боевик для фильмов. Каждый фильм оценивается на основе его уровня комедии и действия. Точно так же пользователи связаны со своими предпочтениями в отношении этих функций. Затем скалярное произведение используется для прогнозирования рейтингов с учетом пристрастия пользователя к определенным функциям и рейтингов фильмов. Например, если пользователь любит комедии, но не любит боевики, а фильм имеет высокие рейтинги комедии, но низкие рейтинги боевиков, вычисление скалярного произведения приведет к рейтингу, соответствующему предпочтениям пользователя.
Применяя вычисление скалярного произведения к каждой комбинации пользователь-фильм, мы можем генерировать прогнозируемые рейтинги и заполнять недостающие записи в рейтинговой таблице. Этот процесс позволяет нам выразить исходную матрицу как произведение двух меньших матриц, достигая матричной факторизации.
Стоит отметить, что обнаруженные нами ранее зависимости между строками и столбцами все еще присутствуют в факторизованных матрицах. Например, сходство между Анной и Карлосом отражается в сходстве их соответствующих строк в матрице характеристик пользователя. Точно так же фильмы с одинаковыми рейтингами демонстрируют сходство в своих оценках характеристик в матрице характеристик фильмов. Кроме того, можно наблюдать более сложные отношения, такие как отношения между пользователями и фильмами через их общие предпочтения для определенных функций.
Получив факторизованные матрицы, представляющие пользовательские предпочтения и характеристики фильмов, мы можем использовать их для предоставления персонализированных рекомендаций. Для данного пользователя мы можем сравнить его предпочтения в матрице характеристик пользователя с оценкой характеристик всех фильмов в матрице характеристик фильмов. Вычисляя скалярное произведение между вектором предпочтений пользователя и вектором характеристик каждого фильма, мы можем определить прогнозируемый рейтинг для этой пары «пользователь-фильм». Эти предсказанные рейтинги служат основой для рекомендации фильмов пользователю.
Чтобы проиллюстрировать это, давайте рассмотрим Анну как нашего целевого пользователя. Мы извлекаем предпочтения Анны из матрицы характеристик пользователя и сравниваем их с оценками характеристик всех фильмов в матрице характеристик фильмов. Вычисляя скалярное произведение между вектором предпочтений Анны и вектором характеристик каждого фильма, мы получаем список предсказанных рейтингов для Анны. Чем выше прогнозируемый рейтинг, тем больше вероятность того, что Анне понравится этот конкретный фильм. На основе этих предсказанных рейтингов мы можем составить ранжированный список рекомендуемых фильмов для Анны.
Важно отметить, что точность этих рекомендаций зависит от качества факторизации и представления признаков. Если процесс факторизации фиксирует основные закономерности и зависимости в рейтингах фильмов пользователей и если функции эффективно отражают характеристики фильмов и предпочтения пользователей, то рекомендации, скорее всего, будут актуальными и согласуются со вкусами пользователя.
Матричная факторизация — лишь один из многих методов, используемых в рекомендательных системах, и он доказал свою эффективность в улавливании скрытых факторов и создании персонализированных рекомендаций. Такие платформы, как Netflix и YouTube, используют эти методы для улучшения взаимодействия с пользователем, предлагая контент, который может понравиться пользователям, исходя из их предыдущих взаимодействий и предпочтений.
Матричная факторизация — это мощный подход в рекомендательных системах, который разбивает матрицу оценок пользователей фильмов на две меньшие матрицы, представляющие пользовательские предпочтения и характеристики фильмов. Фиксируя зависимости и закономерности в данных, он позволяет генерировать точные прогнозы и персонализированные рекомендации.
Скрытое распределение Дирихле (часть 1 из 2)
Скрытое распределение Дирихле (часть 1 из 2)
Здравствуйте, я Луис Серрано, и это первое из двух видео о скрытом распределении Дирихле (LDA). LDA — это алгоритм, используемый для сортировки документов по темам. Давайте рассмотрим корпус документов, таких как новостные статьи, где каждая статья связана с одной или несколькими темами. Однако мы заранее не знаем темы, только тексты статей. Цель состоит в том, чтобы разработать алгоритм, который может классифицировать эти документы по темам.
Чтобы проиллюстрировать концепцию, давайте воспользуемся небольшим примером с четырьмя документами, каждый из которых содержит пять слов. Для простоты предположим, что в нашем языке всего четыре возможных слова: «мяч», «планета» (или «галактика»), «референдум» и три возможные темы: наука, политика и спорт.
Основываясь на словах в документах, мы можем назначать темы каждому документу. Например, первый документ содержит слова «мяч» и «галактика», что предполагает спортивную тему. Во втором документе есть слово «референдум», которое указывает на политическую тему. В третьем документе есть слова «планета» и «галактика», указывающие на научную тему. Четвертый документ неоднозначен, но содержит слова «планета» и «галактика», что также указывает на научную тему.
Однако эта категоризация основана на нашем понимании слов как людей. С другой стороны, компьютер знает только, являются ли слова одинаковыми или разными и встречаются ли они в одном и том же документе. Здесь на помощь приходит скрытое распределение Дирихле.
LDA использует геометрический подход для классификации документов по темам. Представьте себе треугольник с углами, представляющими темы (науку, политику и спорт). Цель состоит в том, чтобы разместить документы внутри этого треугольника рядом с соответствующими темами. Некоторые документы могут находиться на грани между двумя темами, если они содержат слова, относящиеся к обеим темам.
LDA можно рассматривать как машину, которая генерирует документы. Там есть настройки и шестеренки. Регулируя настройки, мы можем контролировать производительность машины. Шестерни представляют внутреннюю работу машины. Когда машина создает документ, это может быть не исходный документ, а случайная комбинация слов.
Чтобы найти наилучшие настройки для машины, мы запускаем несколько ее экземпляров и сравниваем сгенерированные документы с исходными. Наилучшими считаются настройки, при которых документы максимально приближены к оригиналам, хотя и с низкой вероятностью. Из этих настроек мы можем извлечь темы.
Чертеж машины, описанный в литературе, поначалу может показаться сложным. Однако, если мы разберем его, он состоит из распределений Дирихле (настройки) и полиномиальных распределений (шестерни). Эти дистрибутивы помогают нам генерировать темы и слова в документах.
Распределения Дирихле можно представить как распределения точек внутри геометрической фигуры. Например, в треугольной форме точки представляют распределение тем по документам. На распределение влияют параметры, определяющие, тяготеют ли точки к углам (темам) или к центру.
Полиномиальные распределения, с другой стороны, представляют собой распределение слов в каждой теме. Точки внутри геометрической фигуры, такой как тетраэдр, обозначают сочетание слов по определенной теме.
LDA объединяет эти дистрибутивы для создания документов. Вероятность появления документа рассчитывается по формуле с учетом настроек и передач машины.
LDA — это алгоритм, который помогает классифицировать документы по темам. Он использует геометрические распределения для представления отношений между документами, темами и словами. Изменяя настройки машины, мы можем создавать документы, очень похожие на исходные. Из этих настроек мы можем извлечь темы.
Обучение скрытому распределению Дирихле: выборка Гиббса (часть 2 из 2)
Обучение скрытому распределению Дирихле: выборка Гиббса (часть 2 из 2)
Здравствуйте, меня зовут Луис Серрано, и в этом видео я покажу вам, как обучить модель скрытого распределения Дирихле (LDA) с использованием выборки Гиббса. Это видео является второй частью серии из двух частей. В первом видео мы обсудили, что такое LDA, и более подробно рассмотрели распределения Дирихле. Однако смотреть первое видео не обязательно, чтобы понять это.
Давайте сделаем краткий обзор проблемы, которую мы пытаемся решить. У нас есть коллекция документов, таких как новостные статьи, и каждый документ может быть связан с одной или несколькими темами, такими как наука, политика или спорт. Однако мы не знаем темы документов, только текст внутри них. Наша цель — сгруппировать эти статьи по темам исключительно на основе их текста с помощью LDA.
В предыдущем видео мы рассмотрели пример с четырьмя документами и ограниченным словарным запасом, состоящим из четырех слов: «мяч», «планета», «галактика» и «референдум». Мы присвоили цвета (представляющие темы) каждому слову и заметили, что большинство статей преимущественно связаны с одной темой. Мы также заметили, что слова, как правило, в основном связаны с определенной темой.
Чтобы решить эту проблему с помощью LDA, нам нужно назначить темы как словам, так и документам. Каждому слову может быть назначено несколько тем, и у каждого документа также может быть несколько тем. Мы стремимся найти такое распределение тем по словам, которое сделает каждый документ как можно более монохромным, а каждое слово в основном монохромным. Таким образом, мы можем эффективно группировать статьи, не полагаясь на определения слов или тем.
Теперь давайте углубимся в решение этой проблемы, используя выборку Гиббса. Представьте себе организацию грязной комнаты, не зная общего положения предметов. Вы можете полагаться только на то, как объекты должны быть размещены относительно друг друга. Точно так же мы будем организовывать слова, назначая цвета по одному, предполагая, что все остальные назначения верны.
Сначала мы начинаем со случайного присвоения цветов словам. Затем мы итеративно улучшаем задание, случайным образом выбирая слово и переназначая ему цвет на основе других заданий. Например, если мы выбираем слово «мяч» и предполагаем, что все остальные назначения верны, мы определяем лучший цвет для «шара», учитывая его распространенность в документе и его распространенность среди всех появлений этого слова. Мы умножаем вероятности, связанные с каждым цветом, и выбираем цвет с наибольшим результатом.
Повторяя этот процесс для каждого слова, мы постепенно улучшаем назначение цветов словам, делая артикли более монохромными, а слова в основном монохромными. Хотя этот алгоритм не гарантирует идеального решения, он эффективно решает проблему, не полагаясь на определения слов или тем.
В оставшейся части видео я подробно расскажу, как решить эту проблему с помощью выборки Гиббса. Организуя комнату по одному объекту за раз, мы можем превратить грязную комнату в чистую. Точно так же, назначая цвета словам одно за другим, мы можем эффективно обучать модель LDA, используя выборку Гиббса.
Итак, давайте продолжим наш алгоритм выборки Гиббса. Мы окрасили слово «мяч» в документе номер один в красный цвет на основе преобладания красных слов в документе и преобладания красного цвета слова «мяч» во всех документах. Теперь давайте перейдем к следующему слову и повторим процесс.
Следующее слово — «галактика» в первом документе. Опять же, предполагая, что все остальные слова правильно окрашены, мы рассматриваем цвета синий, зеленый и красный как кандидаты на слово «галактика». Теперь давайте подсчитаем количество синих, зеленых и красных слов в первом документе. Мы обнаруживаем, что есть одно синее слово, одно зеленое слово и одно красное слово. Поскольку все три цвета представлены одинаково, у нас нет явного победителя на основе только одного документа.
Далее, давайте сосредоточимся только на слове «галактика» во всех документах. Подсчитав вхождения, мы находим два синих слова, два зеленых слова и два красных слова. Опять же, во всех документах нет четкого большинства цвета для слова «галактика».
В этом случае мы можем случайным образом назначить цвет слову «галактика» или выбрать цвет по умолчанию. Допустим, мы случайным образом назначаем ему синий цвет. Теперь мы изменили цвет слова «галактика» в первом документе на синий.
Мы повторяем этот процесс для всех слов во всех документах, учитывая их локальный и глобальный контекст и обновляя их цвета в зависимости от преобладания цветов в каждом документе и преобладания цветов для каждого слова во всех документах. Мы продолжаем повторять слова, пока не пройдем их все несколько раз.
После нескольких итераций мы сходимся к раскраске, которая удовлетворяет нашей цели — сделать каждую статью как можно более монохромной, а каждое слово — максимально монохромным. Мы эффективно обучили модель скрытого распределения Дирихле (LDA) с использованием выборки Гиббса.
Выборка Гиббса — это метод, который позволяет решить проблему назначения тем документам, не полагаясь на определения слов. Он включает в себя итеративное обновление цветов слов на основе преобладания цветов в каждом документе и преобладания цветов для каждого слова во всех документах. Этот процесс приводит к раскрашиванию, которое представляет темы в документах, даже без знания значений слов.
Используя выборку Гиббса, мы можем эффективно обучать модель LDA и группировать статьи по темам, основываясь исключительно на текстовом содержании, без предварительного знания тем или значений слов. Этот подход особенно полезен в задачах обработки естественного языка, где цель состоит в том, чтобы выявить скрытые темы или темы в коллекции документов.
Разложение по сингулярным числам (SVD) и сжатие изображений
Разложение по сингулярным числам (SVD) и сжатие изображений
Здравствуйте, меня зовут Луи Сорано, и в этом видео я расскажу о концепции разложения по сингулярным числам (SVD). SVD включает в себя повороты и растяжения, которые имеют различные применения, такие как сжатие изображений. Если вам интересно, вы можете найти код приложения в моем репозитории GitHub, ссылки на который приведены в комментариях. Кроме того, у меня есть книга под названием «Rocking Machine Learning», и вы можете найти ссылку в комментариях вместе с кодом скидки.
Теперь давайте погрузимся в преобразования. Преобразования можно рассматривать как функции, которые берут точки и сопоставляют их с другими точками. Растяжение и сжатие являются примерами преобразований, которые можно применять к изображению по горизонтали или по вертикали. Поворот изображения на определенный угол — еще один тип трансформации.
Теперь давайте решим ребус. Можете ли вы преобразовать круг слева в эллипс справа, используя только повороты, горизонтальные и вертикальные растяжения/сжатия? Поставьте видео на паузу и попробуйте.
Чтобы решить эту головоломку, мы растягиваем круг по горизонтали, сжимаем его по вертикали, а затем поворачиваем против часовой стрелки, чтобы получить нужный эллипс.
Давайте перейдем к более сложной головоломке. На этот раз мы должны преобразовать цветной круг в цветной эллипс, сохранив при этом цвета. Прежде чем растягивать или сжимать, нам нужно повернуть круг в правильную ориентацию. После этого мы можем применять растяжения и сжатия, а затем снова вращать для достижения желаемого результата.
Ключевым выводом здесь является то, что любое линейное преобразование может быть выражено как комбинация вращений и растяжений. Линейное преобразование может быть представлено матрицей, и SVD помогает нам разложить матрицу на три части: две матрицы вращения и матрицу масштабирования.
Эти матрицы поворота и масштабирования можно использовать для имитации любого линейного преобразования. Повороты представляют собой повороты на угол, а матрицы масштабирования представляют собой горизонтальные и вертикальные растяжения или сжатия. Матрицы со специальными свойствами, такие как диагональные матрицы, представляют масштабирующие преобразования.
Уравнение разложения SVD, A = UΣVᴴ, выражает матрицу A как произведение этих трех матриц: матрицы вращения U, матрицы масштабирования Σ и другой матрицы вращения Vᴴ (присоединенной или сопряженной транспонированной матрицы V). Это уравнение позволяет разложить любую матрицу на составные части.
Чтобы найти SVD, доступны математические методы, но мы также можем использовать такие инструменты, как Wolfram Alpha или пакет NumPy в Python.
Разложение SVD помогает уменьшить размерность и упростить матрицы. Анализируя масштабную матрицу Σ, мы можем понять характеристики преобразования. Большой коэффициент масштабирования указывает на растяжение, а маленький коэффициент указывает на сжатие. Если коэффициент масштабирования становится равным нулю, преобразование становится вырожденным и может сжать всю плоскость в линию.
Изменяя матрицу масштабирования, мы можем сжать матрицу более высокого ранга в матрицу более низкого ранга, эффективно уменьшив количество информации, необходимой для представления исходной матрицы. Это сжатие достигается путем выражения матрицы как произведения двух меньших матриц. Однако не все матрицы могут быть сжаты таким образом.
Разложение по сингулярным значениям (SVD) — это мощный инструмент, который позволяет нам разбить матрицу на повороты и растяжения. Это разложение имеет приложения в различных областях, включая сжатие изображений и уменьшение размерности.
Революция ИИ | Глобальный форум в Торонто, 2019 г.
Революция ИИ | Глобальный форум в Торонто 2019 | Четверг, 5 сентября |
Если кто-то в этой комнате считает, что я был даже немного напуган, прежде чем согласиться на это интервью, он будет прав. Однако давайте отложим это в сторону и сосредоточимся на продуктивном обсуждении. Моя цель, чтобы все ушли отсюда с большим пониманием, чем пришли. Итак, начнем.
Чтобы представить некоторый контекст, премия Тьюринга была недавно присуждена мне и моему коллеге за нашу работу над нейронными сетями и глубоким обучением. Я подумал, что было бы полезно, если бы Джефф объяснил, что такое глубокое обучение и что такое нейронные сети.
Около шестидесяти лет назад существовало две основные идеи создания интеллектуальных систем. Один подход был основан на логике и включал обработку строк символов с использованием правил вывода. Другой подход был вдохновлен структурой мозга, где сеть взаимосвязанных клеток мозга обучалась и адаптировалась. Эти две парадигмы были совершенно разными, и долгое время нейросетевой подход не давал удовлетворительных результатов. Отсутствие прогресса было связано с ограниченной доступностью данных и вычислительной мощностью.
Однако в начале этого века мы стали свидетелями значительного сдвига. С экспоненциальным ростом объема данных и вычислительной мощности системы, обучающиеся на примерах, стали очень эффективными. Вместо программирования конкретных задач мы создали большие сети смоделированных клеток мозга и отрегулировали силу связи между ними, чтобы добиться желаемого поведения. Предоставляя входные данные и соответствующие правильные выходные данные, сеть научилась обобщать и делать точные прогнозы. Этот подход, известный как глубокое обучение, произвел революцию в распознавании речи, распознавании изображений, машинном переводе и многих других задачах.
Хотя глубокое обучение вдохновлено мозгом, важно отметить, что детали того, как оно работает, значительно различаются. Он работает на абстрактном уровне, имитируя способность мозга учиться на примерах и адаптировать силу связи.
Теперь позвольте мне объяснить, почему обучение так важно и почему традиционный подход ИИ, основанный на символах и правилах, не сработал. Мы обладаем огромным объемом знаний, которые не можем легко объяснить или запрограммировать в компьютеры. Например, мы знаем, как распознавать такие предметы, как стакан с водой, но передать это знание компьютеру сложно. Наше понимание многих аспектов человеческого познания нелегко проанализировать или перевести в четкие инструкции для машин. Точно так же мы не можем объяснить некоторые вещи другому человеку, потому что у нас нет сознательного доступа к этим знаниям, скрытым в нашем мозгу.
Чтобы обеспечить компьютеры такими знаниями, обучение на основе данных имеет первостепенное значение. Точно так же, как дети учатся на собственном опыте, компьютеры могут приобретать знания, обучаясь на огромных объемах данных. Этот подход ближе всего к имитации работы нашего мозга, хотя и не является точной копией. Таким образом, способность учиться на данных является фундаментальным аспектом ИИ и машинного обучения.
Что касается нашего происхождения, то, хотя я изначально изучал когнитивную психологию, я не добился больших успехов в этой области. На самом деле я был вдохновлен на поиск других путей, потому что идеи, предложенные когнитивными психологами, казались неадекватными и непрактичными для создания интеллектуальных систем.
Теперь давайте обратимся к настойчивости, необходимой в научных исследованиях, и к тому, почему мы продолжали, несмотря на то, что изначально нас игнорировали. Чтобы преуспеть в исследованиях, нужно быть готовым идти нетрадиционными путями. Исследования — это исследования и открытия, часто связанные с идеями, которые другие могут счесть неправдоподобными. Это требует уверенности в себе, готовности идти на риск и способности преследовать то, что другие упускают из виду. Наш подход к ИИ изначально не воспринимался всерьез, но мы были уверены в своих идеях и были готовы их реализовывать, что в конечном итоге привело к прорыву в глубоком обучении.
Двигаясь вперед, вы спросили об интересных инициативах, в которых применяется глубокое обучение. Приложения разнообразны: от решения проблемы изменения климата за счет повышения эффективности солнечных панелей, улавливания углерода и аккумуляторов до улучшения использования электроэнергии за счет более точного прогнозирования и более эффективного использования возобновляемых источников энергии. Глубокое обучение также широко используется компаниями для улучшения взаимодействия с клиентами, например, в поисковых системах, рекомендациях, персонализированной рекламе и виртуальных помощниках. Он также применяется в здравоохранении для диагностики заболеваний, анализа медицинских изображений и поиска новых кандидатов в лекарства. В области автономных транспортных средств глубокое обучение играет решающую роль в восприятии, принятии решений и системах управления, делая транспорт более безопасным и эффективным.
Еще одна захватывающая область — обработка естественного языка, где модели глубокого обучения используются для понимания и создания человеческого языка. Это привело к значительному прогрессу в области машинного перевода, чат-ботов, голосовых помощников и анализа настроений. Глубокое обучение также используется в области финансов для обнаружения мошенничества, оценки рисков и высокочастотной торговли.
Кроме того, глубокое обучение делает успехи в научных исследованиях и исследованиях. Он помогает анализировать большие наборы данных в таких областях, как астрономия, геномика и физика элементарных частиц, что приводит к новым открытиям и идеям. Глубокое обучение используется даже в творческих приложениях, таких как создание произведений искусства, музыки и литературы.
Несмотря на значительный прогресс, глубокое обучение по-прежнему сталкивается с проблемами. Одной из серьезных проблем является использование больших объемов размеченных данных для обучения. Получение и аннотирование таких наборов данных может занимать много времени и средств. Исследователи активно изучают методы повышения эффективности и повышения эффективности работы с данными.
Еще одна проблема — интерпретируемость моделей глубокого обучения. Из-за их сложности может быть трудно понять, почему модель глубокого обучения приняла конкретное решение или прогноз. Это отсутствие прозрачности вызывает этические и юридические проблемы, особенно в таких деликатных областях, как здравоохранение и уголовное правосудие. Исследователи стремятся разработать методы, повышающие интерпретируемость и укрепляющие доверие к системам глубокого обучения.
Наконец, постоянной заботой является обеспечение справедливости и недопущение предвзятости в моделях глубокого обучения. Предубеждения, присутствующие в обучающих данных, могут привести к необъективным прогнозам и несправедливым результатам. Прилагаются усилия для разработки справедливых и беспристрастных алгоритмов, а также руководящих принципов и правил для решения этих проблем.
Глубокое обучение произвело революцию в искусственном интеллекте, позволив машинам учиться на данных и делать точные прогнозы. Он нашел применение в различных областях и может способствовать дальнейшему развитию науки, техники и общества. Однако необходимо решить такие проблемы, как требования к данным, интерпретируемость и справедливость, чтобы обеспечить ответственное и полезное использование глубокого обучения в будущем.