机器学习&深度学习 常用算法推导

本文详细介绍了机器学习和深度学习的基础知识及常用算法。从向量、信息量和熵开始,逐步深入到线性回归、逻辑回归和SVM的推导。在深度学习部分,探讨了通用的概念和公式,如最小二乘法、极大似然估计以及超平面的相关计算。整个文章旨在帮助读者理解并掌握这些关键算法的核心思想。
摘要由CSDN通过智能技术生成

基础

符号含义
C C C特征通道数(此处仅代表含义,不同地方的 C C C数值可能不同)
N N N样本数
  • 以下所有“向量”代表列向量
  • 每一个样本点 x x x都是一个向量,多个样本组成矩阵 X = [ x 0 , x 1 , . . . , x n ] X=[x_0, x_1,...,x_n] X=[x0,x1,...,xn]

向量

  • 向量的坐标代表向量在指定基下的投影: a = [ e 1 , e 2 , e 3 ] T [ a 1 , a 2 , a 3 ] a=[e_1,e_2,e_3]^T[a_1,a_2,a_3] a=[e1,e2,e3]T[a1,a2,a3]
  • 向量点积/内积/数量积: a ⋅ b = a T b = ∑ i C a i b i = ∣ a ∣ ∣ b ∣ c o s θ a·b =a^Tb=\sum^C_ia_ib_i=|a||b|cos\theta ab=aTb=iCaibi=abcosθ θ \theta θ a , b a,b a,b夹角
    • 内积代表一个向量在另一个向量上的投影
  • 向量 a a a的反对称矩阵 A A A a = [ a 1 a 2 a 3 ] , A = a ∧ = [ 0 − a 3 a 2 a 3 0 − a 1 − a 2 a 1 0 ] a=\left[ \begin{array}{c} a_1 \\ a_2 \\ a_3\end{array}\right],A=a^\wedge=\left[ \begin{array}{c} 0 & -a_3 & a_2 \\ a_3 & 0 & -a_1 \\ -a_2 & a_1 & 0 \end{array}\right] a=a1a2a3,A=a=0a3a2a30a1a2a10
    • 反对称矩阵满足: A T = − A A^T=-A AT=A
  • 向量外积:
    • 外积是一个垂直于俩向量的向量,大小为 ∣ a ∣ ∣ b ∣ s i n ( a , b ) |a||b|sin(a,b) absin(a,b)

信息量

在这里插入图片描述

  • 横坐标为概率 p p p,则对应纵坐标信息量 i = − l o g p i=-logp i=logp,反映事件让人惊讶的程度(不确定性)

  • 某个事件对应的信息量的期望

传统算法

线性回归

寻找一个权重 w w w和偏置 b b b,使得 w T X + b w^TX+b wTX+b最接近目标值 Y Y Y。相当于拟合一条直线(或一个超平面),让所有样本在直线上的取值与真实值最接近。举个例子,二维情况下, w w w相当于斜率 k ∈ R k∈\mathbb{R} kR b b b相当于截距。

  • 输入:样本矩阵 X ∈ R C × N X∈\mathbb{R}^{C×N} XRC×N,目标值(ground truth) Y g t ∈ R 1 × N Y_{gt}∈\mathbb{R}^{1×N} YgtR1×N
  • 输出:权重 w ∈ R C × 1 w∈\mathbb{R}^{C×1} wRC×1,偏置 b ∈ R b∈\mathbb{R} bR

推导

  • Y = w T X + b ∈ R 1 × N Y=w^TX+b∈\mathbb{R}^{1×N} Y=wTX+bR1×N
  • 通过齐次形式把 b b b整合进 w w w w = [ w b ] ∈ R ( C + 1 ) × 1 , X = [ X 1 ] ∈ R ( C + 1 ) × N w=\left[ \begin{array}{c} w \\ b\end{array}\right]∈\mathbb{R}^{(C+1)×1},X=\left[ \begin{array}{c} X \\ 1\end{array}\right]∈\mathbb{R}^{(C+1)×N} w=[wb]R(C+1)×1,X=[X1]R(C+1)×N
  • Y = w T X ∈ R 1 × N Y=w^TX∈\mathbb{R}^{1×N} Y=wTXR1×N
  • 这里可通过最小二乘获得最优参数的解析解
  • L o s s = ∑ ( y g t − y ) 2 = ( Y g t − w T X ) ( Y g t − w T X ) T ∈ R + Loss=\sum(y_{gt}-y)^2=(Y_{gt}-w^TX)(Y_{gt}-w^TX)^T∈\mathbb{R}^{+} Loss=(ygty)2=(YgtwTX)(YgtwTX)TR+
  • ∂ L o s s ∂ w = 2 ( w T X − Y g t ) X T ∈ R ( C + 1 ) × 1 \frac{\partial Loss}{\partial w}=2(w^TX-Y_{gt})X^T∈\mathbb{R}^{(C+1)×1} wLoss=2(wTXYgt)XTR(C+1)×1
  • 令偏导为 0 0 0
  • 2 ( w T X − Y g t ) X T = 0 2(w^TX-Y_{gt})X^T=0 2(wTXYgt)XT=0
  • w T X X T = Y g t X T w^TXX^T=Y_{gt}X^T wTXXT=YgtXT
  • w = ( Y g t X T ( X X T ) − 1 ) T w=(Y_{gt}X^T(XX^T)^{-1})^T w=(YgtXT(XXT)1)T
  • w = ( X X T ) − 1 X Y g t T w=(XX^T)^{-1}XY_{gt}^T w=(XXT)1XYgtT

