人工智能AI 全栈体系(七)

news2024/11/20 10:08:29

第一章 神经网络是如何实现的

神经网络不仅仅可以处理图像,同样也可以处理文本。由于处理图像讲起来比较形象,更容易理解,所以基本是以图像处理为例讲解的。

七、词向量

请添加图片描述

  • 图像处理之所以讲起来比较形象,是因为图像的基本元素是像素,而像素是由数字表示的,可以直接处理。而文本的基本元素是词,要处理文本的话,首先要解决词的表示问题。

1. 独热(one-hot)编码

请添加图片描述

  • 最简单的表示方法称作“独热”(one-hot)编码。

2. 独热编码举例

  • 我们举例说明独热编码方法。假设有一句话:我在清华大学读书,生活在美丽的清华园中。我们以这句话中出现的词组成一个共有8个词的词表:
  • {我,在,清华大学,读书,生活,美丽的,清华园,中}
  • 独热编码方法就是用一个与词表等长的向量表示一个词,该向量只有一个位置为1,其他位置均为0。具体哪个位置为1呢?就看单词在词表中处于第几位,如果处于第n位,那么在向量的第n个位置就为1。这也是“独热编码”一词的来源。
  • 比如“清华大学”一词处于词表的第3个位置,则该词就可以表示为:
    • “清华大学”=[0,0,1,0,0,0,0,0]
  • 同样的,“清华园”、“美丽的”分别可以表示为:
    • “清华园”=[0,0,0,0,0,0,1,0]
    • “美丽的”=[0,0,0,0,0,1,0,0]
      请添加图片描述

3. 独热编码的特点

  • 这种表示的优点是比较简单,事先做好一个词表,词表确定后词的表示就确定了。但有很多不足。比如:如果处理真实文本,常用词至少需要10万个,每个词都需要表示为一个长度为10万的向量。也无法通过计算的办法获得两个词的相似性。比如在自然语言处理中,常常用欧氏距离衡量两个词的相似性或者是否近义词,欧氏距离越小,就说明两个词越相似。但是对于独热编码来说,任何词都只有一个位置为1,且只要是非同一个词,则1的位置一定是不一样的,所以任何两个词的欧氏距离都是 2 \sqrt{2} 2 ,比如“清华大学”与“清华园”的欧氏距离为:
    ∥ “清华大学” − “清华园” ∥ 2 \begin{Vmatrix} “清华大学” - “清华园” \end{Vmatrix}_2 清华大学清华园 2
    = ( 0 − 0 ) 2 + ( 0 − 0 ) 2 + ( 1 − 0 ) 2 + ( 0 − 0 ) 2 + ( 0 − 0 ) 2 + ( 0 − 0 ) 2 + ( 0 − 1 ) 2 + ( 0 − 0 ) 2 = \sqrt{(0-0)^2+(0-0)^2+(1-0)^2+(0-0)^2+(0-0)^2+(0-0)^2+(0-1)^2 + (0-0)^2} =(00)2+(00)2+(10)2+(00)2+(00)2+(00)2+(01)2+(00)2
    = 2 = \sqrt{2} =2
  • “美丽的”与“清华园”的欧氏距离为:
    ∥ “美丽的” − “清华园” ∥ 2 \begin{Vmatrix} “美丽的” - “清华园” \end{Vmatrix}_2 美丽的清华园 2
    = ( 0 − 0 ) 2 + ( 0 − 0 ) 2 + ( 0 − 0 ) 2 + ( 0 − 0 ) 2 + ( 0 − 0 ) 2 + ( 1 − 0 ) 2 + ( 0 − 1 ) 2 + ( 0 − 0 ) 2 = \sqrt{(0-0)^2+(0-0)^2+(0-0)^2+(0-0)^2+(0-0)^2+(1-0)^2+(0-1)^2 + (0-0)^2} =(00)2+(00)2+(00)2+(00)2+(00)2+(10)2+(01)2+(00)2
    = 2 = \sqrt{2} =2
    请添加图片描述
  • 从语义的角度来说,理应“清华大学”与“清华园”的距离应该小于“美丽的”与“清华园”的距离才比较合理。

