Имеет ли значение функция затрат при КОДИРОВАНИИ логистической регрессии

#machine-learning #logistic-regression

#машинное обучение #логистическая регрессия

Вопрос:

ПРИМЕЧАНИЕ: когда вы видите (0) в функциях, он представляет тету, а не ноль

Я изучал курс машинного обучения Эндрю Нг, и у меня есть следующий запрос:

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

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

Функция затрат MSE (среднеквадратичная ошибка)

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

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

Который будет иметь 2 графика (один для y = 0 и один для y = 1), оба из которых являются выпуклыми.

Мой вопрос заключается в следующем, поскольку наша цель — минимизировать функцию затрат (иначе говоря, чтобы производная достигла 0), чего мы достигаем, используя градиентный спуск, обновляя наши веса с использованием производной функции затрат, которая в обоих случаях (обе функции затрат) является одной и той же производной:

dJ = (h0(x (i)) — y(i)) . x(i)

Итак, как различный выбор функции затрат в этом случае каким-либо образом повлиял на наш алгоритм? поскольку при прямом распространении все, что нам нужно, это h0(x (i)) = Sigmoid(0Tx), который может быть вычислен без необходимости вычисления функции затрат, то при обратном распространении и обновлении весов мы всегда используем производную от функции затрат, поэтому, когда функция затратсамо по себе вступает в игру? это просто необходимо, когда мы хотим получить представление о том, насколько хорошо работает наша сеть? (тогда почему бы просто не зависеть от производной, чтобы знать это)

Комментарии:

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

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

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

4. Большое вам спасибо! Я разберусь с этим

Ответ №1:

Прямое распространение никоим образом не нуждается в функции затрат, потому что вы просто применяете все свои изученные веса к соответствующим входным данным.

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

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

Комментарии:

1. Я понял, что мое заблуждение связано с тем, как рассчитывается / выполняется обратное распространение.. спасибо за ответ

Ответ №2:

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

Вы спросили: «В чем важность функции затрат и ее выбора в любом случае?». У меня есть два ответа:

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

В вашем ответе указано, что вы, по сути, уже поняли все это, но я надеялся немного прояснить это. Спасибо!