В предыдущей статье мы рассмотрели основы машинного обучения. В этой статье мы углубимся в более традиционные алгоритмы машинного обучения, включая регрессию, классификацию, ядра, гауссовский процесс, байесовскую линейную регрессию, SVM, кластеризацию и дерево решений. Также рассматриваются другие темы, включая функции стоимости, регуляризацию, MLE, MAP, аппроксимацию Лапласа и ограниченную машину Больцмана. Мы быстро пройдем через некоторые глубокие сети, такие как LSTM. Кроме того, мы добавляем некоторые темы, такие как нормализация, которые могут быть более актуальными для DL, чем для ML. Опять же, статья длинная. Он охватывает темы, которые могут занять больше семестра в классе колледжа. Не стесняйтесь пропускать разделы в зависимости от вашего уровня интереса. Но мы будем кратко объяснять некоторые основные алгоритмы машинного обучения в начале статьи.

Регресс

Линейная регрессия

Модели линейной регрессии y = f (x) с линейным вектором w.

Чтобы добавить постоянное смещение, мы добавляем во вход новый компонент со значением 1.

Стандартизация

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

Остаточная сумма квадратов и взвешенная сумма квадратов

Чтобы обучить модель линейной регрессии, мы минимизируем функцию затрат. Одна общая целевая функция - RSS (остаточная сумма квадратов). Соответствующая регрессия называется линейной регрессией наименьших квадратов.

Смена базиса с помощью полиномиальной регрессии

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

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

Общая форма линейной регрессии:

где g может быть любой функцией, включая нелинейную, логарифмическую и т. д. Часто ошибочно полагают, что линейная регрессия моделирует только линейные функции. Расширяя основу ввода, функция f in y = f (x) может быть не- линейный.

В машинном обучении инженеры по функциям применяют знания предметной области для создания g, который напоминает взаимосвязь между входными данными и прогнозом. Однако это сложно, и мы легко переусердствуем. Чтобы исправить проблему, мы можем применить штраф L1. Стоимость L1 способствует разреженности w (объяснено позже). Это позволяет обучению выбирать меньшее количество базовых векторов при прогнозировании. Это смягчает проблему, когда включено слишком много входных функций, и модель может быть легко переоборудована.

Смена базисного решения (матрица Грама)

При любом изменении базиса общее решение линейной регрессии может быть вычислено аналитически с помощью приведенной ниже матрицы Грама (с доказательством позже).

На основе параметров по сравнению с без параметров

Для линейной регрессии y = wᵀx мы подбираем модель с данными обучения, чтобы найти w. Этот тип модели называется моделью, основанной на параметрах. Функция предопределена, и наша задача - найти параметры модели θ, которые наилучшим образом соответствуют данным. Для модели, не основанной на параметрах, у нас нет предположений о функции, мы позволяем данным формировать саму функцию.

Далее мы изучим модель ядра, не основанную на параметрах.

Ядро

Ранее мы обобщали линейную регрессию как y = wᵀg (x). Используя концепцию метода ядра, мы расширяем эту идею, чтобы исследовать связь x с другими точками обучающих данных x ⁽ⁱ⁾. Это позволяет нам формировать функцию на основе обучающих данных, а не заранее заданной функции.

Здесь вместо того, чтобы делать прогноз на основе wᵀx, мы вычисляем сходство k между x и точкой обучающих данных xᵢ . Затем мы умножаем его на соответствующий параметр модели wᵢ. Мы суммируем результаты по всем точкам данных, чтобы сделать наш прогноз. Интуитивно мы вычисляем средневзвешенное значение меток обучающих данных. Мы ставим больший вес, если данные похожи, и меньший вес, если он отличается. Например, при прогнозировании заработной платы на основе количества лет вашего образования мы используем более высокие веса для данных с аналогичными годами образования. Затем мы вычисляем средневзвешенное значение на основе данных о заработной плате за обучение.

Общее определение ядра:

Как правило, он отображает xᵢ и xⱼ в многомерное пространство и вычисляет их внутренний продукт, чтобы исследовать сходство. Но на практике мы можем упростить уравнение до формы, которая просто измеряет сходство двух точек данных. Например, мы можем использовать гауссово распределение ниже.

Далее мы подробно рассмотрим метод ядра с использованием RBF.

Радиальные базисные функции (RBF - ядро ​​Гаусса)

RBF использует гауссову функцию для ядра. Мы формируем новую основу z для ввода, где zᵢⱼ измеряет сходство между точкой обучающих данных i и j. Затем мы используем данные обучения для соответствия параметру модели w с помощью целевой функции, такой как MSE.

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

Чтобы сделать новый прогноз, мы преобразуем x в матрицу с помощью функции ядра.

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

Классификация

Классификация с регрессией

Мы можем применить теорему Байеса, чтобы проверить, должен ли вход x принадлежать классу y = 0 или классу y = 1. Например, если метка y должна быть 1, мы хотим p (y = 1 | x) › p (y = 0 | x). В качестве альтернативы мы можем вычислить значение линейной регрессии с помощью уравнения xᵀw + b. Если знак отрицательный, y принадлежит 0, в противном случае он принадлежит 1. Как показано ниже, если p (x | y ) распределено по Гауссу, метод теоремы Байеса эквивалентен методу линейной регрессии.

Однако xᵀw не ограничено, в то время как мы хотим, чтобы наши прогнозы были -1 или 1. При выборе функции стоимости здесь нужно быть осторожным. Как показано ниже, функция наименьших квадратов стоимости с xᵀw в качестве входных данных может добавить штраф в функцию стоимости, даже если она правильно предсказывает класс для x без двусмысленности.

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

Логистическая регрессия

Мы можем применить результат xᵀw к логистической функции (также называемой сигмоидной функцией) перед принятием решения. Это сжимает неограниченное значение xᵀw между 0 и 1.

Как показано ниже, xᵀw + b фактически моделирует логиты, которые могут действовать как входные данные для логистической функции для восстановления вероятности. В этом примере мы используем линейную регрессию xᵀw для вычисления оценки логистической функции. Но можно использовать и другие методы оценки, включая глубокую сеть.

