Рубрики
Без рубрики

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

Автор оригинала: FreeCodeCapm Team.

от Thalles Silva

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

  • Это максимизирует дисперсию между классовой.
  • Это минимизирует дисперсию внутри класса.

Несмотря на то, что метод Фишера нет (по сути) дискриминантом, мы построили один путем моделирования условного распределения класса с использованием гауссова. Во-первых, мы нашли вероятности предшествующих классов P (CK). Затем мы использовали Bayes Theorem, чтобы найти вероятности заднего класса P (CK | X). Здесь X – это входной вектор, а CK – это метка для класса K.

Короче говоря, мы можем классифицировать ML модели, основанные на том, как они классифицируют данные. Существует два типа: генеративные и дискриминационные методы.

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

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

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

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

Воспользуйтесь проблемой двоичной классификации в качестве примера. Учитывая входной вектор х нам нужно решить, какой класс Ck, х скорее всего, принадлежит. Для принятия этого решения оба типа алгоритмов ML нуждаются в способе вычисления задней вероятности P (CK | X) от данных тренировки.

Для Fisher’s мы явно изучили вероятности заднего класса с помощью гауссова. Как только мы нашли его, мы использовали теорию решений для определения членства класса для х Отказ

Для дискриминационной модели задний P (CK | X) будет напрямую выведен. В этом случае, как только у нас есть задний, мы можем использовать теорию решений и назначить х к наиболее вероятному классу.

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

Прежде чем начать, убедитесь, что вы следуете вместе с этими Colab Notebooks Отказ

Логистическая регрессия, вероятно, является самой известной дискриминационной моделью. Таким образом, он получает вероятность заднего класса P (CK | x ) неявно.

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

Аналогичным образом, для проблем многоклассных, мы можем оценить заднюю работу с помощью функции SoftMax. Как и сигмоид, Softmax нормализует данный вектор для вероятностей – значения от 0 до 1.

Начнем с случая двоичной классификации.

Бинарная логистическая регрессия

Для M-мерного ввода функция – вектор логистическая регрессия должна изучать параметры m.

Возьмите набор данных SVHN в качестве примера. Каждое изображение RGB имеет форму 32x32x3. Таким образом, логистическая регрессия должна изучать параметры.

Чтобы найти эти параметры, мы обычно оптимизируем функцию ошибки поперечной энтропии.

Кросс-энтропия измеряет как Далеко Предсказания модели из этикеток. Это увеличивается Когда предсказанные значения отклоняются от истинных значений и уменьшить иначе.

Предполагая целевые значения T Быть 0 или 1, кросс-энтропия определяется как:

Здесь N Обозначает общее количество экземпляров в набор данных и yᵢ вероятности модели.

Кросс-энтропия сравнивает 2 распределения вероятности. Из-за этого важно отметить, что выход логистической регрессии интерпретируется как вероятности – даже во время обучения.

Принимая производное кросс-энтропии в отношении веса вектор W Мы получаем градиент.

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

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

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

Софтмакс регрессия

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

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

На этот раз для входов с функциями M и K разных классов, логистическая регрессия учится параметры MXK. Мы можем просмотреть его как матрицу.

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

На практике перекрестная энтропия измеряет расстояние между двумя векторами вероятностей. Один, что выходит из Softmax Отказ И вторая, содержащая представления одно горячего кодирования истинных целевых значений.

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

Двоичная кросс-энтропия обрабатывает мишени как скалярные. Они принимают 0, либо 1. Для классификации многоклассных целей представлены как векторы однотакорированные.

Наконец, мы возьмем градиент функции ошибки W.r.t Вес W и получить следующие градиентные векторы.

Итеративные восхищения наименьших квадратов

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

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

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

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

Если мы выбираем градиентный спуск, у нас все набор.

  • Просто следуйте противоположному направлению градиента.

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

Однако мы можем сделать немного лучше.

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

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

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

Интуитивно, если:

  • f ” (x) = 0, то нет кривизны.
  • f ” (x) <0, это означает, что функция кривирует вниз.
  • F ” (x)> 0, в функции возникает восходящая кривизна.

