Примечания к глубокому обучению (2) Логистическая регрессия Логистическая регрессия

искусственный интеллект глубокое обучение

1. Binary Classificationin (алгоритм бинарной классификации)

(1) Метод представления изображения

Введение: Дайте вам картинку и определите, кошка ли это (1: кошка против 0: не кошка).在这里插入图片描述

Принцип: двумерное изображение представлено в виде трех основных цветов (т. е. красного, зеленого, синего), каждый из основных цветов может быть использован.64×6464 \times 64Представляется матрица, и она накладывается на каждую позицию пикселя для получения цвета каждого пикселя.在这里插入图片描述

Легко узнать, 1 или 0 в качестве выводаyy, в то время как элементы основной цветовой матрицы используются в качестве входных данныхxx. Вот и возникает вопрос: как хранить это64×64×364 \times 64 \times 3номер? Ответ прост, используйте(64×64×3)×1(64 \times 64 \times 3) \times 1Хранение вектора признаков , пересекает элементы от красного к зеленому и синему, размерность вектора равнаnx=12288.n_x=12288.

x=[255231...255134...255134...].x=\left[ \begin{matrix} 255\\231\\ ... \\255\\134\\...\\255\\134\\... \end{matrix} \right].

(2) Метод представления символов (обозначение)

(x,y)(x,y)для одного образца,xеRnx,yе{0,1}.x \in R^{n_x},y \in \{0,1\}. mmобучающие образцы:{(x(1),y(1)),(x(2),y(2)),...,(x(m),y(m))}.\{(х^{(1)},у^{(1)}), (х^{(2)},у^{(2)}),...,(х^{(м)} ,y^{(m)})\}.Для более компактного представления обучающей выборки она включена в виде матрицы:

X=[..............................x(1)x(2)x(3)...x(m)..............................].X=\left[ \begin{matrix} ... & ... & ... & ... & ...\\ ... & ... & ... & ... & ... \\ x^{(1)} & x^{(2)} & x^{(3)} & ... & x^{(m)} \\ ... & ... & ... & ... & ... \\... &...&...&...&...\end{matrix} \right].

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

xеRnx×m.x \in R^{n_x \times m}.В программировании на питонеX.shape = (n_x, m)

Аналогично, этикеткаyyв столбец, определяемый следующим образом:Y=[y(1)y(2)y(3)...y(m)].Y=\left[ \begin{matrix} y^{(1)} & y^{(2)} & y^{(3)} & ... & y^{(m)} \end{matrix} \right]. yеR1×m.y \in R^{1\times m}.В программировании на питонеY.shape = (1, m)

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

3. Базовые знания логистической регрессии

Введение: в примере «судить, кошка ли это» в приведенном выше примечании, когда дается вводxx, мы хотим получить вероятностный результат, то есть "Какова вероятность быть кошкой?" То есть решить:y^=P{y=1x}.\widehat{y}=P\{y=1|x\}.Известный:xеRnx.x\in R^{n_x}.параметр:wеRnx,bеR.w\in R^{n_x},b\in R.Это приводит к выводу:z=wT+b.z=w^T+b.Однако это оxxне отображает результат в линейную функцию[0,1][0,1]В интервале, то есть, значение вероятности не может быть выражено. Итак, в логистической регрессии мы будемsigmoidsigmoidфункционировать, чтобыwT+bw^T+bесть,y^=sigmoid(z).\widehat{y}=sigmoid(z).

sigmoid(z)=11+ez.sigmoid(z)=\frac{1}{1+e^{-z}}.

在这里插入图片描述Примечание: следующие параметрыw/bw/bВ представлении мы рассматриваем эти два параметра отдельно, вместо того, чтобы использоватьw/bw/bметоды, написанные в одном и том же векторе параметров.

В-четвертых, функция стоимости логистической регрессии (функция стоимости/затраты)

Нам нужно пройти данныйmmУчебный набор образцов для изучения и подбора наиболее подходящих параметровw/bw/b, чтобы получить результат:y^(i)y(i).\widehat{y}^{(i)} \approx y^{(i)}.Определите функцию потери (ошибки) функции потери/ошибки:L(y^,y)=12(y^y)2.L(\widehat{y},y)=\frac{1}{2}(\widehat{y}-y)^2.Однако в логистической регрессии не рекомендуется использовать указанную выше функцию потерь, потому что при обучении параметров проблема обсуждения станет невыпуклой, поэтому ее непросто использовать для градиентного спуска (найти несколько локальных оптимальных решений, но можно найти меньше глобального оптимума) Итак, определим следующую функцию потерь:L(y^,y)=(ylogy^+(1y)log(1y^)).L(\widehat{y},y)=-(ylog\widehat{y}+(1-y)log(1-\widehat{y})).Почему эта функция выбрана в качестве функции потерь? Следующая формула может объяснить, почему:在这里插入图片描述Краткое резюме:

  • y=1y=1час,y^(i)1\widehat{y}^{(i)} \to 1сделатьL(y^,y)L(\widehat{y},y)минимум;
  • y=0y=0час,y^(i)0\widehat{y}^{(i)} \to 0сделатьL(y^,y)L(\widehat{y},y)минимум;

Приведенная выше функция потерь измеряет производительность на одном образце, теперь определите функцию стоимости функции стоимости для измерения производительности на всей выборке:J(w,b)=1mi=1mL(y^(i),y(i)).J(w,b)=\frac{1}{m}\sum_{i=1}^m L(\widehat{y}^{(i)},y^{(i)}).

