机器学习复习

L p L_p Lp范数的概念、公式、计算方式

所谓范数即是抽象之长度,通常意义上满足长度的三种性质:非负性、齐次性和三角不等式。

L p = ∥ x ∥ p = ( ∑ i = 1 n ∣ x i ∣ p ) 1 p L_p = \lVert x \rVert_p = (\sum^n_{i=1}\lvert x_i \rvert^p)^\frac{1}{p} Lp=xp=(i=1nxip)p1

x T x = ∥ x ∥ 2 2 → L 2 2 x^Tx = \lVert x \rVert_2^2 \rightarrow L_2^2 xTx=x22L22

x T w = w T x = ∑ i = 1 n w i x i x^Tw = w^Tx = \sum^n_{i=1}w_ix_i xTw=wTx=i=1nwixi

展开

L ( w ~ ) = ( X w ~ − y ) T ( X w ~ − y ) = ( ( X w ~ ) T − y T ) ( X w ~ − y ) = ( X w ~ ) T X w ~ − ( X w ~ ) T y − y T X w ~ + y T y = ( w ~ X ) T X w ~ − y T ( X w ~ ) − y T X w ~ + y T y = w ~ T X T X w ~ − 2 y T X w ~ + y T y \begin{aligned}L(\tilde w) &= (X\tilde w - y)^T(X\tilde w - y) \\ &= ((X\tilde w)^T - y^T)(X\tilde w - y) \\ &= (X\tilde w)^TX\tilde w - (X\tilde w)^Ty - y^TX\tilde w + y^Ty \\ &= (\tilde w X)^TX\tilde w - y^T(X\tilde w) - y^TX\tilde w + y^Ty \\ & = \tilde w^TX^TX\tilde w - 2y^TX\tilde w + y^Ty \end{aligned} L(w~)=(Xw~y)T(Xw~y)=((Xw~)TyT)(Xw~y)=(Xw~)TXw~(Xw~)TyyTXw~+yTy=(w~X)TXw~yT(Xw~)yTXw~+yTy=w~TXTXw~2yTXw~+yTy

∂ L ( w ~ ) ∂ w ~ = ∂ ( w ~ T X T X w ~ − 2 y T X w ~ + y T y ) ∂ w ~ = ∂ ( w ~ T X T X w ~ − 2 ( X T y ) T w ~ + y T y ) ∂ w ~ = 2 X T X w ~ − 2 X T y = 2 X T ( X w ~ − y ) \begin{aligned} &\frac{\partial L(\tilde{w})}{\partial \tilde{w}} \\ &=\frac{\partial(\tilde w^TX^TX\tilde w - 2y^TX\tilde w + y^Ty)}{\partial \tilde w} \\ &=\frac{\partial(\tilde w^TX^TX\tilde w - 2(X^Ty)^T\tilde w + y^Ty)}{\partial \tilde w} \\ &=2X^TX\tilde w - 2X^Ty \\ &=2X^T(X\tilde w - y) \end{aligned} w~L(w~)=w~(w~TXTXw~2yTXw~+yTy)=w~(w~TXTXw~2(XTy)Tw~+yTy)=2XTXw~2XTy=2XT(Xw~y)

L ( w ~ ) = ∑ i = 1 n ( w ~ T x i − y i ) 2 = ∑ i = 1 n ( x i T w ~ − y i ) 2 L(\widetilde w) = \sum^n_{i=1}(\widetilde w^Tx_i - y_i)^2 = \sum^n_{i=1}(x_i^T\widetilde w - y_i)^2 L(w )=i=1n(w Txiyi)2=i=1n(xiTw yi)2

[ x 1 T w ~ − y x 2 T w ~ − y … x n T w ~ − y ] = [ x 1 T w ~ x 2 T w ~ … x n T w ~ ] − y = x w ~ − y \begin{bmatrix} x_1^T\widetilde w - y \\ x_2^T\widetilde w - y \\ \dots \\ x_n^T\widetilde w - y \end{bmatrix}= \begin{bmatrix} x_1^T\widetilde w \\ x_2^T\widetilde w \\ \dots \\ x_n^T\widetilde w \end{bmatrix}- y=x\widetilde w - y x1Tw yx2Tw yxnTw y = x1Tw x2Tw xnTw y=xw y

基本求导法则

∂ u v ∂ x = u ∂ u ∂ x + v ∂ u ∂ x \frac{\partial uv}{\partial x} = u\frac{\partial u}{\partial x} + v\frac{\partial u}{\partial x} xuv=uxu+vxu