4. 词的分布式表示

  • 为了解决独热编码存在的不足,研究者提出了“稠密”向量表示方法,还是用向量表示一个词,但是不再是一个向量只有一位为1,其余为0了,而是向量的每一位都有具体的数值,这些数值“联合起来”表示一个词。由于“动用”了向量的每一位表示一个词,所以向量长度也没有必要和词表一样长,一般长度只需要几百位就可以了。而且还可以利用向量间的距离求解两个词的语义相似性。

请添加图片描述

  • 这种稠密表示方法一般是通过训练得到的。
    请添加图片描述
    请添加图片描述
  • 得先从神经网络语言模型开始讲起。

5. 语言模型

请添加图片描述
请添加图片描述
请添加图片描述

6. 神经网络语言模型

  • 简单地说,当给定了一句话的前n-1个词后,预测第n个词是什么词的概率,这样的一个预测模型称为语言模型。比如给定了前4个词是“清华大学”、“计算机”、“科学”、“与”,那么第5个词可能是什么词呢?第5个词是“技术”的可能性比较大,因为这句话很可能是说“清华大学计算机科学与技术”。第5个词是“工程”的可能性也不小,因为“清华大学计算机科学与工程”也比较通顺。但是如果是“清华大学计算机科学与白菜”,虽然从语法层面这句话也没有啥问题,但是很少出现将“计算机科学”和“白菜”并列的情况,所以第5个词是“白菜”的概率就非常小了。语言模型就是用来评价一句话是否像“人话”,如果像“人话”则概率大,否则就概率小,甚至为0。如果语言模型是用神经网络实现的,则称为神经网络语言模型。

