Сложное машинное обучение (1) — метод наименьших квадратов и максимальная вероятность решения линейной регрессии

машинное обучение искусственный интеллект
Сложное машинное обучение (1) — метод наименьших квадратов и максимальная вероятность решения линейной регрессии

Это 29-й день моего участия в августовском испытании обновлений. Узнайте подробности события:Испытание августовского обновления

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

Линейная регрессия

  • Наименьших квадратов
  • Метод наименьших квадратов с геометрической точки зрения
  • Метод наименьших квадратов с вероятностной точки зрения

Что такое проблема регрессии

Сегодня давайте обсудим линейную модель, Мы узнали, что линейная модель непроблема регрессии,проблема регрессииОн в основном используется для прогнозирования определенного значения, такого как прогнозирование цен на жилье, цен на акции (это приложение использует для решения случайный процесс), будущих погодных условий и т. д. Например, мы оцениваем значение PM2,5 региона в определенный день на основе изменений значений PM2,5 в регионе за несколько лет Чем ближе прогнозируемое значение к фактическому значению дня, тем выше надежность алгоритма регрессионного анализа.

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

hθ=θ0+θ1x1+θ2x2++θnxnh_{\theta} = \theta_0 + \theta_1 x_1 + \theta_2 x_2 + \dots + \theta_n x_n

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

Подготовить данные

В обучении с учителем образцы D обычно представляются таким образом, и каждый образец состоит из вектора X n-мерных признаков и y, представляющего метку. В задачах регрессии y — это конкретное значение, а в задачах классификации y — это класс, к которому принадлежит выборка.

D={(x(1),y(1)),(x(2),y(2)),,(x(n),y(n))}x(i)еRnD = \{ (x^{(1)},y^{(1)}),(x^{(2)},y^{(2)}),\dots, (x^{(n)},y^{(n)}) \} x^{(i)} \in \mathbb{R}^n

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

Определите модель

Тогда модель здесь должна представлять отношение между X и Y в образце. Давайте определим линейную функцию для представления отношения между x и y. Параметры функцииθ\thetaпредставить, можно записать в следующем виде

hθ=θ0+θ1x1+θ2x2++θnxnh_{\theta} = \theta_0 + \theta_1 x_1 + \theta_2 x_2 + \dots + \theta_n x_n
θ={θ0,θ1,,θn}T\theta = \{ \theta_0, \theta_1, \dots, \theta_n \}^T

здесьθ0\theta_0Указывает на предвзятость.

установить целевую функцию

Вычисляя расстояние от точки выборки до линейной модели (линии или гиперплоскости), мы оцениваем соответствие нашей модели данным, что является целью, которую мы хотим оптимизировать. Потому что в качестве цели используется минимальное расстояние между оценочными значениями путем измерения истинного значения. Наша цель — минимизировать значение целевой функции (также называемой функцией потерь).Здесь мы используемy^y\hat{y} - yЧто касается расстояния между точками, то у вас могут возникнуть сомнения в том, что расстояние между точками и линиями не является вертикальной линией, которая проводит из точки прямую линию. На самом деле это эквивалентная задача. расстояние, а расстояние между прогнозируемым значением и фактическим значением меньше.Квадрат разницы равен расстоянию между точками выборки и линией линейной дисперсии.

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

Метод наименьших квадратов (LMS)

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

D={(x(1),y(1)),(x(2),y(2)),,(x(n),y(n))}x(i)еRnD = \{ (x^{(1)},y^{(1)}),(x^{(2)},y^{(2)}),\dots, (x^{(n)},y^{(n)}) \} x^{(i)} \in \mathbb{R}^n
hθ=θ0x0+θ1x1++θnxnh_{\theta} = \theta_0 x_0 + \theta_1 x_1 + \dots + \theta_n x_n

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

θ0x0+θ1x1(1)+θ2x2(1)++θmxm(1)=y(1)θ0x0+θ1x1(2)+θ2x2(2)++θmxm(2)=y(2)θ0x0+θ1x1(N)+θ2x2(N)++θmxm(N)=y(N)\begin{aligned} \theta_0 x_0 + \theta_1 x_1^{(1)} + \theta_2 x_2^{(1)} + \cdots + \theta_m x_m^{(1)} = y^{(1)} \\ \theta_0 x_0 + \theta_1 x_1^{(2)} + \theta_2 x_2^{(2)} + \cdots + \theta_m x_m^{(2)} = y^{(2)} \\ \vdots \\ \theta_0 x_0 + \theta_1 x_1^{(N)} + \theta_2 x_2^{(N)} + \cdots + \theta_m x_m^{(N)} = y^{(N)} \\ \end{aligned}

