Loading

第3章:线性模型

基本形式

给定由d个属性描述的示例\(\vec{x}=(x_1, x_2, ..., x_d)^T\),线性模型试图通过一个线性组合来进行预测的函数,既:

\[f(\vec{x})=w_1*x_1+w_2*x_2+...+w_d*x_d+b\\ \to f(\vec{x}) = \vec{w}^T*\vec{x}+b \]

其中\(\vec{w}=(w_1, w_2, ..., w_d)^T\)是线性模型中的学习参数。

线性回归

在给定数据集\(D=\{(\vec{x_i}, y_i), 1 \leq i \leq m\}\),其中\(\vec{x_i}\)是d维的向量。线性回归试图学习到:

\[f(\vec{x_i})=\vec{w}^T\vec{x_i}+b,\ \ st:\ f(\vec{x_i}) \simeq y_i \]

其中\(f(\vec{x_i})\)是样本\(x_i\)的预测值,\(y_i\)为真实值。

当我们的所有样本的预测值都尽量靠近实际值,则我们的线性规划越好。则我们可以将这个评判标准转化为求预测值与真实值的方差最小化,既:

\[E(\vec{w}, b) = arg\ min(\sum_{i=1}^m(f(\vec{x_i})-y_i)^2 \]

对该公式求偏导得如下公式:

\[\frac{\partial E(\vec{w}, b)}{\partial w_1}=2(w_i \sum_{j=1}^mx_{1,j}^2 - \sum_{j=1}^m{(y_1-b)x_{1,j}})\\ \frac{\partial E(\vec{w}, b)}{\partial w_2}=2(w_i \sum_{j=1}^mx_{2,j}^2 - \sum_{j=1}^m{(y_2-b)x_{2,j}})\\ ...\\ \frac{\partial E(\vec{w}, b)}{\partial w_d}=2(w_i \sum_{j=1}^mx_{d,j}^2 - \sum_{j=1}^m{(y_d-b)x_{d,j}})\\ \frac{\partial E(\vec{w}, b)}{\partial b}=2(mb - \sum_{i=1}^m{(y_i-\vec{w}^T\vec{x_i})}) \]

然后设每个等式为0,则

\[w_i = \frac{\sum_{j=1}^m{y_i(x_{i,j}-\bar{x})}}{\sum_{j=1}^m{x_{i,j}^2 -\frac{1}{m}(\sum_{j=1}^mx_{i,j})^2}}, \ i=1,2,3,..,d\\ b = \frac{1}{m}\sum_{i=1}^{m}{y_i-\vec{w}^T\vec{x_i}} \]

这样就可以得到可学习参数。

对数线回归

将线性回归的预测函数做变化就可以得到对数线性回归模型,既:

\[lny=\vec{w}^T\vec{x}+b \]

这里已经让模型的特征和真实结果引入了非线性映射,如图:

image-20230217133914927

更加一般的引入其他函数可以表示为:

\[g(y) = \vec{w}^T\vec{x}+b \]

其中\(g\)函数为可微函数。

对数几率回归

在上面的回归模型解决了连续预测任务,但是实际中存在大量离散任务,对数几率回归就可以解决离散任务。对于最简单的离散任务:二分类任务。只需要将上诉针对连续任务的回归模型中预测值大于0的样本预测为0,小于0的样本预测为1.就实现了简单的将连续离散化操作。但是由于我们在求可学习参数时需要进行求偏导,则我们需要引入一个可微函数来实现刚刚所讲的离散化操作,既就是对数几率函数:

\[y=\frac{1}{1+e^{-x}} \]

image-20230217134826424

则对数几率回归的预测函数如下:

\[y = \frac{1}{1+e^{-(\vec{w}^T\vec{x}+b)}}, y \in (0, 1) \]

由于\(y \in (0, 1)\)其实可以看做是样本\(\vec{x}\)被认为是正样本的概率,并且将上面的公式变形,可以得到如下:

\[ln(\frac{y}{1-y})=\vec{w}^T\vec{x}+b \]

\(y=p(y=1|x), 1-y=p(y=0:x)\)。这里可能有点难以理解。对于一个二分类问题,既:

\[p(y=1|x)+p(y=0|x)=1,且 p(y=1|x)=\frac{1}{1+e^{-(\vec{w}^T{x}+b)}}\\ 则 p(y=0|x)=\frac{e^{-(\vec{w}^T\vec{x}+b)}}{1+e^{-(\vec{w}^T{x}+b)}} \]

注意:我这里e有负号,所以推到是和西瓜书上一致的。

然后,我们就可以根据最大似然估计将这个事件的概率最大化,其中整个事件指的是所有样本为正负样本这种情况出现的概率。则得到我们所需的目标函数:

\[l(w, b)=\Pi_{i=1}^{m}p(y_i|\vec{x_i}, \vec{w}, b) \]

由于连乘的函数不方便求偏导,所以我们对该目标函数对数化,在对数化之后乘以-1,则目标函数就变成了最小化问题,既:

\[l(\vec{w}, b) = -\sum_{i=1}^m{ln(p(y_i|\vec{x_i}, \vec{w}, b))} \]

后续的利用偏导求解可学习参数\(\vec{w}, b\)的微分值,对其进行更新即可。

线性判别分析

线性判别分析的思想:让所有样本都投影到一个更加低维度的空间中。比如对于一个二维空间中的点,投影到一条直线上,线性判别分析想找到一条线让同类点在投影线上的密度尽量高,在非同类点在投影线上的密度尽量低。

image-20230217141806656

给定数据集\(D=\{(\vec{x_i}), y_i\}_{i=1}^m, y_i \in \{0, 1\}\),令\(X_i, \mu_i, \sum_i\)分别表示第i类(\(i \in \{0, 1\}\))分类的样本集合,均值向量,协方差矩阵。下面将详细推导均值向量,协方差矩阵:

\(\vec{x_i^j}\)表示第i分类样本集合中的第i个样本,则:

\[\vec{\mu_i}=(\frac{\sum_{j=1}^{d}x_{i}^{j,1}}{|X_i|},\frac{\sum_{j=1}^{d}x_{i}^{j,2}}{|X_i|},..,\frac{\sum_{j=1}^{d}x_{i}^{j,d}}{|X_i|})^T\\ l(\vec{w}, b)=\frac{1}{|X_i|}\sum_{j=1}^{m}{((\vec{w}^T\vec{x_i^j}+b) - y_i)^2} \]

我们可以将\((\vec{w}^T\vec{x_i^j}+b)-y_i=(\vec{w}, b, -1)^T*(\vec{x_i^j}, 1, y_i)\), 令\(\vec{W}=(\vec{w}, b, -1)^T, \vec{X}=(\vec{x_i}, 1, y_i)^T\).则:

\[l(\vec{w}, b)=\vec{W}^T*\vec{X}(\vec{W}^T*\vec{X})^T\\ \to \vec{W}^T(\vec{X}*\vec{X}^T)\vec{W} \]

则协方差矩阵\(\sum_i=\vec{X}\vec{X}^T\).

则两个分类的均值和协方差为\(\vec{W}^T\vec{\mu_i}, \vec{w^T}\sum_{i}\vec{w}\)。根据线性判别的思想要让同类密度大,异类密度小,则要求各类协方差之和尽量小,各类均值向量的欧式距离尽量大!对于一个二分类来说,则目标函数设计如下:

\[J = \frac{||w^T\mu_0-w^T\mu_1||^2}{w^T\sum_0w+w^T\sum_1w} \]

下面如何求解可学习参数的详细推导就不做详细说明了。

多分类学习

在实际任务中分类任务通常是多分类任务。对于有些模型可以直接扩展为多分类模型,比如神经网络直接在最后的全连接网络的输出层增加节点即可。但是对于二分类器来说就需要使用一些策略将二分类扩展到多分类:

常见的策略有:一对一一对其余多对多

一对一:对多个分类两两配对形成\(\frac{N(N-1)}{2}\)个分类器

一对其余:只将其中一个类视作正样本,其余为负样本,形成N个分类器

多对多:将多个类别视作正样本,其余为负样本。

常用的多对多划分策略:纠错输出码(EOOC)

EOOC的过程主要分为2个步骤:

  • 编码:对N个类别做M次划分,每次将一部分类别划为正样本,一部分为负样本,从从而形成二分问题。这样形成了M个二分问题的训练集,可以训练出M个分类器
  • 解码:M个分类器分别对测试数据进行测试,这些测试数据进行编码,将这些编码与每个类别各自的编码进行比较,返回其中距离最小的类别为最终预测结果。

image-20230217151659127

类别不平衡问题

类别不平衡指的是训练集中不用类别的训练样例数差别很大。从上面的对数几率回归来讲,如果正样本的数量远远大于负样本的数量,则\(p(y=1|x)\)的值也会很大。所以,我们需要对其进行调整。

假设\(m^+, m^-\)表示正负样本的数量,则令\(\frac{y}{1-y}>\frac{m^+}{m^-}\)为的预测为正样本。这种方式称为再放缩。但是该方法往往在实际中不适用。下面介绍三种方式:

欠采样:删除一些数量过大的样本,使得正负样本的数量达到平衡。

过采样:对类别数量少的种类进行重复采样,使得正负样本的数量达到平衡。

直接基于原始数据集:直接基于原始数据进行学习,但是在使用训练好的分类器其进行预测时,将再放缩放入决策过程中。

posted @ 2023-02-17 16:19  青山新雨  阅读(38)  评论(0编辑  收藏  举报