【机器学习基础】判别函数

2024-04-05 04:38

本文主要是介绍【机器学习基础】判别函数,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本系列为《模式识别与机器学习》的读书笔记。

一,分类线性模型概述

分类的⽬标是将输⼊变量 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) (D1) 维超平⾯。如果数据集可以被线性决策⾯精确地分类,那么我们说这个数据集是线性可分的(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(xAxB)=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} wwTx=xw0(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+rww(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=wy(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 K1 个分类器,每个分类器⽤来解决⼀个⼆分类问题,把属于类别 C k \mathcal{C}_k Ck 和不属于那个类别的点分开。这被称为“1对其他”(one-versus-the-rest分类器。此方法的缺点在于产⽣了输⼊空间中⽆法分类的区域。

方法二,引⼊ K ( K − 1 ) 2 \frac{K(K−1)}{2} 2K(K1) 个⼆元判别函数, 对每⼀对类别都设置⼀个判别函数。 这被称为“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) (D1) 维超平⾯,形式为
( 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} (wkwj)Tx+(wk0wj0)=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}

这篇关于【机器学习基础】判别函数的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/877648

相关文章

Spring Boot集成SLF4j从基础到高级实践(最新推荐)

《SpringBoot集成SLF4j从基础到高级实践(最新推荐)》SLF4j(SimpleLoggingFacadeforJava)是一个日志门面(Facade),不是具体的日志实现,这篇文章主要介... 目录一、日志框架概述与SLF4j简介1.1 为什么需要日志框架1.2 主流日志框架对比1.3 SLF4

Spring Boot集成Logback终极指南之从基础到高级配置实战指南

《SpringBoot集成Logback终极指南之从基础到高级配置实战指南》Logback是一个可靠、通用且快速的Java日志框架,作为Log4j的继承者,由Log4j创始人设计,:本文主要介绍... 目录一、Logback简介与Spring Boot集成基础1.1 Logback是什么?1.2 Sprin

重新对Java的类加载器的学习方式

《重新对Java的类加载器的学习方式》:本文主要介绍重新对Java的类加载器的学习方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、介绍1.1、简介1.2、符号引用和直接引用1、符号引用2、直接引用3、符号转直接的过程2、加载流程3、类加载的分类3.1、显示

MySQL复合查询从基础到多表关联与高级技巧全解析

《MySQL复合查询从基础到多表关联与高级技巧全解析》本文主要讲解了在MySQL中的复合查询,下面是关于本文章所需要数据的建表语句,感兴趣的朋友跟随小编一起看看吧... 目录前言:1.基本查询回顾:1.1.查询工资高于500或岗位为MANAGER的雇员,同时还要满足他们的姓名首字母为大写的J1.2.按照部门

Java学习手册之Filter和Listener使用方法

《Java学习手册之Filter和Listener使用方法》:本文主要介绍Java学习手册之Filter和Listener使用方法的相关资料,Filter是一种拦截器,可以在请求到达Servl... 目录一、Filter(过滤器)1. Filter 的工作原理2. Filter 的配置与使用二、Listen

Android Mainline基础简介

《AndroidMainline基础简介》AndroidMainline是通过模块化更新Android核心组件的框架,可能提高安全性,本文给大家介绍AndroidMainline基础简介,感兴趣的朋... 目录关键要点什么是 android Mainline?Android Mainline 的工作原理关键

mysql的基础语句和外键查询及其语句详解(推荐)

《mysql的基础语句和外键查询及其语句详解(推荐)》:本文主要介绍mysql的基础语句和外键查询及其语句详解(推荐),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋... 目录一、mysql 基础语句1. 数据库操作 创建数据库2. 表操作 创建表3. CRUD 操作二、外键

Python基础语法中defaultdict的使用小结

《Python基础语法中defaultdict的使用小结》Python的defaultdict是collections模块中提供的一种特殊的字典类型,它与普通的字典(dict)有着相似的功能,本文主要... 目录示例1示例2python的defaultdict是collections模块中提供的一种特殊的字

Python基础文件操作方法超详细讲解(详解版)

《Python基础文件操作方法超详细讲解(详解版)》文件就是操作系统为用户或应用程序提供的一个读写硬盘的虚拟单位,文件的核心操作就是读和写,:本文主要介绍Python基础文件操作方法超详细讲解的相... 目录一、文件操作1. 文件打开与关闭1.1 打开文件1.2 关闭文件2. 访问模式及说明二、文件读写1.

C#基础之委托详解(Delegate)

《C#基础之委托详解(Delegate)》:本文主要介绍C#基础之委托(Delegate),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1. 委托定义2. 委托实例化3. 多播委托(Multicast Delegates)4. 委托的用途事件处理回调函数LINQ