Байесовский классификатор

Классификатор Байеса применяет теорему Байеса для классификации x. Мы находим наилучшее значение для y, которое дает наибольшее значение для апостериорной кривой.

Функции затрат и регуляризация

Среднеквадратичная ошибка (MSE)

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

Соответствующее оптимизированное аналитическое решение (Нормальные уравнения):

Доказательство можно найти здесь. Обратите внимание: мы очень часто цитируем или используем это уравнение.

MSE с L2-регуляризацией называется гребенчатой ​​регрессией. Соответствующее оптимальное решение

Ниже приведен градиентный спуск с использованием наименьшей среднеквадратичной ошибки (LMS).

L0, L1, потеря Хубера или регуляризация

Потери Хубера объединяют потерю L2 в диапазоне низких ошибок с потерями L1 в диапазоне высоких ошибок. Это объединяет производную гладкость L2 и меньшую уязвимость к выбросу в L1.

Сравнение регуляризации L1 и L2

L2 имеет более плавный градиент, поэтому обучение может быть более стабильным. Но L1 популярен еще и потому, что способствует разреженности. Как показано ниже, оптимальная точка после добавления регуляризации L1 отдает предпочтение параметрам равным 0. Это способствует экономии во избежание переобучения.

Если L1-регуляризация используется с наименьшими квадратами ошибок, линейная регрессия называется регрессией лассо. Хотя выбор зависит от конкретных данных и проблемной области, L2-регуляризация кажется более популярной, но не стесняйтесь экспериментировать и с тем, и с другим.

Выпуклость

Рассмотрим следующую общую функцию стоимости с p-нормой. Можем ли мы оптимизировать целевую функцию аналитически или численно?

  • Если у нас нет регуляризации (λ = 0), оптимизацию можно решить аналитически, если XᵀX обратимо.
  • Если p = 2, аналитическое решение гарантировано.
  • Для p≥1, но не равного 2, мы можем использовать итерационный метод для поиска глобального оптимума.
  • Когда p ‹1, целевая функция не будет выпуклой. В отличие от других вариантов, глобальный оптимум не гарантируется. Мы можем найти локальный оптимум только численными методами.

Теперь давайте рассмотрим некоторые популярные функции затрат.

Кросс-энтропия

В ML мы хотим, чтобы наши прогнозы соответствовали основной истине, где P является основной истиной, а Q - прогнозом модели. Для классификации P (xᵢ) = 1 для наземной метки истинности i и P (xⱼ ) = 0 в противном случае. Следовательно, кросс-энтропия просто H (P, Q) = -log Q (xᵢ).

Функция Softmax

Для классификации по нескольким классам мы можем применить функцию softmax к вычисленной оценке перед вычислением кросс-энтропии. В линейной регрессии оценка для основного класса истинности равна xᵀw.

Дивергенция KL

KL-дивергенция измеряет разницу между двумя распределениями данных. Итак, P - это основная истина, а Q - это распределение, предсказанное моделью.

Примечание: KL-дивергенция не симметрична и всегда больше или равна 0.

Дивергенция Дженсена-Шеннона

Дивергенция Дженсена-Шеннона симметрична.

Логистическая потеря

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

Потеря шарнира

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

Резюме

Оптимизация модели

Оценка максимального правдоподобия (MLE)

MLE находит параметры модели, которые увеличивают вероятность наблюдаемых данных xᵢ.

Отрицательная логарифмическая вероятность (NLL)

MLE имеет длинную цепочку умножения, которая уязвима для уменьшения или увеличения проблем. Чтобы смягчить проблему, мы возьмем функцию логарифмирования целевой функции. Поскольку «журнал» является монотонной функцией, максимизация MLE - это то же самое, что максимизация логарифма правдоподобия или минимизация отрицательного логарифма правдоподобия (NLL).

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

Как показано ниже,

MLE, NLL и кросс-энтропия имеют одну и ту же цель оптимизации.

Если p (y | θ) можно смоделировать независимым распределением Гаусса с нулевым центром,

мы можем доказать, что максимизация MLE эквивалентна минимизации MSE. Интуитивно, квадратная часть в экспоненциальной функции распределения Гаусса способствует тому, что MLE совпадает с оптимизацией по методу наименьших квадратов.

MLE совпадает с MSE, если прогноз распределен по Гауссу.

MLE с линейной регрессией

Допустим, w - это основной истинный вес для модели линейной регрессии yᵢ = Xᵢᵀwᵢ + εᵢ. И εᵢ - это шум с гауссовым распределением с нулевым центром и дисперсией, равной σᵢ².

Поскольку шум распределен по Гауссу, мы можем смоделировать y как

После сбора выборки данных мы можем обучать w с помощью MLE. Какое будет ожидаемое значение и дисперсия w при использовании этого метода? (Не стесняйтесь потратить некоторое время на изучение доказательства, если вам интересно, как рассчитываются математическое ожидание и дисперсия в оценщике.)

Как указано, оценка w с использованием цели MLE не является объективной. Однако, если σ² (XᵀX) ⁻¹ велико, дисперсия высока, т.е. мы получаем очень разные модели с разными наборами обучающих данных. Короче говоря, оценочные значения w чувствительны к шуму в измеренных данных. то есть даже оценка несмещена, обученная модель все равно может быть плохой, если оценочные модели имеют высокую дисперсию. Давайте рассмотрим подробнее.

Каждую матрицу X можно разложить с помощью SVD как

Приведенный выше расчет показывает, что (XᵀX) ⁻¹ пропорционально обратной величине S ², где S - диагональная матрица с диагональными элементами, содержащими сингулярную значения X. Если некоторые из сингулярных значений малы, дисперсия σ² (XᵀX) ⁻¹ высока. Оценивая сингулярное значение X, мы можем понять дисперсию обученных моделей.

Маленькие особые значения возникают, когда столбцы в X сильно связаны.

Когда информация сильно коррелирована, обученная модель уязвима для дисперсии, и ее легче переобучить.

