INT305 Machine Learning

由于之前做过吴恩达到机器学习笔记,所以这个记的很简洁

1. Lec 01 (KNN)

在这里插入图片描述

1.1. KNN k近邻算法

对于未知样本,计算其最近的k个已知样本的labels,返回占比最大的label。模型中无训练参数。

超参数(super parameter)k的选择:

  1. small k:overfit过拟合,对异常数据敏感,在分类清楚的数据集上表现很好
  2. large k:underfit欠拟合,没法捕捉重要regularities,决策边界十分平滑,在边界附近的未知样本分类就不是很准
  3. balancing k: k < n k<\sqrt{n} k<n

Dataset:
Training set | validation set | test set
可以通过validation set表现优劣选择k
test set 仅用于在最后评估模型

2. Lec 02 (Regression, Optimization)

2.1. Regression 回归

目的:预测如股票发展
种类:监督学习

监督学习的大致步骤:

  1. 挑选模型来描述变量间关系
  2. 定义损失函数 loss function
  3. 选择regularizer正则化
  4. 使用优化最小化代价函数Cost Function,直接计算或梯度下降

Model

y = f ( x ) = ∑ j w j x j + b y=f(x)=\sum_{j}w_{j}x_{j}+b y=f(x)=jwjxj+b
对于多维数据,使用矩阵计算 y = w T x + b y=w^{T}x+b y=wTx+b
t为真实标签
y为预测
w是参数
x是样本数据
b是偏差bias
在这里插入图片描述

Loss function

代表模型在样本上表现有多糟糕

Squared error loss function:
L ( y , t ) = 1 2 ( y − t ) 2 L(y,t)=\frac{1}{2}(y-t)^{2} L(y,t)=21(yt)2

Cost function

对于所有训练集而言的Loss function
J ( w , b ) = 1 2 N ∑ i = 1 N ( y i − t i ) 2 J(w,b)=\frac{1}{2N}\sum_{i=1}^{N}(y^{i}-t^{i})^{2} J(w,b)=2N1i=1N(yiti)2

通常使用np.dot(w,x)+b计算y

Vectorization

向量化可以加速计算,使代码易于阅读
在这里插入图片描述

Solving the Minimization Problem

梯度下降,使Cost function最小。
通常来说需要找到使Cost function梯度为0的点

Direct function:一步计算,直接得出最优

如线性回归问题,所有数据点到最优线的垂线都垂直于最优的线 X T ( y ∗ − t ) = 0 X^T(y^*-t)=0 XT(yt)=0,可以直接求出最拟合的线
w ∗ = ( X T X ) − 1 X T t w^{*}=(X^{T}X)^{-1}X^{T}t w=(XTX)1XTt
或着由链式推导,求出梯度为0的点

Feature Mapping

R D → R d R^D \rightarrow R^d RDRd
如果输入和输出间的关系不是线性的,可以使用投影将非线性的特征转换为线性的
在这里插入图片描述

Polynomial Feature Mapping

也可以通过多项式的方式拟合
φ ( x ) = [ 1 , x , x 2 , . . . , x M ] T \varphi(x)=[1,x,x^2,...,x^M]^T φ(x)=[1,x,x2,...,xM]T
y = w 0 + w 1 x + w 2 x 2 . . . y=w_0+w_1x+w_2x^2... y=w0+w1x+w2x2...

Underfit and Overfit

欠拟合(左)和过拟合(右)
在这里插入图片描述

Regularization正则化

Regularizer: a function that quantifies how much we prefer one hypothesis vs. another
一个样本有许多的参数,为这么多的参数各自设定一个w会使模型复杂化,容易过拟合,通过正则化减少参与计算的参数数量,或限制w的大小

L 2   p e n a l t i y : R ( w ) = 1 2 ∣ ∣ w ∣ ∣ 2 2 = 1 2 ∑ j w j 2 L^2\ penaltiy:R(w)=\frac{1}{2}||w||^{2}_{2}=\frac{1}{2}\sum_jw_j^2 L2 penaltiy:R(w)=21∣∣w22=21jwj2
J r e g ( w ) = J ( w ) + λ R ( w ) J_{reg}(w)=J(w)+\lambda R(w) Jreg(w)=J(w)+λR(w)
λ \lambda λ为超参

部分参数非常大导致某个偏导贼大
在这里插入图片描述

Gradient Descent 梯度下降

w j ← w j − α ϑ J ϑ w j w_j \leftarrow w_j-\alpha \frac{ \vartheta J}{\vartheta w_j} wjwjαϑwjϑJ

线性回归:
ϑ J ϑ w j = 1 N ∑ i = 1 N ( y i − t i ) x i \frac{ \vartheta J}{\vartheta w_j}=\frac{1}{N}\sum_{i=1}^{N}(y^{i}-t^{i})x^{i} ϑwjϑJ=N1i=1N(yiti)xi

对于高维空间,梯度下降更可行有效

带有正则的回归:
w j ← w j − α ϑ J + λ R ϑ w j w_j \leftarrow w_j-\alpha \frac{ \vartheta J+\lambda R}{\vartheta w_j} wjwjαϑwjϑJ+λR
= ( 1 − α λ ) w − α ϑ J ϑ w =(1-\alpha \lambda)w-\alpha \frac{\vartheta J}{\vartheta w} =(1αλ)wαϑwϑJ

learning rate学习率:
在这里插入图片描述在这里插入图片描述Stochastic Gradient Descent(SGD):
不同于每次都训练整个batch,SGD根据一个单一样本进行训练
θ ← θ − α ϑ L ( i ) ϑ θ \theta \leftarrow \theta - \alpha \frac{\vartheta L^{(i)}}{\vartheta \theta} θθαϑθϑL(i)

