机器学习算法总结, 本文将总结机器学习基本算法的目的,输入和输出,训练的参数,训练方法(误差函数的选择,调参方法)等等

机器学习算法总结

本文将总结机器学习基本算法的目的,输入和输出,训练的参数,训练方法(误差函数的选择,调参方法)等等

1. 线性回归

  1. 函数形式(训练目标):多元线性回归试图学得
    f ( x i ) = w T x + b    s t .    f ( x i ) = y i f(x_i)=w^Tx+b\:\:st.\:\:f(x_i) = y_i f(xi)=wTx+bst.f(xi)=yi

  2. 函数的好坏度量:
    L ( w , b ) = ( y − X w ^ ) T ( y − X w ^ ) L(w,b) = (\mathbf{y-X\hat{w}})^T(\mathbf{y-X\hat{w}}) L(w,b)=(yXw^)T(yXw^)
    对w_hat求导可得:
    ∂ E w ^ ∂ w ^ = 2 X T ( X w ^ − y ) \frac{\partial E_{\hat{w}}}{\partial \hat{w}} = 2\mathbf{X^T(X\hat{w}-y)} w^Ew^=2XT(Xw^y)
    上式得0可得w_hat最优解的闭式解(但是有可能参数过多,无法求出)

    或者使用梯度下降对参数进行调整,得:
    w i = w i − η ∑ n − ( y ^ n − f w , b ( x n ) ) x i n w_i = w_i - \eta\sum_{n}-(\hat{y}^n-f_{w,b}(x^n))x_i^n wi=wiηn(y^nfw,b(xn))xin

2. logistic回归

  1. 函数形式(训练目标):逻辑回归处理分类问题,如果结果大于0.5结果为类别1,否则为类别2
    f w , b ( x ) = σ ( ∑ i w i x i + b ) f_{w,b}(x) = \sigma(\sum_{i}w_ix_i+b) fw,b(x)=σ(iwixi+b)

  2. 函数的好坏度量:
    L ( w , b ) = f w , b ( x 1 ) f w , b ( x 2 ) ( 1 − f w , b ( x 3 ) ) . . . f w , b ( x N ) L(w,b) = f_{w,b}(x^1)f_{w,b}(x^2)(1-f_{w,b}(x^3))...f_{w,b}(x^N) L(w,b)=fw,b(x1)fw,b(x2)(1fw,b(x3))...fw,b(xN)
    找出最大化上述函数的w,b, 即得到最好的函数。最终化简结果为交叉熵, 即求下列函数右侧的最小值
    − l n L ( w , b ) = ∑ n − [ y ^ n l n f w , b ( x n ) + ( 1 − y ^ n ) l n ( 1 − f w , b ( x n ) ) ] -lnL(w,b) = \sum_{n}-[\hat{y}^{n}lnf_{w,b}(x^n)+(1-\hat{y}^n)ln(1-f_{w,b}(x^n))] lnL(w,b)=n[y^nlnfw,b(xn)+(1y^n)ln(1fw,b(xn))]
    计算这个式子对w偏微分,得到
    − l n L ( w , b ) ∂ w i = ∑ n − ( y ^ n − f w , b ( x n ) ) x i n \frac{-lnL(w,b)}{\partial w_{i}} = \sum_{n}-(\hat{y}^n-f_{w,b}(x^n))x_i^n wilnL(w,b)=n(y^nfw,b(xn))xin
    使用梯度下降法进行优化,直观就是观察预测值和实际值的差距,差距越大就更新越多
    w i = w i − η ∑ n − ( y ^ n − f w , b ( x n ) ) x i n w_i = w_i - \eta\sum_{n}-(\hat{y}^n-f_{w,b}(x^n))x_i^n wi=wiηn(y^nfw,b(xn))xin
    这个式子和线性回归得到的式子一样的,区别是预测值和实际值的范围不同,逻辑回归是0到1,线性回归是实数范围

Tips

  1. 梯度下降法需要函数是可微分的

  2. 回归任务的损失函数:最小二乘误差

  3. 最大似然和最小误差的关系:目的相同,都是找到最佳的函数

  4. MLE: Maximum likelihood Estimate, 极大似然估计
    B a y e s : P ( h ∣ D ) P ( D ∣ h ) ∗ P ( h ) P ( D ) Bayes : P(h|D) \frac{P(D|h)*P(h)}{P(D)} Bayes:P(hD)P(D)P(Dh)P(h)
    上式中,h为假设,即最终的函数形态,D为数据,左侧后验概率代表已知数据,假设为h的概率。右侧分子第一项代表已知假设,求得数据集是已知数据集的概率,即似然概率,p(h)则是先验概率。在线性回归中,可以通过高斯假设得出最大可能假设是最小化平方损失函数的假设。详细过程见 证明最小二乘假设的合理性