Чтобы решить эту проблему, мы можем добавить регуляризацию L2 (регрессию гребня), чтобы ограничить параметры модели. Эта регуляризация стабилизирует обратное численно. Без него даже небольшое изменение в X приведет к большому изменению в w *.

Вот причина. Обученный w, использующий гребневую регрессию,

Когда Sᵢᵢ очень мало , λ приходит на помощь, и отдельный элемент в S ⁻¹ будет иметь определенную верхнюю границу. В противном случае он будет неограниченно большим. Это увеличивает незначительное отклонение данных и вызывает большое отклонение в w.

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

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

MLE беспристрастен, но может иметь большую дисперсию. Регрессия хребта смещена, но имеет меньшую дисперсию. Поскольку мы всегда можем настроить λ, мы можем адаптировать решение, чувствительное к распределению данных, с помощью регрессии Риджа.

Альтернативные этапы оптимизации

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

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

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

Максимум A Posteriori (MAP)

Раньше мы принимали MSE как должное и использовали ее в качестве функции стоимости для обучения модели. Должны ли мы когда-нибудь оспаривать это решение? Вместо MLE в качестве альтернативного подхода к оптимизации модели можно использовать MAP. Действительно, MAP может оправдать другие целевые функции, такие как MSE. В MLE мы находим θ для максимального значения в p (y | θ, x). В MAP мы оптимизируем θ, чтобы максимизировать p (θ | y, x).

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

Чтобы вычислить p (θ | y, x), мы применяем теорему Байеса.

Если предположить, что параметры модели θ центрированы по нулю, а p (θ) и p ( y | θ) являются распределенными по Гауссу, мы можем доказать, что MAP приходит с той же целью, что и использование L2 в качестве функции стоимости с добавленной L2-регуляризацией.

Короче говоря, мы применяем априорное убеждение, что θ распределено по Гауссу. В сочетании с вероятностью y (наблюдение) , моделируемой гауссовой моделью, мы достигаем той же цели, что и регрессия Риджа.

Метод Ньютона для оптимизации

Мы можем применять метод Ньютона итеративно, чтобы найти наименьшую стоимость.

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

Серия Тейлора

Используя ряд Тейлора, мы можем расширить и аппроксимировать функцию f. В приведенном ниже примере мы расширяем f до второго порядка.

Путем дифференцирования приведенного выше уравнения относительно ϵ, оптимальный шаг ϵ * минимизации f равен

Равновесие Нэша

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

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

Генеративное обучение против различительное обучение

В DL мы проектируем глубокую сеть для прогнозирования метки y на основе данных x. Вместо этого генеративное обучение строит модель для x с заданным y. Как показывает наивный байесовский классификатор, некоторые проблемы легче моделировать с помощью p (x | y), чем p (y, x).

В генеративном обучении мы можем применить теорему Байеса, чтобы сделать прогноз p (y | x) на основе модели p ( х | у). Генеративное обучение - это изучение p (x). С помощью этого распределения данных мы можем выбирать (или генерировать) данные. В GAN мы создаем генератор для создания x из выборки шума z. Он моделирует p (x | z) . В модели смеси Гаусса мы моделируем p (x), используя смесь распределения Гаусса.

Гауссовский

Гауссовский дискриминантный анализ (GDA)

Сделать вывод с помощью теоремы Байеса сложно для общих функций правдоподобия и априорных функций в многомерном пространстве. Однако, если их возможно смоделировать с помощью известного семейства функций распределения, нам, возможно, удастся легко и аналитически решить их. Рассмотрим задачу классификации, которая группирует объекты как яблоки или апельсины. Предположим, что оба распределения p (x | y = apple) и p (x | y = orange) могут быть смоделированы многомерными распределениями Гаусса. Для изображения 100 × 100 x будет содержать элементы 100 × 100 × 3 (RGB для каждого пикселя). Вот общая формула многомерного распределения Гаусса.

(Кредит: уравнения в этом примере адаптированы отсюда.)

Используя набор обучающих данных, мы вычисляем среднее значение каждого объекта из одного и того же пространственного положения (i, j) на каждом изображении. μ ₀ ниже будет 30 000-мерный вектор, содержащий средства этих функций, учитывая, что объект является яблоком. Мы повторяем тот же процесс для апельсина при вычислении μ ₁.

Вот определения.

Тем не менее, мы упрощаем задачу и используем одну и ту же ковариационную матрицу для обеих условных вероятностей p (x | y = 0) и p ( x | y = 1). Эта матрица будет вычислена с использованием изображений из объединенных данных (яблоки и апельсины). Из-за этого упрощения формы для обоих условных распределений одинаковы. Как показано ниже, мы можем легко провести границу принятия решения между двумя режимами при разделении классов.

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

Байесовская линейная регрессия

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

Давайте рассмотрим пример использования теоремы Байеса и линейной регрессии для построения модели. Наша цель - найти параметр модели θ с помощью MAP .

При моделировании как априорной, так и вероятностной модели как гауссовой, MAP становится

Апостериор выше на самом деле распределен по Гауссу, даже если это не очевидно. Итак, предположим, что это так, мы хотим найти соответствующее среднее μ и ковариацию Σ.

Во-первых, мы можем расширить гауссовское определение до

Сравнивая его с нашим уравнением, мы находим, что μ и Σ равны:

Прогнозное распространение

Чтобы делать прогнозы, мы можем маргинализировать апостериорное распределение, иначе ∫ p (y | w) p (w) dw .

Опять же, мы можем решить это аналитически без интеграла.

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

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

Активное обучение

Измерения могут быть дорогими и сложными. Активное обучение использует текущий набор обучающих данных для определения того, что следует измерять дальше (x₀y₀) . Мы хотим выбрать дополнительные тренировочные точки x₀ с максимальной отдачей при построении модели.

