Логистическая регрессия как нейронная сеть

Логистическая регрессия - это статистический метод, который используется для прогнозирования, когда зависимая переменная или выходные данные являются категориальными. Он используется, когда мы хотим узнать, принадлежит ли конкретная точка данных к классу 0 или классу 1. В логистической регрессии нам нужно найти вероятность того, что результат будет y = 1 с учетом входного вектора x. y ' - это прогнозируемое значение, когда входной параметр x. Математически это можно определить как:

Математическая модель

Входные данные: X - это входная матрица размеров n x m, где n - количество элементов в X и m - количество обучающих примеров.

Параметры: W - матрица веса с размерами n x 1, где n - количество функций в X. Смещение b помогает контролировать значение, при котором срабатывает функция активации.

Вывод:

Функция активации

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

Функция потерь

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

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

  1. Когда y = 1 функция потерь равна L (y ’, y) = -log y’. Поскольку мы хотим, чтобы значение функции потерь было меньше, значение log y ' должно будет больше, которое будет больше, когда y ' будет больше, т. е. близко к 1, и, следовательно, прогнозируемое значение и фактическое значение будут одинаковыми.
  2. Когда y = 0 функция потерь равна L (y ', y) = -log (1-y') . Поскольку мы хотим, чтобы значение функции потерь было меньше, значение log (1-y ') должно быть больше, которое будет больше, когда y ' будет меньше, т. е. близко к 0, и поэтому прогнозируемое и фактическое значения будут аналогичными.
  3. Вышеупомянутая функция потерь является выпуклой, что означает, что она имеет единственный глобальный минимум, и сеть не застревает в локальных минимумах, которые присутствуют в невыпуклых функциях потерь.

Функция стоимости

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

В приведенном выше уравнении m - общее количество обучающих примеров. Цель обучения сети - найти матрицу весов W и смещение b, при которых значение функции стоимости J свернут.

Градиентный спуск

Матрица веса W инициализируется случайным образом. Мы используем градиентный спуск, чтобы минимизировать функцию затрат J и получить оптимальную матрицу весов W и смещение б. Градиентный спуск - это итеративный алгоритм оптимизации первого порядка для поиска минимума функции. Мы применяем градиентный спуск к функции затрат J, чтобы минимизировать затраты. Математически это можно определить как:

Первое уравнение представляет изменение матрицы веса W, тогда как второе уравнение представляет изменение смещения b. Изменение значений определяется скоростью обучения альфа и производными от стоимости J по отношению к Матрица веса W и смещения b. Мы повторяем обновление W и b до тех пор, пока функция затрат J свернут. Теперь давайте разберемся, как работает градиентный спуск, с помощью следующего графика:

Случай 1. Предположим, что W было инициализировано значениями, меньшими, чем значения, при которых он достигает глобального минимума, а затем наклон в этой точке, то есть частная производная от J по отношению к W является отрицательным, и, следовательно, значения веса будут увеличиваться согласно уравнению градиентного спуска.

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

Соответственно, и W, и b достигнут своего оптимального значения, а значение функции затрат J будет свернут.

Логистическая регрессия с использованием градиентного спуска

До сих пор мы понимали математическую модель логистической регрессии и градиентного спуска. В этом разделе мы увидим, как мы можем использовать градиентный спуск для изучения матрицы веса W и смещения b. в контексте логистической регрессии. Давайте подытожим все уравнения, которые нам известны до сих пор.

  1. Первое уравнение обозначает произведение входного X на матрицу веса W и смещение б.
  2. Второе уравнение - это функция активации сигмоида, которая вносит нелинейность.
  3. Третье уравнение - это функция потерь, которая вычисляет потери между заданным Y и прогнозируемым Y ’.

Эти уравнения можно смоделировать с помощью графика, известного как график вычислений. Для простоты предположим, что в данной входной матрице X. Соответственно будет 2 веса w1 и w2 в матрице веса W . График вычислений для вышеуказанного сценария можно определить как:

На приведенном выше рисунке прямое распространение (черные стрелки) используется для прогнозирования y ', а обратное распространение (красные стрелки) используется для обновления весов w1 и w2 и смещение b. Как мы видели в градиентном спуске, нам нужно вычислить производные весов и смещения, чтобы обновить их. Использование графа вычислений позволяет легко вычислить эти производные. Поскольку потери L, зависят от a сначала мы вычисляем производную da, которая представляет собой производную от L относительно a с использованием уравнения 3 следующим образом:

После этого мы вычисляем производную dz, которая представляет собой производную от L по z с помощью уравнения 2. Это можно сделать с помощью следующего правила цепочки:

Точно так же мы можем найти все производные dw1, dw2 и db с использованием уравнения 1 и цепного правила. Стоимость этих производных финансовых инструментов следующая:

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

Таким образом, мы применили градиентный спуск к логистической регрессии и изучили, как матрица веса W и смещение b обновлено к тому, что потеря L сведена к минимуму.

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

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

В процессе обучения нам нужно минимизировать затраты J. Это можно сделать, сведя к минимуму потери L для каждого примера обучения i по всем м обучающие примеры. Поскольку сама функция потерь L зависит от весов w1, w2 и b, мы должны минимизировать J по отношению к весам w1 и w2 и смещение b следующим образом:

Обобщение

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

Это вычисление, выполняемое за один шаг обучения по всем обучающим примерам. Во время обучения нам нужно выполнить все вышеперечисленные шаги для множества итераций, которые могут варьироваться от 1000 до 1000k в зависимости от задачи. Мы можем остановить процесс обучения, когда точность не улучшится или затраты J сведены к минимуму, что избавляет от необходимости указывать количество шагов. С улучшением аппаратного и программного обеспечения время, необходимое для такого огромного объема вычислений, резко сократилось из-за развития глубокого обучения.

Таким образом, в этой истории мы изучили математику нейронных сетей в контексте логистической регрессии.

использованная литература

  1. Coursera - Курс глубокого обучения 1

Хочу поблагодарить читателей за то, что они прочитали рассказ. Если у вас есть какие-либо вопросы или сомнения, не стесняйтесь задавать их в разделе комментариев ниже. Я буду более чем счастлив ответить на них и помочь вам. Если вам нравится история, подпишитесь на меня, чтобы получать регулярные обновления, когда я публикую новую историю. Я приветствую любые предложения, которые улучшат мои истории.