J(w,b)=1mi=1m[y(i)logy^(i)+(1y(i))log(1y^(i))].J(w,b)=-\frac{1}{m}\sum_{i=1}^m[y^{(i)}log\widehat{y}^{(i)}+(1-y^{(i)})log(1-\widehat{y}^{(i)})].

  • Функция потери потери: производительность одного образца
  • функция стоимости стоимости: производительность всей выборки

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

Общая функция затрат:J(w,b)=1mi=1m[y(i)logy^(i)+(1y(i))log(1y^(i))].J(w,b)=-\frac{1}{m}\sum_{i=1}^m[y^{(i)}log\widehat{y}^{(i)}+(1-y^{(i)})log(1-\widehat{y}^{(i)})].будетwиbж и бпо двум осям, тоJ(w,b)J(w,b)То есть точка на изображении функции, точка, которую нам нужно найти, является самой нижней точкой изображения, а именно:在这里插入图片描述Функция стоимости является выпуклой функцией, поэтому независимо от того, как вы инициализируете параметры, в конечном итоге вы должны достичь примерно одной и той же точки. Здесь мы используем метод «градиентного спуска».Метод градиентного спуска: из начальной точки сделать шаг в направлении самого крутого спуска (спуститься как можно быстрее), что является первой итерацией градиентного спуска. Продолжайте выполнять итерации, в конечном итоге надеясь сойтись к глобальному оптимуму или приблизиться к глобальному оптимуму. 在这里插入图片描述

Чтобы более наглядно показать метод градиентного спуска,wwиJ(w)J(w)Например, чтобы нарисовать двумерную плоскую систему координат, необходимо постоянно обновлятьwwсделатьJ(w)J(w)достичь минимального значения.在这里插入图片描述

w:=wαdJ(w)dw.w :=w-\alpha\frac{d J(w)}{dw}.Среди них в формуле:=Символ означает обновление значения переменной,α\alphaэто скорость обучения. В программировании обычноdJ(w)dw\frac{d J(w)}{dw}письмоdwdw, то есть приведенную выше формулу можно упростить до:w:=wαdw.w :=w-\alpha dw.Так что анализируйтеJ(w,b)J(w,b)Обновление параметра в , имеет следующую формулу:w:=wαJ(w,b)w.w:=w-\alpha \frac{\partial J(w,b)}{\partial w}.

b:=bαJ(w,b)b.b:=b-\alpha \frac{\partial J(w,b)}{\partial b}.Так же и при программированииJ(w,b)w\frac{\partial J(w,b)}{\partial w}письмоdwdw,J(w,b)b\frac{\partial J(w,b)}{\partial b}письмоdb.db.

6. Градиентный спуск в логистической регрессии

z=wTx+by^=a=о(z)=11+ezL(a,y)=(ylog(a)+(1y)log(1a))z=w^Tx+b\\\widehat{y}=a=\sigma(z)=\frac{1}{1+e^{-z}}\\L(a,y)=-(ylog(a)+(1-y)log(1-a))Предположим, что образец имеет 2 функцииx1,x2x_1,x_2, есть еще параметрыw1,w2,b.w_1,w_2,b. 在这里插入图片描述в соответствии сАлгоритм обратного распространения для вычислительных графов (цепное правило вывода), получаем следующие результаты расчета:da=L(a,y)da=ya+1y1adz=dL(a,y)dz=dL(a,y)dadadzda=\frac{L(a,y)}{da}=-\frac{y}{a}+\frac{1-y}{1-a}\\ dz=\frac{dL(a,y)}{dz}=\frac{dL(a,y)}{da}\frac{da}{dz}Тогда вот проблема! Этот вопрос также активно обсуждается в курсе -dadz\frac{da}{dz}Как это решить?a=о(z)=11+ezdadz=ez(1+ez)2=a(1a)a=\sigma(z)=\frac{1}{1+e^{-z}}\\ \Rightarrow \frac{da}{dz}=\frac{e^{-z}}{(1+e^{-z})^2}=a(1-a)На самом деле он включаетЗамените дробь независимой переменной z обратно дробью зависимой переменной a.Окончательный расчет:dz=ay.dz=a-y.Затем считайте налево,dw1=x1dzdw2=x2dzdb=dzdw_1=x_1dz\\dw_2=x_2dz\\db=dzПосле получения вышеуказанных значений производной может быть реализован шаг обновления градиента для одного экземпляра выборки, и результат близок к глобальному оптимуму в соответствии с методом настройки параметров в методе градиентного спуска.w1:=w1αdw1w1:=w2αdw2b:=bαdbw_1:=w_1-\alpha dw_1\\w_1:=w_2-\alpha dw_2\\b:=b-\alpha dbПримечание. Обновите значения параметров с помощью:=Символьное представление.

Однако мы знаем, что при обучении модели используется более одной обучающей выборки, когдаmmКак мы будем применять метод градиентного спуска логистической регрессии, когда используется весь обучающий набор образцов?

7. Градиентный спуск m выборок

Примените градиентный спуск в логистической регрессии кmmВ этом образце, на самом деле, используется большая петля для сопряженияmmРассчитайте параметры каждого образца, а затем суммируйте и усредните, чтобы получить значение глобального градиента.在这里插入图片描述

Алгоритм псевдокода

在这里插入图片描述

Слабые стороны и улучшения алгоритмов

  • Алгоритм использует дваполностью явныйизforforЦиклы могут сделать алгоритмы неэффективными - от 1 доmmПроцесс расчета каждой выборки с обходом всех признаков (dw1,...,dwn,dw_1,...,dw_n,размерностьnxn_x)
  • вообще бесполезноПолностью явный цикл for, который может обрабатывать большие наборы данных. есть дверьтехника векторизации, вы можете избавиться от явногоforforцикл!