Давайте рассмотрим это шаг за шагом.

  1. Рассчитайте прогнозное распределение выше для ненаблюдаемого x₀, используя существующую модель.
  2. Выберите x₀, который σ₀² будет наибольшим и физически измеряет соответствующий y₀.
  3. Обновите апостериорное значение p (w | y, X) с помощью набора обучающих данных, включая старое и новое измерение (x₀, y₀), используя байесовскую линейную регрессию.
  4. Повторите описанные выше шаги еще раз, чтобы построить модель.

Энтропия гауссова распределения равна

Наш выбор x₀ снизит энтропию апостериорного значения больше всего от его априорного.

(Кредит: уравнения адаптированы из Активного обучения здесь.)

Аппроксимация Лапласа

Как было показано ранее, мы можем использовать распределение Гаусса для моделирования априорного распределения и вероятности для вычисления апостериорного распределения. Но не обязательно, чтобы оба были гауссовскими. Но даже если они неверны, мы все же можем предположить, что апостериорное распределение имеет гауссово распределение, и рассчитать распределение, используя приближение Лапласа. В приближении Лапласа мы предполагаем, что апостериорная функция является гауссовой:

Давайте вычислим апостериор с помощью MAP и определим f как

Обратите внимание, что оптимизация MAP выше аналогична оптимизации f. Мы интегрируем знаменатель по w, поэтому его можно игнорировать, поскольку он не меняется по отношению к. ш. Показательная функция в числителе - монотонная функция. Следовательно, оптимизация MAP аналогична оптимизации f выше.

Мы можем аппроксимировать f разложением Тейлора до второго порядка.

Секрет приближения Лапласа заключается в выборе z. Например, мы можем использовать градиентный спуск, чтобы найти оптимальное значение w * как z. Но наша конечная цель - смоделировать w с распределением Гаусса.

Как упоминалось ранее, оптимизация MAP аналогична оптимизации f. т.е. f (z) должно быть равно 0. Апостериорное распределение можно дополнительно упростить до

i.e.

Мы можем признать, что R.H.S. соответствует определению многомерного гауссовского распределения, где

И если мы используем логистическую регрессию σ (yᵢxᵢᵀw) для вычисления p, отрицательная обратная величина Σ будет:

Соберем их вместе. Вот последний алгоритм, где λ - настраиваемый коэффициент регуляризации.

На шаге (1) мы можем использовать метод градиента или другие методы оптимизации, чтобы найти оптимизированный w *. Затем мы можем вычислить ковариацию Σ апостериорной функции, используя уравнение на этапе (2). Наша апостериорная модель, шаг (3), будет гауссовой моделью со средним значением и ковариацией, рассчитанными в (1) и (2).

Гауссовский процесс

Условное распределение в многомерном гауссовском языке

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

Мы можем разбить x на 2 подвектора x₁ и x₂. Мы также подразделяем Σ соответственно.

Теперь мы хотим выразить условную вероятность p (x₁ | x ₂) в терминах подкомпонентов выше.

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

Интуиция

Представьте, что у нас есть вес и рост двух человек (человек₁ (150, 66) и человек₂ (200, 72)). Давайте построим гауссовскую модель с этой информацией. Во-первых, мы используем информацию о росте для построения ковариационной матрицы для количественной оценки сходства человека и человека. Затем можно смоделировать вес обоих людей с помощью распределения Гаусса со средним значением 175 (среднее значение обоих людей).

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

Сначала мы расширяем приведенное выше распределение Гаусса, чтобы сделать 2 прогноза веса (f ₁ и f ₂) для человека₃ и человека₄. Имея информацию о росте для всех четырех человек, мы вычисляем новую ковариационную матрицу. Эта матрица количественно определяет корреляцию между этими четырьмя людьми. Мы можем сделать выборку из нового распределения, чтобы сделать прогнозы относительно неизвестного веса человека₃ и человека₄.

Почему мы должны останавливаться на двух приведенных выше прогнозах, если мы можем делать прогнозы для большого диапазона значений высоты hᵢ?

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

Например, левая диаграмма ниже демонстрирует 5 таких выборочных функций (5 кривых разного цвета) для другого гауссовского процесса.

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

Формула процесса Гаусса

Давайте поработаем над уравнениями. Рассмотреть возможность

где f - это распределение, созданное на основе данных обучения. f * - это то, что мы хотим предсказать. Учитывая данные обучения, мы хотим вычислить условное распределение для

Давайте смоделируем f * как

С условным распределением, вычисленным ранее, мы можем связать f * с f как

с участием

μ и μ * - это средние значения для f и f * соответственно (μ = 175 в нашем примере).

Эту формулу можно еще больше упростить, если данные проходят предварительную обработку и соответствуют определенным критериям. Например, если наш набор обучающих данных достаточно велик и мы прогнозируем данные с диапазоном, аналогичным f, мы можем предположить, что μ = μ *. Кроме того, если f имеет нулевой центр, мы можем упростить уравнение до

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

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

Байесовская линейная регрессия против. Гауссовский процесс

Давайте посмотрим на сходство между байесовской линейной регрессией и гауссовским процессом. Байесовская линейная регрессия моделирует свой параметр модели w с распределением Гаусса. Метка y - это еще один гауссиан с Xw в качестве средства. Его дисперсия происходит из-за шума с дисперсией σ². Для гауссовского процесса дисперсия зависит от шума и ковариационной матрицы K.

В нашем примере давайте еще больше упростим прогноз y, сделав его нулевым центром. Если сравнить оба прогноза, они очень похожи. Разница в том, что в одном используется ковариационная матрица, а во втором - ядро. Короче говоря, гауссовский процесс можно представить как ядерную байесовскую линейную регрессию. Вместо вычисления xᵢ xⱼᵀ мы заменяем его ядром.

Вот краткое описание того, как новый прогноз y₀ делается с использованием обоих методов.

Машина опорных векторов (SVM - классификация)

В методах на основе Гаусса мы моделируем распределение данных для каждого класса (т. Е. p (x | y)). Затем мы можем создать границу принятия решения при классификации данных. Классификатор SVM использует другой подход, не обнаруживая распределений. Он разделяет точки данных на один из двух соответствующих классов с помощью линейной регрессии и потери шарнира. Визуально SVM поддерживает максимально возможный запас при разделении обоих классов.

