本文主要是介绍【机器学习基础】判别函数,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
本系列为《模式识别与机器学习》的读书笔记。
一,分类线性模型概述
分类的⽬标是将输⼊变量 x \boldsymbol{x} x 分到 K K K 个离散的类别 C k \mathcal{C}_k Ck 中的某⼀类。 最常见的情况是, 类别互相不相交, 因此每个输⼊被分到唯⼀的⼀个类别中。因此输⼊空间被划分为不同的决策区域(decision region
),它的边界被称为决策边界(decision boundary
)或者决策⾯(decision surface
)。
分类线性模型是指决策⾯是输⼊向量 x \boldsymbol{x} x 的线性函数,因此被定义为 D D D 维输⼊空间中的 ( D − 1 ) (D − 1) (D−1) 维超平⾯。如果数据集可以被线性决策⾯精确地分类,那么我们说这个数据集是线性可分的(linearly separable
)。
在线性回归模型中,使⽤⾮线性函数 f ( ⋅ ) f(·) f(⋅) 对 w \boldsymbol{w} w 的线性函数进⾏变换,即
y ( x ) = f ( w T x + w 0 ) (4.1) y(\boldsymbol{x})=f(\boldsymbol{w}^{T}\boldsymbol{x}+w_0)\tag{4.1} y(x)=f(wTx+w0)(4.1)
在机器学习的⽂献中, f ( ⋅ ) f(·) f(⋅) 被称为激活函数(activation function
),⽽它的反函数在统计学的⽂献中被称为链接函数(link function
)。决策⾯对应于 y ( x ) = 常 数 y(\boldsymbol{x}) = 常数 y(x)=常数,即 w T x + w 0 = 常 数 \boldsymbol{w}^{T}\boldsymbol{x} + w_0 = 常数 wTx+w0=常数,因此决策⾯是 x \boldsymbol{x} x 的线性函数,即使函数 f ( ⋅ ) f(·) f(⋅) 是⾮线性函数也是如此。因此,由公式(4.1)描述的⼀类模型被称为推⼴的线性模型(generalized linear model
)(McCullagh and Nelder
, 1989)。
如图4.1,⼆维线性判别函数的⼏何表⽰。决策⾯(红⾊)垂直于 w \boldsymbol{w} w ,它距离原点的偏移量由偏置参数 w 0 w_0 w0 控制。
二,判别函数
判别函数是⼀个以向量 x \boldsymbol{x} x 为输⼊,把它分配到 K K K 个类别中的某⼀个类别(记作 C k \mathcal{C}_k Ck )的函数。
1,⼆分类
线性判别函数的最简单的形式是输⼊向量的线性函数,即
y ( x ) = w T x + w 0 (4.2) y(\boldsymbol{x})=\boldsymbol{w}^{T}\boldsymbol{x}+w_0\tag{4.2} y(x)=wTx+w0(4.2)
其中 w \boldsymbol{w} w 被称为权向量(weight vector
), w 0 w_0 w0 被称为偏置(bias
)。偏置的相反数有时被称为阈值(threshold
)。
考虑两个点 x A \boldsymbol{x}_A xA 和 x B \boldsymbol{x}_B xB ,两个点都位于决策⾯上。 由于 y ( x A ) = y ( x B ) = 0 y(\boldsymbol{x}_A)=y(\boldsymbol{x}_B)=0 y(xA)=y(xB)=0,我们有 w T ( x A − x B ) = 0 \boldsymbol{w}^{T}(\boldsymbol{x}_A-\boldsymbol{x}_B) = 0 wT(xA−xB)=0,因此向量 w \boldsymbol{w} w 与决策⾯内的任何向量都正交,从⽽ w \boldsymbol{w} w 确定了决策⾯的⽅向。类似地,如果 x \boldsymbol{x} x 是决策⾯内的⼀个点,那么 y ( x ) = 0 y(\boldsymbol{x}) = 0 y(x)=0 ,因此从原点到决策⾯的垂直距离为
w T x ∥ w ∥ = − w 0 ∥ x ∥ (4.3) \frac{\boldsymbol{w}^{T}\boldsymbol{x}}{\|\boldsymbol{w}\|}=-\frac{w_0}{\|\boldsymbol{x}\|}\tag{4.3} ∥w∥wTx=−∥x∥w0(4.3)
其中,偏置参数 w 0 \boldsymbol{w}_0 w0 确定了决策⾯的位置。
记任意⼀点 x \boldsymbol{x} x 到决策⾯的垂直距离 r r r ,在决策⾯上的投影 x ⊥ \boldsymbol{x}_{\perp} x⊥ ,则有
x = x ⊥ + r w ∥ w ∥ (4.4) \boldsymbol{x}=\boldsymbol{x}_{\perp}+r \frac{\boldsymbol{w}}{\|\boldsymbol{w}\|}\tag{4.4} x=x⊥+r∥w∥w(4.4)
利用已知公式和 y ( x ⊥ ) = 0 y(\boldsymbol{x}_{\perp})=0 y(x⊥)=0 可得
r = y ( x ) ∥ w ∥ (4.5) r=\frac{y(\boldsymbol{x})}{\|w\|}\tag{4.5} r=∥w∥y(x)(4.5)
为方便简洁,引⼊“虚”输⼊ x 0 = 1 x_0=1 x0=1 ,并且定义 w ~ = ( w 0 , w ) \tilde{\boldsymbol{w}} = (w_0,\boldsymbol{w}) w~=(w0,w) 以及 x ~ = ( x 0 , x ) \tilde{\boldsymbol{x}} = (x_0,\boldsymbol{x}) x~=(x0,x) ,从⽽
y ( x ) = w ~ T x ~ (4.6) y(\boldsymbol{x})=\tilde{\boldsymbol{w}}^{T}\tilde{\boldsymbol{x}}\tag{4.6} y(x)=w~Tx~(4.6)
在这种情况下, 决策⾯是⼀个 D D D 维超平⾯, 并且这个超平⾯会穿过 D + 1 D+1 D+1 维扩展输⼊空间的原点。
2,多分类
考虑把线性判别函数推⼴到 K > 2 K>2 K>2 个类别。
方法一,使⽤ K − 1 K − 1 K−1 个分类器,每个分类器⽤来解决⼀个⼆分类问题,把属于类别 C k \mathcal{C}_k Ck 和不属于那个类别的点分开。这被称为“1对其他”(one-versus-the-rest
)分类器。此方法的缺点在于产⽣了输⼊空间中⽆法分类的区域。
方法二,引⼊ K ( K − 1 ) 2 \frac{K(K−1)}{2} 2K(K−1) 个⼆元判别函数, 对每⼀对类别都设置⼀个判别函数。 这被称为“1对1”(one-versus-one
)分类器。每个点的类别根据这些判别函数中的⼤多数输出类别确定,但是,这也会造成输⼊空间中的⽆法分类的区域。
如图4.2,尝试从⼀组两类的判别准则中构建出⼀个 K K K 类的判别准则会导致具有奇异性的区域, ⽤绿⾊表⽰。
方法三,通过引⼊⼀个 K K K 类判别函数,可以避免上述问题。这个 K K K 类判别函数由 K K K 个线性函数组成,形式为
y k ( x ) = w k T x + w k 0 (4.7) y_{k}(\boldsymbol{x})=\boldsymbol{w}_{k}^{T}\boldsymbol{x}+w_{k0}\tag{4.7} yk(x)=wkTx+wk0(4.7)
对于点 x \boldsymbol{x} x ,如果对于所有的 j ≠ k j \ne k j=k 都 有 y k ( x ) > y j ( x ) y_{k}(\boldsymbol{x})\gt y_{j}(\boldsymbol{x}) yk(x)>yj(x) ,那么就把它分到 C k \mathcal{C}_k Ck 。 于是类别 C k \mathcal{C}_k Ck 和 C j \mathcal{C}_j Cj 之间的决策⾯为 y k ( x ) = y j ( x ) y_{k}(\boldsymbol{x})=y_{j}(\boldsymbol{x}) yk(x)=yj(x),并且对应于⼀个 ( D − 1 ) (D − 1) (D−1) 维超平⾯,形式为
( w k − w j ) T x + ( w k 0 − w j 0 ) = 0 (4.8) (\boldsymbol{w}_{k}-\boldsymbol{w}_{j})^{T}\boldsymbol{x}+(w_{k0}-w_{j0})=0\tag{4.8} (wk−wj)Tx+(wk0−wj0)=0(4.8)
考虑两个点 x A \boldsymbol{x}_A xA 和 x B \boldsymbol{x}_B xB ,两个点都位于决策区域 R k \mathcal{R}_k Rk 中, 任何位于连接 x A \boldsymbol{x}_A xA 和 x B \boldsymbol{x}_B xB 的线段上的点都可以表⽰成下⾯的形式
x ^ = λ x A + ( 1 − λ ) x B (4.9) \hat{\boldsymbol{x}}=\lambda \boldsymbol{x}_{A}+(1-\lambda)\boldsymbol{x}_{B}\tag{4.9} x^=λxA+(1−λ)xB(4.9)
其中, 0 ≤ λ ≤ 1 0\le\lambda\le1 0≤λ≤1 。根据判别函数的线性性质,有
y k ( x ^ ) = λ y k ( x A ) + ( 1 − λ ) y k ( x B ) (4.10) y_{k}(\hat{\boldsymbol{x}})=\lambda y_{k}(\boldsymbol{x}_{A})+(1-\lambda)y_{k}(\boldsymbol{x}_{B})\tag{4.10}
这篇关于【机器学习基础】判别函数的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!