Подтвердить что ты не робот

Почему функция стоимости логистической регрессии имеет логарифмическое выражение?

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

cost(h(theta)X,Y) = -log(h(theta)X) or -log(1-h(theta)X)

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

4b9b3361

Ответ 1

Источник: мои собственные заметки, сделанные во время курс Standford Machine Learning в Курсере, автор Andrew Ng. Все кредиты ему и этой организации. Курс свободно доступен для всех, кто будет принят в своем собственном темпе. Изображения сделаны мной, используя LaTeX (формулы) и R (графика).

Функция гипотезы

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

Учитывая проблему двоичной классификации (y может принимать только два значения), то, имея набор параметров θ и множество входных признаков x, функция гипотезы может быть определена так, что она ограничена между [0, 1], в которой g() представляет сигмоидальную функцию:

введите описание изображения здесь

Эта функция гипотезы представляет в то же время оцененную вероятность того, что y = 1 на входе x, параметризованном θ:

введите описание изображения здесь

Функция затрат

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

введите описание изображения здесь

Хотя возможное определение функции стоимости может быть средним для евклидова расстояния между гипотезой h_θ (x) и фактическим значением y среди всех m выборок в обучающем наборе, если функция гипотезы формируется с сигмоидальная функция, это определение приведет к невыпуклой функции стоимости, что означает, что локальный минимум можно было бы легко найти до достижения глобального минимума. Чтобы гарантировать, что функция стоимости является выпуклой (и, следовательно, обеспечивает сходимость к глобальному минимуму), функция стоимости преобразуется с использованием логарифма сигмоидной функции.

введите описание изображения здесь

Таким образом, целевая функция оптимизации может быть определена как среднее из затрат/ошибок в обучающем наборе:

введите описание изображения здесь

Ответ 2

Эта функция стоимости является просто переформулировкой критерия вероятности maximum- (log-).

Модель логистической регрессии:

P(y=1 | x) = logistic(θ x)
P(y=0 | x) = 1 - P(y=1 | x) = 1 - logistic(θ x)

Вероятность записывается как:

L = P(y_0, ..., y_n | x_0, ..., x_n) = \prod_i P(y_i | x_i)

Лог -l Ikelihood это:

l = log L = \sum_i log P(y_i | x_i)

Мы хотим найти θ, которая максимизирует вероятность:

max_θ \prod_i P(y_i | x_i)

Это то же самое, что максимизация журнала -l ikelihood:

max_θ \sum_i log P(y_i | x_i)

Мы можем переписать это как минимизацию стоимости C = -l:

min_θ \sum_i - log P(y_i | x_i)
  P(y_i | x_i) = logistic(θ x_i)      when y_i = 1
  P(y_i | x_i) = 1 - logistic(θ x_i)  when y_i = 0

Ответ 3

Мое понимание (не 100% эксперт здесь, я могу ошибаться) заключается в том, что log можно грубо объяснить как un-do exp, который появляется в формуле для gaussian плотность вероятности. (Помните -log(x) = log(1/x).)

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

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

[1] Распознавание образов и машинное обучение, Кристофер М. Бишоп, глава 4.2 (вероятностные генерирующие модели)

Ответ 4

Дело в том, что функция стоимости (функция сигмоида) будет возвращать выходное значение между [0,1], но когда мы складываем значения сигмоида по большим точкам данных, мы можем столкнуться с проблемами численной стабильности, так как результаты функции сигмоида могут быть очень маленькие десятичные числа. Использование функции log() в функции sigmoid также позволяет решить возникающие проблемы с числовыми вычислениями, фактически не влияя на цель оптимизации.