В приведенном выше примере SVM, если wᵀxⁱ ‹0, x принадлежит зеленому. В противном случае он принадлежит к красным. Когда применяется потеря на шарнире, мы заботимся только о точках, близких к противоположному классу (опорные векторы). Точки, которые находятся далеко от границы маржи, несут нулевые затраты, поскольку мы уже правильно их классифицируем, и они не близки к границе решения. Нам не нужно улучшать эти моменты, и поэтому они не должны влиять на модель, которую нужно построить. SVM наказывает только предсказание, которое неверно или близко к неверному. Первый член функции стоимости SVM - это потеря на шарнире.

Он добавляет убыток для каждой точки x с yⁱwᵀxⁱ ‹1. Это точки, которые нарушают ограничение поля. Второй член - это L2-регуляризация.

Цель SVM может быть записана как задача оптимизации ниже. Он увеличивает xw ≥ 1 (для y = 1) с наименьшим возможным w.

С этой целью SVM максимизирует пределы своей границы принятия решений. Кроме того, обученная w будет перпендикулярна этой границе решения.

На высоком уровне SVM хочет xᵀw ≥ 1 (для y = 1) с наименьшим возможным w. Это условие эквивалентно pw≥ 1, где p является проекцией x на w.

Чтобы минимизировать ‖ w ‖, мы хотим максимально увеличить p. Проекция одного из опорных векторов (синяя точка) вдоль w показана ниже зеленым цветом. На левой диаграмме ниже граница решения не оптимизирована. У него меньшая граница поля, чем может быть. Чтобы увеличить p, мы можем повернуть w по часовой стрелке.

Фактически, как показано выше, это также увеличивает маржу. В то время как наша цель SVM пытается уменьшить ‖ w ‖, диаграмма справа показывает, что это имеет тот же эффект, что и увеличение поля. то есть наша цель SVM имеет такой же эффект максимизации запаса границы принятия решения.

Таким образом, если u и v - два опорных вектора, имеющих минимально возможное расстояние между двумя границами классов, оптимальное решение для SVM w * будет лежать на uv, и это решение имеет самый большой запас. Мы рассмотрели причину, по которой SVM максимизирует маржу графически. Если вам кажется, что это ненадежно, это нормально, потому что подробное математическое доказательство более сложно, но довольно интересно с точки зрения применения концепции выпуклости и множителя Лагранжа.

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

SVM с ядрами

Мы можем дополнительно модифицировать SVM, чтобы использовать выходные данные ядра в качестве входных.

Математическую модель SVM с нарушением ограничений и ядром можно найти здесь.

Вот границы решения для классификации цветов ириса с разными ядрами.

Несбалансированный класс

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

Нормализация

Как правило, для обучения модели мы сначала стандартизируем входные функции, чтобы облегчить обучение модели.

Давайте изучим больше техник нормализации. Однако эти методы могут быть более актуальными для DL, чем для ML.

Пакетная нормализация

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

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

Пакетная нормализация вводит обучаемые параметры γ и β. Эту нормализацию можно отменить, если γ = σ и β = μ выше. В начале обучения мы инициализируем γ = 1 и β = 0, чтобы в полной мере воспользоваться нормализацией на раннем этапе обучения. В конце концов, эти параметры будут изучены во время обучения для установки любых значений, которые должны быть.

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

Нормализация веса

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

Теперь мы разделим тренировку с отягощениями на изучение масштаба и направления вектора для w отдельно. т.е. вместо непосредственного обучения w мы обучаем скаляр g и единичный вектор для v, чтобы получить w.

Это позволяет нам контролировать величину w и предоставляет альтернативный способ контролировать стабильность тренировки, контролируя величину w.

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

Нормализация слоев

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

В пакетной нормализации он рассчитывается на основе каждой функции в пакетной выборке. В нормализации уровня он рассчитывается на основе характеристик точки данных. Как отмечает Джеффри Хинтон

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

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

Кластеризация

K ближайший сосед (KNN)

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

Существуют разные метрики для измерения расстояния. Самым распространенным является евклидово расстояние (L2). Другие метрики включают манхэттенское расстояние, косинусное расстояние, расстояние редактирования текста, корреляцию расстояний и т. Д. (Больше метрик можно найти в scikit). Если мы увеличим количество соседей k при составлении прогнозов, смещение увеличивается, а дисперсия уменьшается.

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

Когда k = 1, прогнозирование черной точки зависит от собранной выборки. Но когда k велико, он обычно предсказывает наиболее распространенный цвет населения (синий). т.е. вариант небольшой, но прогноз необъективен.

Кластеризация K-средних

Кластеризация K-средних группирует точки данных в K кластеров, используя следующий алгоритм:

Центроид повторно оценивается, и точки данных повторно кластеризуются. Процесс продолжается итеративно до схождения.

Выпуклость

Функция стоимости для кластеризации K-среднего равна

где cᵢ - назначение кластера для точки данных i, а μⱼ - центроид кластера j. Алгоритм кластеризации K-среднего улучшает кластеризацию cᵢ и μⱼ на альтернативных этапах . Следовательно, , стоимость монотонно снижается. Однако функция стоимости невыпуклая. Следовательно, алгоритм гарантирует достижение только локального оптимума. Различные случайные начальные числа, вероятно, приведут к разным кластерам. Но при разумной случайной инициализации первоначального предположения о центроидах кластера он должен дать высококачественный результат.

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

Выбор K

Итак, каково правильное значение K для кластеризации K -mean? Если у нас есть N точек данных в образце, мы можем обучить модель иметь нулевую стоимость, если мы используем N кластеров. Но мы этого не хотим. Решение не может быть обобщено.

Выбор K может определяться явной целью. Например, мы хотим изготовить футболку размера XS, S, M, L и XL. Таким образом, K будет 5. В качестве альтернативы мы можем изучить, насколько быстро снижается стоимость. Мы можем остановиться на точке локтя, зная, что дальнейшее снижение стоимости принесет гораздо меньшую отдачу.

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