逻辑回归

逻辑回归是分类算法,相当于全连接加 s i g m o i d sigmoid sigmoid激活的单层神经网络。

  • 输入:样本矩阵 X ∈ R C × N X∈\mathbb{R}^{C×N} XRC×N,每个样本对应的类别
  • 输出:权重 w ∈ R C × 1 w∈\mathbb{R}^{C×1} wRC×1,偏置 b ∈ R b∈\mathbb{R} bR

推导

  • 给出样本矩阵 X ∈ R C × N X∈\mathbb{R}^{C×N} XRC×N
  • 过一层全连接+ s i g m o i d sigmoid sigmoid得到输出: Y = s i g m o i d ( w T X + b ) ∈ ( 0 , 1 ) 1 × N Y=sigmoid(w^TX+b)∈(0,1)^{1×N} Y=sigmoid(wTX+b)(0,1)1×N
    • s i g m o i d ( x ) = 1 1 + e − x sigmoid(x)=\frac{1}{1+e^{-x}} sigmoid(x)=1+ex1
  • Y Y Y作为属于正样本的概率,则 1 − Y 1-Y 1Y为负样本概率
  • 利用极大似然估计(MLE)构造目标函数,使得所有样本对应类别出现的联合概率最大
    • arg max ⁡ w , b ( l o g ∏ i N P i ) , P i = { Y i X i 是 正 样 本 1 − Y i X i 是 负 样 本 \underset {w,b}{\operatorname {arg\,max} }(log\prod_i^N P_i),P_i=\begin{cases}Y_i & X_i是正样本\\1-Y_i &X_i是负样本\end{cases} w,bargmax(logiNPi),Pi={Yi1YiXiXi
  • 等价于最小化信息量之和: L o s s = ∑ i N − l o g P i Loss=\sum_i^N-logP_i Loss=iNlogPi

SVM

SVM希望找到一个超平面用于划分样本,使得各类别距离超平面最近的样本点 x i x_i xi距离超平面最远。

  • 输入:样本矩阵 X ∈ R C × N X∈\mathbb{R}^{C×N} XRC×N,每个样本对应的类别
  • 输出:超平面权重 w ∈ R C × 1 w∈\mathbb{R}^{C×1} wRC×1,超平面偏置 b ∈ R b∈\mathbb{R} bR

定理

原理

  • 给出样本矩阵 X ∈ R C × N X∈\mathbb{R}^{C×N} XRC×N
  • 求所有样本 X X X到超平面的距离 D = ∣ w T X + b ∣ ∣ ∣ w ∣ ∣ ∈ R 1 × N D=\frac{|w^TX+b|}{||w||}∈\mathbb{R}^{1×N} D=wwTX+bR1×N
  • 找到 n n n个样本中距离超平面最近的点 x 1 , x 2 , . . . , x n x_1,x_2,...,x_n x1,x2,...,xn
  • SVM要求正负样本中距离超平面最近的样本到超平面的距离最大,即 m a x w , b ∣ w T x i + b ∣ ∣ ∣ w ∣ ∣ , 0 < i ≤ n max_{w,b}\frac{|w^Tx_i+b|}{||w||},0<i≤n maxw,bwwTxi+b,0<in
  • ∣ w T x i + b ∣ = 1 |w^Tx_i+b|=1 wTxi+b=1,优化目标变为 m a x w , b 1 ∣ ∣ w ∣ ∣ , s . t . ∣ w T x i + b ∣ > = 1 , 0 < i ≤ n max_{w,b}\frac{1}{||w||},s.t.|w^Tx_i+b|>=1,0<i≤n maxw,bw1,s.t.wTxi+b>=1,0<in
  • 对于二分类问题,等效于合页损失加正则项: L o s s = m a x ( 0 , 1 − y ( w T x + b ) ) + λ ∣ ∣ w ∣ ∣ 2 , y ∈ ± 1 Loss=max(0, 1-y(w^Tx+b))+\lambda||w||^2,y∈±1 Loss=max(0,1y(wTx+b))+λw2,y±1
  • 对于多分类问题,相当于做多个二分类

深度学习

通用概念/公式

最小二乘法

  • 构造MSE损失,令导数为0求极值

极大似然估计

  • 选取候选参数中使得所有样本被正确分类的概率最大的参数

超平面

  • 二维下直线表达式: a x + b y + c = 0 ax+by+c=0 ax+by+c=0
  • 多维超平面表达式: a x + b y + c z + . . . + d = 0 ax+by+cz+...+d=0 ax+by+cz+...+d=0
  • 写作矩阵形式: w T x + b = 0 w^Tx+b=0 wTx+b=0
    • x ∈ R C × 1 x∈\mathbb{R}^{C×1} xRC×1代表超平面上的任意样本点
    • 超平面权重 w ∈ R C × 1 w∈\mathbb{R}^{C×1} wRC×1同二维下的 [ a , b ] T [a,b]^T [a,b]T
    • 超平面偏置 b ∈ R b∈\mathbb{R} bR同二维e下的 c c c

超平面法向量

  • 给出超平面 w T x + b = 0 w^Tx+b=0 wTx+b=0
  • 超平面的法向量垂直于该超平面上的任意向量
  • 设超平面上任意俩点 x 1 , x 2 x_1,x_2 x1,x2
  • w T x 1 + b = 0 , w T x 2 + b = 0 w^Tx_1+b=0, w^Tx_2+b=0 wTx1+b=0,wTx2+b=0
  • w T ( x 1 − x 2 ) = 0 w^T(x_1-x_2)=0 wT(x1x2)=0
  • w w w垂直于超平面上任意向量

点到超平面距离

  • 给出超平面 w T x + b = 0 w^Tx+b=0 wTx+b=0,超平面上任意一点 x x x,任意一点 p p p
  • 超平面法向量 w w w
  • p p p到超平面的距离 d ∈ R d∈\mathbb{R} dR为向量 p − x p-x px对超平面单位法向量的投影长度(即点积的绝对值)
  • 单位法向量: w ∣ ∣ w ∣ ∣ \frac{w}{||w||} ww
  • d = ∣ ( w ∣ ∣ w ∣ ∣ ) T ( p − x ) ∣ d=|(\frac{w}{||w||})^T(p-x)| d=(ww)T(px)
  • d = ∣ w T ( p − x ) ∣ ∣ ∣ w ∣ ∣ d=\frac{|w^T(p-x)|}{||w||} d=wwT(px)
  • d = ∣ w T p − w T x ∣ ∣ ∣ w ∣ ∣ d=\frac{|w^Tp-w^Tx|}{||w||} d=wwTpwTx
  • d = ∣ w T p + b ∣ ∣ ∣ w ∣ ∣ d=\frac{|w^Tp+b|}{||w||} d=wwTp+b
  • 则对任意一点 x x x,到超平面距离为 d = ∣ w T x + b ∣ ∣ ∣ w ∣ ∣ ∈ R + d=\frac{|w^Tx+b|}{||w||}∈\mathbb{R}^+ d=wwTx+bR+

平行超平面间距离

  • 给出超平面 w T x 1 + b 1 = 0 w^Tx_1+b_1=0 wTx1+b1=0,和与其平行的超平面 w T x 2 + b 2 = 0 w^Tx_2+b_2=0 wTx2+b2=0
  • 超平面法向量 w w w
  • 超平面间的距离 d ∈ R d∈\mathbb{R} dR为向量 x 1 − x 2 x_1-x_2 x1x2对超平面单位法向量的投影长度(即点积的绝对值),此处 x 1 , x 2 x_1,x_2 x1,x2分别为俩个超平面上的任意一点,俩个超平面法向量相同
  • 单位法向量: w ∣ ∣ w ∣ ∣ \frac{w}{||w||} ww
  • d = ∣ ( w ∣ ∣ w ∣ ∣ ) T ( x 1 − x 2 ) ∣ d=|(\frac{w}{||w||})^T(x_1-x_2)| d=(ww)T(x1x2)
  • d = ∣ w T ( x 1 − x 2 ) ∣ ∣ ∣ w ∣ ∣ d=\frac{|w^T(x_1-x_2)|}{||w||} d=wwT(x1x2)
  • d = ∣ w T x 1 − w T x 2 ∣ ∣ ∣ w ∣ ∣ d=\frac{|w^Tx_1-w^Tx_2|}{||w||} d=wwTx1wTx2
  • d = ∣ − b 1 + b 2 ∣ ∣ ∣ w ∣ ∣ d=\frac{|-b_1+b_2|}{||w||} d=wb1+b2
  • d = ∣ b 1 − b 2 ∣ ∣ ∣ w ∣ ∣ d=\frac{|b_1-b_2|}{||w||} d=wb1b2
  • 平行超平面间距离为 d = ∣ b 1 − b 2 ∣ ∣ ∣ w ∣ ∣ ∈ R + d=\frac{|b_1-b_2|}{||w||}∈\mathbb{R}^+ d=wb1b2R+
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值