机器学习 |
您所在的位置:网站首页 › 最小二乘法表达式和推导过程 › 机器学习 |
回归是监督学习的一个重要问题,回归用于预测输入变量和输出变量之间的关系。回归模型是表示输入变量到输出变量之间映射的函数。回归问题的学习等价于函数拟合:使用一条函数曲线使其很好的拟合已知函数且很好的预测未知数据。回归问题按照输入变量的个数可以分为一元回归和多元回归;按照输入变量和输出变量之间关系的类型,可以分为线性回归和非线性回归。 再写一遍:一可以加深理解和记忆,二练习latex语法,三后面latex公式直接从这里套用。 latex符号大全 求和符号、上标、下标、左括号、右括号分数、偏导符号上横线\overline{x}, x ‾ \overline{x} x下划线\underline{x}, x ‾ \underline{x} x帽子\hat{x}, x ^ \hat{x} x^循环小数\dot{x}, x ˙ \dot{x} x˙ 一、 最小二乘法-公式推导 一元回归解答为什么求偏导 偏差平方和,恒大于等于0.同时可以知道,这玩意是不可能达到最大值的(只要足够偏离的话,那肯定是越来越大的),因此在偏导数为0时取到的是最小值咯~(取极值的条件嘛,偏导数为0) 对a求一阶偏导 ∂ D ∂ a = ∑ i = 1 n 2 ( y i − a − b x i ) ( − 1 ) = − 2 ∑ i = 1 n ( y i − a − b x i ) = − 2 ( ∑ i = 1 n y i − ∑ i = 1 n a − b ∑ i = 1 n x i ) = − 2 ( n y ˉ − n a − n b x ˉ ) \begin{aligned} \frac{\partial D}{\partial a} &=\sum_{i=1}^{n} 2\left(y_{i}-a-b x_{i}\right)(-1) \\ &=-2 \sum_{i=1}^{n}\left(y_{i}-a-b x_{i}\right) \\ &=-2\left(\sum_{i=1}^{n} y_{i}-\sum_{i=1}^{n} a-b \sum_{i=1}^{n} x_{i}\right) \\ &=-2(n \bar{y}-n a-n b \bar{x}) \end{aligned} ∂a∂D=i=1∑n2(yi−a−bxi)(−1)=−2i=1∑n(yi−a−bxi)=−2(i=1∑nyi−i=1∑na−bi=1∑nxi)=−2(nyˉ−na−nbxˉ) $$ \begin{aligned} \frac{\partial D}{\partial a} &=\sum_{i=1}^{n} 2\left(y_{i}-a-b x_{i}\right)(-1) \\ &=-2 \sum_{i=1}^{n}\left(y_{i}-a-b x_{i}\right) \\ &=-2\left(\sum_{i=1}^{n} y_{i}-\sum_{i=1}^{n} a-b \sum_{i=1}^{n} x_{i}\right) \\ &=2(n \bar{y}-n a-n b \bar{x}) \end{aligned} $$对b求一阶偏导 ∂ D ∂ b = ∑ i = 1 n 2 ( y i − a − b x i ) ( − x i ) = − 2 ∑ i = 1 n ( x i y i − a x i − b x i 2 ) = − 2 ( ∑ i = 1 n x i y i − a ∑ i = 1 n x i − b ∑ i = 1 n x i 2 ) = − 2 ( ∑ i = 1 n x i y i − a n x ‾ − b ∑ i = 1 n x i 2 ) \begin{aligned} \frac{\partial D}{\partial b} &=\sum_{i=1}^{n}2\left(y_i-a-bx_i\right)(-x_i)\\ &=-2\sum_{i=1}^{n}\left(x_iy_i-ax_i-bx_i^2\right)\\ &=-2\left(\sum_{i=1}^{n}x_iy_i-a\sum_{i=1}^{n}x_i-b\sum_{i=1}^{n}x_i^2\right)\\ &=-2\left(\sum_{i=1}^{n}x_iy_i-an\overline{x}-b\sum_{i=1}^{n}x_i^2\right) \end{aligned} ∂b∂D=i=1∑n2(yi−a−bxi)(−xi)=−2i=1∑n(xiyi−axi−bxi2)=−2(i=1∑nxiyi−ai=1∑nxi−bi=1∑nxi2)=−2(i=1∑nxiyi−anx−bi=1∑nxi2) $$ \begin{aligned} \frac{\partial D}{\partial b} &=\sum_{i=1}^{n}2\left(y_i-a-bx_i\right)(-x_i)\\ &=-2\sum_{i=1}^{n}\left(x_iy_i-ax_i-bx_i^2\right)\\ &=-2\left(\sum_{i=1}^{n}x_iy_i-a\sum_{i=1}^{n}x_i-b\sum_{i=1}^{n}x_i^2\right)\\ &=-2\left(\sum_{i=1}^{n}x_iy_i-an\overline{x}-b\sum_{i=1}^{n}x_i^2\right) \end{aligned} $$ 令偏导等于 0 − 2 ( n y ‾ − n a − n b x ‾ ) = 0 -2(n\overline{y}-na-nb\overline{x})=0 −2(ny−na−nbx)=0 得:= > => => a = y ‾ − b x ‾ (1) a=\overline{y}-b\overline{x} \tag{1} a=y−bx(1) $$ a=\overline{y}-b\overline{x} \tag{1} $$− 2 ( ∑ i = 1 n x i y i − a n x ‾ − b ∑ i = 1 n x i 2 ) = 0 -2\left(\sum_{i=1}^{n}x_iy_i-an\overline{x}-b\sum_{i=1}^{n}x_i^2 \right) = 0 −2(i=1∑nxiyi−anx−bi=1∑nxi2)=0,将公式(1)代入得: = > ∑ i = 1 n x i y i − n x ˉ y ˉ + n b x ˉ 2 − b ∑ i = 1 n x i 2 = 0 =>\sum_{i=1}^{n} x_{i} y_{i}-n \bar{x} \bar{y}+n b \bar{x}^{2}-b \sum_{i=1}^{n} x_{i}^{2}=0 =>i=1∑nxiyi−nxˉyˉ+nbxˉ2−bi=1∑nxi2=0 = > ∑ i = 1 n x i y i − n x ˉ y ˉ = b ( ∑ i = 1 n x i 2 − n x ˉ 2 ) =>\sum_{i=1}^{n} x_{i} y_{i}-n \bar{x} \bar{y}=b\left(\sum_{i=1}^{n} x_{i}^{2}-n \bar{x}^{2}\right) =>i=1∑nxiyi−nxˉyˉ=b(i=1∑nxi2−nxˉ2) = > b = ∑ i = 1 n x i y i − n x ˉ y ˉ ∑ i = 1 n x i 2 − n x ˉ 2 (2) =>b=\frac{\sum_{i=1}^{n} x_{i} y_{i}-n \bar{x} \bar{y}}{\sum_{i=1}^{n} x_{i}^{2}-n \bar{x}^{2}} \tag{2} =>b=∑i=1nxi2−nxˉ2∑i=1nxiyi−nxˉyˉ(2) $$ b=\frac{\sum_{i=1}^{n} x_{i} y_{i}-n \bar{x} \bar{y}}{\sum_{i=1}^{n} x_{i}^{2}-n \bar{x}^{2}} \tag{2} $$实在是,想偷个懒,还有这个斜杠删除线是怎么敲出来的 h θ ( x ) = θ 0 + θ 1 x 1 + θ 2 x 2 h_\theta(x)=\theta_0+\theta_1x_1+\theta_2x_2 hθ(x)=θ0+θ1x1+θ2x2 h θ ( x ) = ∑ i = 0 n θ i x i = θ T x h_\theta(x)=\sum_{i=0}^{n}\theta_ix_i=\theta^Tx hθ(x)=∑i=0nθixi=θTx θ 0 \theta_0 θ0是偏置项, x = ( x 0 , x 1 , x 2 . . . x n ) x=(x_0,x_1,x_2 ... x_n) x=(x0,x1,x2...xn),为了满足 θ 0 \theta_0 θ0起作用, x 0 = 1 x_0=1 x0=1(相当于1式中省略了)。
真实值与预测值之间一定存在误差(用 ε \varepsilon ε 来表示误差) $\varepsilon$对于每一个样本 y ( i ) = θ T x ( i ) + ε ( i ) y^{(i)}=\theta^Tx^{(i)}+\varepsilon^{(i)} y(i)=θTx(i)+ε(i): y ( i ) y^{(i)} y(i) 为真实值 θ T \theta^T θT 为参数矩阵 x ( i ) x^{(i)} x(i) 为第i条数据的属性矩阵 ε ( i ) \varepsilon^{(i)} ε(i) 为第i条数据所产生的误差,服从均值为 0 0 0 方差为 θ 2 \theta^2 θ2 的高斯分布(正太分布) $y^{(i)}=\theta^Tx^{(i)}+\varepsilon^{(i)}$高斯分布: 在高斯分布中, 越靠近0的位置, 产生的偏差越小, 出现的概率就越大; 越远离0的位置, 产生的偏差越 大, 出现的概率就越小。(最大似然估计就是从此处的概率得出, 此处越接近0, 概率p越大) 似然函数: 似然函数是根据样本去估计参数的值的一个函数, 即是由数据去计算参数的大小为多大时, 参数和我们的数据组合后更接近真实值。(总而言之, 似然函数就是为了求解参数的函数) 对数似然: 对数似然相对于似然函数的有点在于运算方便。似然函数求取的方法是迭乘, 数字较大时会很不方便;对数似然求取的方法是迭加。(相比于似然函数而言, 对数似然较为实用) 极大似然估计: 极大似然估计即 L ( θ ) L(θ) L(θ) 或 log L ( θ ) L(θ) L(θ) 越大越好, 那么下式越小越好,这就是最小二乘法的工作。 J ( θ ) = 1 2 ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 J(\theta)=\frac{1}{2}\sum_{i=1}^{m}(h_\theta(x^{(i)})-y^{(i)})^2 J(θ)=21i=1∑m(hθ(x(i))−y(i))2 矩阵转置公式: ( A T ) T = A (A^T)^T=A (AT)T=A ( A + B ) T = A T + B T (A+B)^T=A^T+B^T (A+B)T=AT+BT ( λ A ) T = λ A T (\lambda A)^T=\lambda A^T (λA)T=λAT ( A B ) T = B T A T (AB)^T=B^TA^T (AB)T=BTAT B T A T = ( A B ) T B^TA^T=(AB)^T BTAT=(AB)T矩阵(向量)求导公式: ∂ A x ⃗ ∂ x ⃗ = A T ∂ A x ⃗ ∂ x ⃗ T = A ∂ ( x ⃗ T A ) ∂ x ⃗ = A ∂ y ∂ x ⃗ = ∂ ( x ⃗ T A x ⃗ ) ∂ x ⃗ = ( A T + A ) x ⃗ = A x ⃗ + A T x ⃗ A = [ a 11 a 12 ⋯ a 1 n a 21 a 22 ⋯ a 2 n ⋮ ⋮ ⋱ ⋮ a m 1 a m 2 ⋯ a m n ] x ⃗ = ( x 1 x 2 ⋮ x n ) A ⋅ x ⃗ = ( a 11 x 1 + a 12 x 2 + ⋯ + a 1 n x n a 21 x 1 + a 22 x 2 + ⋯ + a 2 n x n ⋮ a m 1 x 1 + a m 2 x 2 + ⋯ + a m n x n ) ∂ y ⃗ ∂ x ⃗ = ∂ A x ⃗ ∂ x ⃗ = [ a 11 a 21 ⋯ a m 1 a 12 a 22 ⋯ a m 2 ⋮ ⋮ ⋱ ⋮ a 1 n a 2 n ⋯ a m n ] = A T \begin{aligned} \frac{\partial A\vec{x}}{\partial \vec{x}}&=A^T\\ \\ \frac{\partial A\vec{x}}{\partial \vec{x}^T}&=A\\ \\ \frac{\partial (\vec{x}^T A)}{\partial \vec{x}}&=A\\ \\ \frac{\partial y}{\partial \vec{x}}=\frac{\partial(\vec{x}^TA\vec{x})}{\partial\vec{x}}&=(A^T+A)\vec{x}=A\vec x+A^T \vec x \end{aligned} \\ A=\left[\begin{array}{cccc} a_{11} & a_{12} & \cdots & a_{1 n} \\ a_{21} & a_{22} & \cdots & a_{2 n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{m 1} & a_{m 2} & \cdots & a_{m n} \end{array}\right] \quad \vec{x}=\left(\begin{array}{c} x_{1} \\ x_{2} \\ \vdots \\ x_{n} \end{array}\right) \quad A \cdot \vec{x}=\left(\begin{array}{c} a_{11} x_{1}+a_{12} x_{2}+\cdots+a_{1 n} x_{n} \\ a_{21} x_{1}+a_{22} x_{2}+\cdots+a_{2 n} x_{n} \\ \vdots \\ \\ a_{m 1} x_{1}+a_{m 2} x_{2}+\cdots+a_{m n} x_{n} \end{array}\right)\\ \frac{\partial\vec{y}}{\partial\vec{x}}= \frac{\partial A\vec{x}}{\partial\vec{x}}= \left[\begin{array}{cccc} a_{11} & a_{21} & \cdots & a_{m1}\\ a_{12} & a_{22} & \cdots & a_{m2}\\ \vdots & \vdots & \ddots & \vdots\\ a_{1n} & a_{2n} & \cdots & a_{mn} \end{array}\right]= A^T ∂x ∂Ax ∂x T∂Ax ∂x ∂(x TA)∂x ∂y=∂x ∂(x TAx )=AT=A=A=(AT+A)x =Ax +ATx A=⎣⎢⎢⎢⎡a11a21⋮am1a12a22⋮am2⋯⋯⋱⋯a1na2n⋮amn⎦⎥⎥⎥⎤x =⎝⎜⎜⎜⎛x1x2⋮xn⎠⎟⎟⎟⎞A⋅x =⎝⎜⎜⎜⎜⎜⎛a11x1+a12x2+⋯+a1nxna21x1+a22x2+⋯+a2nxn⋮am1x1+am2x2+⋯+amnxn⎠⎟⎟⎟⎟⎟⎞∂x ∂y =∂x ∂Ax =⎣⎢⎢⎢⎡a11a12⋮a1na21a22⋮a2n⋯⋯⋱⋯am1am2⋮amn⎦⎥⎥⎥⎤=AT \begin{aligned} \frac{\partial A\vec{x}}{\partial \vec{x}}&=A^T\\ \\ \frac{\partial A\vec{x}}{\partial \vec{x}^T}&=A\\ \\ \frac{\partial (\vec{x}^T A)}{\partial \vec{x}}&=A\\ \\ \frac{\partial y}{\partial \vec{x}}=\frac{\partial(\vec{x}^T\cdot{A}\cdot\vec{x})}{\partial\vec{x}}&=(A^T+A)\cdot \vec{x} \end{aligned} \\ A=\left[\begin{array}{cccc} a_{11} & a_{12} & \cdots & a_{1 n} \\ a_{21} & a_{22} & \cdots & a_{2 n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{m 1} & a_{m 2} & \cdots & a_{m n} \end{array}\right] \quad \vec{x}=\left(\begin{array}{c} x_{1} \\ x_{2} \\ \vdots \\ x_{n} \end{array}\right) \quad A \cdot \vec{x}=\left(\begin{array}{c} a_{11} x_{1}+a_{12} x_{2}+\cdots+a_{1 n} x_{n} \\ a_{21} x_{1}+a_{22} x_{2}+\cdots+a_{2 n} x_{n} \\ \vdots \\ \\ a_{m 1} x_{1}+a_{m 2} x_{2}+\cdots+a_{m n} x_{n} \end{array}\right)\\ \frac{\partial\vec{y}}{\partial\vec{x}}= \frac{\partial A\vec{x}}{\partial\vec{x}}= \left[\begin{array}{cccc} a_{11} & a_{21} & \cdots & a_{m1}\\ a_{12} & a_{22} & \cdots & a_{m2}\\ \vdots & \vdots & \ddots & \vdots\\ a_{1n} & a_{2n} & \cdots & a_{mn} \end{array}\right]= A^Tlatex 矩阵写法: 0 1 1 0 ( 0 − i i 0 ) [ 0 − 1 1 0 ] { 1 0 0 − 1 } ∣ a b c d ∣ ∥ i 0 0 − i ∥ \begin{gathered} \begin{matrix} 0 & 1 \\ 1 & 0 \end{matrix} \quad \begin{pmatrix} 0 & -i \\ i & 0 \end{pmatrix} \quad \begin{bmatrix} 0 & -1 \\ 1 & 0 \end{bmatrix} \quad \begin{Bmatrix} 1 & 0 \\ 0 & -1 \end{Bmatrix} \quad \begin{vmatrix} a & b \\ c & d \end{vmatrix} \quad \begin{Vmatrix} i & 0 \\ 0 & -i \end{Vmatrix} \end{gathered} 0110(0i−i0)[01−10]{100−1}∣∣∣∣acbd∣∣∣∣∥∥∥∥i00−i∥∥∥∥ $$ \begin{gathered} \begin{matrix} 0 & 1 \\ 1 & 0 \end{matrix} \quad \begin{pmatrix} 0 & -i \\ i & 0 \end{pmatrix} \quad \begin{bmatrix} 0 & -1 \\ 1 & 0 \end{bmatrix} \quad \begin{Bmatrix} 1 & 0 \\ 0 & -1 \end{Bmatrix} \quad \begin{vmatrix} a & b \\ c & d \end{vmatrix} \quad \begin{Vmatrix} i & 0 \\ 0 & -i \end{Vmatrix} \end{gathered} $$矩阵式求解: 当我们的数据集含有m个样本,每个样本有n个特征时,数据x可以写成m*(n+1)维的矩阵(+1是添加一列1,用于与截断b相乘),θ则为n+1维的列向量(+1是截断b),y为m维的列向量代表每m个样本结果的预测值。则矩阵式的推导如下所示: J ( θ ) = 1 2 ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 = 1 2 ( X θ − y ) T ( X θ − y ) = 1 2 ( θ T X T − y T ) ( X θ − y ) = 1 2 ( θ T X T X θ − θ T X T y − y T X θ + y T y ) 求导: ∂ J ( θ ) ∂ θ = 1 2 ( 2 X T X θ − X T y − ( y T X ) T ) = X T X θ − X T y 偏导等于0: θ = ( X T X ) − 1 X T y \begin{aligned} J(\theta)&=\frac{1}{2}\sum_{i=1}^{m}(h_\theta(x^{(i)})-y^{(i)})^2\\ &=\frac{1}{2}(X\theta-y)^T(X\theta-y)\\ &=\frac{1}{2}(\theta^TX^T-y^T)(X\theta-y)\\ &=\frac{1}{2}(\theta^TX^TX\theta-\theta^TX^Ty-y^TX\theta+y^Ty)\\ \textbf{求导:}\\ \frac{\partial J(\theta)}{\partial\theta}&=\frac{1}{2}(2X^TX\theta-X^Ty-(y^TX)^T)\\ &=X^TX\theta-X^Ty\\ \textbf{偏导等于0:}\\ \theta&=(X^TX)^{-1}X^Ty \end{aligned} J(θ)求导:∂θ∂J(θ)偏导等于0:θ=21i=1∑m(hθ(x(i))−y(i))2=21(Xθ−y)T(Xθ−y)=21(θTXT−yT)(Xθ−y)=21(θTXTXθ−θTXTy−yTXθ+yTy)=21(2XTXθ−XTy−(yTX)T)=XTXθ−XTy=(XTX)−1XTy $$ \begin{aligned} J(\theta)&=\frac{1}{2}\sum_{i=1}^{m}(h_\theta(x^{(i)})-y^{(i)})^2\\ &=\frac{1}{2}(X\theta-y)^T(X\theta-y)\\ &=\frac{1}{2}(\theta^TX^T-y^T)(X\theta-y)\\ &=\frac{1}{2}(\theta^TX^TX\theta-\theta^TX^Ty-y^TX\theta+y^Ty)\\ \textbf{求导:}\\ \frac{\partial J(\theta)}{\partial\theta}&=\frac{1}{2}(2X^TX\theta-X^Ty-(y^TX)^T)\\ &=X^TX\theta-X^Ty\\ \textbf{偏导等于0:}\\ \theta&=(X^TX)^{-1}X^Ty \end{aligned} $$ 6. 梯度下降算法如果X的特征数 n n n 不是很大,通常情况下 X T X X^TX XTX是可以求逆的,但是如果 n n n 非常大, X T X X^TX XTX 不可逆,则用梯度下降法求解参数 θ θ θ。 在一元函数中叫做求导,在多元函数中就叫做求梯度。梯度下降是一个最优化算法,通俗的来讲也就是沿着梯度下降的方向来求出一个函数的极小值。比如一元函数中,加速度减少的方向,总会找到一个点使速度达到最小。通常情况下,数据不可能完全符合我们的要求,所以很难用矩阵去求解,所以机器学习就应该用学习的方法,因此我们采用梯度下降,不断迭代,沿着梯度下降的方向来移动,求出极小值。梯度下降法包括批量梯度下降法和随机梯度下降法(SGD)以及二者的结合mini批量下降法(通常与SGD认为是同一种,常用于深度学习中) 梯度下降一般过程初始化 θ \theta θ (随机) 求
J
(
θ
)
J(\theta)
J(θ) 对
θ
\theta
θ 的偏导 更新 θ \theta θ
批量梯度下降法 是求出整个数据集的梯度,再去更新θ,所以每次迭代都是在求全局最优解。 在机器学习中,有时为了防止模型太复杂容易过拟合,通常会在模型上加入正则项,抑制模型复杂度,防止过拟合。在线性回归中有两种常用的正则,一个是L1正则,一个是L2正则。 一般L2的效果更好一些。L1能够产生稀疏模型,能够帮助我们去除某些特征,因此可以用于特征选择。 加入 L1正则 的称为 Lasso回归: |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |