西瓜书笔记3: 线性模型

目录

3.1 基本形式

3.2 线性回归

情形1, 输入属性只有1个

情形2, 样本属性d个, 多元线性回归

线性模型变化, 广义线性模型

3.3对数几率回归

对数几率函数

对数几率回归

参数估计-极大似然法

求最优解-牛顿法

3.4线性判别分析

参数估计-拉格朗日乘子法

推广到多分类任务

参数估计-广义特征值问题

3.5多分类学习

ECOC

3.6类别不平衡问题

习题


3.1 基本形式

线性模型(linear model)学得一个函数, 通过属性的线性组合来进行预测:

一般形式:

$$ f(\boldsymbol x)=w_1x_1+...+w_dx_d+b $$

向量形式:

$$ f(\boldsymbol x)=\boldsymbol w^\mathrm T\boldsymbol x+b, 其中\boldsymbol w=(w_1;...;w_d) $$

得w, b, 则模型确定.

其中列元素分隔符";", 行元素分隔符",". 故w为d*1的列向量.

线性模型为基础, 引入层级结构, 高维映射等衍生非线性模型(nonlinear model).

线性模型有可解释性(comprehensibility, understandability), w直观表达各属性重要性.

3.2 线性回归

情形1, 输入属性只有1个

离散属性处理: 1.连续化0-0.5-1( 属性值有序order )2.转化为k维向量0-1 ( 属性值无序 )

线性回归:

$$ f(x_i)=wx_i+b,使得f(x_i)\approx y_i $$

如何确定w, b->衡量f(x)与y差别->均方误差( 平方损失square loss )最小化:

$$ (w^*,b^*)=\arg\min_{(w,b)}\sum_{i=1}^m(f(x_i)-y_i)^2\\=\arg\min_{(w,b)}\sum_{i=1}^m(y_i-wx_i-b)^2 $$

 

其中有一些最优化方法的符号:min-输出目标函数最小值, arg min-输出使目标函数最小的参数(w^*,b^*即为w和b的解). 目标函数中y_i和x_i是常量即训练集样本.

均方误差几何意义: 欧氏距离(Euclidean distance)

“最小二乘法”(least square method)(基于均方误差最小化的模型求解方法)几何意义: 找到一条直线,使所有样本到直线上的欧氏距离之和最小.

线性回归模型的最小二乘“参数估计”(parameter estimation)- 找w, b:

E为w, b的凸函数, 令它关于w和b的导数均为0时得最优解. 将E_(w,b)分别对w和b求导.

参考: https://datawhalechina.github.io/pumpkin-book/#/chapter3/chapter3?id=_35

均方误差:

$$ E_{(w, b)}=\sum_{i=1}^{m}(y_{i}-w x_{i}-b)^{2} $$

E对w求导:

$$ \begin{aligned} \cfrac{\partial E_{(w, b)}}{\partial w}&=\cfrac{\partial}{\partial w} \left[\sum_{i=1}^{m}\left(y_{i}-w x_{i}-b\right)^{2}\right] \\ &= \sum_{i=1}^{m}\cfrac{\partial}{\partial w} \left[\left(y_{i}-w x_{i}-b\right)^{2}\right] \\ &= \sum_{i=1}^{m}\left[2\cdot\left(y_{i}-w x_{i}-b\right)\cdot (-x_i)\right] \\ &= \sum_{i=1}^{m}\left[2\cdot\left(w x_{i}^2-y_i x_i +bx_i\right)\right] \\ &= 2\cdot\left(w\sum_{i=1}^{m} x_{i}^2-\sum_{i=1}^{m}y_i x_i +b\sum_{i=1}^{m}x_i\right) \\ &=2\left(w \sum_{i=1}^{m} x_{i}^{2}-\sum_{i=1}^{m}\left(y_{i}-b\right) x_{i}\right) \end{aligned} $$

E对b求导:

$$ \begin{aligned} \cfrac{\partial E_{(w, b)}}{\partial b}&=\cfrac{\partial}{\partial b} \left[\sum_{i=1}^{m}\left(y_{i}-w x_{i}-b\right)^{2}\right] \\ &=\sum_{i=1}^{m}\cfrac{\partial}{\partial b} \left[\left(y_{i}-w x_{i}-b\right)^{2}\right] \\ &=\sum_{i=1}^{m}\left[2\cdot\left(y_{i}-w x_{i}-b\right)\cdot (-1)\right] \\ &=\sum_{i=1}^{m}\left[2\cdot\left(b-y_{i}+w x_{i}\right)\right] \\ &=2\cdot\left[\sum_{i=1}^{m}b-\sum_{i=1}^{m}y_{i}+\sum_{i=1}^{m}w x_{i}\right] \\ &=2\left(m b-\sum_{i=1}^{m}\left(y_{i}-w x_{i}\right)\right) \end{aligned} $$

令两个导数为0可得到w和b的最优闭式解(closed-form即具体表达式解出).

先算b的解比较方便, 令E对b的导数为0移项即可:

$$ b=\cfrac{1}{m}\sum_{i=1}^{m}(y_i-wx_i) $$

代入y bar, x bar可将形式化简:

$$ \cfrac{1}{m}\sum_{i=1}^{m}y_i=\bar{y}\\ \cfrac{1}{m}\sum_{i=1}^{m}x_i=\bar{x}\\则b=\bar{y}-w\bar{x} $$

令E对w导数等于0:

$$ 0 = w\sum_{i=1}^{m}x_i^2-\sum_{i=1}^{m}(y_i-b)x_i\\ w\sum_{i=1}^{m}x_i^2 = \sum_{i=1}^{m}y_ix_i-\sum_{i=1}^{m}bx_i  $$

将b代入上式可得:

$$ \begin{aligned} w\sum_{i=1}^{m}x_i^2 & = \sum_{i=1}^{m}y_ix_i-\sum_{i=1}^{m}(\bar{y}-w\bar{x})x_i \\ w\sum_{i=1}^{m}x_i^2 & = \sum_{i=1}^{m}y_ix_i-\bar{y}\sum_{i=1}^{m}x_i+w\bar{x}\sum_{i=1}^{m}x_i \end{aligned} $$

移项提w解出:

$$ \begin{aligned} w(\sum_{i=1}^{m}x_i^2-\bar{x}\sum_{i=1}^{m}x_i) & = \sum_{i=1}^{m}y_ix_i-\bar{y}\sum_{i=1}^{m}x_i \\ w & = \cfrac{\sum_{i=1}^{m}y_ix_i-\bar{y}\sum_{i=1}^{m}x_i}{\sum_{i=1}^{m}x_i^2-\bar{x}\sum_{i=1}^{m}x_i} \end{aligned} $$

重新将x_i, y_i代入上式中的y bar, x bar:

$$ \begin{aligned} \bar{y}\sum_{i=1}^{m}x_i& =\cfrac{1}{m}\sum_{i=1}^{m}y_i\sum_{i=1}^{m}x_i=\bar{x}\sum_{i=1}^{m}y_i\\ \bar{x}\sum_{i=1}^{m}x_i& =\cfrac{1}{m}\sum_{i=1}^{m}x_i\sum_{i=1}^{m}x_i=\cfrac{1}{m}(\sum_{i=1}^{m}x_i)^2 \end{aligned} $$

可解出w:

$$ w=\cfrac{\sum_{i=1}^{m}y_i(x_i-\bar{x})}{\sum_{i=1}^{m}x_i^2-\cfrac{1}{m}(\sum_{i=1}^{m}x_i)^2} $$

如果要用矩阵运算, 上式需要向量化:

将x bar​代入分母:

$$ \cfrac{1}{m}(\sum_{i=1}^{m}x_i)^2=\bar{x}\sum_{i=1}^{m}x_i\\ \begin{aligned} w & = \cfrac{\sum_{i=1}^{m}y_i(x_i-\bar{x})}{\sum_{i=1}^{m}x_i^2-\bar{x}\sum_{i=1}^{m}x_i} \\ & = \cfrac{\sum_{i=1}^{m}(y_ix_i-y_i\bar{x})}{\sum_{i=1}^{m}(x_i^2-x_i\bar{x})} \end{aligned} $$

再代入:

$$ \bar{y}\sum_{i=1}^{m}x_i=\bar{x}\sum_{i=1}^{m}y_i=\sum_{i=1}^{m}\bar{y}x_i=\sum_{i=1}^{m}\bar{x}y_i=m\bar{x}\bar{y}=\sum_{i=1}^{m}\bar{x}\bar{y}\\ \sum_{i=1}^{m}x_i\bar{x}=\bar{x}\sum_{i=1}^{m}x_i=\bar{x}\cdot m \cdot\frac{1}{m}\cdot\sum_{i=1}^{m}x_i=m\bar{x}^2=\sum_{i=1}^{m}\bar{x}^2 $$

将后一项的两个因子都化为平均值形式, 加项减项凑因式分解, 则w可化为:

$$ \begin{aligned} w & = \cfrac{\sum_{i=1}^{m}(y_ix_i-y_i\bar{x}-x_i\bar{y}+\bar{x}\bar{y})}{\sum_{i=1}^{m}(x_i^2-x_i\bar{x}-x_i\bar{x}+\bar{x}^2)} \\ & = \cfrac{\sum_{i=1}^{m}(x_i-\bar{x})(y_i-\bar{y})}{\sum_{i=1}^{m}(x_i-\bar{x})^2} \end{aligned} $$

若令x, y每一项分别去均值得x_d​、y_d​, 其中xx_d​、yy_d​均为m行1列的列向量:

$$ \boldsymbol{x}=(x_1,x_2,...,x_m)^T\\ \boldsymbol{x}_{d}=(x_1-\bar{x},x_2-\bar{x},...,x_m-\bar{x})^T\\ \boldsymbol{y}=(y_1,y_2,...,y_m)^T\\ \boldsymbol{y}_{d}=(y_1-\bar{y},y_2-\bar{y},...,y_m-\bar{y})^T $$

x_d​、y_d代入上式可得

$$ w=\cfrac{\boldsymbol{x}_{d}^T\boldsymbol{y}_{d}}{\boldsymbol{x}_d^T\boldsymbol{x}_{d}} $$

情形2, 样本属性d个, 多元线性回归

$$ f(\boldsymbol x_i)=\boldsymbol w^T\boldsymbol x_i+b,使得f(\boldsymbol x_i)\approx y_i  $$

