深度学习笔记之递归网络(三)递归神经网络

news2024/11/20 7:23:40

深度学习笔记之递归网络——递归神经网络

  • 引言
    • 回顾:潜变量自回归模型
    • 递归神经网络思想
    • 困惑度

引言

上一节介绍了基于统计算法的语言模型。本节将介绍基于神经网络的序列模型——递归神经网络

回顾:潜变量自回归模型

关于潜变量自回归模型,它的概率图结构表示如下:
潜变量自回归模型——概率图结构
这里仅观察 t t t时刻 t + 1 t+1 t+1时刻随机变量的变化情况。它的变化过程可划分为两个部分

  • x t − 1 , h t − 1 ⇒ h t x_{t-1},h_{t-1} \Rightarrow h_{t} xt1,ht1ht过程。其概率图结构表示为:
    过程1——概率图结构
    对应的因子分解可表示为: P ( h t ∣ h t − 1 , x t − 1 ) \mathcal P(h_t \mid h_{t-1},x_{t-1}) P(htht1,xt1)。如果使用自回归模型去描述 h t h_t ht后验概率,它可以表示为:
    就是以 h t − 1 , x t − 1 h_{t-1},x_{t-1} ht1,xt1作为模型输入,其输出结果对 h t h_t ht的分布进行描述。 λ \lambda λ为模型参数。
    P ( h t ∣ h t − 1 , x t − 1 ) = P [ h t ∣ f ( h t − 1 , x t − 1 ; λ ) ] \mathcal P(h_t \mid h_{t-1},x_{t-1}) = \mathcal P [h_t \mid f(h_{t-1},x_{t-1};\lambda)] P(htht1,xt1)=P[htf(ht1,xt1;λ)]
  • x t − 1 , h t ⇒ x t x_{t-1},h_{t} \Rightarrow x_{t} xt1,htxt过程。同理,其概率图结构表示为:
    过程2——概率图结构
    同理,它的因子分解表示为: P ( x t ∣ h t , x t − 1 ) \mathcal P(x_t \mid h_{t},x_{t-1}) P(xtht,xt1),对该条件概率进行建模,对应后验概率可表示为:
    P ( x t ∣ h t , x t − 1 ) = P [ x t ∣ f ( h t , x t − 1 ; η ) ] \mathcal P(x_t \mid h_t,x_{t-1}) = \mathcal P[x_t \mid f(h_t,x_{t-1};\eta)] P(xtht,xt1)=P[xtf(ht,xt1;η)]

最终通过对上述两步骤的交替执行,从而完成对序列信息的表示。也就是说,在遍历到最后一个随机变量 x T x_{\mathcal T} xT,得到相应的特征结果:
P ( h T + 1 ∣ h T , x T ) = P [ h T + 1 ∣ f ( h T , x T ; θ ) ] \mathcal P(h_{\mathcal T + 1} \mid h_{\mathcal T},x_{\mathcal T}) = \mathcal P[h_{\mathcal T + 1} \mid f(h_{\mathcal T},x_{\mathcal T};\theta)] P(hT+1hT,xT)=P[hT+1f(hT,xT;θ)]

递归神经网络思想

观察上述步骤,无论是 P ( h t ∣ h t − 1 , x t − 1 ) \mathcal P(h_t \mid h_{t-1},x_{t-1}) P(htht1,xt1)还是 P ( x t ∣ h t , x t − 1 ) \mathcal P(x_t \mid h_t,x_{t-1}) P(xtht,xt1),它们都属于推断过程。而递归神经网络 ( Recurrent Neural Network ) (\text{Recurrent Neural Network}) (Recurrent Neural Network),也称循环神经网络,就是将上述推断过程通过神经网络的方式描述出来。

