【复旦邱锡鹏教授《神经网络与深度学习公开课》笔记】线性分类

之前在线性回归问题当中,直接将线性模型映射到一个连续的实数集 y y y上来表示预测值。但是对于分类问题来说,预测值为离散值,以二分类问题为例,预测值属于集合 { 0 , 1 } \{0,1\} {0,1},因此用线性回归模型无法解决分类问题。通常,为了实现这些简单的分类问题,可以通过对线性模型外层嵌套一个离散函数来解决。仍以二分类问题为例,在外层嵌套一个如下的分段函数
g ( f ( x ; w ) ) = { 1 ,    i f    f ( x ; w ) > 0 0 ,    i f    f ( x ; w ) < 0 g(f(x;w))= \left\{\begin{aligned} 1,\ \ if\ \ f(x;w)>0\\ 0,\ \ if\ \ f(x;w)<0 \end{aligned}\right. g(f(x;w))={1,  if  f(x;w)>00,  if  f(x;w)<0
通过上述形式的嵌套后,当线性函数值大于0时属于分类1,小于0时属于分类0(或者说正例、负例)。其中,线性函数 f ( x ; w ) f(x;w) f(x;w)叫做判别函数(Discriminant Function),离散函数 g ( x ) g(x) g(x)决策函数
在这里插入图片描述

虽然这种函数从函数形式上看是离散的、非线性的,但它实际上表示在空间中找到一个线性决策边界,将空间一分为二,决策边界每一边分别属于一个类别。可以简单的认为线性分类模型=线性判别函数+线性决策边界
在这里插入图片描述

如上图,把判别函数 f ( x ; w ) = 0 f(x;w)=0 f(x;w)=0作为分界线/面(决策边界),分界面以上表示 f ( x ; w ) > 0 f(x;w)>0 f(x;w)>0的区域,以下表示 f ( x ; w ) < 0 f(x;w)<0 f(x;w)<0的区域。

根据分类问题的分类数量不同,可以将分类问题分为二分类问题和多分类问题。

二分类问题

二分类问题是分类问题中一种简单的问题,二分类问题也属于监督学习,训练集仍为 { ( x ( n ) , y ( n ) ) n = 1 N } \{(x^{(n)},y^{(n)})_{n=1}^N\} {(x(n),y(n))n=1N},其中 x ( n ) ∈ R D , y ( n ) ∈ { 0 , 1 } x^{(n)}\in\mathbb{R}^D,y^{(n)}\in\{0,1\} x(n)RD,y(n){0,1} 。二分类问题的模型为:
g ( f ( x ; w ) ) = { 1 ,    i f    f ( x ; w ) > 0 0 ,    i f    f ( x ; w ) < 0 g(f(x;w))= \left\{\begin{aligned} 1,\ \ if\ \ f(x;w)>0\\ 0,\ \ if\ \ f(x;w)<0 \end{aligned}\right. g(f(x;w))={1,  if  f(x;w)>00,  if  f(x;w)<0
对于损失函数的选择,最简单的可以用0-1损失函数:
L 01 ( y , g ( f ( x ; w ) ) ) = I ( y ≠ g ( f ( x ; w ) ) ) \mathcal{L}_{01}(y,g(f(x;w)))=I(y\neq g(f(x;w))) L01(y,g(f(x;w)))=I(y=g(f(x;w)))
也就是当判定结果与 y y y进行比较,如果相同则认为分类正确,不相同则认为分类错误。但是,0-1损失函数不连续,不能求导,也就无法进一步转换成优化问题来解决,之后会通过使用别的损失函数来解决这个问题,这里先暂时只给出0-1损失函数。

多分类问题

同样的,多分类问题训练集为训练集为 { ( x ( n ) , y ( n ) ) n = 1 N } \{(x^{(n)},y^{(n)})_{n=1}^N\} {(x(n),y(n))n=1N},但其中 x ( n ) ∈ R D , y ( n ) ∈ { 1 , ⋯   , C } ( C > 2 ) x^{(n)}\in\mathbb{R}^D,y^{(n)}\in\{1,\cdots,C\}(C>2) x(n)RD,y(n){1,,C}(C>2) 。由于拥有2个以上的分类,而通过一条线最多只能将数据集划分为两个区域,因此只有一个分界函数就无法解决问题。
对于解决多分类问题,一般有以下三种模型可供选择:
在这里插入图片描述

  • “一对其余”方式:将多类分类器转换成多个两类分类器进行处理,有多少个分类就要建立多少个分类器。例如上图中将数据分类 ω 1 , ω 2 , ω 3 \omega_1,\omega_2,\omega_3 ω1,ω2,ω3 f 1 f_1 f1函数分别用来判断数据是否属于 ω 1 \omega_1 ω1类, f 2 f_2 f2判断是否属于 ω 2 \omega_2 ω2 f 3 f_3 f3判断是否属于 ω 3 \omega_3 ω3,在训练 f 1 f_1 f1时,将 ω 1 \omega_1 ω1看作正例, ω 2 + ω 3 \omega_2+\omega_3 ω2+ω3看作负例,其余函数以此类推。这种方式会产生上图问号区域表示的这些模糊区域,落在区域中的数据无法判断其分类。
  • “一对一”方式:在每两个类之间建立一个分界面,C个类共需要 C ( C − 1 ) 2 \frac{C(C-1)}{2} 2C(C1)个分类器,当C较大时,该方法较为复杂。上图中, f 12 f_{12} f12用来区分分类属于 ω 1 \omega_1 ω1还是 ω 2 \omega_2 ω2 f 13 f_{13} f13用来区分分类属于 ω 1 \omega_1 ω1还是 ω 3 \omega_3 ω3 f 23 f_{23} f23用来区分分类属于 ω 2 \omega_2 ω2还是 ω 3 \omega_3 ω3。这种方法最终只会产生如上图所示的一个模糊区域。
  • “argmax”方式:该方式为目前多分类中使用最多的方式,是对“一对其余”方式的一种改进。与“一对其余”这种属于或不属于某类的投票方式不同,“argmax”方式为打分制,数据更倾向于哪个类哪个类的得分就要高,最终得分高的类就是该数据的所属的类,这种方式不会产生模糊区域,同时与“一对其余”方式相同,共需要C个分类器。具体来说,若数据在某分类器下得分为正数则表示在分界线正例一侧(也就是属于该分类,对应图上三条线的外侧区域),若得分为负数则表示在负例一侧(对应上图三条线围成的区域),同属于某侧时,数据点距离分界线越近,评分越高。
    “argmax”方式定义为:
    f c ( x ; w c ) = w c T + b c ,    c ∈ { 1 , ⋯   , C } y = arg ⁡ max ⁡ c = 1 C f c ( x ; w ) \begin{aligned} &f_c(x;w_c)=w_c^T+b_c,\ \ c\in\{1,\cdots,C\}\\ \\ &y=\mathop{\arg\max}^C_{c=1}f_c(x;w) \end{aligned} fc(x;wc)=wcT+bc,  c{1,,C}y=argmaxc=1Cfc(x;w)
    同样的,多分类问题也可以用0-1损失函数来评估。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Don't move

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值