最小二乘法进行w, b估计. 为便于讨论,把b吸收入向量形式:

$$ \hat {\boldsymbol w}=(\boldsymbol w;b) $$

用m*(d+1) 大小的矩阵X表示数据集D,其中每行对应于一个示例,前d个元素对应于示例的d个属性值,最后一个元素恒置为1:

$$ \boldsymbol X=\begin{bmatrix} x_{11} & \cdots & x_{1d} & 1 \\ \vdots & \ddots & \vdots & \vdots \\ x_{m1} & \cdots & x_{md} & 1 \end{bmatrix} = \begin{bmatrix} x_{1}^T & 1 \\ \vdots & \vdots \\  x_{m}^T & 1 \\  \end{bmatrix} $$

y写成向量形式:

$$ \boldsymbol y=(y_1;y_2;...;y_m) $$

均方误差最小化/最小二乘法:

$$ \hat{\boldsymbol{w}}^{*}=\underset{\hat{\boldsymbol{w}}}{\arg \min }(\boldsymbol{y}-\mathbf{X} \hat{\boldsymbol{w}})^{\mathrm{T}}(\boldsymbol{y}-\mathbf{X} \hat{\boldsymbol{w}}) $$
上式是由一元推多元, 先由一元的均方误差最小化式子中代入多元y(x_i)的向量形式:

$$ \begin{aligned} \left(\boldsymbol{w}^{*}, b^{*}\right)&=\underset{(\boldsymbol{w}, b)}{\arg \min } \sum_{i=1}^{m}\left(f\left(\boldsymbol{x}_{i}\right)-y_{i}\right)^{2} \\ &=\underset{(\boldsymbol{w}, b)}{\arg \min } \sum_{i=1}^{m}\left(y_{i}-f\left(\boldsymbol{x}_{i}\right)\right)^{2}\\ &=\underset{(\boldsymbol{w}, b)}{\arg \min } \sum_{i=1}^{m}\left(y_{i}-\left(\boldsymbol{w}^\mathrm{T}\boldsymbol{x}_{i}+b\right)\right)^{2} \end{aligned} $$

将b吸收入向量形式, w扩展一行, x扩展一列, 得简化形式:

$$ \begin{aligned} \hat{\boldsymbol{w}}^{*}&=\underset{\hat{\boldsymbol{w}}}{\arg \min } \sum_{i=1}^{m}\left(y_{i}-\hat{\boldsymbol{w}}^\mathrm{T}\hat{\boldsymbol{x}}_{i}\right)^{2} \\ &=\underset{\hat{\boldsymbol{w}}}{\arg \min } \sum_{i=1}^{m}\left(y_{i}-\hat{\boldsymbol{x}}_{i}^\mathrm{T}\hat{\boldsymbol{w}}\right)^{2} \\ \end{aligned} $$

写成向量内积的形式:

$$ \begin{aligned} \hat{\boldsymbol{w}}^{*}&=\underset{\hat{\boldsymbol{w}}}{\arg \min } \begin{bmatrix} y_{1}-\hat{\boldsymbol{x}}_{1}^\mathrm{T}\hat{\boldsymbol{w}} & \cdots & y_{m}-\hat{\boldsymbol{x}}_{m}^\mathrm{T}\hat{\boldsymbol{w}} \\ \end{bmatrix} \begin{bmatrix} y_{1}-\hat{\boldsymbol{x}}_{1}^\mathrm{T}\hat{\boldsymbol{w}} \\ \vdots \\ y_{m}-\hat{\boldsymbol{x}}_{m}^\mathrm{T}\hat{\boldsymbol{w}} \end{bmatrix} \\ \end{aligned} $$

也即

$$ \hat{\boldsymbol{w}}^{*}=\underset{\hat{\boldsymbol{w}}}{\arg \min }(\boldsymbol{y}-\mathbf{X} \hat{\boldsymbol{w}})^{\mathrm{T}}(\boldsymbol{y}-\mathbf{X} \hat{\boldsymbol{w}}) $$

则均方误差E为:

$$ E_{\hat{\boldsymbol{w}}}=(\boldsymbol{y}-\mathbf{X} \hat{\boldsymbol{w}})^{\mathrm{T}}(\boldsymbol{y}-\mathbf{X} \hat{\boldsymbol{w}}) $$

E展开然后对w求导:

$$ \cfrac{\partial E_{\hat{\boldsymbol w}}}{\partial \hat{\boldsymbol w}}= \cfrac{\partial \boldsymbol{y}^{\mathrm{T}}\boldsymbol{y}}{\partial \hat{\boldsymbol w}}-\cfrac{\partial \boldsymbol{y}^{\mathrm{T}}\mathbf{X}\hat{\boldsymbol w}}{\partial \hat{\boldsymbol w}}-\cfrac{\partial \hat{\boldsymbol w}^{\mathrm{T}}\mathbf{X}^{\mathrm{T}}\boldsymbol{y}}{\partial \hat{\boldsymbol w}}+\cfrac{\partial \hat{\boldsymbol w}^{\mathrm{T}}\mathbf{X}^{\mathrm{T}}\mathbf{X}\hat{\boldsymbol w}}{\partial \hat{\boldsymbol w}} $$

这里用到两个矩微分公式:

$$ \cfrac{\partial\boldsymbol{a}^{\mathrm{T}}\boldsymbol{x}}{\partial\boldsymbol{x}}=\cfrac{\partial\boldsymbol{x}^{\mathrm{T}}\boldsymbol{a}}{\partial\boldsymbol{x}}=\boldsymbol{a},\cfrac{\partial\boldsymbol{x}^{\mathrm{T}}\mathbf{A}\boldsymbol{x}}{\partial\boldsymbol{x}}=(\mathbf{A}+\mathbf{A}^{\mathrm{T}})\boldsymbol{x} $$

将公式代入可得:

$$ \cfrac{\partial E_{\hat{\boldsymbol w}}}{\partial \hat{\boldsymbol w}}= 0-\mathbf{X}^{\mathrm{T}}\boldsymbol{y}-\mathbf{X}^{\mathrm{T}}\boldsymbol{y}+(\mathbf{X}^{\mathrm{T}}\mathbf{X}+\mathbf{X}^{\mathrm{T}}\mathbf{X})\hat{\boldsymbol w}\\ \cfrac{\partial E_{\hat{\boldsymbol w}}}{\partial \hat{\boldsymbol w}}=2\mathbf{X}^{\mathrm{T}}(\mathbf{X}\hat{\boldsymbol w}-\boldsymbol{y}) $$

令上式(E对w的导数)为0即可得w的最优解.

若X^T*X可逆(满秩),直接求逆即可. 不可逆(变量超过样例数, 列数>行数, 解不唯一)就对其处理, 引入正则化项, 根据算法归纳偏好选择.

$$ \frac 1 2 \cfrac{\partial E_{\hat{\boldsymbol w}}}{\partial \hat{\boldsymbol w}}=0=\mathbf{X}^{\mathrm{T}}\mathbf{X}\hat{\boldsymbol w}-\mathbf{X}^{\mathrm{T}}\boldsymbol{y}\\ \hat{\boldsymbol{w}}^{*}=(\mathbf{X}^{\mathrm{T}}\mathbf{X})^{-1}\mathbf{X}^{\mathrm{T}}y $$

代入f可得:

$$ f(\hat{\boldsymbol x_i})=\hat{\boldsymbol x_i}(\mathbf{X}^{\mathrm{T}}\mathbf{X}\hat{\boldsymbol w})^{-1}\mathbf{X}^{\mathrm{T}}\boldsymbol{y} $$

线性模型变化, 广义线性模型

令模型预测值逼近y的衍生物, 将输出标记的对数作为线性模型逼近的目标.

通过线性回归实现非线性模型. 如对数线性回归:

$$ \ln y=\boldsymbol w^{\mathrm T}\boldsymbol x+b\\ y=e^{\boldsymbol w^{\mathrm T}\boldsymbol x+b} $$

广义线性模型考虑单调可微函数g作为联系函数:

$$ y=g^{-1}(\boldsymbol w^{\mathrm T}\boldsymbol x+b) $$

一般先对数据集标记y预处理, 将其转化为g(y)再训练

3.3对数几率回归

对数几率函数

用广义线性模型做二分类任务, 输出实值z转化为y 0/1值. 单位阶跃函数不连续,不能作为联系函数g^-1. S形的对数几率函数(logistic function) 单调可微, 为常用的替代函数:

$$ y=\frac 1{1+e^{-z}} $$

代入z可得:

$$ y=\frac 1{1+e^{-(\boldsymbol w^{\mathrm T}\boldsymbol x+b)}} $$

转化为广义线性模型的形式:

$$ \ln {\frac{y}{1-y}}=\boldsymbol w^{\mathrm T}\boldsymbol x+b $$

其中, 等号左侧为对数几率.

几率: y/(1-y)样本为正例的相对可能性.

y: 样本为正例的可能性(而非二值化后的0/1).

1-y: 样本为反例的可能性.

对数几率回归

一种分类学习方法的模型, 用线性回归模型的预测结果逼近标记y的对数几率.

优点: 无需事先假设分布, 得到近似概率预测可辅助决策, 目标函数为凸函数可使用很多数值优化算法( 梯度下降, 牛顿法 ).

将y视为类后验概率估计:

$$ y=p(y=1|x)\\ 1-y=p(y=0|x) $$

上式y代入对数几率可重写为:

$$ \ln {\frac{p(y=1|x)}{p(y=0|x)}}=\boldsymbol w^{\mathrm T}\boldsymbol x+b $$

同时y代入对数几率函数也可重写:

$$ y=p(y=1|x)=\frac 1{1+e^{-(\boldsymbol w^{\mathrm T}\boldsymbol x+b)}} $$

分子分母同乘e^(w^T*x+b)得

$$ p(y=1|x)=\frac {e^{\boldsymbol w^{\mathrm T}\boldsymbol x+b}}{1+e^{\boldsymbol w^{\mathrm T}\boldsymbol x+b}}\\ 1-y=p(y=0|x)=\frac {1}{1+e^{\boldsymbol w^{\mathrm T}\boldsymbol x+b}} $$

参数估计-极大似然法

首先需要复习一下最大似然法. 估计量求法主要是两种: 矩估计法, 最大似然估计.

最大似然估计中核心的是最大似然函数: L(θ)=L(x_1, …, x_n; θ)

