【AI算法岗面试八股面经【超全整理】——信息论】

2024-05-28 04:44

本文主要是介绍【AI算法岗面试八股面经【超全整理】——信息论】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

AI算法岗面试八股面经【超全整理】

  • 概率论
  • 信息论
  • 机器学习
  • CV
  • NLP

目录

    • 1、自信息、信息熵
    • 2、相对熵(KL散度)、交叉熵
    • 3、联合熵与条件熵
    • 4、互信息

1、自信息、信息熵

自信息
概率与信息量的关系:概率越大的事件,提供的信息量越小;概率越小的事件,信息量越大
信息量计算公式:
I ( x ) = − log ⁡ p ( x ) I(x)=-\log p(x) I(x)=logp(x)
对数底与信息的单位:

  • 以2为底:bit(binary unit)
  • 以e为底:nat(nature unit)
  • 以10为底:Hart(Hartley)

熵(信息熵)
熵用来描述一个事件的不确定性,表示某事件所有可能发生的情况的信息量的期望值(所有可能情况信息量的均值)
设事件X共有n种可能,发生 x i x_i xi的概率为 p ( x i ) p(x_i) p(xi),那么该事件熵的计算公式:
H ( x ) = − ∑ i = 1 n p ( x i ) log ⁡ ( p ( x i ) ) = E ( log ⁡ 1 p ( x i ) ) H(x)=-\sum_{i=1}^{n}p(x_i)\log (p(x_i))=E(\log \frac{1}{p(x_i)}) H(x)=i=1np(xi)log(p(xi))=E(logp(xi)1)
基本性质:

  • 非负性: H ( X ) ≥ 0 H(X)\geq 0 H(X)0,当某事件是确定发生的事情,则其熵为0(太阳从东边升起的信息熵为0)
  • 某随机变量每次发生的情况越不确定(不确定性越大),则其熵值越大,此时,该变量的分布也越混乱
  • 当某事件对每种可能发生情况的概率是相等时,则其熵值最大

2、相对熵(KL散度)、交叉熵

相对熵(散度KL)
如果我们对于同一个随机变量 x 有两个单独的概率分布 P ( X ) P(X) P(X) Q ( X ) Q(X) Q(X),我们可以使用 KL 散度来衡量这两个分布的差异。
在机器学习中,P 往往用来表示样本的真实分布,Q 用来表示所预测的分布,那么 KL 散度是可以计算两个分布的差异,也是是 Loss 损失值。
D K L ( p ∣ ∣ q ) = ∑ i − 1 n [ p ( x i ) log ⁡ ( p ( x i ) ) − p ( x i ) log ⁡ ( q ( x i ) ) ] D_{KL}(p||q)=\sum_{i-1}^{n}[p(x_i)\log (p(x_i))-p(x_i)\log (q(x_i))] DKL(p∣∣q)=i1n[p(xi)log(p(xi))p(xi)log(q(xi))]
D K L ( p ∣ ∣ q ) = ∑ i − 1 n p ( x i ) log ⁡ ( p ( x i ) q ( x i ) ) D_{KL}(p||q)=\sum_{i-1}^{n}p(x_i)\log (\frac{p(x_i)}{q(x_i)}) DKL(p∣∣q)=i1np(xi)log(q(xi)p(xi))

  • KL散度的值始终大于0,并且当且仅当两分布相同时,KL散度等于0,当 P ( X ) P(X) P(X) Q ( X ) Q(X) Q(X)的相似度越高,KL距离越小
  • KL散度不对称,即P到Q的距离,不等于Q到P的距离

交叉熵
D K L ( p ∣ ∣ q ) D_{KL}(p||q) DKL(p∣∣q)公式进行变形可以得到
D K L ( p ∣ ∣ q ) = ∑ i − 1 n [ p ( x i ) log ⁡ ( p ( x i ) ) − p ( x i ) log ⁡ ( q ( x i ) ) ] D_{KL}(p||q)=\sum_{i-1}^{n}[p(x_i)\log (p(x_i))-p(x_i)\log (q(x_i))] DKL(p∣∣q)=i1n[p(xi)log(p(xi))p(xi)log(q(xi))]
D K L ( p ∣ ∣ q ) = ∑ i − 1 n − p ( x i ) log ⁡ ( q ( x i ) ) − H ( X ) D_{KL}(p||q)=\sum_{i-1}^{n}-p(x_i)\log (q(x_i))-H(X) DKL(p∣∣q)=i1np(xi)log(q(xi))H(X)
加入需要拟合的对象的分布是固定的(比如针对某一特定的数据集),那么 H ( X ) H(X) H(X)就应该是一个定值,所以优化时可以忽略这一项的影响,仅仅优化前一项,而交叉熵即为去掉原始事件信息熵的KL散度:
H ( p , q ) = − ∑ i − 1 n p ( x i ) log ⁡ ( q ( x i ) ) H(p,q)=-\sum_{i-1}^{n}p(x_i)\log (q(x_i)) H(p,q)=i1np(xi)log(q(xi))

3、联合熵与条件熵

联合熵
联合熵表示多个随机变量联合分布的不确定性。
计算公式:
H ( X , Y ) = − ∑ x ∈ X ∑ y ∈ Y p ( x , y ) log ⁡ p ( x , y ) H(X,Y)=-\sum_{x\in X} \sum_{y\in Y}p(x,y)\log p(x,y) H(X,Y)=xXyYp(x,y)logp(x,y)
H ( X , Y ) ≤ H ( X ) + H ( Y ) H(X,Y) \leq H(X)+H(Y) H(X,Y)H(X)+H(Y),即联合熵不一定等于两个随机变量的信息熵之和。理解:观察X会获得Y一定的信息。

条件熵
两个随机变量,当知道Y时,X的平均不确定性称为条件熵。
计算公式:
H ( X ∣ Y ) = − ∑ x ∈ X ∑ y ∈ Y p ( x , y ) log ⁡ p ( x ∣ y ) H(X|Y)=-\sum_{x\in X} \sum_{y\in Y}p(x,y)\log p(x|y) H(XY)=xXyYp(x,y)logp(xy)
条件熵和联合熵满足链式法则
H ( X , Y ) = H ( Y ) + H ( X ∣ Y ) = H ( X ) + H ( Y ∣ X ) H(X,Y)=H(Y)+H(X|Y)=H(X)+H(Y|X) H(X,Y)=H(Y)+H(XY)=H(X)+H(YX)

4、互信息

事物是普遍联系的,随机变量也存在相互关系,互信息可以用来刻画随机变量的相关程度。

  • 单独观察X得到的信息量是 H ( X ) H(X) H(X)
  • 已知Y后,X的信息量变为 H ( X ∣ Y ) H(X|Y) H(XY)
  • 了解Y后,X的信息量减少了 H ( X ) − H ( X ∣ Y ) H(X)-H(X|Y) H(X)H(XY)

定义:离散型随机变量X与Y之间的互信息 I ( X ; Y ) I(X;Y) I(X;Y)
I ( X ; Y ) = H ( X ) − H ( X ∣ Y ) = ∑ x ∈ X ∑ y ∈ Y p ( x , y ) log ⁡ p ( x , y ) p ( x ) p ( y ) I(X;Y)=H(X)-H(X|Y)=\sum_{x\in X} \sum_{y\in Y}p(x,y)\log {\frac {p(x,y)}{p(x)p(y)}} I(X;Y)=H(X)H(XY)=xXyYp(x,y)logp(x)p(y)p(x,y)
I ( X ; Y ) = H ( X ) + H ( Y ) − H ( X , Y ) I(X;Y)=H(X)+H(Y)-H(X,Y) I(X;Y)=H(X)+H(Y)H(X,Y)

这篇关于【AI算法岗面试八股面经【超全整理】——信息论】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1009570

相关文章

Spring AI集成DeepSeek三步搞定Java智能应用的详细过程

《SpringAI集成DeepSeek三步搞定Java智能应用的详细过程》本文介绍了如何使用SpringAI集成DeepSeek,一个国内顶尖的多模态大模型,SpringAI提供了一套统一的接口,简... 目录DeepSeek 介绍Spring AI 是什么?Spring AI 的主要功能包括1、环境准备2

Spring AI集成DeepSeek实现流式输出的操作方法

《SpringAI集成DeepSeek实现流式输出的操作方法》本文介绍了如何在SpringBoot中使用Sse(Server-SentEvents)技术实现流式输出,后端使用SpringMVC中的S... 目录一、后端代码二、前端代码三、运行项目小天有话说题外话参考资料前面一篇文章我们实现了《Spring

Spring AI与DeepSeek实战一之快速打造智能对话应用

《SpringAI与DeepSeek实战一之快速打造智能对话应用》本文详细介绍了如何通过SpringAI框架集成DeepSeek大模型,实现普通对话和流式对话功能,步骤包括申请API-KEY、项目搭... 目录一、概述二、申请DeepSeek的API-KEY三、项目搭建3.1. 开发环境要求3.2. mav

C#集成DeepSeek模型实现AI私有化的流程步骤(本地部署与API调用教程)

《C#集成DeepSeek模型实现AI私有化的流程步骤(本地部署与API调用教程)》本文主要介绍了C#集成DeepSeek模型实现AI私有化的方法,包括搭建基础环境,如安装Ollama和下载DeepS... 目录前言搭建基础环境1、安装 Ollama2、下载 DeepSeek R1 模型客户端 ChatBo

golang字符串匹配算法解读

《golang字符串匹配算法解读》文章介绍了字符串匹配算法的原理,特别是Knuth-Morris-Pratt(KMP)算法,该算法通过构建模式串的前缀表来减少匹配时的不必要的字符比较,从而提高效率,在... 目录简介KMP实现代码总结简介字符串匹配算法主要用于在一个较长的文本串中查找一个较短的字符串(称为

通俗易懂的Java常见限流算法具体实现

《通俗易懂的Java常见限流算法具体实现》:本文主要介绍Java常见限流算法具体实现的相关资料,包括漏桶算法、令牌桶算法、Nginx限流和Redis+Lua限流的实现原理和具体步骤,并比较了它们的... 目录一、漏桶算法1.漏桶算法的思想和原理2.具体实现二、令牌桶算法1.令牌桶算法流程:2.具体实现2.1

Spring AI集成DeepSeek的详细步骤

《SpringAI集成DeepSeek的详细步骤》DeepSeek作为一款卓越的国产AI模型,越来越多的公司考虑在自己的应用中集成,对于Java应用来说,我们可以借助SpringAI集成DeepSe... 目录DeepSeek 介绍Spring AI 是什么?1、环境准备2、构建项目2.1、pom依赖2.2

Deepseek R1模型本地化部署+API接口调用详细教程(释放AI生产力)

《DeepseekR1模型本地化部署+API接口调用详细教程(释放AI生产力)》本文介绍了本地部署DeepSeekR1模型和通过API调用将其集成到VSCode中的过程,作者详细步骤展示了如何下载和... 目录前言一、deepseek R1模型与chatGPT o1系列模型对比二、本地部署步骤1.安装oll

Spring AI Alibaba接入大模型时的依赖问题小结

《SpringAIAlibaba接入大模型时的依赖问题小结》文章介绍了如何在pom.xml文件中配置SpringAIAlibaba依赖,并提供了一个示例pom.xml文件,同时,建议将Maven仓... 目录(一)pom.XML文件:(二)application.yml配置文件(一)pom.xml文件:首

SpringBoot整合DeepSeek实现AI对话功能

《SpringBoot整合DeepSeek实现AI对话功能》本文介绍了如何在SpringBoot项目中整合DeepSeekAPI和本地私有化部署DeepSeekR1模型,通过SpringAI框架简化了... 目录Spring AI版本依赖整合DeepSeek API key整合本地化部署的DeepSeek