Попробуйте сейчас сматричная формаЧтобы представить эту систему линейных уравнений, матрица A представляет нашу выборку, каждая строка представляет выборку, каждый столбец представляет характеристики выборки, имеется N выборок, а строчная буква n представляет количество признаков каждой выборки. То есть для каждого образцаДополненная матрица,

A=[1x1(1)x2(1)xm(1)1x1(2)x2(2)xm(2)1x1(N)x1(N)xm(N)]A = \begin{bmatrix} 1 & x_1^{(1)} & x_2^{(1)} & \dots & x_m^{(1)} \\ 1 & x_1^{(2)} & x_2^{(2)} & \dots & x_m^{(2)} \\ \vdots & \vdots & \vdots & \ddots & \vdots \\ 1 & x_1^{(N)} & x_1^{(N)} & \dots & x_m^{(N)} \\ \end{bmatrix}

Из-за параметров в уравнении мы будем использовать точку пересечения какθ0\theta_0чтобы представить, что первый столбец матрицы выборки A имеет значение 1, потому что этот столбец будет суммироваться для представленияθ0\theta_0(перехват) умноженный, здесьθ\thetaда(n+1)×1(n+1) \times 1Форма матрицы параметров, форма матрицы параметров представлена ​​формой матрицы A и меткой Y(N×1)(N \times 1) Форма вектора определена.

AN×(n+1)θ(n+1)×1=y(N×1)A_{N \times (n+1)} \theta_{(n+1) \times 1} = y_{(N \times 1)}

Матрица данных AN×(n+1)N\times(n+1)и(n+1)×1(n+1)\times1получить матрицуN×N\times1, которая является формой этикетки.

i=1N(hθ(x(i))y(i))2\sum_{i=1}^N (h_{\theta}(x^{(i)}) - y^{(i)})^2

С матричным представлением мы можем представить нашу функцию потерь в матричной форме

S=minAθY2S = \min ||A \theta - Y||^2

Далее матрица строится по модулю и упрощается. Подробный процесс вывода выглядит следующим образом.Здесь нам нужно ввести операцию матрицы, особенно операцию транспонирования матрицы.Сложение и вычитание в матрице легче понять, но умножение более специальное.Есть нет обменного курса в матрице.ABBAAB \neq BA

=(AθY)T(AθY)=(θTATYT)(AθY)=θTATAθθTATYYTAθ+YTY=θTATAθ2θTATY+YTY\begin{aligned} = (A\theta - Y)^T(A\theta - Y) \\ = (\theta^TA^T - Y^T)(A\theta - Y) \\ = \theta^TA^TA\theta - \theta^TA^TY - Y^TA\theta +Y^TY\\ = \theta^TA^TA\theta - 2\theta^TA^TY +Y^TY \end{aligned}

ATA^Tформа(n+1)×N(n+1) \times NиθT\theta^Tформа1×(n+1)1 \times (n+1)такθTAT\theta^TA^Tумножить, чтобы получить1×N1\times NМатрица умножается наYYэтоN×1N\times 1Вектор является скаляром, вы можете попытаться вывести егоYTAθY^TA\thetaGet также является скаляром, потому что все они скаляры, их можно сложить вместе, чтобы получить

θTATYYTAθ=2θTATY\theta^TA^TY - Y^TA\theta = -2\theta^TA^TY

Раньше мы использовали градиентный спуск для постоянного обновления параметров. Конкретный метод заключается в том, что мы берем вывод параметров в функцию потерь, а затем обновляем параметры.Следующее - умножить производную на скорость обучения.Скорость обучения представляет собой скорость обучения модели, то есть величину каждого параметра обновления, а затем используйте это значение для обновления параметров, чтобы получить новый параметр.

θj=θj+альфаLθj\theta_j = \theta_j + \alpha \frac{\partial L}{\partial \theta_j}

Параметры оптимизируются путем непрерывной итерацииθ\thetaчтобы найти оптимальное решение. Это общие шаги между нами при решении проблем регрессии.

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

Sθ=0\frac{\partial S}{\partial \theta} = 0
Sθ=(θTATAθ2θTATY+YTY)θ\frac{\partial S}{\partial \theta} = \frac{\partial( \theta^TA^TA\theta - 2 \theta^TA^TY + Y^TY)}{\partial \theta}

