✨ 复制成功!

以文会友,打造好学人设!

📋 已复制到剪贴板:

《PyTorch入门精华》


1 前言
    1.1  PyTorch安装

    1.2  显卡驱动的困惑

    1.3  CUDA安装注意事项

    1.4  cuDNN的介绍

    1.5  Pytorch Lightning介绍

    1.6  PyTorch学习之道

    1.7  PyTorch快速入门

    1.8  PyTorch调参之道

    1.9  PyTorch调参套件

    1.10  手动创建虚拟环境

2 深度学习之数学基础
    2.1  希腊字母解读

    2.2  梯度的物理意义

    2.3  图解梯度下降法

    2.4  图解梯度上升法

    2.5  自然梯度

    2.6  泰勒公式的介绍

    2.7  信息与信息熵

    2.8  重要性采样

    2.10  欧几里得范数

    2.11  特征值和特征向量

    2.12  似然函数的理解

    2.13  矩阵秩的深刻理解

3 PyTorch入门疑难点
4 PyTorch全局设置
    4.1  全局设置当前设备

    4.2  全局设置浮点精度

5 PyTorch GPU分布式训练
    5.1  PyTorch GPU基础操作

    5.2  DataParallel用法详解

    5.3  GPU分布式训练模型

    5.4  CUDA_VISIBLE_DEVICES

    5.5  device详细说明

    5.6  to(device)和.cuda()

    5.7  CUDA设备索引

    5.8  GPU设备索引

6 向量的基础与核心
    6.1  Tensor的组成与存储

    6.2  Tensor的grad属性

    6.4  Tensor的叠加

    6.5  禁用梯度计算

    6.6  向量的保存和加载

    6.7  参数向量

    6.8  叶子节点

    6.9  detach原理

    6.10  requires_grad属性

    6.11  Tensor与Numpy互换

    6.12  张量cat操作

    6.13  零维张量

    6.15  squeeze/unsqu...函数

    6.16  argmax和max的区别

    6.17  torch.as_tensor的应用

7 神经网络基础
    7.2  PyTorch计算图

    7.3  查看网络权重参数

    7.4  保存模型

    7.5  Adam相关面试题

    7.6  Train模式和Eval模式

    7.7  线性网络

    7.8  双线性网络

    7.9  惰性线性层

    7.10  PyTorch中的自动微分

    7.12  Dropout机制

    7.13  半精度训练

    7.14  Xavier初始化

    7.15  注意力机制

    7.16  Dataset数据处理

    7.17  StepLR学习率调度器

    7.18  词嵌入的理解

    7.19  TensorDataset的使用

    7.20  模型的保存与加载

    7.21  ModuleList和Sequential

    7.22  Batch Normalization介绍

8 计算机视觉基础知识
    8.1  通道的深刻理解

    8.2  1x1卷积的作用

    8.3  特征提取和可视化

    8.4  反卷积的推导

    8.5  理解卷积

    8.7  空洞卷积

    8.8  池化层的作用

    8.9  感受野与特征图

    8.10  NMS算法

    8.11  特征图尺寸计算

9 循环神经网络基础
    9.2  RNN的介绍

10 注意力机制
    10.1  位置编码的作用

    10.2  位置编码的种类

    10.4  Embedding本质理解

    10.6  Transformer VS CNN/RNN

    10.7  ELMo介绍

11 PyTorch归一化
    11.2  层归一化技术详解

12 激活函数相关内容
    12.1  激活函数简介

    12.2  万能逼近定理

    12.3  指数函数的学习

    12.4  Sigmoid函数的介绍

    12.5  Tanh函数的介绍

    12.6  Softmax函数的实现

    12.7  ReLU函数的介绍

    12.8  Leaky Relu函数的介绍

    12.9  ReLu与非线性的理解

    12.10  Parametric ReLU函数

    12.11  ELU函数介绍

    12.12  神经元死亡的问题

13 思考题的答案
    13.1  思考题的答案解密

信息与信息熵

创建时间:2025-02-19 更新时间:2025-02-19 阅读次数:1637 次

1、什么是信息?

信息这个概念分为广义和狭义,这是理解信息论的关键第一步,混淆了广义和狭义,则后面的理解将会变得非常难。

广义的信息,指是我们能看到的图片和文字,以及能听到的声音等,泛指人类社会传播的一切内容。狭义的信息,专指通信系统中的被传输的信号。这是理解香农的信息论的基础。

香农的伟大之处在于将信息这个东西,从狭义的角度出发,给出了数学化的分析。而且,这个数学分析的角度也是极其狭窄:信息是用来消除随机不定性的东西。在香农的眼睛里,信息就是用来表示“有”和“无”的东西。这就是为什么信息的度量是以2为底的$log$函数。能够将信息的定义,简化到如此程度,也只有香农一个人做到了。在香农之前,也有人提出了类似的关于信息的计算公式,但是没有人像香农一样,将信息的定义和内涵做得如此简单,所以香农能开创一个时代,而其他人都没有与之比肩。

