Мы используем логистическую регрессию для решения задач классификации, где результатом является дискретная переменная. Обычно мы используем его для решения задач бинарной классификации. Как следует из названия, задачи бинарной классификации имеют два возможных выхода.
Определим модель логистической регрессии для задач бинарной классификации. Мы выбираем функцию гипотезы как сигмовидную функцию:
Здесь theta обозначает вектор параметров. Для модели, содержащей n функций, мы имеем theta = [theta_0, theta_1, ..., theta_n], содержащую n + 1 параметр. Функция гипотезы аппроксимирует оценочную вероятность того, что фактический результат будет равен 1. Другими словами:
Более компактно это эквивалентно:
Функция стоимости резюмирует, насколько хорошо модель ведет себя. Другими словами, мы используем функцию стоимости, чтобы измерить, насколько прогнозы модели близки к фактическим результатам.В линейной регрессии мы используем среднеквадратичную ошибку (MSE) в качестве функции стоимости. Но в логистической регрессии использование среднего значения квадратов разностей между фактическими и прогнозируемыми результатами в качестве функции стоимости может дать волнообразное, невыпуклое решение; содержащий множество локальных оптимумов:
В этом случае поиск оптимального решения методом градиентного спуска невозможен. Вместо этого мы используем логарифмическую функцию для представления стоимости логистической регрессии. Он гарантированно будет выпуклым для всех входных значений, содержащих только один минимум, что позволяет нам запустить алгоритм градиентного спуска.
При решении задачи бинарной классификации логарифмическая стоимость ошибки зависит от значения y. Мы можем определить стоимость для двух случаев отдельно:
Что затем приводит к:
Потому что, когда фактический результат y = 1, стоимость равна 0 для h<theta> (x) = 1 и принимает максимальное значение для
h<theta>(x) = 0. Точно так же, если y = 0, стоимость равно 0 для h<theta>(x) = 0.
Поскольку вывод может быть либо {0}, либо {1}, мы можем упростить уравнение:
Для m наблюдений мы можем рассчитать стоимость как:
Здесь «i» есть номер фактического класса .
Градиентный спуск — это итеративный алгоритм оптимизации, который находит минимум дифференцируемой функции. В этом процессе мы пробуем разные значения и обновляем их, чтобы достичь оптимальных, сводя к минимуму результат. Применим этот метод к функции стоимости логистической регрессии. Таким образом, можно найти оптимальное решение, минимизирующее стоимость по параметрам модели:
Предположим, у нас есть всего n функций. В этом случае у нас есть n параметров для вектора theta. Чтобы минимизировать нашу функцию стоимости, нам нужно запустить градиентный спуск для каждого параметра theta_j:
Кроме того, нам нужно обновлять каждый параметр одновременно для каждой итерации. Другими словами, нам нужно перебрать параметры theta_0,theta_1, …,theta_n в векторе theta = [theta_0,theta_1, ..., theta_n]. Чтобы завершить алгоритм, нам нужно значение частной производной по theta_j для J(theta), которое равно:
Удивительно, но правило обновления такое же, как и правило, полученное с использованием суммы квадратов ошибок в линейной регрессии. В результате мы можем использовать ту же формулу градиентного спуска и для логистической регрессии. Перебирая обучающие выборки до сходимости, мы достигаем оптимальных параметров тета, ведущих к минимальным затратам.
No comments:
Post a Comment