$$ L(\theta)=L(x_1, …, x_n; \theta)=\prod_{i=1}^n p(x_i;\theta) $$

其中x_i为样本, θ为待估参数.

对率回归模型最大化"对数似然"(取对数后累乘就变成了累加):

$$ \ell(\boldsymbol{w},b)=\sum_{i=1}^{m}\ln p(y_i|\boldsymbol{x}_i;\boldsymbol{w},b) $$

即每个样本标记真实的概率最大化.

为便于讨论,把b吸收入向量形式:

$$ \boldsymbol\beta=(\boldsymbol{w},b)\\ \hat {\boldsymbol x}=(\boldsymbol{x},1)\\\boldsymbol\beta \hat {\boldsymbol x}=\boldsymbol w^{\mathrm T}\boldsymbol x+b $$

再定义p简写形式:

$$ p_1(\hat {\boldsymbol x};\boldsymbol\beta)=p(y=1|\hat {\boldsymbol x};\boldsymbol\beta)\\p_0(\hat {\boldsymbol x};\boldsymbol\beta)=p(y=0|\hat {\boldsymbol x};\boldsymbol\beta)=1-p_1(\hat {\boldsymbol x};\boldsymbol\beta) $$

将β, p等代入, 可重写对数似然中的似然项:

$$ p(y_i|\boldsymbol{x}_i;\boldsymbol{w},b)=y_i p_1(\hat {\boldsymbol x_i};\boldsymbol\beta)+(1-y_i)p_0(\hat {\boldsymbol x_i};\boldsymbol\beta) $$

即y_i=1时取前一项p_1, y_i=0时取后一项p_0.

将上式代入似然函数ℓ得:

$$ \ell(\boldsymbol{\beta})=\sum_{i=1}^{m}\ln\left(y_ip_1(\hat{\boldsymbol x}_i;\boldsymbol{\beta})+(1-y_i)p_0(\hat{\boldsymbol x}_i;\boldsymbol{\beta})\right) $$

代入p_0, p_1, 提公共分母得

$$ \begin{aligned} \ell(\boldsymbol{\beta})&=\sum_{i=1}^{m}\ln\left(\cfrac{y_ie^{\boldsymbol{\beta}^{\mathrm{T}}\hat{\boldsymbol x}_i}+1-y_i}{1+e^{\boldsymbol{\beta}^{\mathrm{T}}\hat{\boldsymbol x}_i}}\right) \\ &=\sum_{i=1}^{m}\left(\ln(y_ie^{\boldsymbol{\beta}^{\mathrm{T}}\hat{\boldsymbol x}_i}+1-y_i)-\ln(1+e^{\boldsymbol{\beta}^{\mathrm{T}}\hat{\boldsymbol x}_i})\right) \end{aligned} $$

取y_i​=0或1后, 式中第一项的lne=1可以消掉:

$$ \ell(\boldsymbol{\beta}) = \begin{cases} \sum_{i=1}^{m}(-\ln(1+e^{\boldsymbol{\beta}^{\mathrm{T}}\hat{\boldsymbol x}_i})), & y_i=0 \\ \sum_{i=1}^{m}(\boldsymbol{\beta}^{\mathrm{T}}\hat{\boldsymbol x}_i-\ln(1+e^{\boldsymbol{\beta}^{\mathrm{T}}\hat{\boldsymbol x}_i})), & y_i=1 \end{cases} $$

​y_i​=0, y_i​=1两式综合可得:

$$ \ell(\boldsymbol{\beta})=\sum_{i=1}^{m}\left(y_i\boldsymbol{\beta}^{\mathrm{T}}\hat{\boldsymbol x}_i-\ln(1+e^{\boldsymbol{\beta}^{\mathrm{T}}\hat{\boldsymbol x}_i})\right) $$

在最大化似然函数前添加负号可得最小化似然函数:

$$ \ell(\boldsymbol{\beta})=\sum_{i=1}^{m}\left(-y_i\boldsymbol{\beta}^{\mathrm{T}}\hat{\boldsymbol x}_i+\ln(1+e^{\boldsymbol{\beta}^{\mathrm{T}}\hat{\boldsymbol x}_i})\right) $$

求最优解-牛顿法

上式是凸函数, 可使用数值优化算法如梯度下降法, 牛顿法得最优解:

$$ \boldsymbol{\beta}^*=\underset{\boldsymbol{\beta}}{\arg\min} \ell(\boldsymbol{\beta}) $$

牛顿法第t+1轮迭代解的更新公式:

$$ \boldsymbol{\beta}^{t+1}=\boldsymbol{\beta}^{t}-(\frac{\partial^2 \ell(\boldsymbol{\beta})}{\partial\boldsymbol{\beta}\partial\boldsymbol{\beta}^\mathrm T})^{-1}\frac{\partial \ell(\boldsymbol{\beta})}{\partial\boldsymbol{\beta}} $$

相关知识点: 牛顿法, 向量函数, 矩阵求导

上式中关于β的1阶、2阶导数分别为:

$$ \frac{\partial \ell(\boldsymbol{\beta})}{\partial\boldsymbol{\beta}}=-\sum_{i=1}^m \hat {\boldsymbol x_i}(y_i-p_1(\hat {\boldsymbol x_i};\boldsymbol\beta))\\ \frac{\partial^2 \ell(\boldsymbol{\beta})}{\partial\boldsymbol{\beta}\partial\boldsymbol{\beta}^\mathrm T}=\sum_{i=1}^m \hat {\boldsymbol x_i}\hat {\boldsymbol x_i}^\mathrm T p_1(\hat {\boldsymbol x_i};\boldsymbol\beta)(y_i-p_1(\hat {\boldsymbol x_i};\boldsymbol\beta)) $$

其中1阶导数的ℓ(β)代入(3.27)给出的最小化目标函数:

$$ \begin{aligned}\frac{\partial \ell(\boldsymbol{\beta})}{\partial\boldsymbol{\beta}}&=\frac{\partial\sum_{i=1}^{m}\left(-y_i\boldsymbol{\beta}^{\mathrm{T}}\hat{\boldsymbol x}_i+\ln(1+e^{\boldsymbol{\beta}^{\mathrm{T}}\hat{\boldsymbol x}_i})\right)}{\partial\boldsymbol{\beta}}\\ &=\sum_{i=1}^{m}\left(\frac{\partial(-y_i\boldsymbol{\beta}^{\mathrm{T}}\hat{\boldsymbol x}_i)}{\partial\boldsymbol{\beta}}+\frac{\partial\ln(1+e^{\boldsymbol{\beta}^{\mathrm{T}}\hat{\boldsymbol x}_i})}{\partial\boldsymbol{\beta}}\right)\end{aligned} $$

根据复合函数求导公式ln'(1+e^αx):

$$ \begin{aligned}\frac{\partial \ell(\boldsymbol{\beta})}{\partial\boldsymbol{\beta}} &=\sum_{i=1}^{m}\left(-y_i\hat{\boldsymbol x}_i+\frac{1}{1+e^{\boldsymbol{\beta}^{\mathrm{T}}\hat{\boldsymbol x}_i}}\hat{\boldsymbol x}_ie^{\boldsymbol{\beta}^{\mathrm{T}}\hat{\boldsymbol x}_i}\right)\\ &=-\sum_{i=1}^{m}\hat{\boldsymbol x}_i\left(y_i-\frac{e^{\boldsymbol{\beta}^{\mathrm{T}}\hat{\boldsymbol x}_i}}{1+e^{\boldsymbol{\beta}^{\mathrm{T}}\hat{\boldsymbol x}_i}}\right)\end{aligned} $$

上式括号内最后一项即为p_1, 代入得1阶导.

2阶导数的∂ℓ (β)/∂β代入上式给出的一阶导, 再次求导:

$$ \frac{\partial^2 \ell(\boldsymbol{\beta})}{\partial\boldsymbol{\beta}\partial\boldsymbol{\beta}^\mathrm T}= -\frac{\partial\sum_{i=1}^{m}\hat{\boldsymbol x}_i\left(y_i-\frac{e^{\boldsymbol{\beta}^{\mathrm{T}}\hat{\boldsymbol x}_i}}{1+e^{\boldsymbol{\beta}^{\mathrm{T}}\hat{\boldsymbol x}_i}}\right)}{\partial\boldsymbol{\beta}^\mathrm T}  $$

其中x_i, y_i为样本值常数项:

$$ \begin{aligned}\frac{\partial^2 \ell(\boldsymbol{\beta})} {\partial\boldsymbol{\beta}\partial\boldsymbol{\beta}^\mathrm T}&= -\sum_{i=1}^{m}\hat{\boldsymbol x}_i \frac{\partial\left(y_i-\frac{e^{\boldsymbol{\beta}^{\mathrm{T}}\hat{\boldsymbol x}_i}} {1+e^{\boldsymbol{\beta}^{\mathrm{T}}\hat{\boldsymbol x}_i}}\right)} {\partial\boldsymbol{\beta}^\mathrm T} \\ &=-\sum_{i=1}^{m}\hat{\boldsymbol x}_i \left( \frac{\partial y_i} {\partial\boldsymbol{\beta}^\mathrm T}- \frac{\partial\left(\frac{e^{\boldsymbol{\beta}^{\mathrm{T}}\hat{\boldsymbol x}_i}} {1+e^{\boldsymbol{\beta}^{\mathrm{T}}\hat{\boldsymbol x}_i}}\right)} {\partial\boldsymbol{\beta}^\mathrm T} \right) \end{aligned} $$

其中第一项偏导数为0, 第二项利用除法求导公式:

$$ \begin{aligned} \frac{\partial\left(\frac{e^{\boldsymbol{\beta}^{\mathrm{T}}\hat{\boldsymbol x}_i}} {1+e^{\boldsymbol{\beta}^{\mathrm{T}}\hat{\boldsymbol x}_i}}\right)} {\partial\boldsymbol{\beta}^\mathrm T}&= \frac{\frac{\partial e^{\boldsymbol{\beta}^{\mathrm{T}}\hat{\boldsymbol x}_i}}{\partial\boldsymbol{\beta}^\mathrm T}(1+e^{\boldsymbol{\beta}^{\mathrm{T}}\hat{\boldsymbol x}_i})-e^{\boldsymbol{\beta}^{\mathrm{T}}\hat{\boldsymbol x}_i}\frac{\partial(1+e^{\boldsymbol{\beta}^{\mathrm{T}}\hat{\boldsymbol x}_i})}{\partial\boldsymbol{\beta}^\mathrm T}}{(1+e^{\boldsymbol{\beta}^{\mathrm{T}}\hat{\boldsymbol x}_i})^2}\\ &= \frac{\hat{\boldsymbol x}_i^\mathrm{T} e^{\boldsymbol{\beta}^{\mathrm{T}}\hat{\boldsymbol x}_i}(1+e^{\boldsymbol{\beta}^{\mathrm{T}}\hat{\boldsymbol x}_i})-e^{\boldsymbol{\beta}^{\mathrm{T}}\hat{\boldsymbol x}_i}\hat{\boldsymbol x}_i^\mathrm{T} e^{\boldsymbol{\beta}^{\mathrm{T}}\hat{\boldsymbol x}_i}}{(1+e^{\boldsymbol{\beta}^{\mathrm{T}}\hat{\boldsymbol x}_i})^2}\\ &= \hat{\boldsymbol x}_i^\mathrm{T} e^{\boldsymbol{\beta}^{\mathrm{T}}\hat{\boldsymbol x}_i} \frac{(1+e^{\boldsymbol{\beta}^{\mathrm{T}}\hat{\boldsymbol x}_i})-e^{\boldsymbol{\beta}^{\mathrm{T}}\hat{\boldsymbol x}_i}}{(1+e^{\boldsymbol{\beta}^{\mathrm{T}}\hat{\boldsymbol x}_i})^2}\\ &= \frac{\hat{\boldsymbol x}_i^\mathrm{T} e^{\boldsymbol{\beta}^{\mathrm{T}}\hat{\boldsymbol x}_i}}{(1+e^{\boldsymbol{\beta}^{\mathrm{T}}\hat{\boldsymbol x}_i})^2} \end{aligned} $$

将第一项偏导(0), 第二项偏导(上式)代入二阶导得:

$$ \begin{aligned}\frac{\partial^2 \ell(\boldsymbol{\beta})} {\partial\boldsymbol{\beta}\partial\boldsymbol{\beta}^\mathrm T} &= \sum_{i=1}^{m}\hat{\boldsymbol x}_i \left(  0- \frac{\hat{\boldsymbol x}_i^\mathrm{T} e^{\boldsymbol{\beta}^{\mathrm{T}}\hat{\boldsymbol x}_i}}{(1+e^{\boldsymbol{\beta}^{\mathrm{T}}\hat{\boldsymbol x}_i})^2} \right)\\  &=  \sum_{i=1}^{m}\hat{\boldsymbol x}_i \hat{\boldsymbol x}_i^\mathrm{T} \frac{ e^{\boldsymbol{\beta}^{\mathrm{T}}\hat{\boldsymbol x}_i}}{1+e^{\boldsymbol{\beta}^{\mathrm{T}}\hat{\boldsymbol x}_i}}  \frac{1}{1+e^{\boldsymbol{\beta}^{\mathrm{T}}\hat{\boldsymbol x}_i}} \end{aligned} $$

最后两个因式分别简写为p1, (1-p1)即得二阶导公式(3.31)

一阶导在实际应用中还可能需要向量化:

$$ \frac{\partial \ell(\boldsymbol{\beta})}{\partial \boldsymbol{\beta}}=-\sum_{i=1}^{m}\hat{\boldsymbol x}_i(y_i-p_1(\hat{\boldsymbol x}_i;\boldsymbol{\beta}))\\ 令p_1(\hat{\boldsymbol x}_i;\boldsymbol{\beta})=\hat{y}_i\\ \begin{aligned} \frac{\partial \ell(\boldsymbol{\beta})}{\partial \boldsymbol{\beta}} &= -\sum_{i=1}^{m}\hat{\boldsymbol x}_i(y_i-\hat{y}_i) \\ & =\sum_{i=1}^{m}\hat{\boldsymbol x}_i(\hat{y}_i-y_i) \\ & ={\mathbf{X}^{\mathrm{T}}}(\hat{\boldsymbol y}-\boldsymbol{y}) \\ & ={\mathbf{X}^{\mathrm{T}}}(p_1(\mathbf{X};\boldsymbol{\beta})-\boldsymbol{y}) \\ \end{aligned} $$

牛顿法

牛顿法原理参考《最优化方法》(孙文瑜)

https://www.bilibili.com/video/BV15C4y1s71

无约束最优化方法中的一种。梯度下降法只需目标函数的一阶导数信息,牛顿法需要目标函数的二阶导数信息。

在x_k附近泰勒展开到2阶近似f(x):

$$ f(x)\approx f(x_k)+\nabla f(x_k)^\mathrm T(x-x_k)+\frac1 2(x-x_k)^\mathrm T\nabla^2 f(x_k)^\mathrm T(x-x_k) $$

令s=x-x_k(自变量迭代增量),则x=x_k+s:

$$ 令q^k(s)\approx f(x_k+s)\approx f(x_k)+\nabla f(x_k)^\mathrm T s+\frac 1 2s^\mathrm T\nabla^2 f(x_k)^\mathrm T s $$

求解自变量迭代增量s使q^k(s)极小化,即对q^k(s)求导并令导数等于零:

$$ \nabla q^k(s)= \nabla f(x_k)+\nabla^2 f(x_k) s=0 $$

其中求导过程: 第一项x^k是常数, 常数项求梯度为0, 线性项使用矩微分第一个公式, 该二次项(可参考附录A.2导数)为二次型的形式, 用链式求导: 先整个式子对(Ax-b)求导, 再(Ax-b)对x求导.

整个式子对(Ax-b)求导过程: 通过矩微分常用公式2可得附录式(A.32)第一行等号右边部分, 其中W^T+W因为W对称化为2W.

(Ax-b)对x求导过程: 通过矩微分常用公式1变形可得. 公式1的被微分函数中有一个为转置, 那就把A看成A^T的转置.

重温矩微分公式:

$$ \cfrac{\partial\boldsymbol{a}^{\mathrm{T}}\boldsymbol{x}}{\partial\boldsymbol{x}}=\cfrac{\partial\boldsymbol{x}^{\mathrm{T}}\boldsymbol{a}}{\partial\boldsymbol{x}}=\boldsymbol{a},\cfrac{\partial\boldsymbol{x}^{\mathrm{T}}\mathbf{A}\boldsymbol{x}}{\partial\boldsymbol{x}}=(\mathbf{A}+\mathbf{A}^{\mathrm{T}})\boldsymbol{x} $$

求导后解出s:

$$ s=-[\nabla^2 f(x_k)]^{-1}\nabla f(x_k) $$

代回s=x-x_k可得迭代公式:

$$ x_{k+1}=x_{k}-[\nabla^2 f(x_k)]^{-1}\nabla f(x_k) $$

对应到书中迭代公式还需代入实际变量:

$$ f(x_k)=\ell(\boldsymbol\beta),\boldsymbol\beta^t=\boldsymbol x_k,\nabla f(x_k)=\frac{\partial\ell(\boldsymbol\beta)}{\partial\boldsymbol\beta},\nabla^2 f(x_k)=\frac{\partial^2\ell(\boldsymbol\beta)}{\partial\boldsymbol\beta\partial\boldsymbol\beta^\mathrm T} $$

矩阵求导

https://www.bilibili.com/video/BV1xk4y1B7RQ?p=3

利用numpy计算矩阵比for循环快100倍左右.

过去学的是标量函数, 现在是向量函数.

则出现4中求导情况:标量对标量,向量对向量,标量对向量,向量对标量.

矩阵求导的本质是遍历,矩阵A中每一个元素,要对B中每一个元素求导. 求导后的元素如何排列:Y横向拉伸,X纵向拉伸

1. X纵向拉伸:对每个分量X求偏导,放到一个列向量

若f(x)为标量函数, x为向量. 标量f(x)不变, 向量x拉伸. 形状x:n*1, f(x): 1*1, df(x)/dx: n*1

实际就是多元函数的偏导数写在一个列向量中.

$$ f(x)=f(x_1,...,x_n)\\ x=[x_1,...x_n]^\mathrm T\\ \frac{df(x)}{dx}= \begin{bmatrix} \frac{\partial f(x)}{\partial x_1} \\ \vdots \\  \frac{\partial f(x)}{\partial x_n} \\  \end{bmatrix} $$

2. Y横向拉伸: 标量x不变, 向量函数f横向拉伸

$$ f(x)=\begin{bmatrix} f_1(x) \\ \vdots \\  f_n(x)\\  \end{bmatrix},\\ x为标量,\\ \frac{df(x)}{dx}= [\frac{\partial f_1(x)}{\partial x} \ ...\ \frac{\partial f_n(x)}{\partial x}] $$

3. XY逐个拉伸

$$ f(x)=\begin{bmatrix} f_1(x) \\ \vdots \\  f_n(x)\\  \end{bmatrix}, x=\begin{bmatrix} x_1 \\ \vdots \\  x_n\\  \end{bmatrix} $$

拉伸X后由向量X变为标量x_i, 再每行拉伸Y. 形状x: n*1, f(x): n*1, df(x)/dx: n*n

$$ \frac{df(x)}{dx}= \begin{bmatrix} \frac{\partial f(x)}{\partial x_1} \\ \vdots \\  \frac{\partial f(x)}{\partial x_n} \\  \end{bmatrix}=\begin{bmatrix} \frac{\partial f_1(x)}{\partial x_1} & \cdots & \frac{\partial f_n(x)}{\partial x_1}\\ \vdots & & \vdots\\  \frac{\partial f_1(x)}{\partial x_n} & \cdots & \frac{\partial f_n(x)}{\partial x_1}\\  \end{bmatrix} $$

常用公式1推导:

$$ f(x)=A^\mathrm T X,A=[a_1,...,a_n]^\mathrm T,X=[x_1,...,x_n]^\mathrm T\\ \frac{dA^\mathrm T X}{dX}=\frac{dXA^\mathrm T}{dX}=A $$

机器学习中的向量默认都是列向量. 此处的f为标量函数, X为向量.

$$ \frac{df(x)}{dx}= \begin{bmatrix} \frac{\partial f(x)}{\partial x_1} \\ \vdots \\  \frac{\partial f(x)}{\partial x_n} \\  \end{bmatrix}=\begin{bmatrix} a_1 \\ \vdots \\  a_n \\  \end{bmatrix}=A $$

前转后不转为标量,标量转置不变:

$$ A^\mathrm T X=XA^\mathrm T\\ \frac{dA^\mathrm T X}{dX}=\frac{dXA^\mathrm T}{dX}=A $$

常用公式2推导:

当f为二次型的形式:

$$ \frac{dX^\mathrm TAX}{dX}=(A+A^\mathrm T)X\\ 令X=[x_1,...,x_n]^\mathrm T, A=\begin{bmatrix} a_{11} & \cdots & a_{1n} \\ \vdots \\  a_{n1} & \cdots & a_{nn} \\  \end{bmatrix}\\ \begin{aligned} f(x)&=X^\mathrm TAX\\&=[x_1,...,x_n]\begin{bmatrix} a_{11} & \cdots & a_{1n} \\ \vdots \\  a_{n1} & \cdots & a_{nn} \\  \end{bmatrix}\begin{bmatrix} x_{1} \\ \vdots \\  x_{n}  \\  \end{bmatrix} \end{aligned} $$

形状x: n*1, A: n*n, f: 1*1三个矩阵形状乘完之后还是标量

利用矩阵乘法公式可得:

$$ f(x)=\sum _{i=1}^n\sum _{j=1}^n a_{ij}x_{i}x_{j} $$

其中a_ij下标i与x_i下标同, 来自于第一个矩阵X^T. a_ij下标j与x_j下标同, 来自于第二个矩阵X.

f是标量不动,x是向量纵向拉伸,结果也是列向量.

由于f的累加式中有两个x因子,每个x_1分别对应i=1与j=1, 分别对这两项求导:

$$ \begin{aligned} \frac{df(x)}{dx}&= \begin{bmatrix} \frac{\partial f(x)}{\partial x_1} \\ \vdots \\  \frac{\partial f(x)}{\partial x_n} \\  \end{bmatrix}\\&=\begin{bmatrix} \sum _{j=1}^n a_{1j}x_{j}+\sum _{i=1}^n a_{i1}x_{i} \\ \vdots \\  \sum _{j=1}^n a_{nj}x_{j}+\sum _{i=1}^n a_{in}x_{i} \\  \end{bmatrix}\end{aligned} $$

f对x的导数可以分成两个列向量相加, 再根据乘法公式倒推可分别写成两个矩阵相乘. 这两个矩阵正好分别是A X与A^T X:

$$ \begin{aligned} \frac{df(x)}{dx}&= \begin{bmatrix} \sum _{j=1}^n a_{1j}x_{j} \\ \vdots \\  \sum _{j=1}^n a_{nj}x_{j} \\  \end{bmatrix} +\begin{bmatrix} \sum _{i=1}^n a_{i1}x_{i} \\ \vdots \\  \sum _{i=1}^n a_{in}x_{i} \\  \end{bmatrix}\\&=\begin{bmatrix} a_{11} & \cdots & a_{1n} \\ \vdots \\  a_{n1} & \cdots & a_{nn} \\ \end{bmatrix}\begin{bmatrix} x_{1} \\ \vdots \\  x_{n}  \\  \end{bmatrix}+\begin{bmatrix} a_{11} & \cdots & a_{n1} \\ \vdots \\  a_{1n} & \cdots & a_{nn} \\ \end{bmatrix}\begin{bmatrix} x_{1} \\ \vdots \\  x_{n}  \\  \end{bmatrix}\\&=AX+A^\mathrm TX=(A+A^\mathrm T)X \end{aligned} $$

3.4线性判别分析

线性判别分析LDA (Linear Discriminant Analysis) 的思想: 给定训练样例集, 设法将样例投影到一条直线上, 使得同类样例的投影点尽可能接近、 异类样例投影点尽可能远离; 在对新样本进行分类时,将其投影到同样的这条直线上,再根据投影点的位置来确定新样本的类别.

给定数据集D={(x_i, y_i)}, y_i=0或1,

第i(0或1)类示例的集合: X_i

第i(0或1)类均值向量: μ_i

第i(0或1)类协方差矩阵: Σ_i

投影到直线: ω

第i(0或1)类样本中心的投影: ω^T*μ_0, ω^T*μ_1

第i(0或1)类样本投影后协方差: ω^T*Σ_0*ω, ω^T*Σ_1*ω

由于直线是一维空间, 因此中心的投影ω^T*μ_0, ω^T*μ_1, 投影后协方差ω^T*Σ_0*ω, ω^T*Σ_1*ω均为实数.

使同类样例的投影点尽可能接近->同类样例投影点的协方差尽可能小,即:

$$ w^{\mathrm T}\Sigma_0w+w^{\mathrm T}\Sigma_1w $$

使异类样例的投影点尽可能远离->类中心之间的距离尽可能大,即:

$$ \Vert w^{\mathrm T}\mu_0+w^{\mathrm T}\mu_1 \Vert^2_2 $$

相关知识:范数

||x||p:=(∑i=1n||xi||p)1p(1)

L0范数是指向量中非0的元素的个数。

L1范数是指向量中各个元素绝对值之和。

L2范数是指向量各元素的平方和然后求平方根

最大化的目标J(S_b与Sw的"广义瑞利商").

$$ J= \frac{\boldsymbol w^{\mathrm{T}}\boldsymbol{\mathrm S}_b\boldsymbol w}{\boldsymbol w^{\mathrm{T}}\boldsymbol{\mathrm S}_w\boldsymbol w} $$

同时考虑二者(同类协方差, 异类中心距离),则可得到J. 对J进行推导:

$$ \begin{aligned} J &= \cfrac{\|\boldsymbol w^{\mathrm{T}}\boldsymbol{\mu}_{0}-\boldsymbol w^{\mathrm{T}}\boldsymbol{\mu}_{1}\|_2^2}{\boldsymbol w^{\mathrm{T}}(\boldsymbol{\Sigma}_{0}+\boldsymbol{\Sigma}_{1})\boldsymbol w} \\ &= \cfrac{\|(\boldsymbol w^{\mathrm{T}}\boldsymbol{\mu}_{0}-\boldsymbol w^{\mathrm{T}}\boldsymbol{\mu}_{1})^{\mathrm{T}}\|_2^2}{\boldsymbol w^{\mathrm{T}}(\boldsymbol{\Sigma}_{0}+\boldsymbol{\Sigma}_{1})\boldsymbol w} \\ &= \cfrac{\|(\boldsymbol{\mu}_{0}-\boldsymbol{\mu}_{1})^{\mathrm{T}}\boldsymbol w\|_2^2}{\boldsymbol w^{\mathrm{T}}(\boldsymbol{\Sigma}_{0}+\boldsymbol{\Sigma}_{1})\boldsymbol w} \\ &= \cfrac{\left[(\boldsymbol{\mu}_{0}-\boldsymbol{\mu}_{1})^{\mathrm{T}}\boldsymbol w\right]^{\mathrm{T}}(\boldsymbol{\mu}_{0}-\boldsymbol{\mu}_{1})^{\mathrm{T}}\boldsymbol w}{\boldsymbol w^{\mathrm{T}}(\boldsymbol{\Sigma}_{0}+\boldsymbol{\Sigma}_{1})\boldsymbol w} \\ &= \cfrac{\boldsymbol w^{\mathrm{T}}(\boldsymbol{\mu}_{0}-\boldsymbol{\mu}_{1})(\boldsymbol{\mu}_{0}-\boldsymbol{\mu}_{1})^{\mathrm{T}}\boldsymbol w}{\boldsymbol w^{\mathrm{T}}(\boldsymbol{\Sigma}_{0}+\boldsymbol{\Sigma}_{1})\boldsymbol w} \end{aligned} $$

定义类内散度矩阵(即分母中间部分):

$$ \begin{aligned} \boldsymbol{\mathrm S}_w &=\boldsymbol{\Sigma}_{0}+\boldsymbol{\Sigma}_{1}\\ &= \sum_{x\in X_0}(\boldsymbol x-\boldsymbol{\mu}_{0})(\boldsymbol x-\boldsymbol{\mu}_{0})^{\mathrm{T}}+ \sum_{x\in X_1}(\boldsymbol x-\boldsymbol{\mu}_{1})(\boldsymbol x-\boldsymbol{\mu}_{1})^{\mathrm{T}}\end{aligned} $$

定义类间散度矩阵(即分子中间部分):

$$ \boldsymbol{\mathrm S}_b= (\boldsymbol{\mu}_{0}-\boldsymbol{\mu}_{1})(\boldsymbol{\mu}_{0}-\boldsymbol{\mu}_{1})^{\mathrm{T}} $$

将S_b, S_w代入J即可得到广义瑞利商形式.

参数估计-拉格朗日乘子法

目标函数的分子和分母都是关于的二次项, 因此目标函数的解与w的长度无关, 只与其方向有关. 不失一般性,令分母ω^T*S_ω*ω= 1. 在最大化式前添加负号可得最小化函数. 满足分母的约束条件时, 最小化则目标函数可写作:

$$ \min_{\boldsymbol w}-\boldsymbol w^{\mathrm{T}}\boldsymbol{\mathrm S}_b\boldsymbol w\\  s.t. \ \boldsymbol w^{\mathrm{T}}\boldsymbol{\mathrm S}_w\boldsymbol w=1 $$

对上式应用拉格朗日乘子法可得拉格朗日函数为:

$$ L(\boldsymbol w,\lambda)=-\boldsymbol w^{\mathrm{T}}\mathbf{S}_b\boldsymbol w+\lambda(\boldsymbol w^{\mathrm{T}}\mathbf{S}_w\boldsymbol w-1) $$

其中, g(x)=0的约束即:

$$ \boldsymbol w^{\mathrm{T}}\mathbf{S}_w\boldsymbol w-1=0 $$

对w求偏导可得

$$ \begin{aligned} \cfrac{\partial L(\boldsymbol w,\lambda)}{\partial \boldsymbol w} &= -\cfrac{\partial(\boldsymbol w^{\mathrm{T}}\mathbf{S}_b\boldsymbol w)}{\partial \boldsymbol w}+\lambda \cfrac{\partial(\boldsymbol w^{\mathrm{T}}\mathbf{S}_w\boldsymbol w-1)}{\partial \boldsymbol w} \\ &= -(\mathbf{S}_b+\mathbf{S}_b^{\mathrm{T}})\boldsymbol w+\lambda(\mathbf{S}_w+\mathbf{S}_w^{\mathrm{T}})\boldsymbol w \end{aligned} $$

在机器学习中有:

$$ \mathbf{S}_b=\mathbf{S}_b^{\mathrm{T}},\mathbf{S}_w=\mathbf{S}_w^{\mathrm{T}} $$

代入可得:

$$ \cfrac{\partial L(\boldsymbol w,\lambda)}{\partial \boldsymbol w} = -2\mathbf{S}_b\boldsymbol w+2\lambda\mathbf{S}_w\boldsymbol w $$

令上式等于0即可得

$$ -2\mathbf{S}_b\boldsymbol w+2\lambda\mathbf{S}_w\boldsymbol w=0\\ \mathbf{S}_b\boldsymbol w=\lambda\mathbf{S}_w\boldsymbol w $$

其中, λ为拉格朗日乘子. 由于最终要求解的w不关心其大小,只关心其方向,所以常数λ可以任意取值配合求解w. 上式代入S_b与λ, 移项即可解出w:

$$ (\boldsymbol{\mu}_{0}-\boldsymbol{\mu}_{1})(\boldsymbol{\mu}_{0}-\boldsymbol{\mu}_{1})^{\mathrm{T}}\boldsymbol{w}=\lambda\mathbf{S}_w\boldsymbol w \\ 令\lambda=(\boldsymbol{\mu}_{0}-\boldsymbol{\mu}_{1})^{\mathrm{T}}\boldsymbol{w}\\ (\boldsymbol{\mu}_{0}-\boldsymbol{\mu}_{1})=\mathbf{S}_w\boldsymbol w\\ \boldsymbol w=\mathbf{S}_w^{-1}(\boldsymbol{\mu}_{0}-\boldsymbol{\mu}_{1}) $$

相关知识: 附录B.1拉格朗日乘子法

附录给出的拉格朗日乘子法原理中全都是陌生符号, 我暂时也看不懂, 可以参考简明版本:

https://blog.csdn.net/wangyanphp/article/details/54577825

在实践中求S^(-1)_w常对 S_w 进行奇异值分解S_w=U*Σ*V^T:

$$ \mathbf{S}_w^{-1}=\mathbf{V}\mathbf{\Sigma}^{-1}\mathbf{U}^{\mathrm T} $$

相关知识: 附录A.3奇异值分解

LDA 可从贝时斯决策理论的角度来阐释,当两类数据同先验、满足高斯分布且协方差相等时,LDA 可达到最优分类.

推广到多分类任务

LDA 推广到多分类任务中. 假定存在N个类,且第i类示例数为m_i.

定义"全局散度矩阵":

$$ \begin{aligned} \mathbf{S}_t &= \mathbf{S}_b + \mathbf{S}_w \\ &= \sum_{i=1}^m (\boldsymbol x_i-\boldsymbol\mu)(\boldsymbol x_i-\boldsymbol\mu)^{\mathrm{T}} \end{aligned} $$

其中μ是所有示例的均值向量. 将类内散度矩阵S_w重定义为每个类别的散度矩阵之和:

$$ \mathbf{S}_w =\sum_{i=1}^N\mathbf{S}_{w_i} $$

其中:

$$ \mathbf{S}_{w_i}= \sum_{\boldsymbol x\in\boldsymbol X_i} (\boldsymbol x-\boldsymbol\mu_i)(\boldsymbol x-\boldsymbol\mu_i)^{\mathrm{T}} $$

将S_w代入S_t移项可得S_b. 注意下标i含义, μ为所有示例均值, μ_i为第i类均值向量:

$$ \begin{aligned} \mathbf{S}_b &= \mathbf{S}_t - \mathbf{S}_w \\ &= \sum_{i=1}^m(\boldsymbol x_i-\boldsymbol\mu)(\boldsymbol x_i-\boldsymbol\mu)^{\mathrm{T}}-\sum_{i=1}^N\sum_{\boldsymbol x\in X_i}(\boldsymbol x-\boldsymbol\mu_i)(\boldsymbol x-\boldsymbol\mu_i)^{\mathrm{T}} \\ &= \sum_{i=1}^N\left(\sum_{\boldsymbol x\in X_i}\left((\boldsymbol x-\boldsymbol\mu)(\boldsymbol x-\boldsymbol\mu)^{\mathrm{T}}-(\boldsymbol x-\boldsymbol\mu_i)(\boldsymbol x-\boldsymbol\mu_i)^{\mathrm{T}}\right)\right) \\ &= \sum_{i=1}^N\left(\sum_{\boldsymbol x\in X_i}\left((\boldsymbol x-\boldsymbol\mu)(\boldsymbol x^{\mathrm{T}}-\boldsymbol\mu^{\mathrm{T}})-(\boldsymbol x-\boldsymbol\mu_i)(\boldsymbol x^{\mathrm{T}}-\boldsymbol\mu_i^{\mathrm{T}})\right)\right) \\ &= \sum_{i=1}^N\left(\sum_{\boldsymbol x\in X_i}\left(\boldsymbol x\boldsymbol x^{\mathrm{T}} - \boldsymbol x\boldsymbol\mu^{\mathrm{T}}-\boldsymbol\mu\boldsymbol x^{\mathrm{T}}+\boldsymbol\mu\boldsymbol\mu^{\mathrm{T}}-\boldsymbol x\boldsymbol x^{\mathrm{T}}+\boldsymbol x\boldsymbol\mu_i^{\mathrm{T}}+\boldsymbol\mu_i\boldsymbol x^{\mathrm{T}}-\boldsymbol\mu_i\boldsymbol\mu_i^{\mathrm{T}}\right)\right) \\ &= \sum_{i=1}^N\left(\sum_{\boldsymbol x\in X_i}\left(- \boldsymbol x\boldsymbol\mu^{\mathrm{T}}-\boldsymbol\mu\boldsymbol x^{\mathrm{T}}+\boldsymbol\mu\boldsymbol\mu^{\mathrm{T}}+\boldsymbol x\boldsymbol\mu_i^{\mathrm{T}}+\boldsymbol\mu_i\boldsymbol x^{\mathrm{T}}-\boldsymbol\mu_i\boldsymbol\mu_i^{\mathrm{T}}\right)\right)\\ &= \sum_{i=1}^N\left(-\sum_{\boldsymbol x\in X_i}\boldsymbol x\boldsymbol\mu^{\mathrm{T}}-\sum_{\boldsymbol x\in X_i}\boldsymbol\mu\boldsymbol x^{\mathrm{T}}+\sum_{\boldsymbol x\in X_i}\boldsymbol\mu\boldsymbol\mu^{\mathrm{T}}+\sum_{\boldsymbol x\in X_i}\boldsymbol x\boldsymbol\mu_i^{\mathrm{T}}+\sum_{\boldsymbol x\in X_i}\boldsymbol\mu_i\boldsymbol x^{\mathrm{T}}-\sum_{\boldsymbol x\in X_i}\boldsymbol\mu_i\boldsymbol\mu_i^{\mathrm{T}}\right)  \end{aligned} $$

要展开括号内一层的累加求和Σ, 需要用到m_i类i的示例个数, 关系如下:

$$ \begin{aligned} \sum_{\boldsymbol x\in X_i}\boldsymbol x&=m_i \boldsymbol \mu_i\\ \sum_{\boldsymbol x\in X_i}\boldsymbol \mu&=m_i \boldsymbol \mu\\ \sum_{\boldsymbol x\in X_i}\boldsymbol \mu_i&=m_i \boldsymbol \mu_i\\  \end{aligned} $$

代入S_b可得:

$$ \begin{aligned} \mathbf{S}_b &= \sum_{i=1}^N\left(-m_i\boldsymbol\mu_i\boldsymbol\mu^{\mathrm{T}}-m_i\boldsymbol\mu\boldsymbol\mu_i^{\mathrm{T}}+m_i\boldsymbol\mu\boldsymbol\mu^{\mathrm{T}}+m_i\boldsymbol\mu_i\boldsymbol\mu_i^{\mathrm{T}}+m_i\boldsymbol\mu_i\boldsymbol\mu_i^{\mathrm{T}}-m_i\boldsymbol\mu_i\boldsymbol\mu_i^{\mathrm{T}}\right) \\ &= \sum_{i=1}^N\left(-m_i\boldsymbol\mu_i\boldsymbol\mu^{\mathrm{T}}-m_i\boldsymbol\mu\boldsymbol\mu_i^{\mathrm{T}}+m_i\boldsymbol\mu\boldsymbol\mu^{\mathrm{T}}+m_i\boldsymbol\mu_i\boldsymbol\mu_i^{\mathrm{T}}\right) \\ &= \sum_{i=1}^Nm_i\left(-\boldsymbol\mu_i\boldsymbol\mu^{\mathrm{T}}-\boldsymbol\mu\boldsymbol\mu_i^{\mathrm{T}}+\boldsymbol\mu\boldsymbol\mu^{\mathrm{T}}+\boldsymbol\mu_i\boldsymbol\mu_i^{\mathrm{T}}\right) \\ &= \sum_{i=1}^N m_i(\boldsymbol\mu_i-\boldsymbol\mu)(\boldsymbol\mu_i-\boldsymbol\mu)^{\mathrm{T}}  \end{aligned} $$

多分类 LDA 可以有多种实现方法:使用S_b, S_w, S_t 三者中的任何两个即可. 常见的一种实现是采用优化目标:

$$ \max\limits_{\mathbf{W}}\cfrac{ \operatorname{tr}(\mathbf{W}^{\mathrm{T}}\mathbf{S}_b \mathbf{W})}{\operatorname{tr}(\mathbf{W}^{\mathrm{T}}\mathbf{S}_w \mathbf{W})} $$

该式为二分类目标函数J的推广形式:

$$ J= \frac{\boldsymbol w^{\mathrm{T}}\boldsymbol{\mathrm S}_b\boldsymbol w}{\boldsymbol w^{\mathrm{T}}\boldsymbol{\mathrm S}_w\boldsymbol w}\\ 设\mathbf{W}=(\boldsymbol w_1,\boldsymbol w_2,...,\boldsymbol w_i,...,\boldsymbol w_{N-1})\in\mathbb{R}^{d\times(N-1)},\boldsymbol w_i\in\mathbb{R}^{d\times 1} $$

其中S_b与S_w都是d*d的矩阵, w_i为W中d行1列的列向量(二分类时只有一个w, N分类时有N-1个w),则