我们不能以广义的角度去理解信息,因为我们看到的图片和文字都有可以度量的方式,这种度量的方式(几张图片、几个字符等),与信息论中的信息熵是没有任何关系的。

另外,我们不能把信号当做信息。信号在电子系统是通过开关系统实现的,是通过0和1来实现的。但是,这个0和1不等于信息论中的比特bit。

2、 信息熵

人类对自然世界的认知迈出了三大步:质量、能量和信息量。

人们很早就知道用秤或者天平计量物质的质量,而对能力的认知则是到了19世纪中叶,随着热力学和动力学的发展,以及能量守恒定律的建立才逐渐清楚。能量一词就是热和功的总称,而能量的计量则通过“卡里路、焦耳”等新单位的出现而得到解决。

备注:卡是卡路里的简称,我们往往将卡路里与食品联系在一起,但实际上它们适用于含有能量的任何物质。路里的定义是将1克水在一个大气压下,温度升高1摄氏度所需要的能量或热量。由于后来科学家发现水在不同温度下的比热容不同,也就是说不同温度的水升高同样1度,需要的热量并不相同,因此,卡的定义就不准确了。取而代之的焦耳,焦耳的定义是1牛顿的力作用在力的方向上移动1米距离所作的功。焦耳和卡可以换算, 1 卡 = 4.184 焦耳。

然而,关于文字、数字、图画、声音的知识已有几千年历史了,但是它们的总称是什么,它们如何统一地计量,直到19世纪末还没有被正确地提出来,更谈不上如何去解决了。

20世纪初期,随着电报、电话、照片、电视、无线电、雷达等的发展,如何计量信号中信息量的问题被隐约地提上日程。

1928年哈特利考虑到从$D$个彼此不同的符号中取出N个符号并且组成一个“词”的问题。如果各个符号出现的概率相同,而且是完全随机选取的,就可以得到$D^N$个不同的词。从这些词里取了特定的一个就对应一个信息量I。哈特利建议用$N log D$这个量表示信息量,即$I=N log D$。这里的$log$表示以$10$为底的对数。

后来,香农横空出世,在他的通信数学模型中,清楚地提出信息的度量问题,他把哈特利的公式扩大到概率$p_i$不同的情况,得到了著名的计算信息熵H的公式:

$$H(X)=-\sum p_ilog_2p_i$$

香农在进行信息的定量计算的时候,明确地把信息量定义为随机不定性程度的减少。这就表明了他对信息的理解:信息是用来减少随机不定性的东西。

3、信息熵公式为什么底数为2?

正如上文所示,香农的伟大之处在于将信息这个东西,从狭义的角度出发,给出了数学化的分析。而且,这个数学分析的角度也是极其狭窄:信息是用来消除随机不定性的东西。在香农的眼睛里,信息就是用来表示“有”和“无”的东西。这就是为什么信息的度量是以2为底的$log$函数。

4、香农理论的局限性

虽然香农的信息概念比以往的认识有了巨大的进步,但仍存在局限性,这一概念同样没有包含信息的内容和价值,只考虑了随机型的不定性,没有从根本上回答"信息是什么"的问题。

事实上,香农最初的动机是把电话中的噪音除掉,他给出通信速率的上限,这个结论首先用在电话上,后来用到光纤,截止2013年又用在无线通信上。我们能够清晰地打越洋电话或卫星电话,都与通信信道质量的改善密切相关。

5、信息熵应用举例

信息论最初所处理的问题是数据压缩与传输领域中的问题,其处理方法利用了熵和互信息等基本量,它们是通信过程的概率分布的函数。

如果随便变量$X$的概率密度函数为$p(x)$,那么$X$的熵的定义为

$H(X)=-\sum\limits_{x}p(x)log_2p(x)$

使用以2为底的对数函数,熵的单位是比特。熵可以看做是随机变量的平均不确定度的度量。在平均意义下,它是为了描述该随机变量所需要的比特数。

假设有8匹马参加一场赛马比赛,设8匹马的获胜概率分布为$( \frac{1}{2}, \frac{1}{4}, \frac{1}{8}, \frac{1}{16}, \frac{1}{64}, \frac{1}{64}, \frac{1}{64}, \frac{1}{64})$。我们可以计算出该场赛马的熵为:

$$H(X)=-\frac{1}{2}log_2\frac{1}{2}-\frac{1}{4}log_2\frac{1}{4}-\frac{1}{8}log_2\frac{1}{8}-\frac{1}{16}log_2\frac{1}{16}-4\frac{1}{64}log_2\frac{1}{64}=2 bits $$
本教程共117节,当前为第17节!
本教程最新修订时间为:2026-08-07 09:17:18

📌 面试天下网:一款便捷的大模型学习口袋书,让富士康流水线的打工人也能摸到改命逆天的机会!
📌 网站公告:程序出海:中国程序员当下最大的机遇>>>>>>