请添加图片描述

  • 这里说的前n-1个词不一定是从一句话的开始计算,从一句话的任意一个位置开始都是可以的,总之当前词前面的n-1个词就可以,而不管当前词具体在哪个位置。如果前面不足n-1个词,则有几个算几个。比如当前词在第t个位置,则其前面n-1个词为 w t − n + 1 w t − n + 2 ⋯ w t − 2 w t − 1 w_{t-n+1}w_{t-n+2}\cdots w_{t-2} w_{t-1} wtn+1wtn+2wt2wt1 ,这n-1个词称作 w t {w_t} wt 的“上下文”,用 c o n t e x t ( w t ) context(w_t) context(wt) 表示,其中 w i w_i wi 表示词,n被称作窗口的大小,表示只考虑窗口内的n个词。
    请添加图片描述

  • 下图给出了一个最常见的用全连接神经网络实现的神经网络语言模型示意图。
    请添加图片描述

  • 图示的语言模型就是一个全连接神经网络,与普通的全连接网络不同的是,输入层分成了(n-1)组,每组m个输入,共(n-1)m个输入。每组输入共m个数值组成一个向量,对应 w t w_t wt 的上下文的一个词,该向量用 C ( w t − l ) ( l = 1 , 2 , . . . , n − 1 ) C(w_{t-l})(l=1,2,...,n-1) C(wtl)(l=1,2,...,n1) 表示。所有的 C ( w t − l ) C(w_{t-l}) C(wtl) 拼接在一起组成一个长度为(n-1)m的向量,用 x = [ x 1 , x 2 , . . . , x ( n − 1 ) m ] x=[x_1,x_2, ..., x_{(n-1)m}] x=[x1,x2,...,x(n1)m] 表示。如果不考虑分组的话,与普通全连接神经网络的输入层是一样的,也就是x是输入。

  • 为什么要对输入分组呢?

    • 每一组输入组成的向量对应当前上下文的一个词,当上下文发生变化时,要通过查表的办法将组成上下文的词对应的向量取出来,放到神经网络输入层的相应位置。为此在构建神经网络语言模型时,首先要确定一个词表,这个词表通常很大,要包含所有可能出现的词,通常有几十万个词。每个词对应一个长度为m的向量,并在词和向量之间建立某种联系,以便需要时可以方便地取出来。
  • 长度为m的向量如何得到暂时不着急,现在只需知道一个词对应一个向量就可以了,后面再说如何得到这个向量。

  • 接下来看图的隐含层,这一层没啥特殊性,就是普通的隐含层,共H个神经元,每个神经元都与输入层的神经元有连接,权重为 u h , j u_{h,j} uh,j ,表示输入层第j个输入到隐含层第h个神经元的连接权重。隐含层的每个神经元连接一个双曲正切激活函数(tanh)作为该神经元的输出。隐含层所有神经元的输出组成向量 z = z 1 , z 2 , . . . , z H z = z_1,z_2,...,z_H z=z1,z2,...,zH ,第h个神经元的输出用公式表示如下:
    z h = t a n h ( u h , 1 x 1 + u h , 2 x 2 + ⋯ + u h , ( n − 1 ) m x ( n − 1 ) m + p h ) z_h = tanh(u_{h,1}x_1 + u_{h,2}x_2 + \cdots + u_{h,(n-1)m}x_{(n-1)m} + p_h) zh=tanh(uh,1x1+uh,2x2++uh,(n1)mx(n1)m+ph)

  • 其中 p h p_h ph 为第h个神经元的偏置。

  • 输出层神经元的个数与词表的大小一致,一个神经元对应一个词,神经元连接softmax激活函数得到输出结果,每个神经元的输出值表示在当前上下文下, 为该神经元对应的词时的概率。例如:假定输出层的第3个神经元对应“技术”一词,第5个神经元对应“工程”一词,当上下文为“清华大学 计算机 科学 与”时,则输出层第3个神经元的输出值就表示“清华大学 计算机 科学 与”之后连接“技术”一词的概率,而第5个神经元的输出值表示“清华大学 计算机 科学 与”之后连接“工程”一词的概率。

  • 从隐含层到输出层也是全连接,每个输出层的神经元都与隐含层的神经元有连接,权重为 v k , h v_{k,h} vk,h ,表示隐含层第h个神经元到输出层第k个神经元的连接权重。为了在输出层得到一个概率输出,最后加一个softmax激活函数。假设输出层所有神经元在连接激活函数前的输出组成向量 y = y 1 , y 2 , ⋯   , y K y = y_1,y_2,\cdots, y_K y=y1,y2,,yK ,其中K为词表长度,则第k个神经元的输出用公式表示如下:
    y k = v k , 1 z 1 + v k , 2 z 2 + ⋯ + v k , H z H + q k y_k = v_{k,1}z_1 + v_{k,2}z_2 + \cdots + v_{k,H}z_H + q_k yk=vk,1z1+vk,2z2++vk,HzH+qk

  • 其中 q k q_k qk 为输出层第k个神经元的偏置。

  • 加上softmax激活函数后,输出层第k个神经元的输出为:
    p ( w = k ∣ c o n t e x t ( w ) ) = e y k ∑ i = 1 K e y i p(w=k | context(w)) = \frac{e^{y_k}}{\sum_{i=1}^Ke^{y_i}} p(w=kcontext(w))=i=1Keyieyk

  • 表示的是输出层第k个神经元所对应的单词w出现在当前上下文后面的概率。

  • 如何确定输出层哪个神经元对应哪个词呢?

    • 这个是人为事先规定好的,哪个神经元对应哪个词并不重要,只要事先规定好一个神经元对应唯一的词就可以了。
  • 那么这个神经网络语言模型如何训练呢?

7. 如何训练神经网络语言模型?

7.1 训练样本
  • 为了训练这个模型,需要有训练样本,对于语言模型来说,样本就是一个含有n个词的词串,前n-1个词就是上下文,第n个词相当于标记。我们可以收集大量的文本构成训练语料库,库中任意一个长度为n的连续词串就构成了训练样本。比如语料库中有语句“清华 大学 计算机 科学 与 技术 系”,假定窗口大小为5,则“清华 大学 计算机 科学 与”、“大学 计算机 科学 与 技术”、“计算机 科学 与 技术 系”都是训练样本。

请添加图片描述