递归神经网络隐藏层计算图展开结构表示如下:
递归神经网络——展开图结构
该隐藏层结构的前馈计算过程表示为如下形式:
t t t时刻到 t + 1 t+1 t+1时刻的计算过程为例,并且仅包含 1 1 1个隐藏层。
{ h t + 1 = σ ( W h t ⇒ h t + 1 ⋅ h t + W x t ⇒ h t + 1 ⋅ x t + b h t + 1 ) O t + 1 = ϕ ( W h t + 1 ⇒ O t + 1 ⋅ h t + 1 + b O t + 1 ) \begin{cases} h_{t+1} = \sigma(\mathcal W_{h_t \Rightarrow h_{t+1}} \cdot h_{t} + \mathcal W_{x_t \Rightarrow h_{t+1}} \cdot x_t + b_{h_{t+1}}) \\ \mathcal O_{t+1} = \phi(\mathcal W_{h_{t+1} \Rightarrow \mathcal O_{t+1}} \cdot h_{t+1} + b_{\mathcal O_{t+1}}) \\ \end{cases} {ht+1=σ(Whtht+1ht+Wxtht+1xt+bht+1)Ot+1=ϕ(Wht+1Ot+1ht+1+bOt+1)
其中, σ ( ⋅ ) \sigma(\cdot) σ()隐藏层的激活函数 ϕ ( ⋅ ) \phi(\cdot) ϕ()表示输出层的激活函数(如 Softmax \text{Softmax} Softmax)。可以看出:

  • 上述第一个公式的输出分布就是后验分布结果 P ( h t + 1 ∣ h t , x t ) \mathcal P(h_{t+1} \mid h_t,x_t) P(ht+1ht,xt)的描述——将上一时刻的输入信息 x t x_t xt以及累积的序列信息 h t h_t ht通过 W h t ⇒ h t + 1 , W x t ⇒ h t + 1 \mathcal W_{h_t \Rightarrow h_{t+1}},\mathcal W_{x_t \Rightarrow h_{t+1}} Whtht+1,Wxtht+1线性计算的方式累积隐变量 h t + 1 h_{t+1} ht+1中。

  • 那么 P ( x t + 1 ∣ h t + 1 , x t ) \mathcal P(x_{t+1} \mid h_{t+1},x_{t}) P(xt+1ht+1,xt)在哪里 ? ? ?它具体实现在了什么位置:我们观察第二个公式:
    O t + 1 = W h t + 1 ⇒ O t + 1 ⋅ h t + 1 + b O t + 1 \mathcal O_{t+1} = \mathcal W_{h_{t+1} \Rightarrow \mathcal O_{t+1}} \cdot h_{t+1} + b_{\mathcal O_{t+1}} Ot+1=Wht+1Ot+1ht+1+bOt+1
    而这个输出 O t + 1 \mathcal O_{t+1} Ot+1就是关于下一时刻 x t + 1 x_{t+1} xt+1预测结果 P ( O t + 1 ∣ h t + 1 , x t ) \mathcal P(\mathcal O_{t+1} \mid h_{t+1},x_t) P(Ot+1ht+1,xt)
    其中 x t x_t xt包含在 h t + 1 h_{t+1} ht+1内,这里就这样表示了。

    观察上图,有意思的是: O t + 1 \mathcal O_{t+1} Ot+1 t + 1 t+1 t+1时刻产生的输出信息,而同时刻的 x t + 1 x_{t+1} xt+1还没有进入到神经网络内。这意味着:此时的分布 P ( O t + 1 ∣ h t + 1 , x t ) \mathcal P(\mathcal O_{t+1} \mid h_{t+1},x_t) P(Ot+1ht+1,xt)仅仅是以 h t + 1 , x t h_{t+1},x_t ht+1,xt作为条件,基于当前时刻的模型信息,对 x t + 1 x_{t+1} xt+1进行预测的幻想粒子
    关于幻想粒子见传送门。

    那么真正的 P ( x t + 1 ∣ h t + 1 , x t ) \mathcal P(x_{t+1} \mid h_{t+1},x_t) P(xt+1ht+1,xt)在哪里 ? ? ?——当预测结果 P ( O t + 1 ∣ h t + 1 , x t ) \mathcal P(\mathcal O_{t+1} \mid h_{t+1},x_t) P(Ot+1ht+1,xt)作为神经网络的输出直接与真实特征 x t + 1 x_{t+1} xt+1之间进行比较,将比较出的差异性(损失函数) L \mathcal L L梯度的形式对 W h t + 1 ⇒ O t + 1 \mathcal W_{h_{t+1} \Rightarrow \mathcal O_{t+1}} Wht+1Ot+1进行更新
    这里以'梯度下降法'为例, η \eta η表示学习率。
    W h t + 1 ⇒ O t + 1 ⇐ W h t + 1 ⇒ O t + 1 − η ⋅ ∇ L \mathcal W_{h_{t+1} \Rightarrow \mathcal O_{t+1}} \Leftarrow \mathcal W_{h_{t+1} \Rightarrow \mathcal O_{t+1}} - \eta \cdot \nabla\mathcal L Wht+1Ot+1Wht+1Ot+1ηL
    随着 W h t + 1 ⇒ O t + 1 \mathcal W_{h_{t+1} \Rightarrow \mathcal O_{t+1}} Wht+1Ot+1优化 P ( O t + 1 ∣ h t + 1 , x t ) \mathcal P(\mathcal O_{t+1} \mid h_{t+1},x_t) P(Ot+1ht+1,xt)逐渐逼近 P ( x t + 1 ∣ h t + 1 , x t ) \mathcal P(x_{t+1} \mid h_{t+1},x_t) P(xt+1ht+1,xt)
    当然,也可以将 P ( O t + 1 ∣ h t + 1 , x t ) \mathcal P(\mathcal O_{t+1} \mid h_{t+1},x_t) P(Ot+1ht+1,xt)看作是 P ( x t + 1 ∣ h t + 1 , x t ) \mathcal P(x_{t+1} \mid h_{t+1},x_t) P(xt+1ht+1,xt),因为它们之间的关系已经确定,剩余的仅需要去更新 W h t + 1 ⇒ O t + 1 \mathcal W_{h_{t+1} \Rightarrow \mathcal O_{t+1}} Wht+1Ot+1让两分布逐渐逼近。

    如果用一句话描述上述过程输出 O t \mathcal O_t Ot预测的是对应时刻的输入特征 x t x_t xt,但输出操作发生在输入之前

困惑度

困惑度 ( Perplexity ) (\text{Perplexity}) (Perplexity)能够衡量一个语言模型的优劣性。其基本思想是:针对测试集的文本序列,语言模型对该序列赋予较高的概率值。也就是说:测试集上的文本序列极大概率是正常的句子/段落,该模型就是优秀模型。公式可表示为如下形式:
这就是‘负对数似然’加上均值和指数。
π = exp ⁡ { 1 N ∑ t = 1 N − log ⁡ P ( x t ∣ x t − 1 , ⋯   , x 1 ) } \pi = \exp \left\{\frac{1}{N}\sum_{t=1}^N -\log \mathcal P(x_t \mid x_{t-1},\cdots,x_1)\right\} π=exp{N1t=1NlogP(xtxt1,,x1)}
该公式可继续化简至如下形式
指数的作用是增大相似性结果的映射程度。映射前的值域为 [ 0 , + ∞ ) [0,+\infty) [0,+),映射后的值域为 [ 1 , + ∞ ) [1,+\infty) [1,+),但由于 log ⁡ \log log函数的存在,大括号内项的变化量受到约束;而 exp ⁡ { ⋅ } \exp \{\cdot\} exp{}显然释放掉了这个约束。也就是说,但凡出现一点偏差的风吹草动,都会被 exp ⁡ { ⋅ } \exp\{\cdot\} exp{}放大。
π = exp ⁡ { ∑ t = 1 N − log ⁡ P ( x t ∣ x t − 1 , ⋯   , x 1 ) } N = exp ⁡ { ∑ t = 1 N log ⁡ [ 1 P ( x t ∣ x t − 1 , ⋯   , x 1 ) ] } N = ∏ i = 1 N [ exp ⁡ log ⁡ 1 P ( x t ∣ x t − 1 , ⋯   , x 1 ) ] N = ∏ t = 1 N 1 P ( x t ∣ x t − 1 , ⋯   , x 1 ) N \begin{aligned} \pi & = \sqrt[N]{\exp \left\{\sum_{t=1}^N -\log \mathcal P(x_t \mid x_{t-1},\cdots,x_1) \right\}} \\ & = \sqrt[N]{\exp \left\{\sum_{t=1}^N \log \left[\frac{1}{\mathcal P(x_t \mid x_{t-1},\cdots,x_1)}\right]\right\}} \\ & = \sqrt[N]{\prod_{i=1}^N \left[\exp \log \frac{1}{\mathcal P(x_t \mid x_{t-1},\cdots,x_1)}\right]} \\ & = \sqrt[N]{\prod_{t=1}^N \frac{1}{\mathcal P(x_t \mid x_{t-1},\cdots,x_1)}} \end{aligned} π=Nexp{t=1NlogP(xtxt1,,x1)} =Nexp{t=1Nlog[P(xtxt1,,x1)1]} =Ni=1N[explogP(xtxt1,,x1)1] =Nt=1NP(xtxt1,,x1)1
根号内的项就是联合概率分布的倒数:
∏ t = 1 N 1 P ( x t ∣ x t − 1 , ⋯   , x 1 ) = 1 ∏ t = 1 N P ( x t ∣ x t − 1 , ⋯   , x 1 ) = 1 P ( x 1 , x 2 , ⋯   , x N ) \prod_{t=1}^N \frac{1}{\mathcal P(x_t \mid x_{t-1},\cdots,x_1)} = \frac{1}{\prod_{t=1}^N \mathcal P(x_t \mid x_{t-1},\cdots,x_1)} = \frac{1}{\mathcal P(x_1,x_2,\cdots,x_N)} t=1NP(xtxt1,,x1)1=t=1NP(xtxt1,,x1)1=P(x1,x2,,xN)1
最终可表示为:
π = P ( x 1 , x 2 , ⋯   , x N ) − 1 N = 1 P ( x 1 , x 2 , ⋯   , x N ) N \pi = \mathcal P(x_1,x_2,\cdots,x_N)^{-\frac{1}{N}} = \sqrt[N]{\frac{1}{\mathcal P(x_1,x_2,\cdots,x_N)}} π=P(x1,x2,,xN)N1=NP(x1,x2,,xN)1

  • 其中文本序列的概率 P ( x 1 , x 2 , ⋯   , x N ) \mathcal P(x_1,x_2,\cdots,x_{N}) P(x1,x2,,xN)越大,得到的文本序列越优秀;随之,困惑度 π \pi π越小
  • 平均值 1 N \begin{aligned}\frac{1}{N}\end{aligned} N1的作用在于:每一个 x t ( t = 1 , 2 , ⋯   , N ) x_t(t=1,2,\cdots,N) xt(t=1,2,,N)后验概率结果必然小于 1 1 1,这导致越长文本序列的概率结果在连乘过程中必然越来越小。而平均操作希望:文本序列中每一个词语的后验概率结果都比较优秀,而不是仅仅个别优秀词语对文本序列的贡献。

但是神经网络中的困惑度常常不是直接使用文本序列的联合概率分布计算的,而是使用交叉熵进行实现。基于上述递归神经网络

  • 首先,在 t t t时刻求解 x t + 1 x_{t+1} xt+1后验概率 P ( O t + 1 ∣ x t , x t − 1 , ⋯   , x 1 ) \mathcal P(\mathcal O_{t+1} \mid x_t,x_{t-1},\cdots,x_1) P(Ot+1xt,xt1,,x1)本质上是一个分类任务——根据数据集 D \mathcal D D内出现的所有词语结果中,选择概率最高的词作为 x t + 1 x_{t+1} xt+1的结果:
    使用 softmax \text{softmax} softmax去评估各词语的概率分布信息。
    但这个结果只是‘幻想粒子’,关于 t + 1 t+1 t+1时刻的输出分布,还需要去与真实分布进行比对。
    P ( O t + 1 ∣ x t , ⋯   , x 1 ) = Softmax [ P ( O t + 1 ∣ h t + 1 , x t ) ] \mathcal P(\mathcal O_{t+1} \mid x_t,\cdots,x_1) = \text{Softmax}[\mathcal P(\mathcal O_{t+1} \mid h_{t+1},x_t)] P(Ot+1xt,,x1)=Softmax[P(Ot+1ht+1,xt)]
  • 使用交叉熵损失函数对分布 P ( x t + 1 ∣ x t , ⋯   , x 1 ) \mathcal P(x_{t+1} \mid x_t,\cdots,x_1) P(xt+1xt,,x1) P ( O t + 1 ∣ x t , ⋯   , x 1 ) \mathcal P(\mathcal O_{t+1} \mid x_t,\cdots,x_1) P(Ot+1xt,,x1)之间的相似性进行评估:
    其中 x t + 1 x_{t+1} xt+1表示语料中的某个真实词。
    J t + 1 = − ∑ j = 1 ∣ V ∣ P ( x t + 1 ∣ x t , ⋯   , x 1 ) ⋅ log ⁡ [ P ( O t + 1 ∣ x t , ⋯   , x 1 ) ] \mathcal J_{t+1} = -\sum_{j=1}^{|\mathcal V|} \mathcal P(x_{t+1} \mid x_t,\cdots,x_1) \cdot \log[\mathcal P(\mathcal O_{t+1} \mid x_t,\cdots,x_1)] Jt+1=j=1VP(xt+1xt,,x1)log[P(Ot+1xt,,x1)]
  • 这仅仅是某个词对应分布的相似性结果,在序列大小 T \mathcal T T整个语料上使用平均交叉熵的方式对整体进行表示:
    这里的均值 1 T \begin{aligned}\frac{1}{\mathcal T}\end{aligned} T1和困惑度基本思想中 1 N \begin{aligned}\frac{1}{N}\end{aligned} N1的思路完全相同。
    J = 1 T ∑ t = 1 T J t = − 1 T ∑ t = 1 T ∑ j = 1 ∣ V ∣ P ( x t + 1 ∣ x t , ⋯   , x 1 ) ⋅ log ⁡ [ P ( O t + 1 ∣ x t , ⋯   , x 1 ) ] \mathcal J = \frac{1}{\mathcal T} \sum_{t=1}^{\mathcal T} \mathcal J_t = - \frac{1}{\mathcal T} \sum_{t=1}^{\mathcal T} \sum_{j=1}^{|\mathcal V|} \mathcal P(x_{t+1} \mid x_t,\cdots,x_1) \cdot \log[\mathcal P(\mathcal O_{t+1} \mid x_t,\cdots,x_1)] J=T1t=1TJt=T1t=1Tj=1VP(xt+1xt,,x1)log[P(Ot+1xt,,x1)]

最终困惑度是在平均交叉熵的基础上,添加一个指数,进而描述相似性结果:

  • 通常情况下取 b = 2 b=2 b=2;这里与视频中取值一样,都取 exp ⁡ \exp exp
    Perplexity = b J = exp ⁡ { J } ( b = exp ⁡ ) = exp ⁡ { − 1 T ∑ t = 1 T ∑ j = 1 ∣ V ∣ P ( x t + 1 ∣ x t , ⋯   , x 1 ) ⋅ log ⁡ [ P ( O t + 1 ∣ x t , ⋯   , x 1 ) ] } \begin{aligned} \text{Perplexity} & = b^{\mathcal J} \\ & = \exp\{\mathcal J\} \quad (b = \exp) \\ & = \exp \left\{-\frac{1}{\mathcal T}\sum_{t=1}^{\mathcal T}\sum_{j=1}^{|\mathcal V|} \mathcal P(x_{t+1} \mid x_t,\cdots,x_1) \cdot \log[\mathcal P(\mathcal O_{t+1} \mid x_t,\cdots,x_1)]\right\} \end{aligned} Perplexity=bJ=exp{J}(b=exp)=exp T1t=1Tj=1VP(xt+1xt,,x1)log[P(Ot+1xt,,x1)]

相关参考:
54 循环神经网络 RNN【动手学深度学习v2】
困惑度(perplexity)的基本概念及多种模型下的计算(N-gram, 主题模型, 神经网络)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/541216.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

记一次 Visual Studio 2022 卡死分析

一:背景 1. 讲故事 最近不知道咋了,各种程序有问题都寻上我了,你说 .NET 程序有问题找我能理解,Windows 崩溃找我,我也可以试试看,毕竟对 Windows 内核也知道一丢丢,那 Visual Studio 有问题找…

揭秘市场热销的4款问卷调查工具

当谈到进行在线问卷调查时,选择正确的工具可以使调查过程完全不同。市场上有这么多可供选择的产品,要找到一款符合我们需求的工具不是一件容易的事儿。在本文中,小编将和大家一起讨论4款市面上好用的问卷调查工具盘点,并比较它们的…

基于C语言设计一个叫号系统

访问【WRITE-BUG数字空间】_[内附完整源码和文档] 这道题的重点在于怎么处理患者的治疗过程。大二上学期的理论课上,我们在第一节的研讨课上对于这道题的实现进行了探讨。本题的患者排队与数据结构中的队列结构完全符合,当患者挂号后,检查该…

语音工牌:从线下沟通过程入手,实现运营商上门安装流程监管

近年来,随着网络的飞速发展,宽带越来越成为人们生活中必不可少的一部分,相应的,宽带上门安装、迁机及检修服务也成为运营商业务场景里重要的一环。 随着业务需求的增加和上门服务工程师队伍的壮大,以及消费者对服务质…

印度也开始自研 CPU ,5nm工艺、功耗是i9好几倍

前两天的新闻估计大家都看了,国内又一个科技巨头公司终止「造芯」。 OPPO 子公司哲库从成立到解散用了4年时间,这期间做出的马里亚纳X影像芯片也小有名气。 显然其目标不只是影像这一点,今年年初就有消息称 OPPO 自研 Soc 已经快到流片&…

Go语言中sync.Cond、atomic原子性和sync.Once的用法

目录 【sync.Cond】 【atomic原子性】 【sync.Once】 使用sync.Once实现单例模式 在 上一篇文章 中分析了Go语言sync 包中 sync.Mutex、sync.RWMutex和sync.WaitGroup的用法,这篇文章继续来讨论下sync包中关于 sync.Cond 、atomic原子性 和 sync.Once 的用法。…

23 KVM管理虚拟机-使用VNC密码登录虚拟机

文章目录 23 KVM管理虚拟机-使用VNC密码登录虚拟机23.1 概述23.2 前提条件23.3 操作步骤 23 KVM管理虚拟机-使用VNC密码登录虚拟机 本章介绍使用VNC密码登录虚拟机的方法。 23.1 概述 当虚拟机操作系统安装部署完成之后,用户可以通过VNC协议远程登录虚拟机&#…

【数据分享】2014-2023年全国监测站点的逐月空气质量数据(15个指标\shp\excel格式)

空气质量的好坏反映了空气的污染程度,在各项涉及城市环境的研究中,空气质量都是一个十分重要的指标。空气质量是依据空气中污染物浓度的高低来判断的。 我们发现学者王晓磊在自己的主页里面分享了2014年5月以来的全国范围的到站点的逐时空气质量数据&am…

2023年5月18日,ChatGPT还是能接收到验证码完成注册

前言 从昨天开始,有不少网友加我微信,问的基本都是同一个问题,应该注册ChatGPT账号的时候,应该都收到了如下的报错内容,主要是ChatGPT开始检测滥用问题了。 问题 一:The carrier associated with this p…

nodejs简易的token更新模型

1. 什么是JWT JWT全称为(JSON WEB TOKEN),是目前流行做登录认证的工具之一,它是一个非常轻巧的规范 2.库安装 npm install jsonwebtoken github地址: jsonwebtoken 3.更新策略1 假设一个token的有效时间为T; 当超过T小时没有请求过接口则失…

docker 安装mongo数据库

1.pull镜像 docker pull mongo:4 2.创建目录 mkdir -p /mongodb/datadb chmod 777 /mongodb/datadb 3.运行 准备好目录之后, 就可以开始运行 Docker 镜像了: docker run -d --name mongodb -v /mongodb/datadb:/data/db -p 27017:27017 -e MONGO_INITDB…

【Axure教程】轮盘滑动控制元件移动

轮盘控制元件移动是一种通过轮盘来控制元件位置或参数的方式。轮盘通常是一个圆形或半圆形的旋转控制器,用户可以通过旋转轮盘来实现元件的移动。轮盘滑动控制元件移动广泛应用于各种设备和系统中,例如移动端操作内的游戏,通过旋转轮盘&#…

神经网络:Zero2Hero 3 - Gradient calculation

Zero2Hero 4 - Gradient 创建一个Value类,属性包含变量的值和梯度信息,并支持梯度计算。举例说明梯度反向计算过程。基于Value类构建MLP模型、并实现参数的更新。 import numpy as np import matplotlib.pyplot as plt %matplotlib inlineValue类 支持…

麻了呀,现在的00后都这么卷了吗?

在程序员职场上,什么样的人最让人反感呢? 是技术不好的人吗?并不是。技术不好的同事,我们可以帮他。 是技术太强的人吗?也不是。技术很强的同事,可遇不可求,向他学习还来不及呢。 真正让人反感的,是技术平平&…

元宇宙应用领域-工业

元宇宙是指虚拟空间的总称,在这个虚拟空间中,用户可以像在现实世界一样,通过虚拟现实技术进行交互和体验。元宇宙应用领域非常广泛,如工业、游戏、娱乐、教育、医疗、房地产等。 工业领域中,元宇宙可用于在设计阶段帮…

【ThinkPHP6系列学习-1】下载并部署ThinkPHP6

目录 一、下载ThinkPHP6 二、目录结构 三、部署,配置虚拟域名 一、下载ThinkPHP6 在指定目录(www目录)下打开cmd,使用composer下载thinkphp6,命令后面的thinkphp6就是下载的目录名,可以随意修改。 comp…

流媒体传输协议相关小结——NALU、RTP、RTSP、RTMP、SDP等

前言: 本文是博主在学习流媒体时进行的小结,涉及内容较多。 由于流媒体协议说复杂也复杂,说简单也简单,复杂在需要考虑到每一位比特,简单在现成的轮子很多,只是会用往往已经足够。因此此文面向那些希望对流…

微信小程序开发实战课后习题解答————第三章(作业版)

一、填空题 1、微信小程序中用 navigationBar 组件可以实现导航栏 2、 微信小程序中能够实现轮播效果的组件是 swiper 3、 微信小程序中实现滚动条事件的绑定方法是 bindscroll 4、 微信小程序中引入音频的组件是 InnerAudioContext 5、 微信小程序…

ESMM - 完整空间多任务模型(阿里)

文章目录 1、动机2、模型结构 Entire Space Multi-Task Model: An Effective Approach for Estimating Post-Click Conversion RateESMM: Entire Space Multi-Task Model论文发表在SIGIR-2018,作者来自阿里妈妈盖坤团队。ESMM被提出用于解决pcvr建模中存在的两个非常…

ChatGPT + MindShow 制作PPT

🍏🍐🍊🍑🍒🍓🫐🥑🍋🍉🥝 ChatGPT MindShow 制作PPT 文章目录 🍐具体操作🐳结语 🍐具体操作 ChatGP…