К-медианная кластеризация

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

Кластеризация K-средних ++

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

К-среднее значение пополам

Мы разбиваем каждый кластер на два, но фиксируем только тот, который снижает затраты больше всего.

Модель смеси Гаусса (GMM)

Модель смеси Гаусса - это вероятностная модель, которая предполагает, что все точки данных сгенерированы из смеси распределений Гаусса.

Для K = 2 у нас будет 2 гауссовых распределения G₁ = (μ₁, σ₁ ²) и G₂ = (μ₂, σ₂ ²). Мы начинаем со случайной инициализации параметров μ и σ и вычисляем вероятность того, к какому кластеру может принадлежать точка данных. Затем мы повторно вычисляем параметры μ и σ для каждого гауссовского распределения на основе этой вероятности. Точки данных повторно подгоняются к разным кластерам, и гауссовы параметры снова рассчитываются заново. Итерации продолжаются до схождения решения. Давайте подробно рассмотрим этот метод с использованием алгоритма EM.

алгоритм ожидания – максимизация (EM), (GMM)

Алгоритм EM попеременно выполняет оценку ожидания (E-шаг) и максимизацию (M-шаг). E-step вычисляет

Вероятность p вычисляется с использованием расстояния между xᵢ и μ соответствующего кластера с использованием распределения Гаусса.

Мы можем сравнить q (aᵢ) и q (bᵢ) для xᵢ и выберите, к какому кластеру он должен принадлежать. После всех вычислений обучающие данные назначаются либо a, либо b. Это называется жесткое задание. Затем мы повторно вычисляем μ и σ для каждого кластера в соответствии с принадлежащими ему точками данных. Однако это не совсем то, чем занимается GMM. Вместо того, чтобы назначать точку данных одному из кластеров, мы отслеживаем вероятность q (aᵢ) и q (bᵢ ), то есть вероятность того, принадлежит ли точка данных i к a или b. Вообще говоря, мы вычисляем распределение вероятностей кластерного назначения вместо точечной оценки. Это называется мягкое присвоение. Мы будем использовать это распределение в качестве веса влияния xᵢ на вычисление μ и σ для соответствующего кластера. Например, среднее значение кластера A - это средневзвешенное значение всех точек данных с весом, равным q (aᵢ). Вероятностная модель часто имеет более гладкую функцию стоимости с меньшей кривизной. Эта более гладкая поверхность стабилизирует тренировку. Не назначая кластеру xᵢ детерминированно, мы позволяем обучению сходиться быстрее. Вот алгоритм GMM.

Здесь будет доказательство GMM с использованием уравнений из алгоритма EM. Ниже приведен алгоритм EM для любых моделей смеси (кроме гауссовских).

Для GMM предполагается, что распределение данных p (xᵢ | θⱼ) для кластера j является распределенным по Гауссу.

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

Самоорганизующиеся карты (SOM)

SOM производит низкоразмерное представление для ввода с высокой плотностью. Например, мы хотим вычислить 39 индексных цветов для представления значений RGB изображения. Мы начинаем с 39 узлов, каждый из которых представлен вектором весов, имеющим ту же размерность, что и вход (dim = 3). Итак, для каждого узла он содержит значение RGB.

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

  • Мы произвольно выбираем точку данных (пиксель) из изображения.
  • Мы размещаем узел с весом как можно ближе к входу, используя расстояние L2.
  • Мы обновляем вес для окружающих узлов, чтобы он соответствовал входу. Но по мере удаления от центра изменения падают.
  • Мы выбираем следующую точку данных и повторяем итерацию.
  • В конце концов, вес в каждом узле представляет собой значение RGB цвета индекса.

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

Кластеризация на основе плотности (DBSCAN)

Кластеризация K-средних не может обнаружить многообразие. Кластеризация на основе плотности соединяет соседние точки с высокой плотностью вместе, чтобы сформировать кластер. Интуитивно мы постепенно добавляем соседние точки в кластер. Такой подход позволяет структуре медленно расти, обнаруживая как соседей, так и многообразие. Как показано ниже, с открытием многообразия DBSCAN обнаруживает структуру U-образной формы, которую не может использовать K-means.

Точка данных является основной, если существует m достижимых точек в пределах радиуса r. Кластер формируется путем соединения основных точек (темно-зеленый) и его ближайших соседей (светло-зеленый).

Зеленый кластер формируется следующим способом:

Если у нас много точек данных, вычисление расстояний от одной точки данных до другой обходится дорого. Вместо этого точки данных делятся на регионы. Мы соединяем только точки, которые находятся в одной или соседних областях сетки.

Иерархическая кластеризация на основе плотности

Самая сложная часть кластеризации на основе плотности - определение радиуса r.

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

Иерархическая кластеризация

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

Ансамблевая кластеризация (UBClustering)

Кластеризация ансамбля запускает m раз с различными случайными начальными числами для получения m моделей. Если простое большинство моделей соглашается, что две точки должны принадлежать одному кластеру, мы убеждаемся, что они принадлежат. Кластеризация ансамбля начинается без кластера,

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

Кластеризация навеса

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

Документы

TF-IDF

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

Древо решений

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

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

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

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

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

Далее мы обсудим детали выбора пня решения.

Индекс Джини

Если мы знаем, что 90% данных принадлежат классу i, а оставшиеся 10% принадлежат классу j, мы можем делать случайные предположения на этикетках, используя то же соотношение. Фактически, мы можем неплохо справиться. 82% нашего предположения будет правильным. Индекс Джини показывает, насколько вероятно, что мы ошибаемся, делая прогнозы по такой схеме. Если данные очень предсказуемы, индекс Джини будет низким.

Пример,

Допустим, в классе 60 учеников. 40 из них мужчины, 22 из них учатся в инженерном училище, а 8 из 20 студенток посещают инженерное училище. Взвешенный индекс Джини равен