链式法则

∂ f ( u ) ∂ x = ∂ f ( u ) ∂ u ⋅ u ∂ x \frac{\partial f(u)}{\partial x} = \frac{\partial f(u)}{\partial u} \cdot \frac{u}{\partial x} xf(u)=uf(u)xu

求导公式

∂ w T x ∂ x = ∂ x T w ∂ x = w \frac{\partial w^Tx}{\partial x} = \frac{\partial x^Tw}{\partial x} = w xwTx=xxTw=w

∂ x T x ∂ x = 2 x \frac{\partial x^Tx}{\partial x} = 2x xxTx=2x

∂ b T A x ∂ x = A b T \frac{\partial b^TAx}{\partial x} = Ab^T xbTAx=AbT

∂ x T A x ∂ x = ( A T + A ) x 对称矩阵 → 2 A x 必须 x T x 为满秩矩阵或正定矩阵 2 x T x w ~ = 2 x T y w ~ = ( x T x ) − 1 x T y \frac{\partial x^TAx}{\partial x} = (A^T + A)x \underrightarrow{\text{对称矩阵}} 2Ax \\ 必须x^Tx为满秩矩阵或正定矩阵 \\ 2x^Tx\tilde w = 2x^Ty \\ \tilde w = (x^Tx)^{-1}x^Ty xxTAx=(AT+A)x 对称矩阵2Ax必须xTx为满秩矩阵或正定矩阵2xTxw~=2xTyw~=(xTx)1xTy

过拟合与欠拟合

过拟合: 学习时选择的模型参数过多对已知数据预测的很好,但对其他未知数据预测很差的现象,模型可能只记住了训练数据,没有学习到数据特征.

欠拟合: 模型描述能力太差,以至于不能很好的学习数据中的规律.

防止过拟合手段:增加训练数据集,使用正则化约束,减少特征数,调整参数,降低模型复杂度

LASSO,加入 L 1 L_1 L1正则化

L ( W ) = ∑ i = 1 n ( y i − ( ∑ j = 1 m w j x i , j + b ) ) 2 + λ ∑ j = 1 m ∣ w j ∣ L(W) = \sum^n_{i=1}(y_i - (\sum^m_{j=1}w_jx_{i, j}+b))^2 + \lambda\sum^m_{j=1}\lvert w_j\rvert L(W)=i=1n(yi(j=1mwjxi,j+b))2+λj=1mwj

岭回归 损失函数

L ( w ) = ∑ i = 1 n ( y i − ( ∑ j = 1 m w j x i , j + w 0 ) ) 2 + λ ∑ j = 1 m w j L(w) = \sum^n_{i=1}(y_i - (\sum^m_{j=1}w_jx_{i, j} + w_0))^2 + \lambda\sum^m_{j=1}w_j L(w)=i=1n(yi(j=1mwjxi,j+w0))2+λj=1mwj

正则化的原理: 对原函数添加一个惩罚函数, 通过对原函数的相关系数进行一定的惩罚,使得函数逐渐逼近最优解,在不同情况下可以改变惩罚函数,使得模型训练出的数据更加稀疏.

1、 L 1 L_1 L1是模型参数的绝对值之和 L 2 L_2 L2是模型参数的平方之和的开方值

2、 L 1 L_1 L1会趋于产生少量特征,其他特征为0,因为最优值大概率出现在坐标轴上,使得某一维权重和为0,产生稀疏权重矩阵 L 2 L_2 L2会选择更多的特征,特征都接近于0,最优的参数值很小概率在坐标轴上,每一维的参数不会是0,最小化 ∥ w ∥ \lVert w\rVert w时,使得每一项都接近0.

线性回归模型三要素

w w w x x x的权值

一元 y = w x + b y = wx + b y=wx+b

多项式: y ^ i = b + ∑ j = 1 n w i x i , j \hat y_i = b + \sum^n_{j=1}w_ix_{i, j} y^i=b+j=1nwixi,j

x i , j x_{i,j} xi,j:第 i i i个数据的第 j j j个特征

w j w_j wj:第 j j j个特征的权重

损失函数

L ( w , b ) = ∑ i = 1 n ( f ( x i ) − y i ) 2 L(w, b) = \sum^n_{i=1}(f(x_i) - y_i)^2 L(w,b)=i=1n(f(xi)yi)2

线性回归的闭式解