Mini-batch:
每次选择一部分训练集训练
在这里插入图片描述

3. Lec03

Classification分类问题
Binary classification二分类
Multiclass classification多分类

t=1 called positive examples, t=0 called negative examples.

3.1. Linear Classifiers线性分类

z = w T x + b z=w^Tx+b z=wTx+b
y = { 1 i f   z ≥ r 0 i f   z < r y= \begin{cases} 1\quad if\ z\ge r \\ 0 \quad if\ z \lt r \end{cases} y={1if zr0if z<r

Simplified model:
将r与参数中的常数项相消,添加feature x 0 = 1 x_0=1 x0=1,同时添加参数 w 0 w_0 w0训练
z = w T x z=w^Tx z=wTx
y = { 1 i f   z ≥ 0 0 i f   z < 0 y= \begin{cases} 1 \quad if\ z \ge 0 \\ 0 \quad if\ z \lt 0 \end{cases} y={1if z00if z<0

Data Space与Weight Space

Data Space:将x看作自变量,Decision boundary决策边界
Weight Space:将w看做自变量
对于正样本,w的分布需使其分类为正
对于负样本,w到分布需使其分类为负
重合的分布即是Feasible region,如果存在则问题是feasible的
在这里插入图片描述

3.2. Logistic Regression

如果直接使用线性平方差作为Cost function
在这里插入图片描述
z = w T x z=w^Tx z=wTx
L S E ( z , t ) = 1 2 ( z − t ) 2 L_{SE(z,t)}=\frac{1}{2}(z-t)^2 LSE(z,t)=21(zt)2
会发现x越大,肯定性越高,Cost却也越大

接下来使用sigmoid函数作为激活函数:
z = w T x z=w^Tx z=wTx
y = s i g m o i d ( z ) = 1 1 + e − z y=sigmoid(z)=\frac{1}{1+e^{-z}} y=sigmoid(z)=1+ez1
L S E ( z , t ) = 1 2 ( y − t ) 2 L_{SE(z,t)}=\frac{1}{2}(y-t)^2 LSE(z,t)=21(yt)2
在这里插入图片描述

会发现极端值的z会导致链式求导算出来的梯度非常小,导致很难学习,(比如明明是正样本,算出来的z确接近负无穷,这样根本没有梯度)

接下来引入交叉熵Cross-entropy loss, 如果样本与预测的不对,则会
z = w T x z=w^Tx z=wTx
y = 1 1 + e − z y=\frac{1}{1+e^{-z}} y=1+ez1
L S E ( z , t ) = { − l o g y i f   t = 1 − l o g ( 1 − y ) i f   t = 0 = − t l o g y − ( 1 − t ) l o g ( 1 − y ) L_{SE(z,t)}=\begin{cases} -logy \quad if\ t=1 \\ -log(1-y) \quad if\ t=0 \end{cases} =-tlogy-(1-t)log(1-y) LSE(z,t)={logyif t=1log(1y)if t=0=tlogy(1t)log(1y)
ϑ L C E ϑ w j = ( y − t ) x j \frac{\vartheta L_{CE}}{\vartheta w_j}=(y-t)x_j ϑwjϑLCE=(yt)xj

3.3. Multiclass Classification

用处如数字识别
label通常是one-hot vectors: (0,0,1,0…,0)
添加 x 0 = 1 x_0=1 x0=1将b省略
W的size为 K × ( D + 1 ) K \times (D+1) K×(D+1)
K为种类,D为feature维度

可以直接用linear prediction取最大的将其设为预测值
y i = { 1 i = a r g m a x k z k 0 o t h e r w i s e y_i=\begin{cases} 1 \quad i=argmax_kz_k \\ 0 \quad otherwise \end{cases} yi={1i=argmaxkzk0otherwise

Softmax Regression

z=Wx
y k = s o f t m a x ( z 1 , … , z K ) k = e z k ∑ k ′ e z k ′ y_k=softmax(z_1, \dots ,z_K)_k=\frac{e^{z_k}}{\sum_{k'}e^{z_{k'}}} yk=softmax(z1,,zK)k=kezkezk类似占比
然后交叉熵作为损失函数,log操作是element-wise的
L C E ( y , t ) = − ∑ k = 1 K t k l o g y k = − t T ( l o g y ) L_{CE}(y,t)=-\sum_{k=1}^{K}t_klogy_k=-t^T(log y) LCE(y,t)=k=1Ktklogyk=tT(logy)

梯度下降:
w k ← w k − α 1 N ∑ i = 1 N ( y k ( i ) − t k ( i ) ) x ( i ) w_k \leftarrow w_k-\alpha \frac{1}{N} \sum_{i=1}^{N}(y_k^{(i)}-t_k^{(i)})x^{(i)} wkwkαN1i=1N(yk(i)tk(i))x(i)

线性回归没法分类非线性问题,如下
在这里插入图片描述此时,采用Feature maps,扩展features从而提高维度,增大样本间差异
在这里插入图片描述

Lec 04

对于多分类,继续优化损失函数

4.1. Support Vector Machine

支持向量机,一个有外边距的超平面作为决策边界

在这里插入图片描述在这里插入图片描述The distance of a point x’ to the hyperplane is
w T x ′ + b ∣ ∣ w ∣ ∣ 2 \frac{w^Tx'+b}{||w||_2} ∣∣w2wTx+b

geometric margin constraint,把C margin设为 1 ∣ ∣ w ∣ ∣ 2 \frac{1}{||w||_2} ∣∣w21
分母相消简化后: t ( i ) ( w T x ( i ) + b ) ≥ 1 t^{(i)}(w^Tx^{(i)}+b) \ge 1 t(i)(wTx(i)+b)1 (algebraic margin constraint)

最大化边界

如果边界太小会不准,所以最大化C,最小化 ∣ ∣ w ∣ ∣ 2 2 ||w||_2^2 ∣∣w22
在这里插入图片描述且会影响到这个决策边界的只有在边界附近的数据点,这些点被称为support vectors
在这里插入图片描述

如图。对于训练好的完美非soft SVM,落在margin边界线上的样本点被称为支持向量,它们满足 y ( w T + b ) = 1 y(w^T+b)=1 y(wT+b)=1,对于不是支持向量的点, y ( w T x + b ) > 1 y(w^Tx+b)>1 y(wTx+b)>1

允许部分点进入边界 Softmax SVM

在这里插入图片描述这些点越过正确边界的距离被称为 ξ i \xi_i ξi,需要惩罚 ∑ i ξ i \sum_i\xi_i iξi

t ( i ) ( w T x ( i ) + b ) ≥ 1 − ξ i t^{(i)}(w^Tx^{(i)}+b) \ge1-\xi_i t(i)(wTx(i)+b)1ξi

soft-margin SVM target:
m i n 1 2 ∣ ∣ w ∣ ∣ 2 2 + γ ∑ i = 1 N ξ i min\frac{1}{2}||w||_2^2+\gamma \sum_{i=1}^{N}\xi_i min21∣∣w22+γi=1Nξi
其中,超参数 γ \gamma γ平衡边界大小和越界惩罚

毕竟很难做到完全不进入边界,softmax作用就是允许一些点进入margin,但仍然会算入loss。max的作用是对于边界之外正确分类的,不计入loss,否则正确分类的越多loss会变小。

最终slack penalty, slack variables:

∑ i = 1 N ξ i = ∑ i = 1 N m a x { 0 , 1 − t ( i ) ( w T x ( i ) + b ) } \sum_{i=1}^{N}\xi_i=\sum_{i=1}^{N}max\{0,1-t^{(i)}(w^Tx^{(i)}+b)\} i=1Nξi=i=1Nmax{0,1t(i)(wTx(i)+b)}
这个max{0,1-ty}叫做hinge loss

最终目标:
m i n ∑ i = 1 N ξ i = ∑ i = 1 N m a x { 0 , 1 − t ( i ) y ( i ) } + 1 2 γ ∣ ∣ w ∣ ∣ 2 2 min\sum_{i=1}^{N}\xi_i=\sum_{i=1}^{N}max\{0,1-t^{(i)}y^{(i)}\}+\frac{1}{2\gamma}||w||_2^2 mini=1Nξi=i=1Nmax{0,1t(i)y(i)}+2γ1∣∣w22
Hence, the soft-margin SVM(软间隔SVM) can be seen as a linear classifier with hinge loss and an L2 regularizer

Multiclass SVM loss:
对于第j个样本,求该样本之于标签之外的其他分类的hinge loss,比如猫狗鸟三个分类,对于猫的样本,我们求狗和鸟的hinge loss,然后求sum。
L i = ∑ j ≠ y i m a x ( 0 , s j − s y i + 1 ) L_i=\sum_{j\neq y_i}max(0,s_j-s_{y_i}+1) Li=j=yimax(0,sjsyi+1)
在这里插入图片描述

4.2. SVM Loss and Softmax Loss

Multiclass SVM loss:
L i = ∑ j ≠ y i m a x ( 0 , s j − s y i + 1 ) L_i=\sum_{j\neq y_i}max(0,s_j-s_{y_i}+1) Li=j=yimax(0,sjsyi+1)

Multiclass Softmax loss:
计算正确的那个分类在所有分类中的占比
L i = − l o g ( e s y j ∑ j e s j ) L_i=-log(\frac{e^{s_{yj}}}{\sum_je^{s_j}}) Li=log(jesjesyj)

Lec 05 Neural Network

激活函数activation function
在这里插入图片描述
全连接神经网络
在这里插入图片描述
梯度下降Gradient Descent:
在这里插入图片描述
梯度下降链式求导
在这里插入图片描述
sigmoid: σ ( x ) = 1 1 + e − x \sigma(x) = \frac{1}{1+e^{-x}} σ(x)=1+ex1
d σ ( x ) d x = e − x ( 1 + e − x ) 2 = 1 + e − x − 1 1 + e − x 1 1 + e − x = ( 1 − σ ( x ) ) σ ( x ) \frac{d\sigma(x)}{dx}=\frac{e^{-x}}{(1+e^{-x})^2}=\frac{1+e^{-x}-1}{1+e^{-x}}\frac{1}{1+e^{-x}}=(1-\sigma(x))\sigma(x) dxdσ(x)=(1+ex)2ex=1+ex1+ex11+ex1=(1σ(x))σ(x)
在这里插入图片描述在这里插入图片描述

5.1. 链式求导例子

f ( x , W ) = ∣ ∣ w ⋅ x ∣ ∣ 2 = f ( q ) = q 2 = ∑ i = 1 n ( W ⋅ x ) i 2 f(x,W)=||w \cdot x||^2=f(q)=q^2=\sum_{i=1}^{n}(W \cdot x)^2_i f(x,W)=∣∣wx2=f(q)=q2=i=1n(Wx)i2

在这里插入图片描述

在这里插入图片描述

Lec 06 Convolutional Neural Network

在这里插入图片描述

卷积神经网络
在这里插入图片描述图像和5x5x3的卷积核Filter(过滤器)
在这里插入图片描述每一个卷积核都可以生成一个feature map
如果使用六个卷积核,则下一层有六个通道
在这里插入图片描述Stride=2时,卷积核每次移动2格
N图像,F卷积核,在没有pad的情况下
O u t p u t s i z e = ( N − F ) / S + 1 i f   ( N − F ) % S = 0 Output size=(N-F)/S +1 \quad if\ (N-F)\%S=0 Outputsize=(NF)/S+1if (NF)%S=0

在这里插入图片描述
zero pad,扩充边界,边界填0
边界大小= ( F − 1 ) / 2 (F-1)/2 (F1)/2

在有Pad情况下
O u t p u t s i z e = ( N − F + 2 ∗ P ) / S + 1 i f   ( N − F + 2 ∗ P ) % S = 0 Output size=(N-F+2*P)/S+1 \quad if\ (N-F+2*P)\%S=0 Outputsize=(NF+2P)/S+1if (NF+2P)%S=0

在这里插入图片描述在这里插入图片描述
参数数量注意每个卷积核还有个bias
在这里插入图片描述1x1x64的卷积核
在这里插入图片描述

6.1. 卷积层CONV

在这里插入图片描述在这里插入图片描述

6.2. 池化层POOL

在层之间插入池化层,对数据降采样

目的:避免过拟合,减小计算量

最大池,每2x2的区域取之中的最大值,无parameter
在这里插入图片描述在这里插入图片描述

6.3 全连接层(Fully Connected Layer)

就是原始的神经网络,把多个通道的数据输出为一个值
对于N x N x 10的最后一个池化层输出,一个全连接神经元相当于一个大小为N x N x 10的卷积核对其卷积

在这里插入图片描述
ResNet残差网络

在这里插入图片描述

Lec 07 Decision Tree

根据树形结构分解features
在这里插入图片描述Features通常都是离散的

构建决策树的大致方法

  1. 从空决策树开始,根据整个训练集选择一个feature,使信息增量最大
  2. 然后找到使损失最小的分割判定,将数据根据分割分到不同的组
  3. 对于每个组:
    1. 如果没有数据点,则返回父节点的另外一类
    2. 否则如果所有数据点都属于同一类,返回该类
    3. 否则执行步骤1
      当所有叶子节点空或仅包含同类数据,结束构造

量化损失,使用熵entropy评估,高熵意味着分类效率差,低熵意味着结果更确定:

p为该类占比
− p l o g 2 ( p ) − ( 1 − p ) l o g 2 ( 1 − p ) -plog_2(p)-(1-p)log_2(1-p) plog2(p)(1p)log2(1p)

More generally,
H ( Y ) = − ∑ y ∈ Y p ( y ) l o g 2 p ( y ) H(Y)=-\sum_{y\in Y}p(y)log_2p(y) H(Y)=yYp(y)log2p(y)
单位bits
在这里插入图片描述熵的计算例子:
在这里插入图片描述

给定下雨,则求熵时只看下雨那行

在这里插入图片描述
计算条件熵,如果某种条件已知后的熵
已知的条件后的熵乘该条件独立概率作为权重相加
在这里插入图片描述
在这里插入图片描述Tips:
在这里插入图片描述

7.1. Information Gain

信息增量,“给定了一个条件,它给了我多大信心去判断某事”
度量了一个feature被划分后能够提供多少信息
I G ( Y ∣ X ) = H ( Y ) − H ( Y ∣ X ) IG(Y|X)=H(Y)-H(Y|X) IG(YX)=H(Y)H(YX)

informative: 信息相关
If X is completely uninformative about Y: IG(Y|X)=0
If X is completely informative about Y: IG(Y|X)=H(Y)

在这里插入图片描述在这里插入图片描述

上面提到决策树有关“分割哪些feature”和“如何分割”
最终目标是能算出最高信息增量的分割

7.2. 评估

决策树应当:

  1. 不能小:应当处理细节
  2. 不能大:计算效率,避免过拟合
  3. “”Occam’s Razor": 找到最简单的假说来契合观察

相比于KNN,决策树:

  1. 更容易处理离散变量与缺失数据,以及小范围的数据
  2. 测试时很快
  3. 更易于解释

相比于决策树,KNN:

  1. 超参数更少
  2. 可以包含更广泛的feature间距离(如形状)

相比于决策树,神经网络:

  1. 能够处理复杂的features

7.3. Bias-Variance Decomposition

偏差(Bias)-方差(Variance) 窘境

在这里插入图片描述
在这里插入图片描述证明y=E[t|x]为最优估计
在这里插入图片描述在这里插入图片描述

在这里插入图片描述在这里插入图片描述

在这里插入图片描述

bias偏差:预测值与靶心的距离
variance方差:预测值之间的离散程度
在这里插入图片描述

在这里插入图片描述

Lec08

7.1. bagging

现在有多个待训练模型,将训练集重新采样出来的子集 p s a m p l e p_{sample} psample作为模型的训练集,然后对它们的预测取 y = 1 m ∑ i = 1 m y i y=\frac{1}{m}\sum_{i=1}^{m}y_i y=m1i=1myi

对于expected loss的影响:

  1. Bias: unchanged, 期望没变
    E [ y ] = E [ 1 m ∑ i = 1 m y i ] = E [ y i ] E[y]=E[\frac{1}{m}\sum_{i=1}^{m}y_i]=E[y_i] E[y]=E[m1i=1myi]=E[yi]
  2. Variance:reduced,因为对结果取了平均值,所以不那么离散了
    V a r [ y ] = V a r [ 1 m ∑ i = 1 m y i ] = 1 m 2 ∑ i = 1 m V a r [ y i ] = 1 m V a r [ y i ] Var[y]=Var[\frac{1}{m}\sum_{i=1}^{m}y_i]=\frac{1}{m^2}\sum_{i=1}^{m}Var[y_i]=\frac{1}{m}Var[y_i] Var[y]=Var[m1i=1myi]=m21i=1mVar[yi]=m1Var[yi]
  3. Bayes error: unchanged, 没法控制这个

为何不像以前一样用这一整个训练集去训练一个模型:

用pD表示psample的proxy,也被称为bootstrap aggregation,或bagging

相当于训练集D是[1,2,3,4,5], 数量n=5
bagging出来的m=4个子集,每个数量n=3,子集里元素是放回式地选取的[1,3,3],[2,3,4],[3,3,5],[1,4,5]
这四个训练集训练出来的模型预测的四个结果yi,我们取它们的平均值 ∑ i = 1 m y i m \sum_{i=1}^{m}\frac{y_i}{m} i=1mmyi作为最终的预测结果

hypotheses space假设空间:
一个从输入空间到输出空间的映射的集合
对于y=wx, 学习w= 1 或 -1 的一个简单模型而言,采用bagging后的映射空间不同于一般的映射空间
在这里插入图片描述加入分类器后:
在这里插入图片描述

问题:如果数据集不是独立的,没法得到1/m的缩减

在这里插入图片描述采用随机森林(Random forests):
bagged decision tree,当选择决策树的每个节点的时候,从d维features里选择一个随机子集,然后只考虑从这些feature里分割。
随机森林可能是最好的黑箱(black box)机器学习方法, 不需要调整。

Bagging Summary

不能减少bias(平方代价)
分类器之间仍然有联系
天然的混淆(每个分类器权值相同,如果被baged的模型各异,则加权得到的分类结果更好)

7.2. boosting

维护一个全体classifiers集合(ensemble),按顺序训练分类器,每次着重训练集合上轮预测错误的样本,权重与上一次的预测值相关,使用了加权训练集(weighted training set)

代价函数里添加个w(n)
∑ n = 1 N w ( n ) ⨿ [ h ( x ( n ) ) ≠ t ( n ) ] \sum_{n=1}^{N}w^{(n)} \amalg[h(x^{(n)})\ne t^{(n)}] n=1Nw(n)⨿[h(x(n))=t(n)]
通常权重w大于0且总和=1

其中, ⨿ ( T r u e ) = 1 \amalg(True)=1 ⨿(True)=1

AdaBoost 算法:

  1. 每次迭代,重新分配权重给这些训练样本,分类器集合分类错误的样本的权重要大一些
  2. 训练一个基于新权重的分类器(base classifiers,bases)
  3. 把这个新的分类器设置一个权重添加到classifiers集合里
  4. 重复以上

Base classifier:

  1. 需要尽可能减少权重错误
  2. 尽可能快速(一些weak learner/classifier),因为集群非常大

通常,weak分类器的bias贼大,欠拟合。但是集群能够集中于改正前面错误的结果,减少bias

Decision Stump

一种weak 分类器,只有一个分割的决策树

之前说的决策树使用信息增量来决定如何分割,这个用的是GINI Impurity,单纯地选取横向切割或竖向切割减小error
在这里插入图片描述一个完整的例子
在这里插入图片描述sign指每个子区域以投票制决出label
在这里插入图片描述

那些weighted error更低的base classifier在最终分类器里得到更高的权重

更详细的step-by-step example见 链接

在这里插入图片描述

Additive Models可加模型

将以上一般化
在这里插入图片描述
在这里插入图片描述 a r g m i n x 1 + ( x − 1 ) 2 = 1 argmin_{x}1+(x-1)^2=1 argminx1+(x1)2=1
argmin:使后面函数最小时的x值

Boosting Summary

通过结合多个弱分类器来减少bias
每个base分类器都以减少之前的整体error为目标训练
不太容易过拟合,但是还是会有可能过拟合

Lec09 Probabilistic Models

probabilistic interpretation概率解释
maximum likelihood estimation最大拟然估计

概率模型基础知识

9.1. 最大拟然估计

概率密度估计小结

以掷硬币为例子,如果扔某一枚硬币100次,结果55次正面(记为1)45次背面(记为0),总共结果为 [ x 1 , . . . , x N ] [x_1,...,x_N] [x1,...,xN],那么我们可以假设现在存在某种变量 θ ∈ [ 0 , 1 ] \theta \in [0,1] θ[0,1]与硬币结果相关:
p ( x = 1 ∣ θ ) = θ   a n d   p ( x = 0 ∣ θ ) = 1 − θ p(x=1|\theta)=\theta\ and\ p(x=0|\theta)=1-\theta p(x=1∣θ)=θ and p(x=0∣θ)=1θ
or we say p ( x ∣ θ ) = θ x ( 1 − θ ) 1 − x p(x|\theta)=\theta^x(1-\theta)^{1-x} p(xθ)=θx(1θ)1x

结果的联合概率(joint probability)为 p ( x 1 , . . . , x N ∣ θ ) = ∏ i = 1 N θ x i ( 1 − θ ) 1 − x i p(x_1,...,x_N|\theta)= \prod_{i=1}^{N}\theta^{x_i}(1-\theta)^{1-x_i} p(x1,...,xNθ)=i=1Nθxi(1θ)1xi,这个连积(density for continuous)叫做likelihood function L ( θ ) L(\theta) L(θ)。有时也用log-likelihoods:
l ( θ ) = ∑ i = 1 N x i l o g θ + ( 1 − x i ) l o g ( 1 − θ ) l(\theta)=\sum_{i=1}^{N}x_ilog\theta+(1-x_i)log(1-\theta) l(θ)=i=1Nxilogθ+(1xi)log(1θ)

如果求一个最优的theta?好的theta会对观测到的数据做出高可能估计,这也叫做maximum likelihood criterion: θ ^ M L = m a x θ ∈ [ 0 , 1 ] l ( θ ) \hat\theta_{ML}=max_{\theta \in [0,1]}l(\theta) θ^ML=maxθ[0,1]l(θ)

求解梯度为0的点就可以算出这个最优 θ \theta θ
在这里插入图片描述
maximum likelihood estimation:

  1. 对于数据集,定义一个模型来assign这个数据集的概率密度
  2. 然后使拟然值最大,也就是使log-likelihood最小

在这个框架中之前讨论的模型都没用,如果考虑分类问题,使用拟然估计有两种方法:
区别与理解

  1. Discriminative approach判别法
    主要是根据输入x和输出y,估计决策边界或如何决策,只管心模型的最终分类结果。
    1. 直接建模p(t|x)
    2. 学习输入到最终结果
    3. “我现在知道了输入x,我该怎么区分他们是哪种class?”
    4. k近邻,感知级,决策树,支持向量机
  2. Generative approach生成法
    根据输入x和输出y,尝试知道x是如何到y的过程,这样给出任何的x,都能走这个过程从而得知对应的输出y
    1. 建模p(x|t)
    2. 通过贝叶斯规则从联合概率P(x,y) derive(派生)p(t|x)
    3. 存在distributional assumption over inputs
    4. “我知道了各种class,这些class是怎么从x变过来的?”
    5. 朴素贝叶斯和隐马尔科夫模型

9.2. 贝叶斯分类器Bayes Classifier

以区分垃圾spam邮件为例子(yes c=1,no c=0)
对数据预处理,根据一个大小D的词库计算每个词是否出现在该邮件内,并记为一个向量{“a”:2,“card”:1,“winter”:0,“winner”:1…}作为feature x=[x1,x2,…,xd]T

p ( c ∣ x ) = p ( x , c ) p ( x ) = p ( x ∣ c ) p ( c ) p ( x ) p(c|x)=\frac{p(x,c)}{p(x)}=\frac{p(x|c)p(c)}{p(x)} p(cx)=p(x)p(x,c)=p(x)p(xc)p(c)
p o s t e r i o r 后验概率 = C l a s s   l i k e l i h o o d × p r i o r E v i d e n c e posterior后验概率=\frac{Class\ likelihood \times prior}{Evidence} posterior后验概率=EvidenceClass likelihood×prior

p(x)可视为常量,因此不需要计算它。只需要得知p(x|c)p©即可,如果我们定义联合分布p(c,x1,x2,…xd),我们就能够确定以上两个值的积。

问题是在D+1个二元变量上建立联合分布函数需要2D+1-1个条目entries,意味着它应该需要大量的数据。我们想要impose structure使得:

  • it can be compactly represented
  • learning and inference are both tractable

Naive assumption: 朴素贝叶斯(Naive Bayes)
假设单词feature xi与class条件性独立(conditionally independent)。意味着:

  1. 各个x互相独立,在条件分布p(x|c)下
  2. 注意:不代表他们是独立变量
  3. 从数学上可以如下拆解: p ( c , x 1 , . . . , x D ) = p ( c ) p ( x 1 ∣ c ) . . . p ( x D ∣ c ) p(c,x_1,...,x_D)=p(c)p(x_1|c)...p(x_D|c) p(c,x1,...,xD)=p(c)p(x1c)...p(xDc)

因此,只需要2D+1个条目就可以构建模型:
在这里插入图片描述
在这里插入图片描述
log-likelihood中的每一个部分都取决于参数的子集,因此可以独立优化它们(偏导。

  1. 对加号左边的部分 ∑ i = 1 N l o g p ( c ( i ) ) \sum_{i=1}^{N}logp(c^{(i)}) i=1Nlogp(c(i))
    如果 p ( c ( i ) = 1 ) = π p(c^{(i)}=1)=\pi p(c(i)=1)=π,那么 p ( c ( i ) ) = π c ( i ) ( 1 − π ) 1 − c ( i ) p(c^{(i)})=\pi^{c^{(i)}}(1-\pi)^{1-c^{(i)}} p(c(i))=πc(i)(1π)1c(i)
    Log-likelihood: ∑ i = 1 N l o g p ( c ( i ) ) = ∑ i = 1 N c ( i ) l o g π + ∑ i = 1 N ( 1 − c ( i ) ) l o g ( 1 − π ) \sum_{i=1}^{N}logp(c^{(i)})=\sum_{i=1}^{N}c^{(i)}log\pi+\sum_{i=1}^{N}(1-c^{(i)})log(1-\pi) i=1Nlogp(c(i))=i=1Nc(i)logπ+i=1N(1c(i))log(1π)
    求梯度为0的点: π = s u m ( c ( i ) = 1 ) N = 垃圾邮件数量 总邮件样本 \pi=\frac{sum(c^{(i)}=1)}{N}=\frac{垃圾邮件数量}{总邮件样本} π=Nsum(c(i)=1)=总邮件样本垃圾邮件数量
  2. 对加号右边的部分 l o g p ( x j ( i ) ∣ c ( i ) ) logp(x_j^{(i)}|c^{(i)}) logp(xj(i)c(i))
    如果 θ j c = p ( x j ( i ) = 1 ∣ c ) \theta_{jc}=p(x_j^{(i)}=1|c) θjc=p(xj(i)=1∣c). 注意到 p ( x j ( i ) ∣ c ) = θ j c x j ( i ) ( 1 − θ j c ) 1 − x j ( i ) p(x_j^{(i)}|c)=\theta_{jc}^{x_j^{(i)}}(1-\theta_{jc})^{1-x_j^{(i)}} p(xj(i)c)=θjcxj(i)(1θjc)1xj(i)
    Log-likelihood: 在这里插入图片描述
    梯度为0的点: θ ^ j c = s u m ( x j ( i ) = 1   &   c ( i ) = c ) ∑ i s u m ( c ( i ) = c ) = 单词 j 在数据集中出现次数 邮件总数量 \hat \theta_{jc}=\frac{sum(x_j^{(i)}=1\ \&\ c^{(i)}=c)}{\sum_i sum(c^{(i)}=c)}=\frac{单词j在数据集中出现次数}{邮件总数量} θ^jc=isum(c(i)=c)sum(xj(i)=1 & c(i)=c)=邮件总数量单词j在数据集中出现次数

通过表现模型里的inference(推断)来预测邮件的种类,贝叶斯规则:
p ( c ∣ x ) = p ( c ) p ( x ∣ c ) ∑ c ′ p ( c ′ ) p ( x ∣ c ′ ) = p ( c ) ∏ j = 1 D p ( x j ∣ c ) ∑ c ′ p ( c ′ ) ∏ j = 1 D p ( x j ∣ c ′ ) p(c|x)=\frac{p(c)p(x|c)}{\sum_{c'}p(c')p(x|c')}=\frac{p(c)\prod_{j=1}^{D}p(x_j|c)}{\sum_{c'}p(c')\prod_{j=1}^{D}p(x_j|c')} p(cx)=cp(c)p(xc)p(c)p(xc)=cp(c)j=1Dp(xjc)p(c)j=1Dp(xjc)
分母是个定值:
p ( c ∣ x ) ∝ p ( c ) ∏ j = 1 D p ( x j ∣ c ) p(c|x) \propto p(c)\prod_{j=1}^{D}p(x_j|c) p(cx)p(c)j=1Dp(xjc)
对于输入x,分别计算c=0和c=1的 p ( c ) ∏ j = 1 D p ( x j ∣ c ) p(c)\prod_{j=1}^{D}p(x_j|c) p(c)j=1Dp(xjc),取最大者
c = a r g m a x c ( p ( c ) ∏ j = 1 D p ( x j ∣ c ) ) c=argmax_{c}( p(c)\prod_{j=1}^{D}p(x_j|c)) c=argmaxc(p(c)j=1Dp(xjc))

Evaluate评估朴素贝叶斯Naive Bayes:

  1. Training time:使用最大拟然估计来估测参数,只需要对数据集扫描一次并count。
  2. Test time:应用Bayes‘ Rule,由于模型结构,非常简便
  3. 缺点:
    • less accurate in pracitce compared to discriminative models due to its “naive” independece assumption
    • 如果数据太少,会过拟合,根据观察到的数据来预测未来的数据,这个问题被称作data sparsity数据稀疏

贝叶斯参数估计(Bayesian Parameter Estimation):

  1. 在最大拟然中,observations(x)被视作随机变量,而parameter(theta)不是的。 θ → x \theta \rightarrow x θx
  2. 贝叶斯方法将parameter也视作随机变量: β → θ → x \beta \rightarrow \theta \rightarrow x βθx。beta是parameter的先验概率集合。也就是先验概率决定了某个随机变量,然后决定最终的x观测值
  3. 为了定义贝叶斯模型,我们需要知道两个distributions:
    1. 先验概率prior distribution p ( θ ) p(\theta) p(θ)
    2. 最大拟然值 p ( D ∣ θ ) p(D|\theta) p(Dθ)

什么是先验概率,后验概率:

  1. 先验概率是在事件发生前得出的概率,既对以往发生过的同一件事情进行的概括和估计。事件发生前的预判概率。可以是基于历史数据的统计,可以由背景常识得出,也可以是人的主观观点给出。一般都是单独事件概率, 如P(x),P(y)。
  2. 后验概率是事件发生后求的反向条件概率;或者说,基于先验概率求得的反向条件概率。概率形式与条件概率相同。 p ( θ ∣ D ) = p ( θ ) p ( D ∣ θ ) ∫ p ( θ ′ ) p ( D ∣ θ ′ ) d θ ′ p(\theta|D)=\frac{p(\theta)p(D|\theta)}{\int p(\theta')p(D|\theta ')d\theta '} p(θD)=p(θ)p(Dθ)dθp(θ)p(Dθ),通常不求分母(denominator),太难求了

9.3. 回到硬币问题

对于硬币问题,我们已经知道了拟然(likelihood),H表示正面,T表示反面:
L ( θ ) = p ( D ∣ θ ) = θ N H ( 1 − θ ) N T L(\theta)=p(D|\theta)=\theta^{N_H}(1-\theta)^{N_T} L(θ)=p(Dθ)=θNH(1θ)NT
接下来我们需要算 p ( θ ) p(\theta) p(θ)先验概率,可以选择一个uninformative prior作为先验概率。实验告诉我们0.5要比0.99靠谱,使用beta distribution可以帮助我们确定先验:
在这里插入图片描述
可以忽略normalization constant(归一化常数):
p ( θ ; a , b ) ∝ θ a − 1 ( 1 − θ ) b − 1 p(\theta;a,b)\propto \theta^{a-1}(1-\theta)^{b-1} p(θ;a,b)θa1(1θ)b1

不同的a和b的取值:
在这里插入图片描述
观察到:

  1. 期望E[ θ \theta θ]=a/(a+b)
  2. 当a和b很大时,分布变得高耸
  3. 当a=1,b=1时,变成uniform distribution

计算后验概率,可以看成参数为:NH+a, NT+b的beta distribution:


θ \theta θ的后验期望:
E [ θ ∣ D ] = N H + a N H + N T + a + b E[\theta|D]=\frac{N_{H}+a}{N_H+N_T+a+b} E[θD]=NH+NT+a+bNH+a

a和b在先验中可以看成pseudo-counts伪计数:因为先验和拟然有一样的函数形式
在这里插入图片描述

maximum A-Posteriori Estimation
在这里插入图片描述

Lec10 k-Means and EM Algorithm

10.1. K-means

有时同一簇(cluster)内的数据之间都是互相相似的,不同簇之间的数据是不相似的。这种有多个modes的模型被称为multimodal。不依靠label把数据点分进cluster叫做聚类clustering,属于非监督学习。

x ( n ) x^{(n)} x(n)第n个数据点
{ m k } k = 1 K \{m_k\}_{k=1}^{K} {mk}k=1K:聚类中心(Cluster center)
{ r ( n ) } n = 1 N \{r^{(n)}\}_{n=1}^{N} {r(n)}n=1N:表示第n个数据点属于哪个类中心,假如一共五个中心,该点属于第二类,则值为[0,1,0,0,0]T(Responsibilities)
在这里插入图片描述

k-means的目标是找出聚类中心,并减少各点到中心的距离之和
在这里插入图片描述

实现过程,使用迭代思想,交替最小化alternating minimization:

  1. 先随机选取聚类中心

  2. Assignment:根据聚类中心,划分每个数据点到最近的类

  3. Reffiting:根据每个类的数据点算他们的均值,重新设置该类聚类中心
    在这里插入图片描述

  4. 重复上述流程直到收敛

应用到图像处理上,可以让图像的颜色简化,分类到K个颜色;或得到图像的边缘分界块
在这里插入图片描述

10.1.1. 评估聚类

几个问题:

  1. 为什么k-means收敛?在每轮迭代中,总代价(数据点到该类中心的距离)被减少了。观察到assign和refit都会减少总代价。由于对于同个k,每次只会缩减到局部最小,k的取值,影响到了是否达到全局最小在这里插入图片描述
  2. 使用其他的距离度量?一个数据点可能对一个类有0.7置信度,对另外一个类有0.3置信度。称作soft assignments。这样refit也会根据权重来,如下,这里rk有所变化,相应的导致refit也有变化。如何设置beta以及聚类如何处理不平衡的权重:We’ll reformulate clustering using a generative model。在这里插入图片描述

probabilistic formulation of clustering使用概率描述聚类:

10.1.2. 最大拟然估计与soft聚类

Gaussian,normal distribution高斯分布,正态分布

在这里插入图片描述

假设D个输入,N个样本,
在这里插入图片描述
在这里插入图片描述
μ  和 ∑ \mu\ 和\sum μ 定义了multivariate Gaussian多元高斯分布,称为 N ( μ , ∑ )   o r   N ( x ; μ , ∑ ) N(\mu,\sum)\ or\ N(x;\mu,\sum) N(μ,) or N(x;μ,)

在这里插入图片描述
对于数据D,我们生成generative model:
p ( z = k ) = π k p ( x ∣ z = k ) = N ( x ∣ μ k , I ) p(z=k)=\pi_k \\ p(x|z=k)=N(x|\mu_k,I) p(z=k)=πkp(xz=k)=N(xμk,I)

在这里插入图片描述
在这里插入图片描述
如何选择 π k , μ k k = 1 K {\pi_k,\mu_k}_{k=1}^K πk,μkk=1K:根据最大拟然,选择能最大化观测值的参数。因此,需要用给定的数据集D,选择参数让下式最大
a r g m a x ( ∑ n = 1 N l o g p ( x ( n ) ) ) argmax(\sum_{n=1}^Nlogp(x^{(n)})) argmax(n=1Nlogp(x(n)))
得出p(x)
p ( x ) = ∑ k = 1 K p ( z = k , x ) = ∑ k = 1 K p ( z = k ) p ( x ∣ z = k ) = ∑ k = 1 K π k N ( x ∣ μ k , I ) p(x)=\sum_{k=1}^Kp(z=k,x)=\sum_{k=1}^Kp(z=k)p(x|z=k)=\sum_{k=1}^K\pi_kN(x|\mu_k,I) p(x)=k=1Kp(z=k,x)=k=1Kp(z=k)p(xz=k)=k=1KπkN(xμk,I)
这个分布是高斯混合模型Gaussian Mixture Model(GMM)的例子, π k \pi_k πk是mixing coefficients混合系数。
通常每个聚类有不同的系数,这节lec假设 ∑ k = I \sum_k=I k=I,减少复杂性
在这里插入图片描述

最大拟然目标:
在这里插入图片描述

如何优化 π k , μ k {\pi_k,\mu_k} πk,μk,观察到如果我们知道每个x(n)的z(n)标签,最大拟然问题可以被推导为
在这里插入图片描述
进而为了最大化左式,得到相应的参数
在这里插入图片描述
右式中的z(n)未知,但可以通过贝叶斯计算 p ( z ( n ) ∣ x ( n ) ) p(z^{(n)}|x^{(n)}) p(z(n)x(n)),也就是 I I [ z ( n ) = k ] II[z^{(n)}=k] II[z(n)=k]的期望 p ( z ( n ) = k ∣ x ( n ) ) p(z^{(n)}=k|x^{(n)}) p(z(n)=kx(n))
在这里插入图片描述

如何fit混合高斯:EM

10.2. EM algorithm

Expectation-Maximization algorithm,主要有两步:

  1. E-step:计算现在模型的先验概率 r k ( n ) = p ( z ( n ) = k ∣ x ( n ) ) r_k^{(n)}=p(z^{(n)}=k|x^{(n)}) rk(n)=p(z(n)=kx(n))
  2. M-step:使用上一个公式去更新参数,假设 r k ( n ) r_k^{(n)} rk(n)固定不变。只改变每个高斯的参数,来最大化他现在所属的数据点属于他的概率

在这里插入图片描述

EM公式化步骤:
在这里插入图片描述
复习generate model:

在这里插入图片描述
EM和k-means的关系:
EM就是k-means的概率化表达,k-means“这个点属于某个类”,且类与点的assign是通过距离确定。EM“这个点有多大可能属于某个类‘,类和点的assign是通过高斯混合模型确定。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值