Datawhale X 李宏毅苹果书AI夏令营 | 分类模型——学习笔记

99 阅读2分钟

修订历史:

  • 2024.08.31 初稿
  • 2024.09.03 版式调整,使得不同内容笔记区分更清晰

学习笔记

《深度学习详解》/王棋等/中国工信出版社/新书

〇 独热向量(one-hot编码)(P59)

★ One-hot 编码是一种处理分类变量的方法,通常用于机器学习和统计分析中。在这种编码方式中,每个类别值都被表示为一个二进制向量,其中只有一个位置是1,其余位置都是0。这个1的位置对应于类别值的索引。

例如,假设我们有一个颜色的分类变量,包含三个类别:红色、蓝色和绿色。在 one-hot 编码中,这三个类别可以被编码为以下向量:

  • 红色:[1, 0, 0]
  • 蓝色:[0, 1, 0]
  • 绿色:[0, 0, 1]

这样,每个类别都有一个唯一的二进制向量表示,可以被机器学习算法处理。One-hot 编码的主要优点是它消除了类别之间的任何隐含的顺序关系,这对于某些算法(如线性回归)来说是很重要的,因为它们可能会错误地解释类别之间的数值关系。此外,它也使得模型能够更容易地处理稀疏数据,因为大多数位置都是0。


〇 Softmax (P60-P61) Softmax 函数如下

yi=exp(yi)Σjexp(yi)y^{'}_{i} = \frac{exp(y_i)}{\Sigma_j exp(y_i)}

Q:为什么分类过程中要加上 softmax 函数?

A:一个比较简单的解释是,y 是独热向量,所以其里面的值只有 0 跟 1,但是 y^\hat{y} 里面有任何值。既然目标只有 0 跟 1,但 y^\hat{y} 有任何值,可以先把它归一化到 0 到 1 之间,这样才能跟标签的计算相似度。

当只有两个类的时候,sigmoid 和 softmax 是等价的。当有大于等于 3 个类时,使用 softmax。


〇 分类损失(P61)

如下图所示,当我们把 x 输入到一个网络里面产生 y^\hat{y} 后,通过 softmax 得到 y′,再去计算 y′ 跟 y 之间的距离 e.

★ 距离 ee 的计算方式有

  • 均方误差:e=Σi(yiyi)2e = \Sigma_i (y_i - y^{'}_i)^2
  • 交叉熵:e=Σiyilnyie = - \Sigma_i y_i ln y_i^{'}

其中分类任务中交叉熵更常用,当 y^\hat{y}yy′ 相同时,可以最小化交叉熵的值,此时均方误差也是最小的。最小化交叉熵其实就是最大化似然(maximize likelihood)。