3.信息论基本概念

  1. 熵, X X X是离散型随机变量,取值空间为R。熵又称为自信息,可以视为描述一个变量的不确定性的值
    H ( X ) = − ∑ x ϵ R p ( x ) l o g 2 p ( x ) H(X) = -\sum_{x\epsilon R}p(x)log_2p(x) H(X)=xϵRp(x)log2p(x)

  2. 联合熵,X,Y是一对离散型随机变量,遵守 p ( x , y ) p(x,y) p(x,y)分布,联合熵定义为:
    H ( X , Y ) = − ∑ x ϵ X ∑ y ϵ Y p ( x , y ) l o g p ( x , y ) H(X,Y) = -\sum_{x\epsilon X}\sum_{y\epsilon Y}p(x,y)logp(x,y) H(X,Y)=xϵXyϵYp(x,y)logp(x,y)

  3. 给定随机变量X的情况下,Y的条件熵定义为:
    H ( Y ∣ X ) = ∑ x ϵ X p ( x ) H ( Y ∣ X = x ) H(Y|X) = \sum_{x\epsilon X}p(x)H(Y|X=x) H(YX)=xϵXp(x)H(YX=x)
    展开可得:
    H ( Y ∣ X ) = − ∑ x ϵ X ∑ y ϵ Y p ( x , y ) l o g p ( y ∣ x ) H(Y|X) =- \sum_{x\epsilon X}\sum_{y\epsilon Y}p(x,y)logp(y|x) H(YX)=xϵXyϵYp(x,y)logp(yx)

  4. 连锁法则

    将联合概率展开,可得熵的连锁法则
    H ( X , Y ) = H ( X ) + H ( Y ∣ X ) H(X,Y) = H(X) + H(Y|X) H(X,Y)=H(X)+H(YX)

  5. 互信息 I ( X , Y ) I(X,Y) I(X,Y)反映的是知道了Y的值以后X的不确定性的减少量
    I ( X , Y ) = H ( X ) − H ( X ∣ Y ) = ∑ x , y p ( x , y ) l o g p ( x , y ) p ( x ) p ( y ) I(X,Y) = H(X) - H(X|Y) = \sum_{x,y}p(x,y)log\frac{p(x,y)}{p(x)p(y)} I(X,Y)=H(X)H(XY)=x,yp(x,y)logp(x)p(y)p(x,y)
    互信息体现了两变量之间的依赖程度,如果互信息得0,两变量相互独立

  6. 相对熵,是衡量相同事件空间里两个概率分布相对差距的测度,两个概率分布p(x)和q(x)的相对熵定义为:
    D ( p ∣ ∣ q ) = ∑ x ϵ X p ( x ) l o g p ( x ) q ( x ) D(p||q) = \sum_{x\epsilon X}p(x)log\frac{p(x)}{q(x)} D(pq)=xϵXp(x)logq(x)p(x)

  7. 交叉熵用来衡量估计模型与真实概率分布之间的差异情况。
    H ( X , q ) = H ( X ) + D ( p ∣ ∣ q ) = − ∑ x p ( x ) l o g q ( x ) H(X,q) = H(X) + D(p||q) = -\sum_xp(x)logq(x) H(X,q)=H(X)+D(pq)=xp(x)logq(x)