Чтобы выбрать пень для принятия решения, мы выбираем тот, у которого самый низкий индекс Джини. Если данные из каждой ветви принадлежат одному классу, индекс Джини равен нулю.

Получение информации

Мы можем выбрать пень для принятия решения с наибольшим объемом информации.

Другими словами, нам нужна наименьшая условная энтропия после ветвления.

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

Например, мы хотим предсказать, хотим ли мы играть в теннис или нет. Ниже приведен расчет получения информации, если мы выберем ветреный (истинный или ложный) в качестве пня для принятия решения. Во-первых, мы вычисляем энтропию, учитывая ветер. Затем мы рассчитываем это, если не будет ветрено. Затем мы объединяем их для получения условной энтропии H (Y | X). Тогда информационный выигрыш рассчитывается как:

Вот подробный расчет для каждого шага.

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

Уменьшение дисперсии

Уменьшение отклонений работает с непрерывным пространством. Он измеряет дисперсию до и после ветви. Мы хотим выбрать пень решения с наибольшим сокращением дисперсии.

Обрезка

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

Чтобы избежать этой проблемы, мы можем намеренно вырастить дерево очень глубоко и использовать обрезку, чтобы обрезать дерево назад.

Переоснащение

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

Другие подходы включают

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

Тест хи-квадрат

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

Пример,

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

Мы также можем использовать значение хи-квадрат при выборе пня решения. Мы выберем тот, который имеет наибольшее значение.

Слабые ученики

В ML мы можем создать слабого обучаемого (модели с меньшей сложностью), чтобы избежать переобучения. Для деревьев решений мы можем ограничить глубину дерева и количество входных функций, чтобы снизить сложность модели. Однако эти учащиеся, вероятно, предвзяты. Как сказано в «Искусстве войны», если у вас есть правильные команды и дисциплина, вы можете превратить 180 наложниц в военные роты. В машинном обучении мы можем объединять модели, чтобы делать прогнозы. Если они обучаются независимо, так что корреляция между обученной моделью мала, они вряд ли будут делать те же ошибки. Голосование простым большинством может отменить ошибки и создать надежные прогнозы. Далее мы поговорим о различных методах «объединения» слабых учеников.

Методы ансамбля

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

Укладка

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

Бэггинг (агрегированный Bootstrap)

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

Бэггинг (агрегированный бутстрап) просто применяет этот метод к сбору точек данных со случайной выборкой и заменой. Отобранные точки данных могут быть повторены. Если этот образец набора данных имеет тот же размер, что и исходный набор обучающих данных, мы должны ожидать, что только 63,2% данных в исходном наборе данных будут присутствовать в этом наборе данных. Другие просто повторяются.

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

Например, у нас может быть B наборов данных начальной загрузки, каждый из которых содержит n точек данных. Каждая выборка начальной загрузки с заменой из исходного набора данных размером n. После построения моделей B мы можем использовать их для создания независимых прогнозов B. Наш окончательный ответ может быть средним из этих ответов.

Случайный лес

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

Повышение

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

AdaBoost

Вот AdaBoost, который использует эту технику повышения.

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

Верхняя граница ошибки обучения для AdaBoost (доказательство)

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

Модель на основе градиента

В AdaBoost мы извлекаем уроки из данных, которые плохо себя чувствуют. В модели на основе градиента мы моделируем наши ошибки в наших прогнозах.

Допустим, у нас есть обучающий набор данных y = [f (100), f (200),…, f (800)] для входных данных от 100,… до 800. Теперь мы хотим построить модель для f. Наша первая модель простые модели f с использованием среднего значения y. Это хорошее начало, но не точное. Затем мы вычисляем остаток (ошибку) в нашем прогнозе и моделируем его с помощью другой модели.

Мы продолжаем строить простые модели из остатков, и наш прогноз просто сложит все результаты модели вместе.

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

Давайте сделаем это графически. Мы позволим вам изучить объяснение внутри диаграммы.

Вот один из возможных способов построения дерева регрессии для моделирования остаточной ошибки слева с условием пня как x ›500. В этой модели, когда x› 500, возвращает 22, иначе -13.

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

В чем разница между этими решениями и почему мы называем эти методы градиентными? Если мы сравним эти модели на основе градиента с градиентным спуском, они выглядят одинаково, но с другим знаком.

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

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

Поиск локального луча

Пространство поиска, как и в игре GO, огромно. В поиске локального луча мы изучаем только самые многообещающие запросы.

Дерево регрессии

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

Пример обучения с учителем и без учителя

Обучение с учителем строит модель f в прогнозировании метки при вводе (y = f (x)). Набор обучающих данных содержит пары ввода и соответствующей метки (xᵢ, yᵢ). Концептуально контролируемое обучение - это изучение P (y | x). Обучение без учителя находит закономерности и тенденции данных обучения. Ярлык не прикреплен. Мы можем обобщить это как исследование распределения P (x). В кластеризации K -средний мы аппроксимируем P (x) с помощью центроидов K. Обучение без учителя включает кластеризацию, матричную факторизацию и последовательные модели. Вот разные алгоритмы в соответствии с этой категоризацией.

Однако грань между обучением с учителем и обучением без учителя может быть нечеткой и часто не очень важной.

Полу-контролируемое обучение

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

Полу-контролируемое обучение, слабый супервизор и трансферное обучение

Слабый надзор использует недорогие слабые ярлыки для контролируемого обучения.

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

Сложность модели

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

AIC и BIC

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

В этой формулировке мы должны увеличивать сложность модели только в том случае, если снижение стоимости превышает увеличение числа параметров модели. В BIC мы также умножим K на ln N. Для тех, кто хочет понять, как оправдать термин K ln N, вот доказательство для BIC.

Энергетическая модель

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

С помощью функции энергии E (x) распределение вероятностей для конфигурации (состояния) x определяется как

В такой модели высокая энергия E (x) приводит к низкой вероятности состояния x. Мы моделируем функцию энергии, которая максимизирует P (x) для обучающего набора данных. Мы называем Z функцией распределения. По сути, он нормализует распределение вероятностей между 0 и 1. Он суммирует экспоненциальную функцию для всех возможных конфигураций x. Вычислить Z для системы со многими состояниями непросто. Для решения этих проблем часто применяется приближение. Далее давайте обсудим, как моделируется и определяется функция энергии.