W = ( X T X ) − 1 X T Y W = (X^TX)^{-1}X^TY W=(XTX)1XTY

一元线性回归闭式解,分别对 w w w, b b b求偏导

∂ ∑ i = 1 n ( ( w x i + b ) − y i ) 2 ∂ w = ∂ ∑ i = 1 n ( w x i ) 2 + ( b − y i ) 2 − 2 w x i ( b − y i ) ∂ w = 2 w x i 2 − x i ( b − y i ) = 2 ( ∑ i = 1 n w x i 2 − ∑ i = 1 n x i ( b − y i ) ) \begin{aligned} & \frac{\partial \sum^n_{i=1}((wx_i + b) - y_i)^2}{\partial w} \\&= \frac{\partial \sum^n_{i=1}(wx_i)^2 + (b - y_i)^2 - 2wx_i(b - y_i)}{\partial w}\\ &=2wx_i^2 - x_i(b - y_i) \\&=2(\sum^n_{i=1}wx_i^2-\sum^n_{i=1}x_i(b - y_i)) \end{aligned} wi=1n((wxi+b)yi)2=wi=1n(wxi)2+(byi)22wxi(byi)=2wxi2xi(byi)=2(i=1nwxi2i=1nxi(byi))

∂ ∑ i = 1 n ( b + w x i − y i ) 2 ∂ ( b ) = b 2 + 2 b ( w x i − y i ) + ( w x i − y i ) 2 = ∑ i = 1 n 2 b + ∑ i = 1 n 2 ( w x i − y i ) = 2 ( n b − ∑ i = 1 n ( w x i + y i ) ) \begin{aligned} & \frac{\partial\sum^n_{i=1}(b + wx_i - y_i)^2}{\partial(b)} \\ &= b^2 + 2b(wx_i - y_i) + (wx_i - y_i)^2 \\ &= \sum^n_{i=1} 2b + \sum^n_{i=1}2(wx_i - y_i) \\ &= 2(nb - \sum^n_{i=1}(wx_i + y_i)) \end{aligned} (b)i=1n(b+wxiyi)2=b2+2b(wxiyi)+(wxiyi)2=i=1n2b+i=1n2(wxiyi)=2(nbi=1n(wxi+yi))
令两者偏导为0
得:
w = ∑ i = 1 n y i ( x i − x ˉ ) ∑ i = 1 n x i 2 − 1 n ( ( ∑ i = 1 n x i ) 2 ) w = \frac{\sum^n_{i=1}y_i(x_i - \bar x)}{\sum^n_{i=1}x_i^2-\frac{1}{n}((\sum^n_{i=1}x_i)^2)} w=i=1nxi2n1((i=1nxi)2)i=1nyi(xixˉ)

b = 1 n ∑ i = 1 n ( y i − w x i ) b = \frac{1}{n}\sum^n_{i=1}(y_i - wx_i) b=n1i=1n(yiwxi)

线性回归评价指标

均方误差(MSE): 1 m ∑ i = 1 m ( y ( i ) − y ^ ( i ) ) 2 \frac{1}{m}\sum^{m}_{i=1}(y^{(i)} - \hat y^{(i)})^2 m1i=1m(y(i)y^(i))2

均方根误差(RMSE): M S E = 1 m ∑ i = 1 m ( y ( i ) − y ^ ( i ) ) 2 \sqrt{MSE} = \sqrt{\frac{1}{m}\sum^{m}_{i=1}(y^{(i)} - \hat y^{(i)})^2} MSE =m1i=1m(y(i)y^(i))2

