Logistic regression cost function
Для того, чтобы натренировать параметры w и b для логистической регрессии, нужа cost function.
У нас есть m примеров:
на которых будет тренироваться функция и нужно, чтобы параметры w и b были такими, чтобы предсказание ŷ⁽ⁱ⁾ было максимально близко к правильному ответу y⁽ⁱ⁾, то есть ŷ⁽ⁱ⁾ ≈ y⁽ⁱ⁾.
То есть для каждого тренировочного примера i :
и, соответственно:
где z⁽ⁱ⁾:
Loss function (функция потерь), измеряющая то, насколько хорошо работает алгоритм, может быть, например, среднеквадратичной ошибкой:
Однако, при таком подходе легко может оказаться, что оптимизационная проблема невыпуклая и у нее множество локальных оптимумов и градиентный спуск не сможет найти глобальный оптимум. Она может выглядеть как-нибудь так:
Главное, что следует понять, что loss function — это способ измерить то, как хорошо функция предсказывает ŷ для каждого конкретного y и необходимо сделать так, чтобы эта функция оказалась минимально возможной.
Для логистической регрессии используется иная loss function, которая делает оптимизационную проблему выпуклой, и на которой градиентный спуск сможет найти глобальный оптимум.
Для логистической loss function обычно используют такую формулу:
Если y = 1, то правая часть суммы окажется равной нулю и loss function приобретет вид:
В этом случае нужно будет стремиться к тому чтобы переменная ŷ имела максимально возможное значение. Так как ŷ — это сигмоида, а ее значение не может быть больше единицы, то есть нужно, чтобы значение ŷ было как можно ближе к единице.
Если y = 0, то левая часть суммы окажется равной нулю и loss function будет выглядеть так:
В этом случае, наоборот нужно стремиться к тому, чтобы значение переменной ŷ было как можно меньше.
Теперь перейдем к тому, как измерить точность работы алгоритма по всем возможным примерам. Измерять эту точность будет cost function:
То есть cost function — это среднее арифметическое всех значений loss function, которые посчитаны для каждого тренировочного примера.
спасибо Andrew Ng