---
# System prepended metadata

title: 讨论 2021-10-21
tags: [Fudan, '2021', tutorials]

---

讨论 2021-10-21
=
###### tags: `tutorials` `Fudan` `2021`
# 简述分类问题

分类问题是我们经常碰到的一大类问题，其目标是把输入映射成一个离散标签，或固定数目的一组标签。本次将简述分类问题的特点与性质。

## 信息裁剪
分类问题在很多时候都是一个信息裁剪问题，不同于我们一般理解的把输入信号经过复杂变得更富有含义的过程。分类问题更多是在剥离与问题无关的信号。或者说在分类模型可能内含两个步骤，即先加工特征，得到具有区分度的特征，之后再进行裁剪，去除其他信号的干扰。

为了更好的理解这一过程，我们可以复习一下传统机器学习，决策树的做法。

![](https://i.imgur.com/tNPH5Lg.png)
> https://blog.csdn.net/weixin_35878217/article/details/112369410
### ID3
ID3的思想是每一次加工（分叉），都应该是把特征尽量区分开，也就是最大区分度，同时采用信息熵来度量区分度。

假设数据集总样本数为$D$，被分为多组，每组数量为$C_i$，那么其信息熵为 $$H(D,C) = - \sum_i \frac{C_i}{D} \log \frac{C_i}{D} $$
假设我们新的分组是$\hat{C}$，其对应熵为$$H(D, \hat{C}) = - \sum_i \frac{\hat{C}_i}{D} \log \frac{\hat{C}_i}{D}$$，假如新分组的熵是最小的，则选择它。不断重复，指导每组样本的标签一致。

ID3 的思想固然优美，但它在实际应用中也有很多问题，最关键的问题是如何在原分组基础上生成新的分组，假如只依照一维特征，很难找到最合适的分组方法，考虑多维特征复杂度又极高。所以其实际找的新分组往往离最佳方案相差甚远。并且新分组一定基于旧分组的设计也假设了局部最优可以到达全组最优。不一定成立。

### 神经网络每层的信息裁剪
联系到神经网络结构，每经过一层，是否可以理解是一次加工，经过加工之后的特征是否比上一次更具有区分度了？不同的神经网络性质很不一样，其中显然不符合信息裁剪的设计就是可逆网络，但这种网络实际多用于生成而非分类。同样的，神经网络对特征进行分组也不是离散的，而是通过在连续空间拉开距离实现的。当然也有很多用点，最重要的是现在分组依据不再是一个单一特征维度，并且上下两层也不是严格的继承关系。

## $\mathrm{argmax} ~P(x)$ 与 $P(x)$
分类问题的另一个特点是不求全面，很多时候只求峰值。比如100人短跑比赛，有100个结果，按理说我们需要把他们都储存下来，但问题只问第一名是谁，那么我们就只需要存一份数据。也就是我们只用了原来百分之一的存储空间。那假如原来要存储是一个连续分布呢？不论原分布如何复杂，分类问题往往对应一个求峰值的问题，所以我们其实只应该考虑峰值对应的分布。即该分布的每一个点代表另一个分布中的一个峰值。需要注意的是这与数据是离散采样点的情况有些相似，但不同。好比语言模型中每个样本中的词也是离散的，但它不是峰值，因为如果我们考虑它的产生过程，是有随机性的采样，所以虽然它是离散的，但其背后的分布是连续分布本身。

题外话：判别模型和生成模型的分类方法有多种说法，个人认为以$\mathrm{argmax} ~P(x)$ 与 $P(x)$来区分最佳。也就是如果背后的分布是峰值为判别模型，是分布整体则为生产成模型。

![](https://i.imgur.com/WfeZtAe.png)

## 类内多态

![](https://i.imgur.com/hFXNmch.png)

上述其实提到了分类的两个方面，也就是区分度，和无关因素的剔除。但这二者很多时候未必能很好的统一，即区分度的增加经常会引入更多的无关因素。以图像为例，背景统一算一大类，但实际上，背景里的内容千变万化，把他们归一类的话非常混淆。在同一类别内部的样本间如果相互区分度也很大，就称为类内多态。