$$ \left\{ \begin{aligned} \operatorname{tr}(\mathbf{W}^{\mathrm{T}}\mathbf{S}_b \mathbf{W})&=\sum_{i=1}^{N-1}\boldsymbol w_i^{\mathrm{T}}\mathbf{S}_b \boldsymbol w_i \\ \operatorname{tr}(\mathbf{W}^{\mathrm{T}}\mathbf{S}_w \mathbf{W})&=\sum_{i=1}^{N-1}\boldsymbol w_i^{\mathrm{T}}\mathbf{S}_w \boldsymbol w_i \end{aligned} \right. $$

其中每个w_i累加项都是W矩阵相乘后的主对角线元素, 所以和为迹tr.

参数估计-广义特征值问题

对上式求解可利用广义特征值问题

同二分类目标函数一样,也固定该式分母为1:

$$ \begin{array}{cl}\underset{\boldsymbol{w}}{\min} & -\operatorname{tr}(\mathbf{W}^{\mathrm{T}}\mathbf{S}_b \mathbf{W}) \\ \text { s.t. } & \operatorname{tr}(\mathbf{W}^{\mathrm{T}}\mathbf{S}_w \mathbf{W})=1\end{array} $$

拉格朗日乘子法可知,上述优化问题的拉格朗日函数为

$$ L(\mathbf{W},\lambda)=-\operatorname{tr}(\mathbf{W}^{\mathrm{T}}\mathbf{S}_b \mathbf{W})+\lambda(\operatorname{tr}(\mathbf{W}^{\mathrm{T}}\mathbf{S}_w \mathbf{W})-1) $$

其中, g(x)=0的约束即:

$$ \operatorname{tr}(\mathbf{W}^{\mathrm{T}}\mathbf{S}_w \mathbf{W})-1=0 $$

根据矩阵微分公式:

$$ \cfrac{\partial\text { tr }(\mathbf{X}^{\mathrm{T}} \mathbf{B} \mathbf{X})}{\partial \mathbf{X}} =(\mathbf{B}+\mathbf{B}^{\mathrm{T}})\mathbf{X} $$

对上式关于W求偏导可得:

$$ \begin{aligned} \cfrac{\partial L(\mathbf{W},\lambda)}{\partial \mathbf{W}} &= -\cfrac{\partial\left(\operatorname{tr}(\mathbf{W}^{\mathrm{T}}\mathbf{S}_b \mathbf{W})\right)}{\partial \mathbf{W}}+\lambda \cfrac{\partial\left(\operatorname{tr}(\mathbf{W}^{\mathrm{T}}\mathbf{S}_w \mathbf{W})-1\right)}{\partial \mathbf{W}} \\ &= -(\mathbf{S}_b+\mathbf{S}_b^{\mathrm{T}})\mathbf{W}+\lambda(\mathbf{S}_w+\mathbf{S}_w^{\mathrm{T}})\mathbf{W} \end{aligned} $$

由于机器学习中:

$$ \mathbf{S}_b=\mathbf{S}_b^{\mathrm{T}},\mathbf{S}_w=\mathbf{S}_w^{\mathrm{T}} $$

代入得:

$$ \cfrac{\partial L(\mathbf{W},\lambda)}{\partial \mathbf{W}} = -2\mathbf{S}_b\mathbf{W}+2\lambda\mathbf{S}_w\mathbf{W} $$

令上式等于0即可得目标函数:

$$ -2\mathbf{S}_b\mathbf{W}+2\lambda\mathbf{S}_w\mathbf{W}=\mathbf{0}\mathbf{S}_b\mathbf{W}=\lambda\mathbf{S}_w\mathbf{W} $$

W的闭式解则是S_w^(-1)*S_b的N-1个最大广义特征值所对应的特征向量组成的矩阵.

若将W视为一个投影矩阵,则多分类 LDA 将样本投影到 N-1 维空间,N-1 通常远小于数据原有的属性数,且投影过程中使用了类别信息. 因此LDA也常被视为一种经典的监督降维技术.

3.5多分类学习

二分类学习方法推广到多分类. (难)

"拆解法", 将多分类任务拆为若干个二分类任务求解. (常用)

对问题进行拆分,然后为拆出的每个二分类任务训练一个分类器;

在测试时,对这些分类器的预测结果进行集成.

关键是如何对多分类任务进行拆分(本节介绍),以及如何对多个分类器进行集成.

最经典的拆分策略有三种. "一对一" (One vs. One ,简称 OvO) "一对 其余" (One vs. Rest ,简称 OvR) 和"多对多" (Many vs. Many,简称 MvM).

OvO 将N个类别两两配对, 产生 N(N 1)/2 个三分类任务. 新样本同时提交给所有分类器,得 N(N -1)/2 个分类结果,预测得最多的类别作为最终分类结果.

OvR 每次将一个类的样例作为正例、所有其他类的样例作为反例来训练N个分类器.在测试时选择置信度最大的类别标记作为分类结果.

MvM 是每次将若干个类作为正类,若干个其他类作为反类.

容易看出, OvR 只需训练N个分类器 OvO 需训练 N(N - 1)/2 个分类器. 因此, OvO的存储开销和测试时间开销通常比 OvR 更大. 但在训练时,OvR 的每个分类器均使用全部训练样例,而 OvO 的每个分类器仅用到两个类的样例,因此,在类别很多时, OvO 的训练时间开销通常比 OvR 更小.

ECOC

最常用的 MvM 技术"纠错输出码" ECOC (Error Correcting Output Codes). 其在解码过程中具有容错性.

ECOC 工作过程主要分为两步:

1. 编码:对N个类别做M次划分, 每次划分将一部分类别划为正类,一部分划为反类,从而形成二分类 练集;这样一共产生M个训练集,可训练出M个分类器.

2. 解码:M个分类器分别对测试样本预测,这些预测标记组成编码.将这个预测编码与每个类别各自的编码进行比较,返回其中距离最小的类别作为最终预测结果.

类别划分通过"编码矩阵" (coding matrix) 指定.编码矩阵主要有二元码(正、反类)和三元码(正、反、停用类-不使用该样本).

解码阶段,各分类器的预测结果联合起来形成了测试示例的编码, 将距离最小的编码所对应的类别作为预测结果.

海明距离=不同分类个数(停用类算0.5个), 如三元码C2: 0.5+0.5+0.5+0.5=2

欧氏距离=各不同分类处距离平方和再开方, 如三元码C2:√(1^2+1^2+1^2+1^2)=2

对同一个学习任务, ECOC 编码越长,纠错能力越强.然而,编码越长,意味着所需训练的分类器越多,计算、存储开销都会增大; 对有限类别数 可能的组合数目是有限的,码长超过一定范围后就失去了意义(上图a二元码的f2与f5是否属于失去意义呢?).

理论上来说,任意两个类别之间的编码距离越远,则纠错能力越强. 并不是编码的理论性质越好,分类性能就越好,例如将多个类拆解为两个"类别子集方式所形成的两个类别子集的区分难度往往不同.

3.6类别不平衡问题

类别不平衡(class imbalance) : 分类任务中不同类别的训练样例数目差别很大的情况.

线性分类器为例,用 y=w^T*x+b 对新样本分类时,用预测出的y值与阈值比较,反映正例的可能性,几率y/(1-y)反映了正例可能性与反例可能性之比值. 分类器决策规则为:

$$ 若\frac y{1-y}>1, 预测为正例 $$

正、反例的数目不同时,令m+表示正例数目,m-表示反例数目,则观测几率是m+/m-,假设训练集是真实样本总体的无偏采样, 观测几率代表真实几率.分类器的预测几率高于观测几率就应判定为正例, 实际合理规则:

$$ 若\frac y{1-y}>\frac {m^+}{m^-}, 预测为正例 $$

欲将该式应用在分类器决策规则, 需要调整预测值. 再缩放(rescaling):

$$ 令\frac {y'}{1-y'}=\frac y{1-y}\times\frac {m^+}{m^-} $$

类别不平衡性处理的三类做法:

1. 直接对训练集里的反类样例进行"欠采样" (undersampling) ,即去除一些反倒使得正、反例数接近.

2.训练集里的正类样例进行"过采样" (oversampling) ,即增加一些正例使得正、反例数目 接近.

3. 基于原始训练集进行学习,但在用训练好的分类器进行预测时,将上式(再缩放)嵌入到其决策过程中,称为"阔值移动" (threshold-moving).

相关知识: 再缩放与阈值移动

参考: https://www.bookstack.cn/read/huaxiaozhuan-ai/spilt.7.9a94c12cac5bfe37.md

基于再缩放策略进行决策,称之为阈值移动

欠采样法的时间开销小于过采样. 过采样法不能简单地对初始正例样本进行重复来样,否则会招致严重的过拟合. 过样法的代表性算法 SMOTE对训练集里的正例进行插值来产生额外的正例. 另一方面,欠采样法若随机丢弃反例可能丢失一些重要信息;欠采样法的代表性算法利用集成学习机制,将反例划分为若干个集合供不同学习器使用,这样对每个学习器来看都进行了欠采样,但在全局来看却不会丢失重要信息.

习题

可参考代码3.3、3.5:

https://www.pythonheidong.com/blog/article/289970/7ea63d2bffc521ca2300/

有推导:

https://www.cnblogs.com/zwtgyh/p/10705603.html

简答比较完整(但没代码):

https://wenku.baidu.com/view/31ad796c31687e21af45b307e87101f69f31fb5f.html

博主有详细求证论文:

https://zhuanlan.zhihu.com/p/43270830

3.1

什么情形下式(3.2) 中不必考虑偏置项 b:

参考: https://wenku.baidu.com/view/31ad796c31687e21af45b307e87101f69f31fb5f.html

yi-y0=w(xi-x0), 对每个样本减去第一个样本可消b

参考: https://www.cnblogs.com/zwtgyh/p/10705603.html

ω^T 决定学习得到模型(直线、平面)的方向,而b则决定截距,当学习得到的模型恰好经过原点时,可以不考虑偏置项b。偏置项b实质上就是体现拟合模型整体上的浮动,可以看做是其它变量留下的偏差的线性修正,一般情况需要考虑。但如果对数据集进行了归一化处理,即对目标变量减去均值向量,此时就不需要考虑偏置项了。(这个方法在实际处理中看到的更多)

3.2

试证明,对于参数w(即对w求偏导),对率回归的目标函数(3.18)是非凸的,但其对数似然函数(3.27)是凸的. 对区间[a,b]上定义的函数f(x),若它对区间中任意两点x1,x2均有f((x1+x2)/2)≤(f(x1)+f(x2))/2,则称f(x)为区间[a,b]上的凸函数。对于实数集上的函数,可通过二阶导数来判断:若二阶导数在区间上非负,则称为凸函数,在区间上恒大于零,则称为严格凸函数。(这就是凸和非凸的定义与证明方法)

相关知识: 凸函数

只有凸函数的正线性组合才能保证再次凸。在逻辑回归的情况下y_i为正,因此它确实有效。

注意:中国大陆数学界(如同济教材)关于函数凹凸性定义和国外的定义是相反的。Convex Function在某些中国大陆的数学书中指凹函数。

对率回归的目标函数(3.18):

$$ y=\frac 1{1+e^{-(\boldsymbol w^{\mathrm T}\boldsymbol x+b)}} $$

其对数似然函数(3.27):

$$ \ell(\boldsymbol{\beta})=\sum_{i=1}^{m}\left(-y_i\boldsymbol{\beta}^{\mathrm{T}}\hat{\boldsymbol x}_i+\ln(1+e^{\boldsymbol{\beta}^{\mathrm{T}}\hat{\boldsymbol x}_i})\right) $$

参考: https://zhuanlan.zhihu.com/p/76639936(这个目标函数的形式不一样)

https://blog.csdn.net/john_bian/article/details/100108380

一元函数f''>0, 对应多元函数的二阶导是半正定-为凸函数. 对w求二阶导数,二阶导数的维度为D*D,这个二阶导数也称之为Hessian Matrix. 对于矩阵、向量的求导请参考: matrixcookbook

一个性质:为了证明一个D*D的矩阵H为半正定Positive Semidefinite,需要证明对于任意一个非零向量 v , 需要得出v^T*H*v>=0

(3.18)对w一阶偏导

根据1/x求导公式:

$$ \frac{\partial y}{\partial w}=-\frac{e^{-(w^{T}x+b)}(-x)}{(1+e^{-(w^{T}x+b)})^{2}}\\ =\frac{1}{(1+e^{-(w^{T}x+b)})^{2}}\frac{1}{e^{w^{T}x+b}}x $$

根据几率定义:

$$ \frac{1-y}{y}=\frac{1}{e^{w^{T}x+b}} $$

将几率定义代入一阶导:

$$ \frac{\partial y}{\partial w}=y^{2}(\frac{1-y}{y})x\\ =(y-y^{2})x $$

接着求二阶导:

$$ H=\frac{\partial (y-y^{2})x}{\partial w}\\ =x\frac{\partial y}{\partial w}-x\frac {\partial y^{2}}{\partial w}\\ =x(y-y^{2})x^T-2yx(y-y^{2})x^T\\ =(1-2y)x(y-y^{2})x^{T}\\ =y(1-2y)(1-y)xx^{T} $$

因为xx^T是半正定的,并且y∈(0,1)。当y∈(0.5, 1)时y(1-2y)(1-y)<0,所以此时H是半负定的,式(3.18)是非凸的。

(3.27)的一阶导, 二阶导在书(3.30)(3.31)已分别算出

$$ \frac{\partial \ell(\boldsymbol{\beta})}{\partial\boldsymbol{\beta}}=-\sum_{i=1}^m \hat {\boldsymbol x_i}(y_i-p_1(\hat {\boldsymbol x_i};\boldsymbol\beta))\\ \frac{\partial^2 \ell(\boldsymbol{\beta})}{\partial\boldsymbol{\beta}\partial\boldsymbol{\beta}^\mathrm T}=\sum_{i=1}^m \hat {\boldsymbol x_i}\hat {\boldsymbol x_i}^\mathrm T p_1(\hat {\boldsymbol x_i};\boldsymbol\beta)(y_i-p_1(\hat {\boldsymbol x_i};\boldsymbol\beta)) $$

其中xx^T半正定, p>0, 所以是凸的.

(3.3-3.5几道编程题打算做李宏毅作业时候做, 现在只能跑些各博客不太规范的, 看过助教大佬的模板再来写, 也许会带来更多思考)

3.6

线性判别分析仅在线性可分数据上能获得理想结果?试设计一个改进方法,使其能较好地周于非线性可分数据

参考: https://www.cnblogs.com/zwtgyh/p/10705603.html

在当前维度线性不可分,要想使用判别分析,一般思想是将其映射到更高维的空间上,使它在高维空间上线性可分进一步使用判别分析。

参考: https://zhuanlan.zhihu.com/p/265542852

当两类数据同先验、满足高斯分布且协方差相等时,LDA达到最优分类

线性判别分析仅在线性可分数据上能获得理想结果,为使其能较好地用于非线性可分数据,可以引入核函数(核线性判别分析KLDA. kernel discriminant analysis(KDA) , 核判别分析(KDA)是一种抽取非线性特征的有效方法,但它会因为奇异性问题而难以求解。)

参考: 郑文明. 基于核函数的判别分析研究[D]. 东南大学, 2004.

KDA通过核函数策略(kernel trick)把线性判别分析(Linear Discriminant Analysis,LDA)从线性领域扩展到了非线性领域,从而大大提高了LDA思想的应用范围.

原书p137,有关于核线性判别分析的介绍

3.7

令码长为9,类别数为4,试给出海明距离意义下理论最优的 ECOC二元码并证明之.

对同等长度的编码, 理论上来说, 任意两个类别之间的编码距离越远, 则纠错能力越强.

参考: https://wenku.baidu.com/view/31ad796c31687e21af45b307e87101f69f31fb5f.html

对于ECOC二元码,当码长为2^n时,至少可以使2n个类达到最优间隔,他们的海明距离为2^(n-1)。

参考: https://zhuanlan.zhihu.com/p/43270830

原论文:《Solving Multiclass Learning Problems via Error-Correcting Output Codes》

一个好的纠错输出码应该满足两个条件:

1.行分离。任意两个类别之间的codeword距离应该足够大。

2.列分离。任意两个分类器的输出应相互独立,无关联。这一点可以通过使分类器编码与其他分类编码的海明距离足够大实现,且与其他分类编码的反码的海明距离也足够大

另外,两个分类器的编码也不应该互为反码,即将0-1类互换,最终训练出的模型是一样的, 会同时犯错。

对于k种类别的分类,再去除反码和全是0或者1的编码后,就剩下2^(k-1)-1种可行的编码。代入题目条件, 类别为4时,其可行的编码有7种.

论文作者给出的构造编码方法:

即第一行全部为1

第二行放2^(k-2)个0, 跟上2^(k-2)-1个1

第三行放2^(k-3)个0, 跟上2^(k-3)个1, 跟上2^(k-3)个0, 跟上2^(k-3)个1

按该方法生成编码:

 

f0

f1

f2

f3

f4

f5

f6

c1

1

1

1

1

1

1

1

c2

0

0

0

0

1

1

1

c3

0

0

1

1

0

0

1

c4

0

1

0

1

0

1

0

码长为9时,f_6之后加任意两个与之前不同的编码,即为最优编码,因为此时再加任意的编码都是先有编码的反码,此时,类别之间最小的海明距离都为4,不会再增加。

3.8

ECOC 编码能起到理想纠错作用的重要条件是:在每一位编码上出错的概率相当且独立.试析多分类任务经 ECOC 编码后产生的二类分类器满足该条件的可能性及由此产生的影响.

条件1: 每一位编码出错的概率相当

即样本之间的区分难度,越难区分,训练出的分类器出错的概率越大.

类别之间的差异越相同(区分难度相当),则满足此条件的可能性越大。在实际中其实很难满足。

条件2: 每一位编码出错的可能性相互独立

即3.7中的列分离,当类别越多时,满足这个条件的可能性越大

产生的影响

西瓜书:

一个理论纠错牲质很好、但导致的三分类问题较难的编码,与另一个理论纠错性质差一些、但导致的二分类问题较简单的编码,最终产生的模型性能孰强孰弱很难说。

3.9

使用 OvR 和 MvM 将多分类任务分解为二分类任务求解时,试述为何无需专门针对类别不平衡性进行处理。

(书p66)对 OvR 、 MvM 来说,由于对每个类进行了相同的处理,其拆解出的二分类任务中类别不平衡的影响会相互抵消,因此通常不需专门处理.

3.10

试推导出多分类代价敏感学习(仅考虑基于类别的误分类代价)使用"再缩放"能获得理论最优解的条件

再缩放(过采样、欠采样、阈值移动等)调整各类别的权重。

本题即周志华教授论文《On Multi-Class Cost-Sensitive Learning》, 这思路看不懂, 期待二刷.

参考: https://wenku.baidu.com/view/31ad796c31687e21af45b307e87101f69f31fb5f.html

仅考虑类别分类的误分类代价, 故认为正确分类的代价为0。

设有3类, 得代价矩阵:

真实类别

预测类别

第0类

第1类

第2类

第0类

0

cost01

cost02

第1类

cost10

0

cost12

第2类

cost20

cost21

0

对于二分类,设样本为正例的后验概率为p,则预测为正的代价 (1-p)*cost01,预测为负的代价p* cost 10。当(1-p)* cost01≤p* cost10预测为正例(其代价更小). 当不等式取等号时, 阈值p_r= cost01/( cost01+ cost10), 即正例反例的划分比例为初始的cost01/ cost10倍.

(第二章 代价不敏时P(+)cost就是样例为正例的概率;当代价敏感时可称P(+)cost为正例所占的加权比例)

设分类器预设的阈值是p_0,不考虑代价敏感时,取正例的条件为:

$$ \frac{y}{1-y}>\frac{p_0}{1-p_0} $$

考虑代价敏感时,取正例的条件为:

$$ \frac{y}{1-y}>\frac{1-p_r}{p_r}\frac{p_0}{1-p_0}=\frac{c_{10}}{c_{01}}\frac{p_0}{1-p_0} $$

推广到对于多分类,任意两类的最优再缩放系数t_ij=c_ij/c_ji, 然而所有类别的最优统放系数并不一定能同时满足。当代价表满足下面条件时, 能通过再缩放得强到最优解: 设t_ij=w_i/w_j,则w_i/w_j= c_ij/c_ji对所有i, j成立,假没有k类, 共C_k^2个等式,此时代价表中k*(k-1)个数,最少只要知道2*(k-1)就能推出整张表。

相关推荐
©️2020 CSDN 皮肤主题: 博客之星2020 设计师:CY__ 返回首页