监督学习
对于一个房价预测系统,给出房间的面积和价格,以面积和价格作坐标轴,绘出各个点。
定义符号:
\(x_{(i)}\)表示一个输入特征\(x\)。
\(y_{(i)}\)表示一个输出目标\(y\)。
\((x_{(i)},y_{(i)})\)表示一个训练样本。
\(\left\{(x_{(i)},y_{(i)});i=1,\dots,m\right\}\)代表m个样本,也称为训练集。
上标\((i)\)代表样本在训练集中的索引。
\(\mathcal{X}\)代表输入值的空间,\(\mathcal{Y}\)代表输出值的空间。\(\mathcal{X}=\mathcal{Y}=\mathbb{R}\)
监督学习的目标,就是给定一个训练集,学习一个函数\(h\):\(\mathcal{X} \mapsto \mathcal{Y}\)。\(h(x)\)是对于y的对应值的一个“好”的预测。函数\(h\)被称为hypothesis函数(假设函数)
如果我们预测的目标值是连续的,那么,这种问题被称为回归问题,如果\(y\)只是一个离散的小数字,那么,这种问题叫做分类问题。
线性回归
假设房价不仅与面积有关,还与卧室数有关,如下:
这时候的\(x\)是一个2维向量\(\in \mathbb{R^2}\)。其中\(x_1^{(i)}\)表示第\(i\)个样本的房子面积,\(x_2^{(i)}\)表示第\(i\)个样本的房子卧室数。
现在我们决定将y近似为x的线性函数,公式如下:
\[h_{\theta}(x)=\theta_0+\theta_1x_1+\theta_2x_2\]
\(\theta_i\)是线性函数空间从\(\mathcal{X}\)到\(\mathcal{Y}\)映射的参数(权重)。把公式简化:
\[h(x)=\sum_{i=0}^n \theta_ix_i=\theta^Tx\]
其中\(x_0\)=1,因此\(x_0\theta_0=\theta_0\)是截距。\(\theta\)和\(x\)都是向量,\(n\)是输入值的数量(不包括\(x_0\))
为了学习参数\(\theta\),我们定义损失函数:
\[J(\theta)=\frac{1}{2}\sum_{i=1}^m (h_{\theta}(x^{(i)})-y^{(i)})^2\]
上式产生一个普通最小二乘法回归模型。
1 LMS(least mean squares)算法
为了选择一个\(\theta\)来使\(J(\theta)\)最小化,先随机对\(\theta\)设置随机值,然后使用一个搜索算法来不断更新\(\theta\)以使\(\theta\)收敛到希望达到的最小化\(J(\theta)\)的值。这里用梯度下降算法,首先初始化\(\theta\),然后不断执行更新:
\[\theta_j:=\theta_j-\alpha\frac{\partial}{\partial \theta_j}J(\theta)\]
\(\alpha\)是学习率(learning rate)。上式同时对所有的\(j = (0,\dots,n)\)值执行。
首先求一个样本\((x,y)\)的偏导数,后面再求总和:
\[\begin{align} \frac{\partial}{\partial \theta_j}J(\theta)&=\frac{\partial}{\partial \theta_j}\frac{1}{2}(h_{\theta}(x)-y)^2\\&=2*\frac{1}{2}(h_{\theta}(x)-y)*\frac{\partial}{\partial \theta_j}(h_{\theta}(x)-y)\\&=(h_{\theta}(x)-y)*\frac{\partial}{\partial \theta_j}\left(\sum_{i=0}^n \theta_ix_i-y\right)\\&=(h_{\theta}(x)-y)x_j\\\end{align}\]
对于单个样本,更新规则(LMS更新规则或Widrow-Hoff学习规则):
\[\theta_j:=\theta_j+\alpha\left(y^{(i)}-h_{\theta}(x^{(i)})\right)x_j^{(i)}\]
上式中更新规则与\((y_{(i)}-h_{\theta(x_{(i)})})\)误差项成正比,如果预测结果与输出值相差小,则\(\theta\)变化小;反之,则变化大。
批量梯度下降:
对于所有的\(\theta\)值重复计算直至收敛\(\{\)
\[\theta_j:=\theta_j+\alpha \begin{matrix} \sum_{i=1}^m (y_{(i)}-h_{\theta}(x^{(i)}))x_j^{(i)} \end{matrix}\]
\(\}\)
梯度下载的过程
计算出\(\theta_1\)和\(\theta_2\)后,代入\(h_{\theta}(x)\)中作为\(x\)的函数,绘制的图如下:
房屋面积房价图
随机梯度下降(增量梯度下降):
\[\begin{align}
Loop \{ \\& for\;i=1\;to\;m \{ \\&& \theta_j:=\theta_j+\alpha(y_{(i)}-h_{\theta}(x^{(i)}))x_j^{(i)}&(for every j) \\&\} \\\}
\\\end{align}\]
每次只对一个样本进行更新。
随机梯度下降通常比批量梯度下降要好,因为批量梯度下降是每次更新整个训练集,十分耗时。
2 正态方程
梯度下降是最小化\(J\)的方法之一,除此之外,正态方程也能最小化\(J\)。通过对\(\theta_j\)求导,然后让它等于0,以使得\(J\)最小化。
2.1矩阵导数
函数\(f\):\(\mathbb{R}^{m\times n} \mapsto \mathbb{R}\)映射,表示从\((m,n)\)矩阵到一个实数的函数。我们定义函数\(f\)对\(A\)求导:
\[\nabla_Af(A) = \begin{bmatrix}
\frac{\partial f}{\partial A_{11}} & \dots & \frac{\partial f}{\partial A_{1n}} \\vdots & \ddots & \vdots \\frac{\partial f}{\partial A_{m1}} & \dots & \frac{\partial f}{\partial A_{mn}} \\end{bmatrix}\]
\(\nabla_Af(A)\)是一个\((m,n)\)的矩阵,每个元素是\(\frac{\partial f}{\partial A_{ij}}\),比如,如果
\(A=\begin{bmatrix} A_{11}&A_{12}\\ A_{21}&A_{22}\\ \end{bmatrix}\)是一个\(2\times 2\)矩阵。函数$f:\mathbb{R}^{2 \times 2} \mapsto \mathbb{R} $:
\[f(A) = \frac{3}{2}A_{11}+5A_{12}^2+A_{21}A_{22}\]
因此,函数\(f\)对\(A\)求导:
\[\nabla_Af(A) = \begin{bmatrix}
\frac{3}{2}&10A_{12}\A_{22}&A_{21}\\end{bmatrix}\]
迹运算
对于一个\(n\times n\)的矩阵求迹,公式:
\[trA=\sum_{i=1}^n A_{ii}\]
如果\(a\)是一个实数(例如一个\(1\times 1\)的矩阵),那么\(tr\,a = a\)。
对于两个矩阵\(A\)和\(B\),迹运算有:
\[trAB=trBA\]
多个矩阵:
\[trABC=trCAB=trBCA\]
\[trABCD=trDABC=trCDAB=trBCDA\]
对于两个相等方阵\(A\)和\(B\),还有一个实数\(A\),有公式:
\[trA=trA^T\]
\[tr(A+B)=trA+trB\]
\[traA=atrA\]
矩阵导数公式:
\[\nabla_A trAB = B^T\qquad \qquad \qquad \qquad(1)\]
\[\nabla_{A^T} f(A) = (\nabla_Af(A))^T \qquad \qquad \qquad(2)\]
\[\nabla_A trABA^TC = CAB + C^TAB^T \qquad \qquad \qquad(3)\]
\[\nabla_A |A| = |A|(A^{-1})^T \qquad \qquad \qquad(4)\]
令\(A\in \mathbb{R}^{n\times m}\),\(B\in \mathbb{R}^{m\times n}\)求证公式(1)\(\nabla_A trAB = B^T\):
\[A=\begin{bmatrix}
A_{11} & \dots & A_{1m}\\vdots & \ddots & \vdots\A_{n1} & \dots & A_{nm}
\end{bmatrix}\]
\[B=\begin{bmatrix}
B_{11} & \dots & B_{1n}\\vdots & \ddots & \vdots\B_{m1} & \dots & B_{mn}
\end{bmatrix}\]
\[\begin{align}
\nabla_A trAB&= \nabla_A tr\left(\begin{bmatrix}
A_{11} & \dots & A_{1m}\\vdots & \ddots & \vdots\A_{n1} & \dots & A_{nm}
\end{bmatrix}
\times
\begin{bmatrix}
B_{11} & \dots & B_{1n}\\vdots & \ddots & \vdots\B_{m1} & \dots & B_{mn}
\end{bmatrix}\right)\&=\nabla_A tr\left(\begin{bmatrix}
A_{11}B_{11}+A{12}B_{21}+\dots+A_{1m}B_{m1}&\dots&A_{11}B_{1k}+A_{12}B_{2k}+\dots+A_{1m}B_{mk}&\dots&A_{11}B_{1n}+A{12}B_{2n}+\dots+A_{1m}B_{mn}\\vdots&\vdots&\vdots&\vdots&\vdots\A_{k1}B_{11}+A{k2}B_{21}+\dots+A_{km}B_{m1}&\dots&A_{k1}B_{1k}+A_{k2}B_{2k}+\dots+A_{km}B_{mk}&\dots&A_{k1}B_{1n}+A{k2}B_{2n}+\dots+A_{km}B_{mn}\\vdots&\vdots&\vdots&\vdots&\vdots\A_{n1}B_{11}+A{n2}B_{21}+\dots+A_{nm}B_{m1}&\dots&A_{n1}B_{1k}+A_{n2}B_{2k}+\dots+A_{nm}B_{mk}&\dots&A_{n1}B_{1n}+A{n2}B_{2n}+\dots+A_{nm}B_{mn}
\end{bmatrix}\right)\&=\nabla_A \left(A_{11}B_{11}+A{12}B_{21}+\dots+A_{1m}B_{m1}+A_{k1}B_{1k}+A_{k2}B_{2k}+\dots+A_{km}B_{mk}+A_{n1}B_{1n}+A{n2}B_{2n}+\dots+A_{nm}B_{mn}\right)\&=\begin{bmatrix}
B_{11}&\dots&b_{m1}\\vdots&\ddots&\vdots\B_{1n}&\dots&B_{mn}
\end{bmatrix}\&=B^T
\\\end{align}\]
方程(4)可以利用矩阵逆的伴随表示来得到。
2.2 最小二乘回归
获取一个训练集,定义决策矩阵\(X\)是\((m\times n)\)(如果包含截距项,则是\((m\times n+1)\)):
\[X=\begin{bmatrix}
—(x^{(1)})^T—\—(x^{(2)})^T—\—\vdots—\—(x^{(m)})^T—
\end{bmatrix}\]
令\(\overrightarrow y\)作为一个m维向量,包含训练集的所有目标值。
\[\overrightarrow y=\begin{bmatrix}
—(y^{(1)})—\—(y^{(2)})—\—\vdots—\—(y^{(m)})—
\end{bmatrix}\]
因为\(h_{\theta}(x^{(i)})=(x^{(i)})^T\theta\),\(\theta\)是一个\((n\times 1)\)向量,所以有:
\[\begin{align}
X\theta-\overrightarrow y &=
\begin{bmatrix}
—(x^{(1)})^T\theta—\—(x^{(2)})^T\theta—\—\vdots—\—(x^{(m)})^T\theta—
\end{bmatrix} -
\begin{bmatrix}
—(y^{(1)})—\—(y^{(2)})—\—\vdots—\—(y^{(m)})—
\end{bmatrix}\&=\begin{bmatrix}
h_{\theta}(x^{(1)})-(y^{(1)})\h_{\theta}(x^{(2)})-(y^{(2)})\\vdots\h_{\theta}(x^{(m)})-y^{(m)})
\end{bmatrix}
\\\end{align}\]
对于一个向量\(z\),我们有\(z^Tz=\begin{matrix} \sum_i z_i^2 \end{matrix}\):
\[\begin{align}
\frac{1}{2}(X\theta-\overrightarrow y)^T(X\theta-\overrightarrow y)&=\frac{1}{2} \sum_{i=1}^m (h_{\theta}(x^{(i)})-y^{(i)})^2
\\&=J(\theta)
\\\end{align}\]
在对\(\theta\)求导前,首先根据方程(2)和方程(3),得:
\[\nabla_{A^T}trABA^TC = B^TA^TC^T + BA^TC\qquad \qquad \qquad \qquad(5)\]
因此:
\[\begin{align} \nabla_{\theta}J(\theta)
&=\nabla_{\theta}\frac{1}{2}(X\theta-\overrightarrow y)^T(X\theta-\overrightarrow y)\&=\frac{1}{2}\nabla_{\theta}(\theta^TX^TX\theta-\theta^TX^T\overrightarrow y-\overrightarrow y^TX\theta+\overrightarrow y^T\overrightarrow y)\&=\frac{1}{2}\nabla_{\theta}tr(\theta^TX^TX\theta-\theta^TX^T\overrightarrow y-\overrightarrow y^TX\theta+\overrightarrow y^T\overrightarrow y)\&=\frac{1}{2}\nabla_{\theta}(tr\theta^TX^TX\theta-2tr\overrightarrow y^TX\theta)\&=\frac{1}{2}(X^TX\theta+X^TX\theta-2X^T\overrightarrow y)\&=X^TX\theta-X^T\overrightarrow y
\end{align}\]
在第三步,因为\(\theta=(n\times 1),X=(m\times n)\),所以\(\theta^TX^TX\theta-\theta^TX^T\overrightarrow y-\overrightarrow y^TX\theta+\overrightarrow y^T\overrightarrow y\)计算后得出是一个\((1\times 1)\)矩阵,即一个实数,根据\(tr\,a = a\)可推导出第2步和第3步。第5步用方程(5),通过使\(A^T=\theta,B=B^T=X^TX和C=I还有方程(1)\)得出。要使\(J\)最小化,则令\(\nabla_{\theta}J(\theta)\)为0,得出:
\[X^TX\theta=X^T\overrightarrow y\]
所以,要使\(J\)最小化,则需要令:
\[\theta=(X^TX)^{-1}X^T\overrightarrow y\]
3 概率解释
为什么在处理一个回归问题的时候可以用线性回归,特别是为什么可以用最小二乘法来计算损失函数\(J\)。
现在,让我们通过下面方程来假设输出变量和输入之间的关系:
\[y^{(i)}=\theta^Tx^{(i)}+\epsilon^{(i)}\]
在这里\(\epsilon^{(i)}\)是误差项,代表在建模时没有考虑到的因素,或者是随机噪声。根据高斯分布(Gaussian distribution),现在假设\(\epsilon^{(i)}\)是独立同分布(IID,independently and indentically distributed),其中使高斯分布的均值\(\mu\)为0,方差为\(\sigma^2\),即\(\epsilon^{(i)}\in \mathcal{N}(0,\sigma^2)\),因此,\(\epsilon^{(i)}\)的密度是:
(\(\epsilon^{(i)}\)之所以假设为高斯分布是因为根据中心极限定理,大量相互独立的变量之和是符合正态分布的。)
\[p(\epsilon^{(i)})=\frac{1}{\sqrt{2\pi}\sigma}exp\left(-\frac{(\epsilon^{(i)})^2}{2\sigma^2}\right)\]
即给定\(x^{(i)}\)和参数\(\theta\)时,函数值应服从高斯分布:
\[p(y^{(i)}|x^{(i)};\theta)=\frac{1}{\sqrt{2\pi}\sigma}exp\left(-\frac{(y^{(i)}-\theta^Tx^{(i)})^2}{2\sigma^2}\right)\]
\(p(y^{(i)}|x^{(i)};\theta)\)是给定\(\theta\)和\(x^{(i)}\)的\(y^{(i)}\)的分布,其中\(\theta\)不属于条件,不是一个随机变量。
\(y^{(i)}\)的分布表示:\(y^{(i)}|x^{(i)};\theta \sim \mathcal{N}(\theta^Tx^{(i)},\sigma^2)\)
上面是一个样本的分布方程,现在给写一个\(X\)和\(\theta\),得到预测值\(\overrightarrow y\)的函数,其中\(\theta\)是定值,该方程也称为似然函数:
\[L(\theta)=L(\theta;X,\overrightarrow y)=p(\overrightarrow y|X;\theta)\]
注意,上式是基于\(\epsilon^{(i)}\)的独立性假设,方程也可以表示:
\[\begin{align}L(\theta)
&=\coprod_{i=1}^m p(y^{(i)}|x^{(i)};\theta)\&=\coprod_{i=1}^m \frac{1}{\sqrt{2\pi}\sigma}exp\big(-\frac{(y^{(i)}-\theta^Tx^{(i)})^2}{2\sigma^2}\big)\\end{align}\]
现在,为了找出参数\(\theta\)的最优解,通过极大似然来选择出使\(L(\theta)\)最大化的\(\theta\)值。首先,用对数似然函数代替似然函数
\[\begin{align}\ell(\theta)
&=logL(\theta)\&=log\coprod_{i=1}^m \frac{1}{\sqrt{2\pi}\sigma}exp\big(-\frac{(y^{(i)}-\theta^Tx^{(i)})^2}{2\sigma^2}\big)\&=\sum_{i=1}^m log\frac{1}{\sqrt{2\pi}\sigma}exp\big(-\frac{(y^{(i)}-\theta^Tx^{(i)})^2}{2\sigma^2}\big)\&=mlog\frac{1}{\sqrt{2\pi}\sigma}-\frac{1}{\sigma^2}*\frac{1}{2}\sum_{i=1}^m (y^{(i)}-\theta^Tx^{(i)})^2
\end{align}\]
要极大化\(\ell(\theta)\),则需要极小化
\[\frac{1}{2}\sum_{i=1}^m (y^{(i)}-\theta^Tx^{(i)})^2\]
这就是最小二乘损失函数\(J(\theta)\)。
4 局部加权线性回归
对于一个从\(x\in \mathbb{R}\)预测\(y\)的问题,下面左图中,使用了\(y=\theta_0+\theta_1x\)来匹配数据集。然而实际上,图中的数据并不是一条直线。
现在如果添加多一个特征\(x^2\),即\(y=\theta_0+\theta_1x+\theta_2x^2\),结果能够更好的匹配数据,然而,如果添加过多的特征,如右图所示,虽然通过了数据集的每一个点,然而这并不是十分好的结果。
对于左图所示的情况,函数明显没有很好地描述数据,这样的情况称为欠拟合;而右图的情况被称为过拟合
因此,特征的选择对于确保学习算法的良好性能很有帮助。
局部加权线性回归(LWR)能够使特性的选择对于算法来说不那么重要。
一般的线性回归算法,为了获取预测值,需要:
1,找到使\(\sum_{i=1} (y^{(i)}-\theta^Tx^{(i)})^2\)最小化的\(\theta\)
2, 输出\(\theta^Tx\)
局部加权线性回归算法:
1,找到使\(\sum_{i=1} w^{(i)}(y^{(i)}-\theta^Tx^{(i)})^2\)最小化的\(\theta\)
2, 输出\(\theta^Tx\)
其中\(w^{(i)}\)是一个非负的权重值。
\[w^{(i)}=exp\big(-\frac{(x^{(i)}-x)^2}{2\tau^2}\big)\]
\(\tau\)参数控制了权值变化的速率,
当\(|x^{(i)}-x|\)很小时,\(w^{(i)}\)接近1,如果\(|x^{(i)}-x|\)很大,\(w^{(i)}\)接近0。其中\(x\)是我们需要评估的点。因此,选择\(\theta\)时对于离\(x\)近的训练样本有高的权重,而对于与训练样本距离大的有小的权重。这样就达到了局部加权的目的。
局部加权线性回归属于非参数学习算法,而之前的线性回归算法属于参数学习算法。
线性回归算法有固定的参数\(\theta\),一旦确定了\(\theta\)值后,我们不再需要保留训练数据,以对新的特征值进行预测。
而局部加权线性回归算法需要保留整个训练集以便计算\(w^{(i)}\)。
原文地址:https://www.cnblogs.com/evenelina/p/8427144.html