机器学习常用算法快速推导(更新ing)

机器学习常用算法快速推导

先逼逼几句:

\quad 该模块会随着我学习的深入不断地增加完善,并且细化分类,但是因为是简略的推导,所以需要提前学习有关知识再来看才有用。
\quad 在入门机器学习算法时,想必会对算法的分类产生疑惑,为啥明明都是降维,有的是线性有的是核空间,有的是流形有的不是,这些都依据什么呢?笔者就叙述下自己的观点,也希望评论区能给予指正。

机器学习的分类

流形学习

\quad 在高维数据 X ∈ R m X \in \R^m XRm中,可能数据是由低维数据 Y ∈ R c Y \in \R^c YRc通过函数f变换而来的,即: X = f ( Y ) X=f(Y) X=f(Y),这样通过函数f进行变换升高维度,会使得数据具有流形特征,如果单纯依靠数据在原始空间的距离进行分类,就会导致数据的流形丢失,导致可能出现分类错误。
举个例子
\quad 选取 f ( x ) = ( x − 5 ) 2 − 5 f(x)=(x-5)^2-5 f(x)=(x5)25可以出现下面的数据:
{   1 , 2 , 3 , 5 , 6 , 7   } → { ( 1 , 1 ) , ( 2 , 4 ) , ( 3 , − 1 ) , ( 5 , − 5 ) , ( 6 , − 4 ) , ( 7 , − 1 ) } \{\ 1,2,3,5,6,7\ \}\rightarrow \{ (1,1), (2,4),(3,-1),(5,-5),(6,-4),(7,-1)\} { 1,2,3,5,6,7 }{(1,1),(2,4),(3,1),(5,5),(6,4),(7,1)}
\quad 假设我们已知类别为:[1,2,3],[5,6,7],很明显,这是依据x轴近邻关系来划分的。
\quad 那么若是使用二维的数据进行欧氏距离的测定来分类新的数据(3.5,-2.75)真实标签为:第一类。
\quad 可是因为前三近邻的是第一类,第二类,第二类,会发现该数据被预测为第二类了,这就分类错误了。因此流形学习是试图通过数据的真实标签与近邻情况,去预测函数f,然后用 f − 1 f^{-1} f1去降维,一次保留数据的流形结构。

线性降维

\quad 线性降维依赖于公式 Y = U T X Y=U^TX Y=UTX,使得数据通过投影矩阵U,将原始数据矩阵X投影到新空间中,然后进行预测。了解线性代数后你应该知道矩阵U实际上就是目标空间的投影轴的向量组成的,而矩阵乘法本身就是线性运算,因此投影是线性投影,所以该类型算法被称为线性降维。

核空间

\quad 核空间假设数据通过核函数投影到了高维(非线性)空间,然后给出该空间的性质(两个数据的内积),来替代常规运算中的向量的内积。这样描述十分抽象,但是后面我总结核空间算法后就能看懂这句话了。

线性降维

主成分分析(PCA)

介绍

\quad PCA是通过协方差矩阵引入约束条件:
1.投影轴相互正交( U T U = I U^TU=I UTU=I)
2.最大化数据在投影轴上的方差/散度(max t r ( U T X X T U ) tr(U^TXX^TU) tr(UTXXTU))。

\quad PCA的目的就是让数据重新投影在新的线性空间中,且每个轴上数据的投影都尽可能彼此远离。PCA不依赖数据的分类标签,是一种优秀的无监督学习算法。

推导

a r g   m a x   t r ( U T X X T U )   s . t .   U T U = I J ( U ) = t r ( U T X X T U ) − λ t r ( U T U − I ) δ J δ U = 2 X X T U − 2 λ U = 0 U 是 X X T 的前 c 大特征值对应的特征向量所构成的矩阵 arg \ max \ tr(U^TXX^TU) \ s.t. \ U^TU=I \\ J(U)=tr(U^TXX^TU)-\lambda tr(U^TU-I) \\ \frac{\delta J}{\delta U}=2XX^TU-2\lambda U=0 \\ U是XX^T的前c大特征值对应的特征向量所构成的矩阵 arg max tr(UTXXTU) s.t. UTU=IJ(U)=tr(UTXXTU)λtr(UTUI)δUδJ=2XXTU2λU=0UXXT的前c大特征值对应的特征向量所构成的矩阵

线性鉴别分析(LDA)

介绍

\quad LDA是通过散度矩阵进行约束:
1.最大化类间散度矩阵 S b S_b Sb
2.最小化类内散度矩阵 S w S_w Sw

\quad LDA是基于数据真实标签,通过将数据投影到新线性空间并使得数据同类之间距离尽可能近,异类之间尽可能远的算法。LDA是基础的监督式学习算法。

推导

m i n   t r ( U T S w U )   a n d max ⁡ t r ( U T S b U ) a r g   m a x   t r ( U T S b U )   s . t .   ( U T S w U ) = c o n s J ( U ) = t r ( U T S b U ) − λ ( t r ( U T S w U ) − 1 ) δ J δ U = 2 S b U − 2 λ S w U = 0 S w − 1 S b U = λ U U 是 S w − 1 S b 的前 c 大特征值对应的特征向量所构成的矩阵 min \ tr(U^TS_wU) \ and \max tr(U^TS_bU) \\ arg \ max \ tr(U^TS_bU) \ s.t. \ (U^TS_wU)=cons\\ J(U)=tr(U^TS_bU)-\lambda (tr(U^TS_wU)-1)\\ \frac{\delta J}{\delta U}=2S_bU-2\lambda S_wU=0\\ S_w^{-1}S_bU=\lambda U\\ U是S_w^{-1}S_b的前c大特征值对应的特征向量所构成的矩阵 min tr(UTSwU) andmaxtr(UTSbU)arg max tr(UTSbU) s.t. (UTSwU)=consJ(U)=tr(UTSbU)λ(tr(UTSwU)1)δUδJ=2SbU2λSwU=0Sw1SbU=λUUSw1Sb的前c大特征值对应的特征向量所构成的矩阵