7.2 损失函数
  • 有了训练样本后,还需要定义一个损失函数。我们先看一个例子。假定语料库就三句话:“计算机 科学”、“计算机 科学”,“计算机 工程”,窗口大小为2,我们希望通过该语料库估计出两个概率值:p(科学|计算机)和p(工程|计算机),分别表示当前一个词为“计算机”时,后一个词为“科学”的概率和后一个词为“工程”的概率。这两个概率分别取多少才是合理的呢?语料库中的三句话可以看成是3个样本,我们假定这3个样本的出现是独立的,所以他们的联合概率可以用各自出现概率的乘积表示,即:
    p ( “计算机科学”,“计算机科学”,“计算机工程” ) p(“计算机科学”,“计算机科学”,“计算机工程”) p(计算机科学计算机科学计算机工程)
    = p ( 科学 ∣ 计算机) ⋅ p ( 科学 ∣ 计算机 ) ⋅ p ( 工程 ∣ 计算机 ) = p(科学 | 计算机) \cdot p(科学|计算机) \cdot p(工程|计算机) =p(科学计算机)p(科学计算机)p(工程计算机)
    = p ( 科学 ∣ 计算机 ) 2 ⋅ p ( 工程 ∣ 计算机 ) = p(科学 | 计算机)^2 \cdot p(工程|计算机) =p(科学计算机)2p(工程计算机)

