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

Почти каждый, кто смотрел на этот алгоритм, знает основное уравнение LR. Но давайте углубимся в математику и посмотрим, что мы упустили, изучая LR.

Примите решение, установив порог P (Y = 1 | X)

P (Y = 1 | X) ›t, затем прогнозируйте его как положительное

P (Y = 1 | X) ‹= t, затем предсказать его как отрицательное

Для мультиклассовой ситуации у нас есть аналогичные уравнения

Короче говоря, мы хотим довести вероятности отрицательного класса до 0 и 1 для положительного класса. Но как выбрать веса, которые разделяют положительный и отрицательный классы? В большинстве случаев, когда вы читаете о LR, на этом они останавливаются, они не говорят вам, как на самом деле получить оптимальные веса или как на самом деле происходит тренировка LR.

Давайте посмотрим, как на самом деле обучается LR, здесь мы рассматриваем двоичный случай, когда метки равны 0 или 1, а P_j = P (y_j = 1 | x_j, w) означает вероятность того, что j-я точка будет 1, когда матрица весов равна w . Чтобы найти оптимальные веса, мы берем argmax_w для суммирования логарифмов вероятностей каждого класса. Давайте подставим значение w в уравнение ниже.

Здесь Wo - термин предвзятости. До этого момента мы только что применили ln (x / y) = ln (x) - ln (y), ln (exp ^ Z) = Z, а затем подставили значение w, которое является смещением плюс сумма из (весовая матрица w * точек данных). Вот наше последнее уравнение, которое нам нужно оптимизировать, но как его оптимизировать?

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

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

Сможете ли вы найти в приведенном выше уравнении самую красивую вещь? Это снова пришло в форме вероятностей, которые мы описали ранее.

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

Это знаменует конец обучения ЛОГИСТИЧЕСКОЙ РЕГРЕССИИ. Я надеюсь, что вы поняли оптимизацию, лежащую в основе LR, эта оптимизация - моя вторая любимая оптимизация после оптимизации SVM.

Если что-то неясно, дайте мне знать в комментариях.

ОПТИМИЗАЦИЯ SVM: https://vishal-ai.medium.com/the-optimization-behind-svm-primal-and-dual-form-5cca1b052f45

СЧАСТЛИВОГО УЧЕНИЯ…