线性回归(LR)

介绍

\quad 高中学的最小二乘法就是线性回归的一种,最小二乘法 ( y − f ( x ) ) 2 (y-f(x))^2 (yf(x))2来确定f,而线性回归将y,f,x都变成了矩阵形式: m i n   ∑ i = 1 n ( y i − U T x i ) T ( y i − U T x i ) min \ \sum_{i=1}^n(y_i-U^Tx_i)^T(y_i-U^Tx_i) min i=1n(yiUTxi)T(yiUTxi),有时候还会添加正则项防止过拟合,求解有两种方式:
1.梯度下降法。梯度下降法求解速度快,但是只能逼近最优解。
2.求导法。求导速度略慢,但是结果精确。

推导

1.求导法
a r g   m i n   ∑ i = 1 n ( y i − U T x i ) T ( y i − U T x i ) = t r ( ( Y − U T X ) T ( Y − U T X ) ) J ( U ) = t r ( ( Y − U T X ) T ( Y − U T X ) ) δ J δ U = 2 X X T U − 2 X Y T = 0 U = ( X X T ) − 1 X Y T arg \ min \ \sum_{i=1}^n(y_i-U^Tx_i)^T(y_i-U^Tx_i)=tr((Y-U^TX)^T(Y-U^TX))\\ J(U)= tr((Y-U^TX)^T(Y-U^TX))\\ \frac{\delta J}{\delta U}=2XX^TU-2XY^T=0\\ U=(XX^T)^{-1}XY^T arg min i=1n(yiUTxi)T(yiUTxi)=tr((YUTX)T(YUTX))J(U)=tr((YUTX)T(YUTX))δUδJ=2XXTU2XYT=0U=(XXT)1XYT
2.梯度下降法
U t + 1 = U t − a ∗ δ J δ U U t + 1 = U t − X ( X T U − Y T ) ∗ a U_{t+1}=U_{t}-a*\frac{\delta J}{\delta U}\\ \quad\\ U_{t+1}=U_{t}-X(X^TU-Y^T)*a Ut+1=UtaδUδJUt+1=UtX(XTUYT)a
由于步长a为常数时不好确定,因此令步长为变量。希望每次步进都在当前状态下使得预测值与实际值的距离最近,因此有约束条件:
m i n   t r ( ( Y − U t + 1 T X ) T ( Y − U t + 1 T X ) ) m i n   t r ( ( Y − ( U t − δ J δ U ∗ a ) T X ) T ( Y − ( U t − δ J δ U ∗ a ) T X ) ) min \ tr((Y-U_{t+1}^TX)^T(Y-U_{t+1}^TX))\\ min \ tr((Y-(U_t-\frac{\delta J}{\delta U}*a)^TX)^T(Y-(U_t-\frac{\delta J}{\delta U}*a)^TX)) min tr((YUt+1TX)T(YUt+1TX))min tr((Y(UtδUδJa)TX)T(Y(UtδUδJa)TX))
而常数是不能直接与矩阵进行运算的,且 t r ( a ∗ X ) = a ∗ t r ( X ) tr(a*X)=a*tr(X) tr(aX)=atr(X),令 J = t r ( ( Y − U t + 1 T X ) T ( Y − U t + 1 T X ) ) , P = δ J δ U J=tr((Y-U_{t+1}^TX)^T(Y-U_{t+1}^TX)),P=\frac{\delta J}{\delta U} J=tr((YUt+1TX)T(YUt+1TX)),P=δUδJ,对a进行求导:
δ J δ a = 2 a ∗ t r ( X T P P T X ) + t r ( P T X Y T − P T X X T U t ) = 0 2 a ∗ t r ( X T P P T X ) = t r ( P T X ( X T U t − Y T ) ) , P = 2 X ( X T U t − Y T ) 2 a = t r ( 1 2 P T P ) t r ( X T P P T X ) a = ∣ ∣ P ∣ ∣ 2 4 ∣ ∣ P T X ∣ ∣ 2 \frac{\delta J}{\delta a}=2a*tr(X^TPP^TX)+tr(P^TXY^T-P^TXX^TU_t)=0\\ 2a*tr(X^TPP^TX)=tr(P^TX(X^TU_t-Y^T)),\quad P=2X(X^TU_t-Y^T)\\\\ 2a=\frac{tr(\frac{1}{2}P^TP)}{tr(X^TPP^TX)}\\ a=\frac{|| P ||^2}{4|| P^TX ||^2} δaδJ=2atr(XTPPTX)+tr(PTXYTPTXXTUt)=02atr(XTPPTX)=tr(PTX(XTUtYT)),P=2X(XTUtYT)2a=tr(XTPPTX)tr(21PTP)a=4∣∣PTX2∣∣P2
带回迭代方程:
U t + 1 = U t − X ( X T U t − Y T ) ∣ ∣ P ∣ ∣ 2 2 ∣ ∣ P T X ∣ ∣ 2 U_{t+1}=U_t-X(X^TU_t-Y^T)\frac{|| P ||^2}{2|| P^TX ||^2} Ut+1=UtX(XTUtYT)2∣∣PTX2∣∣P2

流形降维

局部保留投影法(LPP)

介绍

\quad LPP算法是经典的流形学习算法,该算法旨在通过学习高维空间中数据的近邻关系,再低维空间中尽可能保留

推导

领域保持嵌入法(NPE)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值