С этой информацией шаг обновления для минимизации кросс-энтропии принимает форму:

Это уравнение обновления называется Ньютон-Рафсон.

Обратите внимание, что он умножает обратную матрицу H⁻¹ по градиенту. H или гессиан, хранит второе производные кросс-энтропии W.R.t веса W Отказ

Давайте теперь погрузимся в код.

Принимая этот игрушечный набор данных в качестве примера.

В этой 2-й системе координатной системы 210 баллов с 3 классами: синие, красные и зеленые круги. Поскольку количество классов больше 2, мы можем использовать логистическую регрессию SoftMax.

Во-первых, ввести переменные смещения к нашей модели, мы можем выполнить простое преобразование под названием: фиксированная основа. Это сделано, просто добавляя столбец, полный 1S на вход. Для двоичной классификации он делает соответствующее значение веса W … играет роль смещения. Для MultiClass первая колонна матрицы веса действует как предубеждения.

Затем мы можем создать объект логистической регрессии.

clf = LogisticRegression(fit_intercept=True, method="newton")
clf.fit(x_train,y_train,iterations=10)
print("Test acc:",clf.score(x_test,y_test))

После API на основе Sklearn мы можем подходит и Eval модель:

for i in range(iterations):
  logits = self._forward(X)

  if self.method == 'newton':
    # calculate the hesssian
    for i in range(k):
      for j in range(k):
        r = np.multiply(logits[:,i],((i==j)-logits[:,j]))  ## r has negative value, so cannot use sqrt
        HT[:,i,:,j] = np.dot(np.multiply(X.T,r),X) # 4.110      
    H = np.reshape(HT,(dk,dk))
    
  # calculate the gradient of the cross-entropy
  G = np.dot(X.T,(logits-y))

  if self.method == 'newton':
    # Newton's update
    self.W = self.W.reshape(-1) - np.dot(pinv(H), G.reshape(-1)) # 4.92
    self.W = np.reshape(self.W,W_shape)
  else:
    # follow the gradient with GD
    self.W = self.W - self.learning_rate * G

Обратите внимание, что мы можем выбрать между правилами обновления Newton’s и Gradient Descent. Хотя метод Ньютона имеет тенденцию сходиться быстрее, ему необходимо вычислить и хранить полную гессиан в каждой итерации. Кроме того, гессиан должен быть обратимым – для обновления параметра.

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

Во-первых, H должен быть квадратной матрицей. Во-вторых, колонны H надо быть линейно независимой. Это означает, что для любой колонны Я H , Я не может быть представлено как линейная комбинация любого другого столбца J Отказ

То же самое сказать, что колонны H Продолжайте систему координат. Или что определитель H не равен нулю

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

Несмотря на то, что для небольших наборов данных, это может не быть проблемой, гессиан имеет тенденцию расти как количество функций и классов увеличения. Иметь идею, используя входы с функциями M и набором данных с классами K. Полный гессиан имеет форму [M * K, M * K]; Что для этого примера означало: [9×9] – помните, мы добавили новую функцию столбца на входы.

Для набора данных CIFAR-10 каждое изображение RGB имеет форму 32x32x3. Это означает хранение и инвертирование квадратной матрицы формы [30720×30720]. Использование Float 32-битная точность, гессиан требует 3,775 ГБ (гигабайт).

Чтобы закрыть, взгляните на установленную модель, используя Toy DataSet и метод Newton. Кресты – это тестовые данные.

Наслаждаться.

Таким образом, генеративные модели являются классными алгоритмами ML, которые явно изучают вероятности класса.

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

Дискриминационные модели изучают вероятности класса неявно.

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

Для бинарной классификации логистическая регрессия использует функцию Sigmoid для представления задних вероятностей. Для классификации MultiClass он использует Softmax.

Для более прохладных вещей на машинном обучении взгляните на:

  • Введение в высокомерный гиперпараметрический тюнинг
  • Иллюстративное введение в линейный дискриминант Фишера

Рекомендации

Кристофер М. Епископ. 2006. Распознавание шаблона и изучение машины (информационные науки и статистика). Спрингер-Верлаг, Берлин, Гейдельберг.

Спасибо за прочтение.