Что касается вывода матриц, вы уже узнали, что существуют следующие формулы

XTX=1\frac{\partial X^T}{\partial X} = 1

Тогда мы можем начать находить матрицуθ\thetaЧастная производная от , упрощается, чтобы получить следующую формулу

Sθ=(θTATAθθ2(θTATY)θ+YTYθ\frac{\partial S}{\partial \theta} = \frac{\partial( \theta^TA^TA\theta}{\theta} - 2 \frac{\partial (\theta^TA^TY )}{\partial \theta} + \frac{\partial Y^TY}{\partial \theta}
θTθ=1\frac{\partial \theta^T}{\partial \theta} = 1
Sθ=(θTATAθ)θ2ATY\frac{\partial S}{\partial \theta} = \frac{\partial (\theta^TA^TA\theta) }{\partial \theta} - 2A^TY

эта часть(θTATAθ)θ\frac{\partial (\theta^TA^TA\theta) }{\partial \theta}Это трудность вывода, и затем мы сосредоточимся на преодолении этой части вывода.

СвязанныйвекторДля вывода сначала введем формулу

d(uTv)d(x)=duTdxv+dvTdxu\frac{d(u^Tv)}{d(x)} = \frac{du^T}{dx} v + \frac{dv^T}{dx} u

Здесь uv — функция x. Мы узнали о выводе матриц в линейной алгебре. Выше приведена формула для вывода матриц. В следующем процессе вывода мы будем использовать эту формулу. Если вы не понимаете, вернитесь и посмотрите на линейная алгебра.

d(xTx)dx=dxTdxx+dxTdxx=2x\frac{d(x^Tx)}{dx} = \frac{dx^T}{dx} x + \frac{dx^T}{dx} x = 2x

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

d(XTBX)dx=dXTdXBX+dXTBTdXX=(B+BT)X\frac{d(X^TBX)}{dx} = \frac{dX^T}{dX} BX + \frac{dX^TB^T}{dX} X = (B + B^T)X

мы знаемATAA^TAЭто квадратная матрица, так что наша задача может быть решена. Выводим уравнение сверху

θTATAθθ=(ATA+AAT)θ=2ATAθ\frac{\partial \theta^TA^TA\theta}{\partial \theta} = (A^TA + AA^T)\theta = 2 A^TA\theta
Sθ=2ATAθ2ATY=0\frac{\partial S}{\partial \theta} = 2 A^TA\theta - 2A^TY = 0
θ=(ATA)1ATY\theta = (A^TA)^{-1}A^TY

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

Концепции геометрии наименьших квадратов

x1+x2=3x1+x2=1\begin{aligned} x_1 + x_2 = 3\\ -x_1 + x_2 = 1 \end{aligned}
{x1=1x2=2\begin{cases} x_1 =1\\ x_2 = 2 \end{cases}

linear_001.png

[1111][x1x2]=[31]\begin{bmatrix} 1 & 1\\ -1 & 1 \end{bmatrix} \begin{bmatrix} x_1\\ x_2\\ \end{bmatrix} = \begin{bmatrix} 3\\ 1 \end{bmatrix}
a1x1+a2x2=ya_1x_1 + a_2x_2 = y
(11)x1+(11)x2=(31)\left( \begin{matrix} 1\\ -1 \end{matrix} \right) x_1 + \left( \begin{matrix} 1\\ 1 \end{matrix} \right) x_2 =\left( \begin{matrix} 3\\ 1 \end{matrix} \right)

linear_002.png

D={(x1,y1),(x2,y2),(x3,y3)}D = \{(x^1,y^1),(x^2,y^2),(x^3,y^3) \} D={(0,2),(1,2),(2,3)}D = \{(0,2),(1,2),(2,3) \}

θ1x+θ0=y\theta_1 x + \theta_0 = y

(012)θ1+(111)θ0=(223)\left( \begin{matrix} 0\\ 1\\ 2 \end{matrix} \right) \theta_1 + \left( \begin{matrix} 1\\ 1\\ 1 \end{matrix} \right) \theta_0 =\left( \begin{matrix} 2\\ 2\\ 3 \end{matrix} \right)

a1θ1+a2θ0=y^a_1\theta_1 + a_2 \theta_0 = \hat{y} Lmin=(yy^)L_{\min} = (y - \hat{y})

оказатьсяy^\hat{y}проекция вектора на плоскость y

y^=Aθ*\hat{y} = A\theta^{*}

e=yy^=yAθ*e = y - \hat{y} = y - A\theta^{*}

{ea1=0ea2=0{a1Te=0a2Te=0ATe=0\begin{cases} e\cdot a_1 = 0\\ e\cdot a_2 = 0\\ \end{cases} \rightarrow \begin{cases} a_1^Te = 0\\ a_2^Te = 0\\ \end{cases} \rightarrow A^Te = 0
AT(yAθ*)=0ATyATAθ*=0ATy=ATAθ*θ*=(ATA)1ATy\begin{aligned} A^T(y - A\theta^{*}) = 0\\ A^Ty - A^TA\theta^{*} = 0\\ A^Ty = A^TA\theta^{*}\\ \theta^{*} = (A^TA)^{-1}A^Ty \end{aligned}

linear_003.png

Вероятностный подход к пониманию метода наименьших квадратов

yi=θTxi+ϵiy^i = \theta^Tx^i + \epsilon^i

linear_005.png

Угол вероятности (максимальная вероятность)

Взгляните на проблему линейной регрессии с вероятностной точки зрения и наименьших квадратов

D={(x(1),y(1)),(x(2),y(2)),,(x(n),y(n))}x(i)еRnD = \{ (x^{(1)},y^{(1)}),(x^{(2)},y^{(2)}),\dots, (x^{(n)},y^{(n)}) \} x^{(i)} \in \mathbb{R}^n

Наименьших квадратов

L(θ)=i=1NθTxiyi2L(\theta) = \sum_{i=1}^N ||\theta^Tx^i - y^i||^2
P(ϵi)=12число Пиоexp((ϵi)22о2)P(\epsilon^i) = \frac{1}{\sqrt{2\pi}\sigma}\exp\left( - \frac{(\epsilon^i)^2}{2\sigma^2} \right)

Данные имеют определенный уровень шума, то есть данные обладают определенной случайностью.y=θTx+ϵy = \theta^Tx + \epsilon

Оценка максимального правдоподобия (MLE)

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

L(θ)=logP(YX;θ)=logiNP(yixi;θ)=i=1NlogP(yixi;θ)L(\theta) = \log P(Y|X;\theta) = \log \prod_i^{N} P(y^i|x^i;\theta) = \sum_{i=1}^N \log P(y^i|x^i;\theta)

Теперь, когда модель определена, мы используем выборочные данные для оценки параметровθ\theta, то есть какие параметры и выборочные данные объединяются для полученияYY. На самом деле, мы сначала знаем, что между y и x существует заданная связь, которая определяется соотношениемθ\thetaопределенный.

Это можно понять и таким образом, предполагая, что мы можем найтиf(xi)=θixi+θ0f(x^i) = \theta_i x^i + \theta_0Такyiy^iЗазор с этой функцией можно считать подчиняющимся нормальному распределению.

P(yixi,θ)=12число Пиоexp((yθTxi)22о2)P(y^i|x^i,\theta) = \frac{1}{\sqrt{2\pi}\sigma} \exp \left( - \frac{(y - \theta^Tx^i)^2}{2\sigma^2} \right)
L(θ)=i=1Nlog12число Пиоexp((yθTxi)22о2)L(\theta) = \sum_{i=1}^N \log \frac{1}{\sqrt{2\pi}\sigma} \exp \left( - \frac{(y - \theta^Tx^i)^2}{2\sigma^2} \right)
L(θ)=i=1N(log12число Пио12о2(yiθTxi)2)L(\theta) = \sum_{i=1}^N \left( \log \frac{1}{\sqrt{2\pi} \sigma} - \frac{1}{2\sigma^2}(y^i - \theta^Tx^i)^2 \right)

На самом деле, мы только что нашлиθ\thetaМаксимизируйте значение целевой функции выше, потому чтоо\sigmaявляется постоянным значением, то если мы хотим, чтобы целевая функция была больше, нам нужно позволить(yiθTxi)(y^i - \theta^Tx^i)меньше

θ=argmaxθ12о2(yiθTxi)2\theta = \arg \max_{\theta} - \frac{1}{2\sigma^2}(y^i - \theta^Tx^i)^2
θ=argminθ(yiθTxi)2\theta = \arg \min_{\theta} (y^i - \theta^Tx^i)^2

Оценка методом наименьших квадратов

θ=argminθ(yiθTxi)2\theta = \arg \min_{\theta} (y^i - \theta^Tx^i)^2

L(θ)=i=1NθTxiyi2L(\theta) = \sum_{i=1}^N ||\theta^Tx^i - y^i||^2