Машина Больцмана

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

Скрытые единицы не наблюдаемы и представляют собой скрытые факторы для наших наблюдаемых единиц. Каждый блок находится в одном из двоичных состояний sᵢ∈ {0,1} . Да, каждое состояние является только двоичным . Юниты полностью связаны с другими ребром W ⱼ. Значение для W показывает, как связаны два узла. Если узел sᵢ и sⱼ положительно связаны, мы хотим W ⱼ ›0. Если они связаны отрицательно, мы хотим W ⱼ ‹0. Если есть независимые, W должен быть равен нулю. Концептуально мы хотим включать / выключать единицу в соответствии с другими единицами и их соотношениями. Энергетическая функция E (X) и распределение вероятностей P (X) для машины Больцмана определяются как:

Он представляет энергию узлов и соединений в линейной форме.

Включен ли узел или нет, зависит от значений подключенных к нему узлов.

Обучая модель с данными, мы устанавливаем наиболее вероятные значения для W и b , которые имеют самая низкая энергия для обучающего набора данных.

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

Ограниченная машина Больцмана (RBM)

RBM извлекает скрытую функцию h из входного v (наблюдаемого). Наблюдаемые единицы не связаны друг с другом, как скрытые. Она более строгая, но модель намного проще, чем машина Больцмана, и ее намного легче обучать. Энергия E (v, h) для конфигурации (v, h) равна

Для обучения модели мы оптимизируем максимальную логарифмическую вероятность обучающих данных (log p (v)). Градиент для этой целевой функции относительно wᵢⱼ равно

Мы будем использовать градиентный спуск с этим градиентом для обновления wᵢⱼ позже. (Часть доказательства при выводе градиента можно найти здесь.)

Чтобы вычислить первый член ниже,

мы выбираем v из набора обучающих данных. v - это всего лишь образец в наборе обучающих данных. Затем мы вычисляем распределение вероятностей p (hⱼ | v) для скрытого узла j, используя уравнение ниже.

Мы вычисляем ожидаемое значение, умножая vᵢ на соответствующее hⱼ с v, взятым из обучающей выборки. Второй член вычисляется с помощью выборки Гиббса и будет обсуждаться позже. С градиентом w.r.t. wᵢⱼ вычислено, мы используем градиентный спуск для обновления параметра модели wᵢⱼ.

Второй член использует текущую модель для выборки v и h для вычисления математического ожидания. т.е. нам нужно знать p (v, h | w). Аналитически найти его сложно. Но мы можем оценить это ожидание, используя выборку Гиббса.

Общая идея выборки Гиббса заключается в том, что для совместной вероятности p (X = x₁, x₂, x₃,…, xᵢ,…) мы фиксируем все значения X кроме одного параметра, скажем xᵢ. В некоторых случаях, когда мы исправляем все параметры, кроме одного, p (…, xᵢ,…) может быть очень легко найти или смоделировать. Мы выбираем одно значение из этого распределения и устанавливаем xᵢ на это значение выборки. Затем мы выбираем другой параметр и снова исправляем остальные. Мы повторяем этот процесс много раз и каждый раз получаем образец X.

Как показано ниже, мы наносим образец X в виде красных точек. Каждый X изменяет одно из значений только в X = (x₁, x₂, x₃,…, xᵢ,…). Как показано на графике, выборочные данные будут напоминать совместную вероятность p (x₁, x₂, x₃,…)!

Контрастное расхождение

Итак, мы объединим концепцию выборки Гиббса с нашим методом градиентного спуска для обучения RBM. Это называется контрастной дивергенцией. В RBM мы попеременно пробуем h и v, используя нашу модель RBM.

Сначала мы начнем с любого значения для v. Затем мы можем вычислить вероятность для каждого скрытого узла, используя

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

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

Уравнения, используемые в параметрах обучающей модели:

где k - k итераций.

Бесплатная энергия

Еще один часто упоминаемый термин в энергетической модели - свободная энергия F ниже.

Градиент логарифма правдоподобия может быть выражен в форме свободной энергии.

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

CNN

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

Расширенная свертка

Чтобы улучшить восприимчивое поле, мы можем применить расширенную свертку для увеличения области покрытия при вычислении результата свертки. Например, для l = 2 каждый второй пиксель пропускается как вход для фильтра свертки.

LSTM и GRU

LSTM содержит серию ячеек LSTM. Ячейка t отвечает за обработку входных данных x t в момент времени t, и каждая ячейка подключена к ячейке LSTM на предыдущем временном шаге. Каждая ячейка имеет внутреннее состояние ячейки c t и выводит скрытое состояние ht. LSTM использует три шлюза для управления потоком информации. Это вентиль забывания, входной вентиль и выходной вентиль. На схеме они обозначены символом ⊗. Каждые ворота имеют форму

который применяет сигмоидальную функцию к текущему вводу данных и предыдущему скрытому состоянию после их умножения на Wx и Wh соответственно (каждый вентиль имеет разные Wx и Wh). Каждый вентиль контролирует, какая информация может быть пропущена, путем выполнения кусочного умножения с управлением вентилем.

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

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

Затем мы выводим новое состояние ячейки, контролируемое выходным вентилем.

GRU - это альтернатива LSTM для RNN (рекурсивные нейронные сети). По сравнению с LSTM, GRU не поддерживает состояние ячейки C и использует 2 шлюза вместо 3. На каждом временном шаге мы вычисляем скрытое состояние на основе предыдущего скрытого состояния и текущего ввода.

Процесс

Ниже приведен типичный процесс для проекта ML / DL.

Клип-арт кредит

Источник клипа

Следующий

Если вы просмотрели все материалы, поздравляю вас! Это трудно. Но вы должны чувствовать себя хорошо, потому что он представляет собой множество видов исследований, проведенных за десятилетия.