平均绝对误差(MAE): 1 m ∑ i = 1 m ∣ ( y ( i ) − y ^ ( i ) ∣ \frac{1}{m}\sum^{m}_{i=1} \lvert (y^{(i)} - \hat y^{(i)} \rvert m1i=1m∣(y(i)y^(i)

但以上评价指标都无法消除量纲不一致而导致的误差值差别大的问题,最常用的指标是 R 2 R^2 R2,可以避免量纲不一致问题

R 2 : = 1 − ∑ i = 1 m ( y ( i ) − y ^ ( i ) ) 2 ∑ i = 1 m ( y ˉ − y ^ ( i ) ) 2 = 1 − 1 m ∑ i = 1 m ( y ( i ) − y ^ ( i ) ) 2 1 m ∑ i = 1 m ( y ˉ − y ^ ( i ) ) 2 = 1 − M S E V A R R^2: = 1-\frac{\sum^{m}_{i=1}(y^{(i)} - \hat y^{(i)})^2}{\sum^{m}_{i=1}(\bar y - \hat y^{(i)})^2} =1-\frac{\frac{1}{m}\sum^{m}_{i=1}(y^{(i)} - \hat y^{(i)})^2}{\frac{1}{m}\sum^{m}_{i=1}(\bar y - \hat y^{(i)})^2} = 1-\frac{MSE}{VAR} R2:=1i=1m(yˉy^(i))2i=1m(y(i)y^(i))2=1m1i=1m(yˉy^(i))2m1i=1m(y(i)y^(i))2=1VARMSE

我们可以把 R 2 R^2 R2理解为,回归模型可以成功解释的数据方差部分在数据固有方差中所占的比例, R 2 R^2 R2越接近1,表示可解释力度越大,模型拟合的效果越好。

logistic回归

s i g m o i d = 1 1 + e − z sigmoid = \frac{1}{1 + e^{-z}} sigmoid=1+ez1

s i g m o i d sigmoid sigmoid求导:
g ′ ( z ) = d 1 1 + e − z d z = − d ( 1 + e − z ) d z ( 1 + e − z ) 2 = 1 ( 1 + e − z ) 2 ( − d ( 1 ) d z − d ( e − z ) d z ) = 1 ( 1 + e − z ) 2 ( − 0 − d e − z d z ) = 1 ( 1 + e − z ) 2 ( − d e − z d ( − z ) d ( − z ) d z ) = 1 ( 1 + e − z ) 2 ( − e − z ( − 1 ) ) = 1 ( 1 + e − z ) 2 ( e − z ) = 1 ( 1 + e − z ) 2 . ( 1 − 1 1 + e − z ) = g ( z ) ( 1 − g ( z ) ) \begin{aligned}g^{'}(z) &= \frac{d\frac{1}{1+e^{-z}}}{dz} \\ &= \frac{-\frac{d(1+e^{-z})}{dz}}{(1+e^{-z})^2} \\ &= \frac{1}{(1+e^{-z})^2}(-\frac{d(1)}{dz} - \frac{d(e^{-z})}{dz})\\ &= \frac{1}{(1+e^{-z})^2}(-0 - \frac{de^{-z}}{dz})\\ &= \frac{1}{(1+e^{-z})^2}(-\frac{de^{-z}}{d(-z)}\frac{d(-z)}{dz})\\ &= \frac{1}{(1+e^{-z})^2}(-e^{-z}(-1)) \\ &= \frac{1}{(1+e^{-z})^2}(e^{-z}) \\ &= \frac{1}{(1+e^{-z})^2} .(1 - \frac{1}{1 + e^{-z}}) \\ &= g(z)(1 - g(z))\end{aligned} g(z)=dzd1+ez1=(1+ez)2dzd(1+ez)=(1+ez)21(dzd(1)dzd(ez))=(1+ez)21(0dzdez)=(1+ez)21(d(z)dezdzd(z))=(1+ez)21(ez(1))=(1+ez)21(ez)=(1+ez)21.(11+ez1)=g(z)(1g(z))

f ( x ) = d d x ( e x 1 + e x ) = d d x ( e x ) ( 1 + e x ) − d d x ( 1 + e x ) e x ( 1 + e x ) 2 = e x ( 1 + e x ) − e x e x ( 1 + e x ) 2 = e x ( 1 + e x ) 2 = f ( x ) ( 1 + e x ) = f ( x ) ( 1 − f ( x ) ) \begin{align*} f(x) &= \frac{d}{dx}(\frac{e^x}{1+e^x}) \\ &= \frac{\frac{d}{dx}(e^x)(1+e^x) - \frac{d}{dx}(1 + e^x)e^x}{(1 + e^x)^2} \\ &= \frac{e^x(1 + e^x) - e^xe^x}{(1+e^x)^2} \\ &= \frac{e^x}{(1 + e^x)^2} \\ &= \frac{f(x)}{(1 + e^x)} \\ &= f(x)(1-f(x)) \end{align*} f(x)=dxd(1+exex)=(1+ex)2dxd(ex)(1+ex)dxd(1+ex)ex=(1+ex)2ex(1+ex)exex=(1+ex)2ex=(1+ex)f(x)=f(x)(1f(x))

z = w T x + b z = w^Tx + b z=wTx+b

logistic回归是用线性回归模型的预测结果去逼近真实标记的对数几率

y ^ = 1 1 + e − ( w T x + b ) 1 y ^ = 1 + e − ( w T x + b ) 1 − y ^ y ^ = e − ( w T x + b ) − l n 1 − y ^ y ^ = ( w T x + b ) l n y ^ 1 − y ^ = w T x + b \begin{aligned} \hat y &= \frac{1}{1+e^{-(w^Tx + b)}} \\ \frac{1}{\hat y} &= 1+e^{-(w^Tx + b)} \\ \frac{1 - \hat y}{\hat y} &= e^{-(w^Tx + b)} \\- ln \frac{1 - \hat y}{\hat y} &= (w^Tx + b) \\ ln \frac{\hat y}{1 - \hat y} &= w^Tx + b \end{aligned} y^y^1y^1y^lny^1y^ln1y^y^=1+e(wTx+b)1=1+e(wTx+b)=e(wTx+b)=(wTx+b)=wTx+b

为了便于处理,令 w ˉ = < w ; b > \bar w = <w; b> wˉ=<w;b>依然令 w i , 0 = 1 w_{i,0} = 1 wi,0=1
y ^ = 1 1 + e − ( w ˉ T x ) 决策函数 \hat y = \frac{1}{1 + e^{-(\bar w^{T}x)}} \quad 决策函数 y^=1+e(wˉTx)1决策函数

损失平方和损失函数

L m s e ( w   = ∑ i = 1 n ( y i − 1 1 + e − ( w − T x ) ) ) L_{mse}(w^{~} = \sum^n_{i=1}(y_i - \frac{1}{1+e^{-(w^{-T}x)}})) Lmse(w =i=1n(yi1+e(wTx)1))

随机梯度

w i w_i wi的偏导

∂ ( y i − 1 1 + e w ~ T x ) 2 = ∂ ( y i − g ( w ~ T x ) ) 2 ∂ ( y i − g ( w ~ T x ) ) ⋅ ∂ ( y i − g ( w ~ T x ) ) ∂ ( w ~ T x ) ⋅ ∂ ( w ~ T x ) ∂ ( w ~ i ) = 2 ( y i − y ^ ) ⋅ ( 0 − g ( w ~ T x ) ( 1 − g ( w ~ T x ) ) ⋅ x i = 2 ( y ^ i − y i ) ⋅ y ^ i ( 1 − y ^ i ) ⋅ x i \begin{aligned} &\partial(y_i - \frac{1}{1 + e^{\tilde{w}^Tx}})^2 \\ &= \frac{\partial(y_i - g(\tilde{w}^Tx))^2}{\partial(y_i - g(\tilde{w}^Tx))} \cdot \frac{\partial(y_i - g(\tilde{w}^Tx))}{\partial(\tilde w^Tx)} \cdot \frac{\partial(\tilde{w}^Tx)}{\partial(\tilde w_i)} \\ &= 2(y_i - \hat y) \cdot (0 - g(\tilde w^Tx)(1 - g(\tilde{w}^Tx))\cdot x_i \\ &= 2(\hat y_i - y_i) \cdot \hat y_i(1 - \hat y_i) \cdot x_i \end{aligned} (yi1+ew~Tx1)2=(yig(w~Tx))(yig(w~Tx))2(w~Tx)(yig(w~Tx))(w~i)(w~Tx)=2(yiy^)(0g(w~Tx)(1g(w~Tx))xi=2(y^iyi)y^i(1y^i)xi

预测结果和真实值相差大,偏导数接近 0 0 0,意味着下降缓慢,很难找到全局最优

误差平方和可以作为 l o g i s t i c logistic logistic回归的损失函数,但不推荐,因为损失函数是非凸函数,容易陷入局部最优,且梯度下降难以训练,常远离最优解的地方,下降缓慢

0-1损失不能作为logistic回归模型的损失函数

真实结果只能取 0 , 1 {0, 1} 0,1,而 l o g i s t i c logistic logistic取不到 0 , 1 {0, 1} 0,1

logistic回归的二元交叉熵损失函数

L c e ( w ~ ) = − ∑ i = 1 n ( y i ⋅ l o g y ^ i + ( 1 − y i ) ⋅ l o g ( 1 − y ^ i ) ) ) = − ∑ i = 1 n ( y i ⋅ log ⁡ f ( x i ) + ( 1 − y i ) ⋅ l o g ( 1 − f ( x i ) ) ) \begin{aligned} L_{ce}(\tilde{w}) &= -\sum^n_{i=1}(y_i \cdot log \hat y_i + (1 - y_i) \cdot log(1 - \hat y_i))) \\ &= -\sum^n_{i=1}(y_i \cdot \log f(x_i) + (1 - y_i) \cdot log(1 - f(x_i))) \end{aligned} Lce(w~)=i=1n(yilogy^i+(1yi)log(1y^i)))=i=1n(yilogf(xi)+(1yi)log(1f(xi)))

可以通过极大似然估计得到相交结果

梯度下降的推导

迭代优化的更新公式: w ( t + 1 ) = w ( t ) + η ⋅ v η 步长 v 方向 w^{(t+1)} = w^{(t)} + \eta \cdot v \quad \eta步长 v方向 w(t+1)=w(t)+ηvη步长v方向

v = − ∇ L ( w ( t ) ) ∥ ∇ L ( w ( t ) ) ∥ w ( t + 1 ) = w ( t ) − η ⋅ ∇ L ( w ( t ) ) ∥ ∇ L ( w ( t ) ) ∥ 令 α = η ∥ ∇ L ( w ( t ) ) ∥ 学习率 w ( t + 1 ) = w ( t ) − α ∇ L ( w ( t ) ) ∇ L ( w ( t ) ) 步径 \begin{aligned} v &= -\frac{\nabla L(w^{(t)})}{\lVert \nabla L(w^{(t)}) \rVert} \\ w^{(t + 1)} &= w^{(t)} - \eta \cdot \frac{\nabla L(w^{(t)})}{\lVert \nabla L(w^{(t)}) \rVert} \\ 令 \alpha &= \frac{\eta}{\lVert \nabla L(w^{(t)}) \rVert} 学习率 \\ w^{(t + 1)} &= w^{(t)} - \alpha \nabla L(w^{(t)}) \quad \nabla L(w^{(t)}) 步径 \end{aligned} vw(t+1)αw(t+1)=L(w(t))∥L(w(t))=w(t)ηL(w(t))∥L(w(t))=L(w(t))∥η学习率=w(t)αL(w(t))L(w(t))步径

线性回归和logistic回归的区别

  1. 线性回归用来预测连续的变量(房价预测),逻辑回归用来预测离散的变量(分类,癌症预测)
  2. 线性回归是拟合函数,逻辑回归是预测函数
  3. 线性回归的参数计算方法是最小二乘法,逻辑回归的参数计算方法是似然估计的方法
  4. 线性回归要求变量服从正态分布,逻辑回归对变量分布没有要求。
  5. 线性回归要求因变量是连续性数值变量,逻辑回归要求因变量是分类型变量。
  6. 线性回归要求自变量和因变量呈线性关系,逻辑回归不要求自变量和因变量呈线性关系
  7. 逻辑回归是分析因变量取某个值的概率与自变量的关系,而线性回归是直接分析因变量与自变量的关系

BGD:批量梯度下降

更新参数形式 w ~ ( t + 1 ) = w ~ ( t ) − λ 1 n ( x T h ) \tilde{w}^{(t + 1)} = \tilde{w}^{(t)} - \lambda \frac{1}{n}(x^Th) w~(t+1)=w~(t)λn1(xTh)每一步迭代都要用到所有数据

优点:

  1. 一次迭代是对所有样本进行计算,此时利用矩阵进行操作,实现了并行。

  2. 由全数据集确定的方向能够更好地代表样本总体,从而更准确地朝向极值所在的方向。当目标函数为凸函数时,BGD一定能够得到全局最优。

缺点:

  1. 当样品数目n很大,计算量将非常大,导致训练速度缓慢,甚至无法容纳数据集.

  2. 它不能以在线的形式更新模型,不能在运行中加入样本

SGD:随机梯度下降

为解决BGD中训练样本过大导致迭代速度缓慢这一弊端

损失函数 L s g d ( w ~ ) = − ( y i l o g f w ~ ( x i ) + 1 − y i ) ⋅ l o g ( 1 − f w ~ ( x i ) ) L_{sgd}(\tilde w) = -(y_i logf_{\tilde{w}}(x_i) + 1 - y_i) \cdot log(1 - f_{\tilde w}(x_i)) Lsgd(w~)=(yilogfw~(xi)+1yi)log(1fw~(xi))

偏导数: ∂ ∂ w ~ j L s g d ( w ~ ) = ( f w ~ ( x i ) − y i ) ⋅ x i j \frac{\partial}{\partial \tilde w_j} L_{sgd}(\tilde w) = (f_{\tilde w}(x_i) - y_i) \cdot x_{ij} w~jLsgd(w~)=(fw~(xi)yi)xij

梯度: x i T h x_i^Th xiTh

更新参数形式:
w ˉ ( t + 1 ) = w ˉ ( t ) − α ( x i T h ) \bar w^{(t+1)} = \bar w^{(t)} - \alpha(x_i^T h) wˉ(t+1)=wˉ(t)α(xiTh)

针对非凸函数,BGD可能会落入局部最优,而SGD波动性强,可能使目标函数跳入另一个更小的极小值,由于其波动性强,其收敛速度慢

Mini-batch梯度下降

每一次迭代随机训练一个由数据样本索引组成的小批量B

损失函数: L m b g d ( w ~ ) = − 1 b ∑ i ∈ B ( y i l o g f w ~ ( x ) + ( 1 − y i ) l o g ( 1 − f w ~ ( x i ) ) ) L_{mbgd}(\tilde w) = -\frac{1}{b}\sum_{i \in B}(y_i log f_{\tilde w}(x) + (1 - y_i)log(1-f_{\tilde w}(x_i))) Lmbgd(w~)=b1iB(yilogfw~(x)+(1yi)log(1fw~(xi)))

更新向量方式: w ~ ( t + 1 ) = w ( t ) − 1 b ( x T h ) \tilde{w}^{(t+1)} = w^{(t)} - \frac{1}{b}(x^Th) w~(t+1)=w(t)b1(xTh)

mini batch不是每次迭代损失函数都会减少,所以看上去好像走了很多弯路

分类性能度量

混淆矩阵预测结果预测结果
真实值正例反例
正则TP(真正例,真阳性)FN(假反例,假阴性)
反例FP(假真例,假阳性)TN(真反例,真阴性)
  • 查准率 = 真阳性/(真阳性+假阳性)

P = T P T P + F P P = \frac{TP}{TP+FP} P=TP+FPTP

  • 查全率 = 真阳性/(真阳性+假阴性性)

R = T P T P + F N R = \frac{TP}{TP+FN} R=TP+FNTP

闵氏距离

d i , j = ( ∑ k = 1 m ∣ x k i − x k j ∣ p ) 1 p d_{i, j} = (\sum^m_{k=1} \lvert x_{ki} - x_{kj} \rvert^p)^{\frac{1}{p}} di,j=(k=1mxkixkjp)p1

p = 1 p = 1 p=1时,曼哈顿距离: d i , j = ( ∑ k = 1 m ∣ y k i − x k j ∣ ) d_{i, j} = (\sum^m_{k=1} \lvert y_{ki} - x_{kj} \rvert) di,j=(k=1mykixkj∣)

p = 2 p = 2 p=2时,欧氏距离: d i , j = ( ∑ k = 1 m ∣ x k i − x k j ∣ 2 ) 1 2 d_{i, j} = (\sum^m_{k=1} \lvert x_{ki} - x_{kj} \rvert^2)^{\frac{1}{2}} di,j=(k=1mxkixkj2)21

p = ∞ p = \infty p=时,切比雪夫距离;即取各个坐标差的绝对值最大值: d i , j = m a x k ( ∣ x k i − x k j ∣ ) d_{i, j} = max_k(\lvert x_{ki} - x_{kj} \rvert) di,j=maxk(∣xkixkj∣)

K-means

1.假设空间: 由输入空间到输出空间的映射集合
输入空间为数据集 D = x 1 , x 2 , … , x n D={x_1, x_2,\dots, x_n} D=x1,x2,,xn,输出空间类别集合为 c = c 1 , c 2 , … , c k c={c_1, c_2, \dots, c_k} c=c1,c2,,ck该映射是一个函数空间,每个函数为一种划分或聚类的关系

聚类算法的目标通常用一个目标函数来表示,采用欧几里得距离度量相似性的k-means算法,使用误差平方和作为度量聚类质量的目标函数,给定包含n个数据对象的数据集合 D = [ x 1 , x 2 , . . . , x 3 ] D=[x_1, x_2, ..., x_3] D=[x1,x2,...,x3]定义经由k-means算法进行聚类分析后产生的类别集合为 C = [ C 1 , C 2 , . . . , C k ] C=[C_1, C_2, ..., C_k] C=[C1,C2,...,Ck]

k-means三要素

距离度量、k值选取和分类决策规则

2.目标函数:判断中心点不再变化了

S S E ( C ) = ∑ K = 1 K ∑ x i ∈ C k ∥ x i − c k ∥ 2 SSE(C) = \sum^K_{K=1}\sum_{x_i \in C_k}\lVert x_i - c_k \rVert^2 SSE(C)=K=1KxiCkxick2

c k c_k ck是簇 C k C_k Ck的中心点,计算方法如下所示:

c k = ∑ x i ∈ C k x i ∣ C k ∣ c_k = \frac{\sum_{x_{i}\in C_k}x_i}{\lvert C_k\rvert} ck=CkxiCkxi

当近邻函数是欧几里得距离且目标是最小化SSE时,选取均值点作为 k − m e a n s k-means kmeans算法的簇中心点上可以从数学上推导出来的.

对于一维数据,SSE可以写成

S S E ( C ) = ∑ K = 1 K ∑ x i ∈ C k ( x i − c k ) 2 SSE(C) = \sum^K_{K=1}\sum_{x_i \in C_k}(x_i - c_k)^2 SSE(C)=K=1KxiCk(xick)2

对SSE求导,令导数值为0,并求解 c k c_k ck.

∂ ∂ c j S S E = ∂ ∂ c j ∑ k = 1 K ∑ x i ∈ C k ( c k − x i ) 2 ⇒ ∑ x i ∈ C j 2 ( c j − x i ) = 0 ⇒ c j = ∑ x i ∈ C j x i ∣ C j ∣ \begin{aligned} \frac{\partial}{\partial c_j}SSE &= \frac{\partial}{\partial c_j}\sum^K_{k=1}\sum_{x_i \in C_k}(c_k - x_i)^2 \Rightarrow \sum_{x_i \in C_j}2(c_j - x_i) = 0 \Rightarrow c_j = \frac{\sum_{x_i \in C_j}x_i}{\lvert C_j\rvert} \end{aligned} cjSSE=cjk=1KxiCk(ckxi)2xiCj2(cjxi)=0cj=CjxiCjxi

得:簇的最小化SSE的最佳中心就是簇中各点的均值

迭代最优算法 NP难问题

借由一些启发式的迭代算法问题将问题转化,通过不断迭代更新簇的构成和簇的中心点来进行最优化的求解

Lloyd算法

1.随机选取k个点作为初始的中心点

2.计算每个点与k个中心点的k个距离(假如有N个点,就有N*k个距离值)

3.分配剩下的点到距离其最近的中心点的类中,并重新计算每个类的中心点

4.重复步骤2和步骤3

5.直到达到收敛或者达到某个停止阈值(如最大计算时间)

Lloyd算法的缺点是,聚类产生的类别经常是不平衡的,就是说不同类中样本的数量差异很大。

Macqueen算法

1.选取头k个点作为K个类的中心点

2.选取下一不点计算与k个中心点的距离,选取距离最小的分配到该类中

3.更新该类的中心点

4.重复2,3直到所有的点分配完毕,达到收敛

MacQueen相对于Lloyd而言,总体的训练时间需要更久。

Hartigan-Wong算法

1.随机分配所有的点到k个类上,计算k个类的中心

2.随机选择一个点,把它移出所属类

3.重新计算有变化的类的中心

4.把移出的点重新分配到其距离最近的中心点的类上

5.循环所有的点,重复2,3,4

6.进行第二次循环,重复2,3,4,5

7.直到达到收敛或者某个停止阈值

Hartigan-Wong算法相对于Lloyd来说是一种在线更新的算法,一般来讲可以获得更低的代价函数值,但是同样地会更慢。Lloyd的批量更新算法速度更快,效率更高。

Kmeans++

逐个选取K个簇中心,离其他簇中心越远的越有可能成为下一个簇中心.

1.从数据集D中随机(均匀分布)选取一个样本点作为第一个初始聚类中心c;;

2.接着计算每个样本与当前已有聚类中心之间的最短距离,用D(x)表示;然后计算每个样本点被选为下一个聚类中心的概率P(x),最后选择最大概率值所对应的样本点作为下一个簇中心;

P ( x ) = D ( x ) 2 ∑ x ∈ D D ( x ) 2 P(x) = \frac{D(x)^2}{\sum_{x \in D}D(x)^2} P(x)=xDD(x)2D(x)2

3.重复第2步,直到选择出个聚类中心;

从公式也可以看成,距离现有簇中心越远的样本点,越可能被选为下一个簇中心。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值