4.支持向量机

  1. 函数形式(训练目标):

    线性向量机:
    f ( x ) = ∑ i w i x i + b = [ w b ] d o t [ x 1 ] f(x) = \sum_iw_ix_i + b = \begin{bmatrix} w \\ b \end{bmatrix}dot \begin{bmatrix} x \\ 1 \end{bmatrix} f(x)=iwixi+b=[wb]dot[x1]

  2. 损失函数:这里面的loss都是一个训练样例的loss, 累加之后才得到系统的所有loss
    h i n g e    l o s s : l ( f ( x n ) , y ^ n ) = m a x ( 0 , 1 − y ^ n ( f ( x n ) ∗ ( f ( x n ) ) ( 0 ) hinge\;loss :l(f(x^n),\hat{y}^n) = max(0,1-\hat{y}^n(f(x^n)*(f(x^n))(0) hingeloss:l(f(xn),y^n)=max(0,1y^n(f(xn)(f(xn))(0)

    S q u a r e    l o s s + S i g m o i d : l ( f ( x n ) , y ^ n ) = ( σ ( y ^ n f ( x ) ) − 1 ) 2    ( 1 ) Square\;loss + Sigmoid :l(f(x^n),\hat{y}^n)=(\sigma(\hat{y}^nf(x))-1)^2\;(1) Squareloss+Sigmoid:l(f(xn),y^n)=(σ(y^nf(x))1)2(1)

    S i g m o i d + c r o s s    e n t r o p y      l ( f ( x n ) , y ^ n ) = l n ( 1 + e x p ( − y ^ n f ( x ) ) )    ( 2 ) Sigmoid + cross\;entropy\;\;l(f(x^n),\hat{y}^n) = ln(1+exp(-\hat{y}^nf(x))) \; (2) Sigmoid+crossentropyl(f(xn),y^n)=ln(1+exp(y^nf(x)))(2)

    由(0)可推导出损失函数(cost_1为label为1的损失函数):
    { m a x ( 0 , − x + 1 ) ( y i = 1 ) m a x ( 0 , x − 1 ) ( y i = 0 ) \left\{\begin{matrix} max(0,-x+1) (y^{i}=1) \\ max(0,x-1) (y^{i}=0) \end{matrix}\right. {max(0,x+1)(yi=1)max(0,x1)(yi=0)

    J ( θ ) = C ∑ i = 1 m [ y ( i ) c o s t    t 1 ( θ T x ( i ) ) + ( 1 − y ( i ) ) c o s t    t 0 ( θ T x ( i ) ) ] + 1 2 ∑ j = 1 n θ j 2 J(\theta) = C\sum_{i=1}^{m}[y^{(i)}cost \;t_1(\theta^Tx^{(i)})+(1-y^{(i)})cost\;t_0(\theta^Tx^{(i)})]+\frac{1}{2}\sum_{j=1}^{n}\theta_j^2 J(θ)=Ci=1m[y(i)costt1(θTx(i))+(1y(i))costt0(θTx(i))]+21j=1nθj2
    这里的 C = m λ C = \frac{m}{\lambda} C=λm, C越大,SVM的决策边界margin也越大

    当C越大时,margin也越大,我们的目标是最小化代价函数 J ( θ ) J(\theta) J(θ), 所以C的乘积项
    ∑ i = 1 m [ y ( i ) c o s t    t i ( θ T x ( i ) ) + ( 1 − y ( i ) ) c o s t    t 0 ( θ T x ( i ) ) ] \sum_{i=1}^{m}[y^{(i)}cost \;t_i(\theta^Tx^{(i)})+(1-y^{(i)})cost\;t_0(\theta^Tx^{(i)})] i=1m[y(i)costti(θTx(i))+(1y(i))costt0(θTx(i))]
    要很小。最终近似为:
    J ( θ ) = C ∗ 0 + 1 2 ∑ j = 1 n θ j 2 = 1 2 ( θ 1 2 + θ 2 2 ) J(\theta) = C*0+\frac{1}{2}\sum_{j=1}^{n}\theta_j^2 = \frac{1}{2}(\theta_1^2+\theta_2^2) J(θ)=C0+21j=1nθj2=21(θ12+θ22)
    我们的目标是求使代价最小的 θ \theta θ

  3. 几何论证:对于任意一个点,根据分类条件得出以下限制:
    { θ T x ( i ) ⩾ 1 ( y i = 1 ) θ T x ( i ) ⩽ − 1 ( y i = 0 ) \left\{\begin{matrix} \theta^Tx^{(i)}\geqslant1 (y^{i}=1) \\ \theta^Tx^{(i)}\leqslant-1 (y^{i}=0) \end{matrix}\right. {θTx(i)1(yi=1)θTx(i)1(yi=0)
    将上述看为x和各个系数的点积,化为几何概念,可以得到:
    { p ( i ) ∣ ∣ θ ∣ ∣ ⩾ 1 ( y i = 1 ) p ( i ) ∣ ∣ θ ∣ ∣ ⩽ − 1 ( y i = 0 ) \left\{\begin{matrix} p^{(i)}||\theta||\geqslant1 (y^{i}=1) \\ p^{(i)}||\theta||\leqslant-1 (y^{i}=0) \end{matrix}\right. {p(i)θ1(yi=1)p(i)θ1(yi=0)
    θ \theta θ上的投影为p,则 p ∣ ∣ θ ∣ ∣ > = 1 p||\theta||>=1 pθ>=1或者 p ∣ ∣ θ ∣ ∣ < = − 1 p||\theta||<=-1 pθ<=1, 如果因为要求 θ \theta θ很小,所以p要求很大,最终求得的就是点在 θ \theta θ方向投影最小,即在与 θ \theta θ 垂直的决策边界上投影最大。

  4. RBF Kernel核函数

    RBF核函数,即高斯核函数,公式为:
    f ( x ) = e − ∣ ∣ x − u ∣ ∣ 2 2 σ 2 f(x) =e^{-\frac{||x-u||^2}{2\sigma^2}} f(x)=e2σ2xu2

  5. Sigmoid Kernel核函数
    K ( x , z ) = t a n h ( x . d o t    z ) K(x,z) = tanh(x .dot \;z) K(x,z)=tanh(x.dotz)

5.支持向量机(解释二)(其实二者的区别在于label为0和1还是-1和1)

如果是后者,则可以把代价函数合并,如下:

  1. 函数形式(训练目标):
    f ( x ) = ∑ i w i x i + b = [ w b ] d o t [ x 1 ] f(x) = \sum_iw_ix_i + b = \begin{bmatrix} w \\ b \end{bmatrix}dot \begin{bmatrix} x \\ 1 \end{bmatrix} f(x)=iwixi+b=[wb]dot[x1]

  2. 损失函数:
    L ( f ) = ∑ n ϵ n + λ ∣ ∣ w ∣ ∣ 2 L(f) = \sum_{n}\epsilon^n+\lambda||w||_2 L(f)=nϵn+λw2

    ϵ n = m a x ( 0 , 1 − y ^ n f ( x ) ) \epsilon^n = max(0,1-\hat{y}^nf(x)) ϵn=max(0,1y^nf(x))

    由上式
    ϵ n ≥ 0 ϵ n ≥ 1 − y ^ n f ( x ) → y ^ n f ( x ) ≥ 1 − ϵ n \epsilon^n \geq 0\\ \epsilon^n \geq1-\hat{y}^nf(x) \rightarrow\hat{y}^nf(x)\geq1-\epsilon^n ϵn0ϵn1y^nf(x)y^nf(x)1ϵn

  3. 优化方式:
    w ← w − η ∑ n c n ( w ) x n w \leftarrow w-\eta\sum_{n}c^n(w)x^n wwηncn(w)xn
    w初始化为0,解出的结果是w是x的线性组合, c n ( w ) c^n(w) cn(w)是f对loss function的偏微分
    w = ∑ n α n x n = X α w = \sum_{n}\alpha_nx^n = X\mathbf{\alpha} w=nαnxn=Xα
    w是nx1维, w T w^T wT是1xn维,x是nx1,X是n*N,所以
    f ( x ) = w T ∗ x → f ( x ) = α T X T x → ∑ n α n ( x n    d o t    x ) f(x) = w^T*x \rightarrow f(x) = \alpha^TX^Tx \rightarrow \sum_{n}\alpha_n(x^n\;dot\;x) f(x)=wTxf(x)=αTXTxnαn(xndotx)
    ( x n    d o t    x ) (x^n\;dot\;x) (xndotx)可以记为 K ( x n , x ) K(x^n,x) K(xn,x)

  4. 重写损失函数:
    L ( f ) = ∑ n l ( f ( x n ) , y ^ n ) = ∑ n l ( ∑ n ′ α n ′ K ( x n ′ , x n ) , y ^ n ) L(f) = \sum_{n}l(f(x^n),\hat{y}^n) = \sum_{n}l(\sum_{n'}\alpha_{n'}K(x^{n'},x^n),\hat{y}^n) L(f)=nl(f(xn),y^n)=nl(nαnK(xn,xn),y^n)

  5. 核函数Tips

    1. 核函数其实就是用来描述相似度的(向量的点积)
    2. 通过mercer’s 定理来检测所定核函数能否拆分成点积
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值