分类问题与信息论基础(中)(DL笔记整理系列)
Posted 繁凡さん
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了分类问题与信息论基础(中)(DL笔记整理系列)相关的知识,希望对你有一定的参考价值。
《繁凡的深度学习笔记》第 3 章分类问题与信息论基础 (中)(逻辑回归、信息论基础、Softmax回归)(DL笔记整理系列)
https://fanfansann.blog.csdn.net/
https://github.com/fanfansann/fanfan-deep-learning-note
作者:繁凡
version 1.0 2022-1-20
声明:
1)《繁凡的深度学习笔记》是我自学完成深度学习相关的教材、课程、论文、项目实战等内容之后,自我总结整理创作的学习笔记。写文章就图一乐,大家能看得开心,能学到些许知识,对我而言就已经足够了 ^q^ 。
2)因个人时间、能力和水平有限,本文并非由我个人完全原创,文章部分内容整理自互联网上的各种资源,引用内容标注在每章末的参考资料之中。
3)本文仅供学术交流,非商用。所以每一部分具体的参考资料并没有详细对应。如果某部分不小心侵犯了大家的利益,还望海涵,并联系博主删除,非常感谢各位为知识传播做出的贡献!
4)本人才疏学浅,整理总结的时候难免出错,还望各位前辈不吝指正,谢谢。
5)本文由我个人( CSDN 博主 「繁凡さん」(博客) , 知乎答主 「繁凡」(专栏), Github 「fanfansann」(全部源码) , 微信公众号 「繁凡的小岛来信」(文章 P D F 下载))整理创作而成,且仅发布于这四个平台,仅做交流学习使用,无任何商业用途。
6)「我希望能够创作出一本清晰易懂、可爱有趣、内容详实的深度学习笔记,而不仅仅只是知识的简单堆砌。」
7)本文《繁凡的深度学习笔记》全汇总链接:《繁凡的深度学习笔记》前言、目录大纲
8)本文的Github 地址:https://github.com/fanfansann/fanfan-deep-learning-note/ 孩子的第一个 『Github』!给我个 ⭐ Starred \\boxed⭐ \\,\\,\\,\\textStarred ⭐Starred 嘛!谢谢!!o(〃^▽^〃)o
9)此属 version 1.0 ,若有错误,还需继续修正与增删,还望大家多多指点。本文会随着我的深入学习不断地进行完善更新,Github 中的 P D F 版也会尽量每月进行一次更新,所以建议点赞收藏分享加关注,以便经常过来回看!
如果觉得还不错或者能对你有一点点帮助的话,请帮我给本篇文章点个赞,你的支持是我创作的最大动力!^0^
要是没人点赞的话自然就更新慢咯 >_<
《繁凡的深度学习笔记》第 3 章 分类问题与信息论基础(上)目录
第 3 章 分类问题 (逻辑回归、Softmax 回归、信息论基础)
3.1 手写数字分类问题
3.1.1 手写数字图片数据集
3.1.2 构建模型
3.1.3 误差计算
3.1.4 非线性模型
3.1.4 手写数字图片识别实战
3.1.4.1 TensorFlow2.0 实现
3.1.4.2 PyTorch 实现
3.2 逻辑回归(Logistic Regression, LR)
3.2.1 决策边界
3.2.2 逻辑回归模型
3.2.3 代价函数
3.2.4 优化方法
《繁凡的深度学习笔记》第 3 章分类问题与信息论基础(中)目录
《繁凡的深度学习笔记》第 3 章 分类问题与信息论基础(下)目录
3.4 Softmax 回归
3.4.1 Softmax 回归模型
3.4.2 优化方法
3.4.3 权重衰减
3.4.4 Fashion-MNIST 数据集图片分类实战
3.5 Softmax 回归与逻辑回归的关系
3.5.1 Softmax 回归与逻辑回归的关系
3.5.2 多分类问题的 Softmax 回归与 k 个二元分类器
3.6 面试问题集锦
3.7 参考资料
《繁凡的深度学习笔记》第 3 章(中)分类问题与信息论基础
3.3 信息论基础
信息论是一个非常庞大的学科,这里仅对机器学习中常用的简单信息论基础进行清晰易懂的简要讲解。如果对信息论感兴趣想要深入学习,请继续阅读Thomas M. Cover 的 《Elements of Information Theory》 (信息论经典之作)以及其中译本《信息论基础》,详见 我的Github 项目《繁凡的深度学习笔记》免.费深度学习书籍 。
3.3.1 信息论
信息论是运用概率论与数理统计的方法研究信息熵、通信系统、数据传输、数据压缩等问题的应用数学学科,主要研究的是对一个信号能够提供的信息多少进行量化。信息论涉及编码、解码、发送以及尽可能简洁地处理信息或数据,主要的研究对象是关于随机变量的信息熵和信道。
3.3.1.1 自信息与信息量
信息量(amount of information),指信息多少的量度。我们需要知道,信息是用来减少随机不确定性的东西,也即不确定性的减少。
自信息(self-information),又译为信息本体,由克劳德 · 香农(Claude Shannon)提出,用来衡量单一事件发生时所包含的信息量多寡。任何事件都会承载着一定的信息量,包括已经发生的事件和未发生的事件,只是它们承载的信息量会有所不同。
例如对于昨天下雨这个已知事件,因为是已经发生的事件,是既定事实,那么它的信息量就为 0 0 0 。对于明天会下雨这个事件,因为未有发生,那么这个事件的信息量就大。我们可以发现信息量是一个与事件发生概率相关的概念。对于一个事件来说,它发生的概率越大,确定性越强,显然它所含有的信息量就越低。一件事情发生的概率越低,不确定性越强,它包含的信息量就越大。
至此,信息论假设信息量它只与随机变量的概率分布有关,满足可加性等性质。
定义事件
X
=
x
i
X=x_i
X=xi 的自信息为
I
(
x
i
)
=
log
b
1
P
(
x
i
)
=
−
log
b
P
(
x
i
)
=
−
log
P
(
x
i
)
(3.32)
I\\left(x_i\\right)=\\log_b\\dfrac 1P(x_i)=-\\log_b P\\left(x_i\\right)=-\\log P\\left(x_i\\right)\\tag3.32
I(xi)=logbP(xi)1=−logbP(xi)=−logP(xi)(3.32)
其中, X X X 为随机变量, x i x_i xi 为随机变量的某个取值, P P P 为 X X X 的概率分布: X ∼ P ( X ) X\\sim P(X) X∼P(X) , n n n 表示事件的个数,参数 b b b 不同时对应的结果单位不同,在公式中可忽略。在机器学习中,用自然对数 e e e 为底,单位为 奈特( n i t \\mathrmnit nit),用 2 2 2 为底,单位为比特( b i t \\mathrmbit bit)。至于我们为什么会这样定义自信息,我们将在下一节 《繁凡的深度学习笔记》3.3.2 香农熵 中进行详细探讨。
我们同样可以定义事件 X = x i , Y = y i X=x_i,Y=y_i X=xi,Y=yi 的联合自信息:
I
(
x
i
,
y
j
)
=
log
1
P
(
x
i
,
y
j
)
(3.33)
I\\left(x_i, y_j\\right)=\\log \\frac1P\\left(x_i, y_j\\right)\\tag3.33
I(xi,yj)=logP(xi,yj)1(3.33)
如果
X
X
X 与
Y
Y
Y 相互独立,则:
I
(
x
i
,
y
j
)
=
log
1
P
(
x
i
)
+
log
1
P
(
y
i
)
=
I
(
x
i
)
+
I
(
y
j
)
(3.34)
\\beginalignedI\\left(x_i, y_j\\right) &=\\log \\frac1P\\left(x_i\\right)+\\log \\frac1P\\left(y_i\\right) \\\\&=I\\left(x_i\\right)+I\\left(y_j\\right)\\endaligned\\tag3.34
I(xi,yj)=logP(xi)1+logP(yi)1=I(xi)+I(yj)(3.34)
直观上我们要求需要自信息满足如下的性质:
- 连续性,即事件的自信息 I I I 随着 P P P 的变化连续变化。
- 单调递减性,即发生的概率越小,确定它发生所需要的信息量越大。
- 当 P → 0 P\\rightarrow 0 P→0 时, I → ∞ I\\rightarrow \\infin I→∞ ,即确定不可能事件发生需要的信息量为无穷大。
- 当 P → 1 P\\rightarrow 1 P→1 时, I → 0 I\\rightarrow 0 I→0,即对确定一定会发生事件发生需要的信息量为0。
- 独立随机变量的自信息等于各自自信息的代数和。
由此可见,信息的本质是对不确定性的消除。
3.3.2 香农熵
3.3.2.1 熵
我们首先来介绍信息学中熵的概念。
熵 (Entropy),本是热力学中的概念,1948 年,克劳德 · 香农(Claude Shannon)将热力学中的熵的概念引入到信息论中,因此也被称为 信息熵 或香农熵 (Shannon Entropy),用来衡量信息的不确定度。不准确点说,熵是用来衡量混乱程度的。越混乱,熵越大,代表不确定性越大,要弄清楚情况所需要的信息量越多。
举个栗子,一个袋子有 10 10 10 个球。如果其中有 5 5 5 个红球 5 5 5 个白球,这就是混乱的。如果有 9 9 9 个红球和 1 1 1 个白球,这就不混乱。可以理解为如果各种物品的比例相同,不同物品的概率都很大,那么我想要判断袋子里面有什么东西就比较困难,整体的信息量就很大,就会非常混乱。如果袋子仅有一种物品,那么我判断袋子里的物品就非常容易,这便是不混乱。也即一个集合里面各部分比例越均衡越混乱,各部分越两极分化越不混乱。
那么如何使用数学来衡量混乱程度呢? 我们显然发现当物品的总数不变的情况下,两种物品数目的乘积越大越混乱,越小越不混乱。那么我们显然就可以用这个相乘的结果来衡量数据混乱程度。既然如此,如果袋子中有多种球,我们可以将他们的概率连乘即可。
但是我们发现连乘起来以后求导比较困难,例如对 f ( P ( x ) ) × g ( P ( x ) ) f(P(x))\\times g(P(x)) f(P(x))×g(P(x)) 进行求导我们就需要将其展开。一个显而易见的思路就是对乘积取对数将乘法变成加法,这样不仅求导更加方便,原先的单调性也没有改变。
但是我们发现取对数以后虽然
log
P
(
x
)
\\log P(x)
logP(x) 是单调递增的,但是概率
P
(
x
)
P(x)
P(x) 不能取
0
0
0。我们知道概率的取值范围为
[
0
,
1
]
[0,1]
[0,1],而当
P
(
x
)
=
0
P(x)=0
P(x)=0 时,此时极限是负无穷的
log
(
P
(
以上是关于分类问题与信息论基础(中)(DL笔记整理系列)的主要内容,如果未能解决你的问题,请参考以下文章