请添加图片描述

  • 由于这个例子中“计算机”后面出现的词只有“科学”和“工程”两种可能,所以在“计算机”后面出现“科学”或者“工程”的概率和应该等于1,即:
    p ( 科学 ∣ 计算机 ) + p ( 工程 ∣ 计算机 ) = 1 p(科学 | 计算机) + p(工程|计算机) = 1 p(科学计算机)+p(工程计算机)=1
  • 所以有:
    p ( “计算机科学”,“计算机科学”,“计算机工程”) p(“计算机科学”,“计算机科学”,“计算机工程”) p(计算机科学计算机科学计算机工程
    = p ( 科学 ∣ 计算机 ) 2 ( 1 − p ( 科学 ∣ 计算机 ) ) = p(科学 | 计算机)^2(1-p(科学|计算机)) =p(科学计算机)2(1p(科学计算机))
    请添加图片描述
  • 对于不同的概率取值,p(“计算机 科学”,“计算机 科学”,“计算机 工程”)的值是不同的,比如当p(科学│计算机)=0.5时:
    p ( “计算机科学”,“计算机科学”,“计算机工程”) p(“计算机科学”,“计算机科学”,“计算机工程”) p(计算机科学计算机科学计算机工程
    = 0. 5 2 ⋅ ( 1 − 0.5 ) = 0.125 = 0.5^2 \cdot (1-0.5) = 0.125 =0.52(10.5)=0.125
  • 而当p(科学│计算机)=0.6时:
    p ( “计算机科学”,“计算机科学”,“计算机工程”) p(“计算机科学”,“计算机科学”,“计算机工程”) p(计算机科学计算机科学计算机工程
    = 0. 6 2 ⋅ ( 1 − 0.6 ) = 0.144 = 0.6^2 \cdot (1-0.6) = 0.144 =0.62(10.6)=0.144
7.3 合理概率
  • 概率取多大才应该是合理的呢?
    • 目前我们只有语料库提供的三句话,所以只能以这三句话为依据进行估计,既然这三个样本同时出现了,那么我们就应该接受这个事实,让他们的联合概率最大,所以估计概率的原则就是当p(科学│计算机)取值多少时,能使他们的联合概率最大。
    • 求最大值只需要令联合概率的导数等于0,就可以求解了。

p ( “计算机科学”,“计算机科学”,“计算机工程”)的导数 p(“计算机科学”,“计算机科学”,“计算机工程”)的导数 p(计算机科学计算机科学计算机工程)的导数
= p ( 科学 ∣ 计算机 ) 2 ( 1 − p ( 科学 ∣ 计算机 ) ) 的导数 = p(科学 | 计算机)^2(1-p(科学|计算机)) 的导数 =p(科学计算机)2(1p(科学计算机))的导数
= 2 p ( 科学 ∣ 计算机 ) 3 p ( ( 科学 ∣ 计算机 ) ) 2 = 2p(科学 | 计算机)3p((科学|计算机))^2 =2p(科学计算机)3p((科学计算机))2
令 2 p ( 科学 ∣ 计算机 ) 3 p ( ( 科学 ∣ 计算机 ) ) 2 = 0 ,有 令 2p(科学 | 计算机)3p((科学|计算机))^2 = 0,有 2p(科学计算机)3p((科学计算机))2=0,有
2 − 3 p ( 科学 ∣ 计算机 ) = 0 2-3p(科学 | 计算机) = 0 23p(科学计算机)=0

  • 所以:
    p ( 科学 ∣ 计算机 ) = 2 3 p(科学 | 计算机) = \frac{2}{3} p(科学计算机)=32
  • 由于:
    p ( 科学 ∣ 计算机 ) + p ( 工程 ∣ 计算机 ) = 1 p(科学 | 计算机) + p(工程|计算机) = 1 p(科学计算机)+p(工程计算机)=1
  • 所以:
    p ( 工程 ∣ 计算机 ) = 1 3 p(工程 | 计算机) = \frac{1}{3} p(工程计算机)=31
  • 这个结果是不是与我们直观想象的结果也是一致
    请添加图片描述
7.4 最大似然估计
  • 通过让联合概率最大化估计概率的方法称作最大似然估计。但是一般来说并不是直接估计概率值,因为一般来说联合概率分布是一个含有参数的函数,而是通过最大似然方法估计该联合概率分布的参数。对于神经网络语言模型来说,概率是用神经网络表示的,所以就是估计神经网络的参数。根据我们前面介绍过的神经网络语言模型(见下图),对于语料库中的任何一个词w,我们假定窗口大小为n,依据w在语料库中的位置,会有一个w的上下文context(w),也就是w的前n-1个词,以context(w)作为神经网络语言模型的输入,在输出层词w所对应的位置k会得到一个输出值,该值表示的是在给定的上下文下,下一个词是w的概率。依据最大似然估计方法,我们希望在该语料库上,所有词在给定上下文环境下的概率乘积最大。即:
    m a x θ Π w ϵ C p ( w = k ∣ c o n t e x t ( w ) , θ ) \underset {\theta}{max} \underset {w\epsilon C}\Pi p(w=k|context(w), \theta) θmaxwϵCΠp(w=kcontext(w),θ)

请添加图片描述

  • 其中 θ \theta θ 表示神经网络的所有参数,C表示语料库,符号“ Π \Pi Π ”表示连乘的意思。式子 Π w ϵ C p ( w = k ∣ c o n t e x t ( w ) , θ ) \underset {w\epsilon C}\Pi p(w=k|context(w), \theta) wϵCΠp(w=kcontext(w),θ) 称为似然函数。所以,我们的目标就是训练神经网络语言模型,确定参数 θ \theta θ ,使得似然函数在给定的训练集上最大。

  • 训练神经网络一般是用BP算法求损失函数最小,这里是要求最大,所以需要通过一个变换就可以将最大化问题转化为最小化问题。为了计算方便,我们首先通过对似然函数做对数运算,将连乘变换为连加,因为经过对数运算后,原来的连乘就变换为连加了。

m a x θ Π w ϵ C p ( w = k ∣ c o n t e x t ( w ) , θ ) \underset {\theta}{max} \underset {w\epsilon C}\Pi p(w=k|context(w), \theta) θmaxwϵCΠp(w=kcontext(w),θ)

  • 取对数后为:
    m a x θ l o g Π w ϵ C p ( w = k ∣ c o n t e x t ( w ) , θ ) \underset {\theta}{max}log \underset {w\epsilon C}\Pi p(w=k|context(w), \theta) θmaxlogwϵCΠp(w=kcontext(w),θ)
    = m a x θ ∑ w ϵ C l o g p ( w = k ∣ c o n t e x t ( w ) , θ ) = \underset {\theta}{max} \underset {w\epsilon C}\sum logp(w=k|context(w), \theta) =θmaxwϵClogp(w=kcontext(w),θ)
  • 如果我们在上式前面增加一个“负号”,原来的最大化就可以变成最小化问题了:
    m i n θ ( − ∑ w ϵ C l o g p ( w = k ∣ c o n t e x t ( w ) , θ ) ) \underset {\theta}{min} (-\underset {w\epsilon C}\sum logp(w=k|context(w), \theta)) θmin(wϵClogp(w=kcontext(w),θ))

请添加图片描述

  • 这样我们就可以用下式作为损失函数,然后用BP算法求解。
    L ( θ ) = − ∑ w ϵ C l o g p ( w = k ∣ c o n t e x t ( w ) , θ ) L(\theta) = - \underset{w\epsilon C}\sum logp(w=k|context(w), \theta) L(θ)=wϵClogp(w=kcontext(w),θ)
  • 其中 − ∑ w ϵ C l o g p ( w = k ∣ c o n t e x t ( w ) , θ ) - \underset{w\epsilon C}\sum logp(w=k|context(w), \theta) wϵClogp(w=kcontext(w),θ) 称为负对数似然函数。
  • 这样一来,这个神经网络语言模型就跟普通的全连接神经网络没有任何区别了。

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

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

相关文章

VB6.0开发文件管理小数据库-基于ACCESS

今天的客户也是小客户,需要对文件的一些操作记录在数据库里面,这里采用的数据库ACCCESS,用的是VB自带的可视化数据管理器创建的mdb数据库文件。实现了数据的增删改查。简单方便。基本可以用这套代码模板实现大部分的数据库功能了。想研发或学…

自定义ElementPlus主题颜色

构建工具采用Vite CSS预处理器采用Sass 一.准备定制化的样式文件 1.安装Sass npm i sass -D 2.创建好文件目录 3.书写样式 ElementPlus默认样式. //index.scss/* 只需要重写你需要的即可 */ forward element-plus/theme-chalk/src/common/var.scss with ($colors: (prim…

腾讯云秒杀活动是什么?如何参与?

腾讯云是国内知名的云计算服务提供商之一,为了吸引更多的用户,腾讯云会不定期地推出各种各样的优惠活动,其中最受大家欢迎的就是“腾讯云秒杀活动”。本文将为大家详细介绍腾讯云秒杀活动参与方式以及购买攻略。 一、腾讯云秒杀活动是什么&am…

【操作系统】处理机调度的基本概念和三个层次、进程调度的时机和方式、调度器、闲逛线程

🐌个人主页: 🐌 叶落闲庭 💨我的专栏:💨 c语言 数据结构 javaEE 操作系统 Redis 石可破也,而不可夺坚;丹可磨也,而不可夺赤。 操作系统 一、处理机调度基本概念二、处理机…

【论文阅读】UniDiffuser: Transformer+Diffusion 用于图、文互相推理

而多模态大模型将能够打通各种模态能力,实现任意模态之间转化,被认为是通用式生成模型的未来发展方向。 最近看到不少多模态大模型的工作,有医学、金融混合,还有CV&NLP。 今天介绍: One Transformer Fits All Di…

七、装饰者模式

这里写自定义目录标题 1、项目需求2、解决方案13、解决方案24、装饰者模式定义5、装饰者模式原理6、装饰者模式解决上述需求7、装饰者模式在jdk应用的源码分析 1、项目需求 2、解决方案1 3、解决方案2 可以控制类的数量,不至于造成很多的类在增加或者删除调料种类…

100万级连接,石墨文档WebSocket网关如何架构?

说在前面 在40岁老架构师 尼恩的读者交流群(50)中,很多小伙伴拿到一线互联网企业如阿里、网易、有赞、希音、百度、滴滴的面试资格。 最近,尼恩指导一个小伙伴简历,写了一个《高并发网关项目》,此项目帮这个小伙拿到 字节/阿里/…

自学WEB后端05-Node.js后端服务链接数据库redis

嘿,亲爱的小伙伴们!😄 今天我要给大家分享一个超级方便且高效的 NoSQL 类型数据库——Redis!💡 它可不是一般的关系型数据库哦,而是以键值对形式存储数据的内存数据库。📚 快跟着我一起来学习如…

GEO生信数据挖掘(一)数据集下载和初步观察

检索到目标数据集后,开始数据挖掘,本文以阿尔兹海默症数据集GSE1297为例 目录 GEOquery 简介 安装并加载GEOquery包 getGEO函数获取数据(联网下载) 更换下载数据源 对数据集进行初步观察处理 GEOquery 简介 GEOquery是一个…

基于springboot+vue的旅游系统(前后端分离)

博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容:毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 项目介绍…

如何看待程序员这个职业?

程序员作为高薪职业,主要是指从事程序开发、程序维护的专业人员。一般将程序员分为程序设计人员和程序编码人员,但两者的界限并不非常清楚,特别是在中国。软件从业人员分为初级程序员、中级程序员、高级程序员(现为软件设计师&…

基于体系结构-架构真题2022(四十一)

给定关系模式R(U,F),其中U为属性集,F是U上的一组函数依赖,那么函数依赖的公理系统中分解规则是指()为F所蕴含。 解析: 伪传递是x到y,wy到z,则xw到z 传递是z…

【性能测试】jmeter连接数据库jdbc

一、下载第三方工具包驱动数据库   1. 因为JMeter本身没有提供链接数据库的功能,所以我们需要借助第三方的工具包来实现。 (有这个jar包之后,jmeter可以发起jdbc请求,没有这个jar包,也有jdbc取样器,但不能…

服务断路器_Resilience4j信号量隔离实现

POM引入依赖 <dependency><groupId>io.github.resilience4j</groupId><artifactId>resilience4j-bulkhead</artifactId><version>1.7.0</version> </dependency>信号量隔离修改YML文件 resilience4j:#信号量隔离bulkhead:ins…

【数据结构】八大排序算法-代码实现+复杂度分析+稳定性分析+总结

文章目录 关于稳定性插入排序直接插入排序希尔排序 选择排序直接选择排序堆排序 交换排序冒泡排序快速排序hoare版本挖坑法两路划分 快排致命点三路划分小区间优化 快排非递归 归并排序非递归版本 计数排序-鸽巢原理绝对映射相对映射 插入排序和选择排序的对比总结 关于稳定性 …

UNITY—2D游戏制作入门!

Unity作为当今最流行的游戏引擎之一&#xff0c;受到各大厂商的喜爱。 像是炉石传说&#xff0c;以及逃离塔克夫&#xff0c;都是由unity引擎开发制作。 作为初学者的我们&#xff0c;虽然无法直接做出完成度那么高的作品&#xff0c;但每一个伟大的目标&#xff0c;都有一个…

机柜PDU产品采购与安装指南——TOWE精选

机柜PDU指的是Power Distribution Unit&#xff0c;即电源分配单元。它是一种电子设备&#xff0c;通常用于为数据中心、服务器机房等设施中的计算机和其他设备提供电力&#xff0c;是各行业数据中心“标配”构成部分&#xff0c;以确保服务器等用电设备的安全和稳定运行。 数据…

Android的GNSS功能,搜索卫星数量、并获取每颗卫星的信噪比

一、信噪比概念 信噪比&#xff0c;英文名称叫做SNR或S/N&#xff08;SIGNAL-NOISE RATIO)&#xff0c;又称为讯噪比。是指一个电子设备或者电子系统中信号与噪声的比例。 信噪比越大&#xff0c;此颗卫星越有效&#xff08;也就是说可以定位&#xff09;。也就是说&#xff0…

2023最新最详细软件测试技术面试题【含答案】

【软件测试面试突击班】如何逼自己一周刷完软件测试八股文教程&#xff0c;刷完面试就稳了&#xff0c;你也可以当高薪软件测试工程师&#xff08;自动化测试&#xff09; 有这样一个面试题&#xff1a;在一个Web测试页面上&#xff0c;有一个输入框&#xff0c;一个计数器&…

【考研数学】概率论与数理统计 —— 第三章 | 二维随机变量及其分布(3,二维随机变量函数的分布)

文章目录 七、二维随机变量函数的分布7.1 二维随机变量函数分布的基本情形 ( X , Y ) (X,Y) (X,Y) 为二维离散型随机变量 ( X , Y ) (X,Y) (X,Y) 为二维连续型随机变量 X X X 为离散型变量&#xff0c; Y Y Y 为连续型变量 7.2 常见二维随机变量的函数及其分布 Z min ⁡ { X ,…