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

Логистическая регрессия решает задачи классификации, а не регрессии, несмотря на название. Поэтому не стоит путаться из-за термина «логистическая регрессия», ибо такое название устоялось по причинам, от нас не зависящим.

4.1. Бинарная классификация

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

Вместо вектора результатов, представляющего собой множество значений, в данном случае результатом будет значение 0 или 1, т.е.:

где под значением «О» обычно подразумевают «отрицательный класс», а под значением «1» - «положительный». При этом пользователь вправе

самостоятельно выбирать удобную для него интерпретацию.

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

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

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

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

График функции сигмоиды

Рисунок 4.1 - График функции сигмоиды

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

Значение функции гипотезы he при этом будет равно вероятности того, что результат равен единице. Например, если he = 0.7, то это значит, что с вероятностью 70% результат будет равен единице.

При этом вероятность того, что прогноз будет равен нулю, будет равна разности между единицей и вероятностью того, что прогноз будет равен единице (то есть если с вероятностью 70% на выходе будет единица, значит, с вероятностью 30% на выходе получится нуль).

4.2. Граница решений

Для получения на выходе дискретных значений, а именно «0» или «1», функцию гипотезы необходимо интерпретировать следующим образом:

То есть при условии, что аргумент логистической функции больше или равен нулю, то значение логистической функции будет больше или равно 0.5 (и наоборот):

При этом необходимо запомнить, что:

А так как аргументом логистической функции будет являться произведение 0ТХ, то получается:

когда 0тх > 0.

Исходя из написанного выше, можно утверждать, что:

Получаем, что границей решений называется линия, которая разделяет зоны, где у = 0 и где у = 1. (Данное замечание справедливо, когда количество свойств равно двум. В таком случае граница решений будет являться линией на плоскости Х/Х2.) Граница решений создаётся при помощи функции гипотезы.

Пример:

В данном случае границей решений будет вертикальная линия на графике, проходящая через точку X/ = 5, и при этом зона слева от линии относится к у=1, а зона справа - к у = 0.

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

4.3. Функция стоимости

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

Вместо этого следует использовать функцию стоимости следующего

вида:

На рисунке 4.2 представлены графики функции стоимости логистической регрессии.

Г рафики функции стоимости логистической регрессии

Рисунок 4.2 - Г рафики функции стоимости логистической регрессии

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

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

Если у = 7, то значение функции стоимости будет равно нулю при условии, что значение функции гипотезы равно единице. Если значение функции гипотезы стремится к нулю, то значение функции стоимости будет стремиться к бесконечности. Функция стоимости является выпуклой.

4.4. Упрощённая функция стоимости

Для упрощения функции стоимости можно совместить два условных случая в один:

Можно заметить, что при у =1 вторая часть функции —(1 — у) * log(l — he(x)) будет равна нулю, что никак не повлияет на окончательный результат. Аналогично при у = 0 первая часть функции —у * log(/i0(x)) будет равна нулю.

Используя полученное выражение, можно записать полную функцию стоимости:

При этом векторизованная форма функции стоимости будет выглядеть следующим образом:

4.5. Градиентный спуск

Как и в случае с линейной регрессией при использовании градиентного спуска в логистической регрессии необходимо одновременное обновление параметров в:

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

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

Векторизованная форма данного алгоритма:

4.6. Продвинутая оптимизация

«Метод сопряжённых градиентов», «BFGS» (алгоритм Бройдена- Флетчера-Гольдфарба-Шанно), «L-BFGS» (тот же алгоритм, только с ограниченным использованием памяти) являются более сложными и быстрыми алгоритмами для оптимизации параметров в. Эти алгоритмы (например, из библиотек Octave) можно использовать вместо метода градиентного спуска.

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

Программный код функции стоимости на языке Octave

Рисунок 4.3 - Программный код функции стоимости на языке Octave

Затем можно воспользоваться стандартными функциями Octave: fminunc() и optimset (), приведенными на рисунке 4.4.

Функции fminunc() и optimset ()и их описание 4.7. Мультиклассовая классификация. Алгоритм одип-иро гив-вссх

Рисунок 4.4 - Функции fminunc() и optimset ()и их описание 4.7. Мультиклассовая классификация. Алгоритм одип-иро гив-вссх

В отличие от бинарной классификации, где результат принимал значения О или 1, т.е. у = {ОД}, в данном случае результатом будет один из множества классов (которых теперь больше, чем два): у = {ОД ... п}.

В данном случае задача мультиклассовой классификации делится на п+1 задач бинарной классификации (п+1 потому что индексирование начинается с нуля). В каждой такой задаче бинарной классификации предсказывается вероятность того, что ‘у’ относится к заданному классу.

Фактически выбирается интересующий класс, все остальные классы при этом «объединяются» в другой класс, отличный от выбранного. Это проделывается для каждого класса с применением для каждого случая бинарной логистической регрессии.

4.8. Регуляризация

Регуляризация создана с целью решения проблемы переобучения.

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

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

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

  • 1. Уменьшение числа свойств (признаков):
    • а) вручную выбрать, какие свойства оставить;
    • б) использовать алгоритм выбора модели.
  • 2. Применение регуляризации.

Регуляризация представляет собой сохранение всех свойств (признаков), при этом уменьшаются параметры вг

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

4.9. Функция стоимости при регуляризации

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

Допустим, необходимо сделать функцию гипотезы более квадратичной:

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

В функцию стоимости были добавлены два дополнительных члена с целью увеличения стоимости 03 и 04. Теперь, чтобы приблизить значение функции стоимости к нулю, необходимо будет уменьшить значения 03 и 04 почти до нуля. Это, в свою очередь, значительно уменьшит значения членов функции гипотезы в3х3 и в4х4.

Также можно применить регуляризацию ко всем параметрам в, добавив дополнительное суммирование:

Здесь Я - параметр регуляризации. Он определяет, насколько завышена стоимость параметров в.

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

4.10. Регуляризация линейной регрессии

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

Член ^ Oj отвечает за регуляризацию.

Проведя нехитрые манипуляции, представленное выше правило можно представить следующим образом:

Первый член в этом уравнении 1 — а ^ всегда будет меньше единицы.

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

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

L - это матрица, заполненная единицами по главной диагонали (кроме самого первого элемента), все остальные элементы матрицы равняются нулю. Эта матрица имеет размерность (n + 1) X (n + 1).

4.11. Регуляризация логистической регрессии

Регуляризация логистической регрессии идентична регуляризации линейной регрессии. Начать стоит с функции стоимости.

Функция стоимости для логистической регрессии:

К этой функции можно применить регуляризацию, добавив в конце дополнительное слагаемое:

Заметим, что вторая сумма ?y=i Of исключает параметр смещения во-

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

Получаются выражения, идентичные таковым в случае линейной регрессии.

 
Посмотреть оригинал
< Пред   СОДЕРЖАНИЕ   ОРИГИНАЛ   След >