From a38d126be1be8f1613a4ccadb02f4645e199fd2a Mon Sep 17 00:00:00 2001 From: Discrete-Mathematics <150026417+Discrete-Mathematics@users.noreply.github.com> Date: Fri, 20 Jun 2025 20:22:16 +0800 Subject: [PATCH 01/25] Update README.md --- Deep Learning/11. CNN/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Deep Learning/11. CNN/README.md b/Deep Learning/11. CNN/README.md index 00f1c64..63057aa 100644 --- a/Deep Learning/11. CNN/README.md +++ b/Deep Learning/11. CNN/README.md @@ -44,7 +44,7 @@ - **AlexNet**:训练集中100万张图片,对每个像素点求均值,得到均值图像,当训练时用原图减去均值图像。 - **VGG**:对所有输入在三个颜色通道R/G/B上取均值,只会得到3个值,当训练时减去对应的颜色通道均值。(**此种方法效率高**) - **TIPS:**在训练集和测试集上减去训练集的均值。 + **TIPS:** 在训练集和测试集上减去训练集的均值。 2. 归一化 @@ -178,7 +178,7 @@ ### 3.1 图像识别与定位 -1. **classification:**C个类别识别 +1. **classification:** C个类别识别 - **input**:Image - **Output**:类别标签 From 1e2fd4a2c873f388a83010eaea1831b44d2d8157 Mon Sep 17 00:00:00 2001 From: Discrete-Mathematics <150026417+Discrete-Mathematics@users.noreply.github.com> Date: Fri, 20 Jun 2025 20:24:27 +0800 Subject: [PATCH 02/25] Update README.md --- Deep Learning/12. RNN/README.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Deep Learning/12. RNN/README.md b/Deep Learning/12. RNN/README.md index d77e747..58a51ef 100644 --- a/Deep Learning/12. RNN/README.md +++ b/Deep Learning/12. RNN/README.md @@ -92,17 +92,17 @@ ## 2. 其它类型的RNN -- **One to one:**这个可能没有那么重要,这就是一个小型的标准的神经网络,输入𝑥然后得到输出𝑦。 +- **One to one:** 这个可能没有那么重要,这就是一个小型的标准的神经网络,输入𝑥然后得到输出𝑦。 -- **One to many:**音乐生成,你的目标是使用一个神经网络输出一些音符。对应于一段音乐,输入𝑥 +- **One to many:** 音乐生成,你的目标是使用一个神经网络输出一些音符。对应于一段音乐,输入𝑥 可以是一个整数,表示你想要的音乐类型或者是你想要的音乐的第一个音符,并且如果你什么都不想输入,𝑥可以是空的输入,可设为 0 向量。 -- **Many to one:**句子分类问题,输入文档,输出文档的类型。 +- **Many to one:** 句子分类问题,输入文档,输出文档的类型。 -- **Many to many():**命名实体识别。 +- **Many to many():** 命名实体识别。 -- **Many to many():**机器翻译。 +- **Many to many():** 机器翻译。 ![image](https://wx1.sinaimg.cn/large/00630Defly1g2xq26dpz1j30go09341y.jpg) From e728720d6557960d3c7beb9511617f6f3d646d5e Mon Sep 17 00:00:00 2001 From: Discrete-Mathematics <150026417+Discrete-Mathematics@users.noreply.github.com> Date: Fri, 20 Jun 2025 20:25:41 +0800 Subject: [PATCH 03/25] Update README.md --- Deep Learning/12.1 GRU/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Deep Learning/12.1 GRU/README.md b/Deep Learning/12.1 GRU/README.md index 8178bf4..17771a6 100644 --- a/Deep Learning/12.1 GRU/README.md +++ b/Deep Learning/12.1 GRU/README.md @@ -17,7 +17,7 @@ ### 2.1 重置门和更新门 -GRU它引⼊了**重置⻔(reset gate)和更新⻔(update gate)**的概念,从而修改了循环神经⽹络中隐藏状态的计算⽅式。 +GRU它引⼊了**重置⻔(reset gate)和更新⻔(update gate)** 的概念,从而修改了循环神经⽹络中隐藏状态的计算⽅式。 门控循环单元中的重置⻔和更新⻔的输⼊均为当前时间步输⼊ ![](https://latex.codecogs.com/gif.latex?X_t)与上⼀时间步隐藏状态![](https://latex.codecogs.com/gif.latex?H_{t-1}),输出由激活函数为sigmoid函数的全连接层计算得到。 如下图所示: @@ -49,7 +49,7 @@ sigmoid函数可以将元素的值变换到0和1之间。因此,重置⻔ ![]( ![](https://gitee.com/kkweishe/images/raw/master/ML/2019-8-16_13-58-58.png) -值得注意的是,**更新⻔可以控制隐藏状态应该如何被包含当前时间步信息的候选隐藏状态所更新,**如上图所⽰。假设更新⻔在时间步![](https://gitee.com/kkweishe/images/raw/master/ML/2019-8-16_15-26-24.png)之间⼀直近似1。那么,在时间步![](https://gitee.com/kkweishe/images/raw/master/ML/2019-8-16_15-27-55.png)间的输⼊信息⼏乎没有流⼊时间步 t 的隐藏状态 ![](https://latex.codecogs.com/gif.latex?H_t)实际上,这可以看作是较早时刻的隐藏状态 ![](https://latex.codecogs.com/gif.latex?H_{t^{′}-1})直通过时间保存并传递⾄当前时间步 t。这个设计可以应对循环神经⽹络中的梯度衰减问题,并更好地捕捉时间序列中时间步距离较⼤的依赖关系。 +值得注意的是,**更新⻔可以控制隐藏状态应该如何被包含当前时间步信息的候选隐藏状态所更新,** 如上图所⽰。假设更新⻔在时间步![](https://gitee.com/kkweishe/images/raw/master/ML/2019-8-16_15-26-24.png)之间⼀直近似1。那么,在时间步![](https://gitee.com/kkweishe/images/raw/master/ML/2019-8-16_15-27-55.png)间的输⼊信息⼏乎没有流⼊时间步 t 的隐藏状态 ![](https://latex.codecogs.com/gif.latex?H_t)实际上,这可以看作是较早时刻的隐藏状态 ![](https://latex.codecogs.com/gif.latex?H_{t^{′}-1})直通过时间保存并传递⾄当前时间步 t。这个设计可以应对循环神经⽹络中的梯度衰减问题,并更好地捕捉时间序列中时间步距离较⼤的依赖关系。 我们对⻔控循环单元的设计稍作总结: From 1d0abdcedf9d01f784383cec9e0f69f3936ac996 Mon Sep 17 00:00:00 2001 From: Discrete-Mathematics <150026417+Discrete-Mathematics@users.noreply.github.com> Date: Fri, 20 Jun 2025 20:27:07 +0800 Subject: [PATCH 04/25] Update README.md --- Deep Learning/12.1 GRU/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Deep Learning/12.1 GRU/README.md b/Deep Learning/12.1 GRU/README.md index 17771a6..6a0b4ee 100644 --- a/Deep Learning/12.1 GRU/README.md +++ b/Deep Learning/12.1 GRU/README.md @@ -11,7 +11,7 @@ 在循环神经⽹络中的梯度计算⽅法中,我们发现,当时间步数较⼤或者时间步较小时,**循环神经⽹络的梯度较容易出现衰减或爆炸。虽然裁剪梯度可以应对梯度爆炸,但⽆法解决梯度衰减的问题。**通常由于这个原因,循环神经⽹络在实际中较难捕捉时间序列中时间步距离较⼤的依赖关系。 -**门控循环神经⽹络(gated recurrent neural network)的提出,正是为了更好地捕捉时间序列中时间步距离较⼤的依赖关系。**它通过可以学习的⻔来控制信息的流动。其中,门控循环单元(gatedrecurrent unit,GRU)是⼀种常⽤的门控循环神经⽹络。 +**门控循环神经⽹络(gated recurrent neural network)的提出,正是为了更好地捕捉时间序列中时间步距离较⼤的依赖关系。** 它通过可以学习的⻔来控制信息的流动。其中,门控循环单元(gatedrecurrent unit,GRU)是⼀种常⽤的门控循环神经⽹络。 ## 2. ⻔控循环单元 From a9e8f16734d5d13815efe3ba287fac674de6210b Mon Sep 17 00:00:00 2001 From: Discrete-Mathematics <150026417+Discrete-Mathematics@users.noreply.github.com> Date: Fri, 20 Jun 2025 20:27:48 +0800 Subject: [PATCH 05/25] Update README.md --- Deep Learning/12.2 LSTM/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Deep Learning/12.2 LSTM/README.md b/Deep Learning/12.2 LSTM/README.md index 43e642c..56cd32d 100644 --- a/Deep Learning/12.2 LSTM/README.md +++ b/Deep Learning/12.2 LSTM/README.md @@ -13,7 +13,7 @@ 在你阅读这篇文章时候,你都是基于自己已经拥有的对先前所见词的理解来推断当前词的真实含义。我们不会将所有的东西都全部丢弃,然后用空白的大脑进行思考。我们的思想拥有持久性。LSTM就是具备了这一特性。 -这篇将介绍另⼀种常⽤的⻔控循环神经⽹络:**⻓短期记忆(long short-term memory,LSTM)[1]。**它⽐⻔控循环单元的结构稍微复杂⼀点,也是为了解决在RNN网络中梯度衰减的问题,是GRU的一种扩展。 +这篇将介绍另⼀种常⽤的⻔控循环神经⽹络:**⻓短期记忆(long short-term memory,LSTM)[1]。** 它⽐⻔控循环单元的结构稍微复杂⼀点,也是为了解决在RNN网络中梯度衰减的问题,是GRU的一种扩展。 可以先理解GRU的过程,在来理解LSTM会容易许多,链接地址:[三步理解--门控循环单元(GRU)](https://blog.csdn.net/weixin_41510260/article/details/99679481) From 3435e9abf90d908bd138a1788b9dae936c0bca2f Mon Sep 17 00:00:00 2001 From: Discrete-Mathematics <150026417+Discrete-Mathematics@users.noreply.github.com> Date: Fri, 20 Jun 2025 20:30:53 +0800 Subject: [PATCH 06/25] Update README.md --- Deep Learning/14. Reinforcement Learning/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Deep Learning/14. Reinforcement Learning/README.md b/Deep Learning/14. Reinforcement Learning/README.md index d9f508b..bd4d85d 100644 --- a/Deep Learning/14. Reinforcement Learning/README.md +++ b/Deep Learning/14. Reinforcement Learning/README.md @@ -76,7 +76,7 @@ Rt 可以用 Rt+1 来表示,写成递推式: **这就是注明的贝尔曼公式。**贝尔曼公式实际非常合理。对于某个状态来讲,最大化未来奖励相当于 最大化即刻奖励与下一状态最大未来奖励之和。 -**Q-learning的核心思想是:**我们能够通过贝尔曼公式迭代地近似Q-函数。 +**Q-learning的核心思想是:** 我们能够通过贝尔曼公式迭代地近似Q-函数。 ### 2.3 Deep Q Learning(DQN) From 0d81a7a9a2f1160c666088252fb994cb7ba1135e Mon Sep 17 00:00:00 2001 From: Discrete-Mathematics <150026417+Discrete-Mathematics@users.noreply.github.com> Date: Fri, 20 Jun 2025 20:32:55 +0800 Subject: [PATCH 07/25] Update README.md --- Deep Learning/15. DL Optimizer/README.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Deep Learning/15. DL Optimizer/README.md b/Deep Learning/15. DL Optimizer/README.md index 3e78bf4..3d0a67c 100644 --- a/Deep Learning/15. DL Optimizer/README.md +++ b/Deep Learning/15. DL Optimizer/README.md @@ -28,8 +28,8 @@ 因为存在着训练误差和泛化误差: -- **训练误差:**模型在训练数据集上表现出的误差。 -- **泛化误差:**模型在任意⼀个测试数据样本上表现出的误差的期望,并常常通过测试数据集上的误差来近似。 +- **训练误差:** 模型在训练数据集上表现出的误差。 +- **泛化误差:** 模型在任意⼀个测试数据样本上表现出的误差的期望,并常常通过测试数据集上的误差来近似。 训练误差的期望小于或等于泛化误差。也就是说,⼀般情况下,由训练数据集学到的模型参数会使模型在训练数据集上的表现优于或等于在测试数据集上的表现。**由于⽆法从训练误差估计泛化误差,⼀味地降低训练误差并不意味着泛化误差⼀定会降低。** @@ -51,8 +51,8 @@ ## 3. ⽋拟合和过拟合 -- **欠拟合:**模型⽆法得到较低的训练误差。 -- **过拟合:**是模型的训练误差远小于它在测试数据集上的误差。 +- **欠拟合:** 模型⽆法得到较低的训练误差。 +- **过拟合:** 是模型的训练误差远小于它在测试数据集上的误差。 给定训练数据集, @@ -295,7 +295,7 @@ Adam算法使⽤了动量变量vt和RMSProp算法中小批量随机梯度按元 ## 10. 有哪些改善模型的思路 -1. **数据角度 ** +1. **数据角度** 增强数据集。无论是有监督还是无监督学习,数据永远是最重要的驱动力。更多的类型数据对良好的模型能带来更好的稳定性和对未知数据的可预见性。对模型来说,“看到过的总比没看到的更具有判别的信心”。 From 1ce5db4323c172d06331381252c4db6fbb437b1b Mon Sep 17 00:00:00 2001 From: Discrete-Mathematics <150026417+Discrete-Mathematics@users.noreply.github.com> Date: Fri, 20 Jun 2025 20:40:35 +0800 Subject: [PATCH 08/25] Update README.md --- Machine Learning/5.3 Topic Model/README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Machine Learning/5.3 Topic Model/README.md b/Machine Learning/5.3 Topic Model/README.md index b20d162..a5d9735 100644 --- a/Machine Learning/5.3 Topic Model/README.md +++ b/Machine Learning/5.3 Topic Model/README.md @@ -132,19 +132,19 @@ LDA可以分为以下5个步骤: 假定你一共有K个可选的主题,有V个可选的词,**咱们来玩一个扔骰子的游戏。** - **一、**假设你每写一篇文档会制作一颗K面的“文档-主题”骰子(扔此骰子能得到K个主题中的任意一个),和K个V面的“主题-词项” 骰子(每个骰子对应一个主题,K个骰子对应之前的K个主题,且骰子的每一面对应要选择的词项,V个面对应着V个可选的词)。 + **一、** 假设你每写一篇文档会制作一颗K面的“文档-主题”骰子(扔此骰子能得到K个主题中的任意一个),和K个V面的“主题-词项” 骰子(每个骰子对应一个主题,K个骰子对应之前的K个主题,且骰子的每一面对应要选择的词项,V个面对应着V个可选的词)。 比如可令K=3,即制作1个含有3个主题的“文档-主题”骰子,这3个主题可以是:教育、经济、交通。然后令V = 3,制作3个有着3面的“主题-词项”骰子,其中,教育主题骰子的3个面上的词可以是:大学、老师、课程,经济主题骰子的3个面上的词可以是:市场、企业、金融,交通主题骰子的3个面上的词可以是:高铁、汽车、飞机。 ![](https://julyedu-img.oss-cn-beijing.aliyuncs.com/quesbase64155351982937840324.png) - **二、**每写一个词,先扔该“文档-主题”骰子选择主题,得到主题的结果后,使用和主题结果对应的那颗“主题-词项”骰子,扔该骰子选择要写的词。 + **二、** 每写一个词,先扔该“文档-主题”骰子选择主题,得到主题的结果后,使用和主题结果对应的那颗“主题-词项”骰子,扔该骰子选择要写的词。 先扔“文档-主题”的骰子,假设(以一定的概率)得到的主题是教育,所以下一步便是扔教育主题筛子,(以一定的概率)得到教育主题筛子对应的某个词:大学。 上面这个投骰子产生词的过程简化下便是:**“先以一定的概率选取主题,再以一定的概率选取词”。** - **三、**最后,你不停的重复扔“文档-主题”骰子和”主题-词项“骰子,重复N次(产生N个词),完成一篇文档,重复这产生一篇文档的方法M次,则完成M篇文档。 + **三、** 最后,你不停的重复扔“文档-主题”骰子和”主题-词项“骰子,重复N次(产生N个词),完成一篇文档,重复这产生一篇文档的方法M次,则完成M篇文档。 **上述过程抽象出来即是PLSA的文档生成模型。在这个过程中,我们并未关注词和词之间的出现顺序,所以pLSA是一种词袋方法。生成文档的整个过程便是选定文档生成主题,确定主题生成词。** From 485ce7a92deded00f0725c8c96297595cba59b03 Mon Sep 17 00:00:00 2001 From: Discrete-Mathematics <150026417+Discrete-Mathematics@users.noreply.github.com> Date: Fri, 20 Jun 2025 21:06:11 +0800 Subject: [PATCH 09/25] Update README.md --- Machine Learning/7. Clustering/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Machine Learning/7. Clustering/README.md b/Machine Learning/7. Clustering/README.md index 8b1e625..e154575 100644 --- a/Machine Learning/7. Clustering/README.md +++ b/Machine Learning/7. Clustering/README.md @@ -118,7 +118,7 @@ k-means:在大数据的条件下,会耗费大量的时间和内存。 优化 通常我们并不能直接得到高斯混合模型的参数,而是观察到了一系列 数据点,给出一个类别的数量K后,希望求得最佳的K个高斯分模型。因此,高斯 混合模型的计算,便成了最佳的均值μ,方差Σ、权重π的寻找,这类问题通常通过 最大似然估计来求解。遗憾的是,此问题中直接使用最大似然估计,得到的是一 个复杂的非凸函数,目标函数是和的对数,难以展开和对其求偏导。 -**在这种情况下,可以用EM算法。 **EM算法是在最大化目标函数时,先固定一个变量使整体函数变为凸优化函数,求导得到最值,然后利用最优参数更新被固定的变量,进入下一个循环。具体到高 斯混合模型的求解,EM算法的迭代过程如下。 +**在这种情况下,可以用EM算法。** EM算法是在最大化目标函数时,先固定一个变量使整体函数变为凸优化函数,求导得到最值,然后利用最优参数更新被固定的变量,进入下一个循环。具体到高 斯混合模型的求解,EM算法的迭代过程如下。 首先,初始随机选择各参数的值。然后,重复下述两步,直到收敛。 From 22c738441146c7e5c6ca7494942ba6ca973b1881 Mon Sep 17 00:00:00 2001 From: Discrete-Mathematics <150026417+Discrete-Mathematics@users.noreply.github.com> Date: Fri, 20 Jun 2025 21:10:07 +0800 Subject: [PATCH 10/25] Update README.md --- .../README.md" | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git "a/Machine Learning/8. ML\347\211\271\345\276\201\345\267\245\347\250\213\345\222\214\344\274\230\345\214\226\346\226\271\346\263\225/README.md" "b/Machine Learning/8. ML\347\211\271\345\276\201\345\267\245\347\250\213\345\222\214\344\274\230\345\214\226\346\226\271\346\263\225/README.md" index 29619e3..7965f96 100644 --- "a/Machine Learning/8. ML\347\211\271\345\276\201\345\267\245\347\250\213\345\222\214\344\274\230\345\214\226\346\226\271\346\263\225/README.md" +++ "b/Machine Learning/8. ML\347\211\271\345\276\201\345\267\245\347\250\213\345\222\214\344\274\230\345\214\226\346\226\271\346\263\225/README.md" @@ -72,7 +72,7 @@ 独热编码通常用于处理类别间不具有大小关系的特征。例如血型,一共有4个 取值(A型血、B型血、AB型血、O型血),独热编码会把血型变成一个4维稀疏 向量,A型血表示为(1, 0, 0, 0),B型血表示为(0, 1, 0, 0),AB型表示为(0, 0, 1, 0),O型血表示为(0, 0, 0, 1)。对于类别取值较多的情况下使用独热编码。 -3. **二进制编码 ** +3. **二进制编码** 二进制编码主要分为两步,先用序号编码给每个类别赋予一个类别ID,然后 将类别ID对应的二进制编码作为结果。以A、B、AB、O血型为例,下图是二进制编码的过程。A型血的ID为1,二进制表示为001;B型血的ID为2,二进制表示为 010;以此类推可以得到AB型血和O型血的二进制表示。 @@ -486,7 +486,7 @@ T检验和F检验的由来:为了确定从样本中的统计结果推论到总 **KS检验与卡方检验** -**相同点:**都采用实际频数和期望频数只差进行检验 +**相同点:** 都采用实际频数和期望频数之差进行检验 **不同点:** From 223b169cbc8999944fa491d7d7db15194573c54f Mon Sep 17 00:00:00 2001 From: Discrete-Mathematics <150026417+Discrete-Mathematics@users.noreply.github.com> Date: Fri, 20 Jun 2025 21:12:35 +0800 Subject: [PATCH 11/25] Update README.md --- NLP/16. NLP/README.md | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/NLP/16. NLP/README.md b/NLP/16. NLP/README.md index 795e290..a1fc7ae 100644 --- a/NLP/16. NLP/README.md +++ b/NLP/16. NLP/README.md @@ -12,16 +12,16 @@ ## 2. NLP主要研究方向 -1. **信息抽取:**从给定文本中抽取重要的信息,比如时间、地点、人物、事件、原因、结果、数字、日期、货币、专有名词等等。通俗说来,就是要了解谁在什么时候、什么原因、对谁、做了什么事、有什么结果。 -2. **文本生成:**机器像人一样使用自然语言进行表达和写作。依据输入的不同,文本生成技术主要包括数据到文本生成和文本到文本生成。数据到文本生成是指将包含键值对的数据转化为自然语言文本;文本到文本生成对输入文本进行转化和处理从而产生新的文本。 -3. **问答系统:**对一个自然语言表达的问题,由问答系统给出一个精准的答案。需要对自然语言查询语句进行某种程度的语义分析,包括实体链接、关系识别,形成逻辑表达式,然后到知识库中查找可能的候选答案并通过一个排序机制找出最佳的答案。 -4. **对话系统:**系统通过一系列的对话,跟用户进行聊天、回答、完成某一项任务。涉及到用户意图理解、通用聊天引擎、问答引擎、对话管理等技术。此外,为了体现上下文相关,要具备多轮对话能力。 -5. **文本挖掘:**包括文本聚类、分类、情感分析以及对挖掘的信息和知识的可视化、交互式的表达界面。目前主流的技术都是基于统计机器学习的。 -6. **语音识别和生成:**语音识别是将输入计算机的语音符号识别转换成书面语表示。语音生成又称文语转换、语音合成,它是指将书面文本自动转换成对应的语音表征。 -7. **信息过滤:**通过计算机系统自动识别和过滤符合特定条件的文档信息。通常指网络有害信息的自动识别和过滤,主要用于信息安全和防护,网络内容管理等。 -8. **舆情分析:**是指收集和处理海量信息,自动化地对网络舆情进行分析,以实现及时应对网络舆情的目的。 -9. **信息检索:**对大规模的文档进行索引。可简单对文档中的词汇,赋之以不同的权重来建立索引,也可建立更加深层的索引。在查询的时候,对输入的查询表达式比如一个检索词或者一个句子进行分析,然后在索引里面查找匹配的候选文档,再根据一个排序机制把候选文档排序,最后输出排序得分最高的文档。 -10. **机器翻译:**把输入的源语言文本通过自动翻译获得另外一种语言的文本。机器翻译从最早的基于规则的方法到二十年前的基于统计的方法,再到今天的基于神经网络(编码-解码)的方法,逐渐形成了一套比较严谨的方法体系。 +1. **信息抽取:** 从给定文本中抽取重要的信息,比如时间、地点、人物、事件、原因、结果、数字、日期、货币、专有名词等等。通俗说来,就是要了解谁在什么时候、什么原因、对谁、做了什么事、有什么结果。 +2. **文本生成:** 机器像人一样使用自然语言进行表达和写作。依据输入的不同,文本生成技术主要包括数据到文本生成和文本到文本生成。数据到文本生成是指将包含键值对的数据转化为自然语言文本;文本到文本生成对输入文本进行转化和处理从而产生新的文本。 +3. **问答系统:** 对一个自然语言表达的问题,由问答系统给出一个精准的答案。需要对自然语言查询语句进行某种程度的语义分析,包括实体链接、关系识别,形成逻辑表达式,然后到知识库中查找可能的候选答案并通过一个排序机制找出最佳的答案。 +4. **对话系统:** 系统通过一系列的对话,跟用户进行聊天、回答、完成某一项任务。涉及到用户意图理解、通用聊天引擎、问答引擎、对话管理等技术。此外,为了体现上下文相关,要具备多轮对话能力。 +5. **文本挖掘:** 包括文本聚类、分类、情感分析以及对挖掘的信息和知识的可视化、交互式的表达界面。目前主流的技术都是基于统计机器学习的。 +6. **语音识别和生成:** 语音识别是将输入计算机的语音符号识别转换成书面语表示。语音生成又称文语转换、语音合成,它是指将书面文本自动转换成对应的语音表征。 +7. **信息过滤:** 通过计算机系统自动识别和过滤符合特定条件的文档信息。通常指网络有害信息的自动识别和过滤,主要用于信息安全和防护,网络内容管理等。 +8. **舆情分析:** 是指收集和处理海量信息,自动化地对网络舆情进行分析,以实现及时应对网络舆情的目的。 +9. **信息检索:** 对大规模的文档进行索引。可简单对文档中的词汇,赋之以不同的权重来建立索引,也可建立更加深层的索引。在查询的时候,对输入的查询表达式比如一个检索词或者一个句子进行分析,然后在索引里面查找匹配的候选文档,再根据一个排序机制把候选文档排序,最后输出排序得分最高的文档。 +10. **机器翻译:** 把输入的源语言文本通过自动翻译获得另外一种语言的文本。机器翻译从最早的基于规则的方法到二十年前的基于统计的方法,再到今天的基于神经网络(编码-解码)的方法,逐渐形成了一套比较严谨的方法体系。 ## 3. NLP的发展 @@ -53,9 +53,9 @@ ## 6. NLP、CV,选哪个? -**NLP:**自然语言处理,数据是文本。 +**NLP:** 自然语言处理,数据是文本。 -**CV:**计算机视觉,数据是图像。 +**CV:** 计算机视觉,数据是图像。 两者属于不同的领域,在遇到这个问题的时候,我也是犹豫了很久,想了很多,于是乎得出一个结论:**都是利用深度学习去解决现实世界存在的问题,离开了CV,NLP存活不了;离开了NLP,CV存活不了。两者就像兄弟姐妹一样,整个“家庭”不能分割但个体又存在差异!** From ccb04f27b8dc7a0ebfe4905243e03dff5b2f9edf Mon Sep 17 00:00:00 2001 From: Discrete-Mathematics <150026417+Discrete-Mathematics@users.noreply.github.com> Date: Fri, 20 Jun 2025 21:13:37 +0800 Subject: [PATCH 12/25] Update README.md --- NLP/16.1 Word Embedding/README.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/NLP/16.1 Word Embedding/README.md b/NLP/16.1 Word Embedding/README.md index c3cf110..45f4fdf 100644 --- a/NLP/16.1 Word Embedding/README.md +++ b/NLP/16.1 Word Embedding/README.md @@ -38,11 +38,11 @@ One-hot简称读热向量编码,也是特征工程中最常用的方法。其 **John also likes to watch football games.** -以上两句可以构造一个词典,**{"John": 1, "likes": 2, "to": 3, "watch": 4, "movies": 5, "also": 6, "football": 7, "games": 8, "Mary": 9, "too": 10} ** +以上两句可以构造一个词典,**{"John": 1, "likes": 2, "to": 3, "watch": 4, "movies": 5, "also": 6, "football": 7, "games": 8, "Mary": 9, "too": 10}** 每个词典索引对应着比特位。那么利用One-hot表示为: -**John: [1, 0, 0, 0, 0, 0, 0, 0, 0, 0] ** +**John: [1, 0, 0, 0, 0, 0, 0, 0, 0, 0]** **likes: [0, 1, 0, 0, 0, 0, 0, 0, 0, 0]** .......等等,以此类推。 @@ -63,7 +63,7 @@ One-hot表示文本信息的**缺点**: **John also likes to watch football games.** -以上两句可以构造一个词典,**{"John": 1, "likes": 2, "to": 3, "watch": 4, "movies": 5, "also": 6, "football": 7, "games": 8, "Mary": 9, "too": 10} ** +以上两句可以构造一个词典,**{"John": 1, "likes": 2, "to": 3, "watch": 4, "movies": 5, "also": 6, "football": 7, "games": 8, "Mary": 9, "too": 10}** 那么第一句的向量表示为:**[1,2,1,1,1,0,0,0,1,1]**,其中的2表示**likes**在该句中出现了2次,依次类推。 @@ -86,7 +86,7 @@ TF-IDF(term frequency–inverse document frequency)是一种用于信息检 那么,![](https://latex.codecogs.com/gif.latex?TF-IDF=TF*IDF),从这个公式可以看出,当w在文档中出现的次数增大时,而TF-IDF的值是减小的,所以也就体现了以上所说的了。 -**缺点:**还是没有把词与词之间的关系顺序表达出来。 +**缺点:** 还是没有把词与词之间的关系顺序表达出来。 @@ -104,7 +104,7 @@ n-gram模型为了保持词的顺序,做了一个滑窗的操作,这里的n 那么第一句的向量表示为:**[1, 1, 1, 1, 1, 1, 0, 0, 0, 0]**,其中第一个1表示**John likes**在该句中出现了1次,依次类推。 -**缺点:**随着n的大小增加,词表会成指数型膨胀,会越来越大。 +**缺点:** 随着n的大小增加,词表会成指数型膨胀,会越来越大。 @@ -123,7 +123,7 @@ n-gram模型为了保持词的顺序,做了一个滑窗的操作,这里的n 科学家们为了提高模型的精度,又发明出了分布式的表示文本信息的方法,这就是这一节需要介绍的。 -**用一个词附近的其它词来表示该词,这是现代统计自然语言处理中最有创见的想法之一。**当初科学家发明这种方法是基于人的语言表达,认为一个词是由这个词的周边词汇一起来构成精确的语义信息。就好比,物以类聚人以群分,如果你想了解一个人,可以通过他周围的人进行了解,因为周围人都有一些共同点才能聚集起来。 +**用一个词附近的其它词来表示该词,这是现代统计自然语言处理中最有创见的想法之一。** 当初科学家发明这种方法是基于人的语言表达,认为一个词是由这个词的周边词汇一起来构成精确的语义信息。就好比,物以类聚人以群分,如果你想了解一个人,可以通过他周围的人进行了解,因为周围人都有一些共同点才能聚集起来。 @@ -202,7 +202,7 @@ Skip-gram是通过当前词来预测窗口中上下文词出现的概率模型 ![image](https://ws4.sinaimg.cn/large/00630Defly1g2u762c7nwj30jb0fs0wh.jpg) -- **负例采样(Negative Sampling):**这种优化方式做的事情是,在正确单词以外的负样本中进行采样,最终目的是为了减少负样本的数量,达到减少计算量效果。将词典中的每一个词对应一条线段,所有词组成了[0,1]间的剖分,如下图所示,然后每次随机生成一个[1, M-1]间的整数,看落在哪个词对应的剖分上就选择哪个词,最后会得到一个负样本集合。 +- **负例采样(Negative Sampling):** 这种优化方式做的事情是,在正确单词以外的负样本中进行采样,最终目的是为了减少负样本的数量,达到减少计算量效果。将词典中的每一个词对应一条线段,所有词组成了[0,1]间的剖分,如下图所示,然后每次随机生成一个[1, M-1]间的整数,看落在哪个词对应的剖分上就选择哪个词,最后会得到一个负样本集合。 ![image](https://wx3.sinaimg.cn/large/00630Defly1g2u7vvrgjnj30lu07d75v.jpg) From d0ec3f8c4fc9d18e4bca9ed377f448d8de04a819 Mon Sep 17 00:00:00 2001 From: Discrete-Mathematics <150026417+Discrete-Mathematics@users.noreply.github.com> Date: Fri, 20 Jun 2025 21:15:30 +0800 Subject: [PATCH 13/25] Update README.md --- NLP/16.2 fastText/README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/NLP/16.2 fastText/README.md b/NLP/16.2 fastText/README.md index a8107b6..98ecfae 100644 --- a/NLP/16.2 fastText/README.md +++ b/NLP/16.2 fastText/README.md @@ -22,7 +22,7 @@ word2vec把语料库中的每个单词当成原子的,它会为每个单词生成一个向量。这忽略了单词内部的形态特征,比如:“book” 和“books”,“阿里巴巴”和“阿里”,这两个例子中,两个单词都有较多公共字符,即它们的内部形态类似,但是在传统的word2vec中,这种单词内部形态信息因为它们被转换成不同的id丢失了。 -**为了克服这个问题,fastText使用了字符级别的n-grams来表示一个单词。**对于单词“book”,假设n的取值为3,则它的trigram有: +**为了克服这个问题,fastText使用了字符级别的n-grams来表示一个单词。** 对于单词“book”,假设n的取值为3,则它的trigram有: **“”** @@ -49,7 +49,7 @@ word2vec把语料库中的每个单词当成原子的,它会为每个单词生 - CBOW的输入单词被one-hot编码过,fastText的输入特征是被embedding过; - CBOW的输出是目标词汇,fastText的输出是文档对应的类标。 -**值得注意的是,fastText在输入时,将单词的字符级别的n-gram向量作为额外的特征;在输出时,fastText采用了分层Softmax,大大降低了模型训练时间。**这两个知识点在前文中已经讲过,这里不再赘述。 +**值得注意的是,fastText在输入时,将单词的字符级别的n-gram向量作为额外的特征;在输出时,fastText采用了分层Softmax,大大降低了模型训练时间。** 这两个知识点在前文中已经讲过,这里不再赘述。 fastText相关公式的推导和CBOW非常类似,这里也不展开了。 @@ -61,9 +61,9 @@ fastText相关公式的推导和CBOW非常类似,这里也不展开了。 仔细观察模型的后半部分,即从隐含层输出到输出层输出,会发现它就是一个softmax线性多类别分类器,分类器的输入是一个用来表征当前文档的向量; -模型的前半部分,即从输入层输入到隐含层输出部分,主要在做一件事情:生成用来表征文档的向量。那么它是如何做的呢?**叠加构成这篇文档的所有词及n-gram的词向量,然后取平均。**叠加词向量背后的思想就是传统的词袋法,即将文档看成一个由词构成的集合。 +模型的前半部分,即从输入层输入到隐含层输出部分,主要在做一件事情:生成用来表征文档的向量。那么它是如何做的呢?**叠加构成这篇文档的所有词及n-gram的词向量,然后取平均。** 叠加词向量背后的思想就是传统的词袋法,即将文档看成一个由词构成的集合。 -**于是fastText的核心思想就是:将整篇文档的词及n-gram向量叠加平均得到文档向量,然后使用文档向量做softmax多分类。**这中间涉及到两个技巧:字符级n-gram特征的引入以及分层Softmax分类。 +**于是fastText的核心思想就是:将整篇文档的词及n-gram向量叠加平均得到文档向量,然后使用文档向量做softmax多分类。** 这中间涉及到两个技巧:字符级n-gram特征的引入以及分层Softmax分类。 From 34ff7d8ab9d40ad13f9e83000a59d5f74931074a Mon Sep 17 00:00:00 2001 From: Discrete-Mathematics <150026417+Discrete-Mathematics@users.noreply.github.com> Date: Fri, 20 Jun 2025 21:16:57 +0800 Subject: [PATCH 14/25] Update README.md --- NLP/16.3 GloVe/README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/NLP/16.3 GloVe/README.md b/NLP/16.3 GloVe/README.md index 9d405e3..35cdf29 100644 --- a/NLP/16.3 GloVe/README.md +++ b/NLP/16.3 GloVe/README.md @@ -11,7 +11,7 @@ ## 1. 说说GloVe -正如GloVe论文的标题而言,**GloVe的全称叫Global Vectors for Word Representation,它是一个基于全局词频统计(count-based & overall statistics)的词表征(word representation)工具,它可以把一个单词表达成一个由实数组成的向量,这些向量捕捉到了单词之间一些语义特性,比如相似性(similarity)、类比性(analogy)等。**我们通过对向量的运算,比如欧几里得距离或者cosine相似度,可以计算出两个单词之间的语义相似性。 +正如GloVe论文的标题而言,**GloVe的全称叫Global Vectors for Word Representation,它是一个基于全局词频统计(count-based & overall statistics)的词表征(word representation)工具,它可以把一个单词表达成一个由实数组成的向量,这些向量捕捉到了单词之间一些语义特性,比如相似性(similarity)、类比性(analogy)等。** 我们通过对向量的运算,比如欧几里得距离或者cosine相似度,可以计算出两个单词之间的语义相似性。 @@ -79,9 +79,9 @@ 虽然很多人声称GloVe是一种无监督(unsupervised learing)的学习方式(因为它确实不需要人工标注label),但其实它还是有label的,这个label就是以上公式中的 log(Xij),而公式中的向量 $w和\tilde{w}$ 就是要不断更新/学习的参数,所以本质上它的训练方式跟监督学习的训练方法没什么不一样,都是基于梯度下降的。 -具体地,这篇论文里的实验是这么做的:**采用了AdaGrad的梯度下降算法,对矩阵 X 中的所有非零元素进行随机采样,学习曲率(learning rate)设为0.05,在vector size小于300的情况下迭代了50次,其他大小的vectors上迭代了100次,直至收敛。**最终学习得到的是两个vector是 $w和\tilde{w}$,因为 X 是对称的(symmetric),所以从原理上讲 $w和\tilde{w}$ 是也是对称的,他们唯一的区别是初始化的值不一样,而导致最终的值不一样。 +具体地,这篇论文里的实验是这么做的:**采用了AdaGrad的梯度下降算法,对矩阵 X 中的所有非零元素进行随机采样,学习曲率(learning rate)设为0.05,在vector size小于300的情况下迭代了50次,其他大小的vectors上迭代了100次,直至收敛。** 最终学习得到的是两个vector是 $w和\tilde{w}$,因为 X 是对称的(symmetric),所以从原理上讲 $w和\tilde{w}$ 是也是对称的,他们唯一的区别是初始化的值不一样,而导致最终的值不一样。 -所以这两者其实是等价的,都可以当成最终的结果来使用。**但是为了提高鲁棒性,我们最终会选择两者之和** ![](https://latex.codecogs.com/gif.latex?w+\tilde{w})**作为最终的vector(两者的初始化不同相当于加了不同的随机噪声,所以能提高鲁棒性)。**在训练了400亿个token组成的语料后,得到的实验结果如下图所示: +所以这两者其实是等价的,都可以当成最终的结果来使用。**但是为了提高鲁棒性,我们最终会选择两者之和** ![](https://latex.codecogs.com/gif.latex?w+\tilde{w})**作为最终的vector(两者的初始化不同相当于加了不同的随机噪声,所以能提高鲁棒性)。** 在训练了400亿个token组成的语料后,得到的实验结果如下图所示: ![](http://www.fanyeong.com/wp-content/uploads/2019/08/X6eVUJJ.jpg) From b61fdfa708a2e17f963f503f5809979c17c712ea Mon Sep 17 00:00:00 2001 From: Discrete-Mathematics <150026417+Discrete-Mathematics@users.noreply.github.com> Date: Fri, 20 Jun 2025 21:47:43 +0800 Subject: [PATCH 15/25] Update README.md --- NLP/16.5 seq2seq/README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/NLP/16.5 seq2seq/README.md b/NLP/16.5 seq2seq/README.md index ecc88d8..79a67f3 100644 --- a/NLP/16.5 seq2seq/README.md +++ b/NLP/16.5 seq2seq/README.md @@ -31,7 +31,7 @@ 编码器的作⽤是把⼀个不定⻓的输⼊序列变换成⼀个定⻓的背景变量 c,并在该背景变量中编码输⼊序列信息。常⽤的编码器是循环神经⽹络。 -让我们考虑批量⼤小为1的时序数据样本。假设输⼊序列是 x1, . . . , xT,例如 xi 是输⼊句⼦中的第 i 个词。在时间步 t,循环神经⽹络将输⼊ xt 的特征向量 xt 和上个时间步的隐藏状态 ![](https://latex.codecogs.com/gif.latex?h_{t-1})变换为当前时间步的隐藏状态ht。我们可以⽤函数 f 表达循环神经⽹络隐藏层的变换: +让我们考虑批量⼤小为1的时序数据样本。假设输⼊序列是![](https://latex.codecogs.com/gif.latex?x_1,...,x_T),例如![](https://latex.codecogs.com/gif.latex?x_i)是输⼊句⼦中的第i个词。在时间步 t,循环神经⽹络将输⼊![](https://latex.codecogs.com/gif.latex?x_t)的特征向量![](https://latex.codecogs.com/gif.latex?x_t)和上个时间步的隐藏状态![](https://latex.codecogs.com/gif.latex?h_{t-1})变换为当前时间步的隐藏状态![](https://latex.codecogs.com/gif.latex?h_t)。我们可以⽤函数 f 表达循环神经⽹络隐藏层的变换: ![](https://latex.codecogs.com/gif.latex?h_t=f(x_t,h_{t-1})) @@ -39,7 +39,7 @@ ![](https://latex.codecogs.com/gif.latex?c=q(h_1,...,h_T)) -例如,当选择 *q*(***h***1*, . . . ,* ***h****T* ) = ***h****T* 时,背景变量是输⼊序列最终时间步的隐藏状态***h****T*。 +例如,当选择![](https://latex.codecogs.com/gif.latex?q(h_1,...,h_T)=h_T)时,背景变量是输⼊序列最终时间步的隐藏状态![](https://latex.codecogs.com/gif.latex?h_T)。 以上描述的编码器是⼀个单向的循环神经⽹络,每个时间步的隐藏状态只取决于该时间步及之前的输⼊⼦序列。我们也可以使⽤双向循环神经⽹络构造编码器。在这种情况下,编码器每个时间步的隐藏状态同时取决于该时间步之前和之后的⼦序列(包括当前时间步的输⼊),并编码了整个序列的信息。 @@ -47,7 +47,7 @@ ## 3. 解码器 -刚刚已经介绍,编码器输出的背景变量 c 编码了整个输⼊序列 x1, . . . , xT 的信息。给定训练样本中的输出序列 y1, y2, . . . , yT′ ,对每个时间步 t′(符号与输⼊序列或编码器的时间步 t 有区别),解码器输出 yt′ 的条件概率将基于之前的输出序列![](https://gitee.com/kkweishe/images/raw/master/ML/2019-8-29_15-39-17.png)和背景变量 c,即: +刚刚已经介绍,编码器输出的背景变量 c 编码了整个输⼊序列![](https://latex.codecogs.com/gif.latex?x_1,...,x_T)的信息。给定训练样本中的输出序列![](https://latex.codecogs.com/gif.latex?y_1,y_2,...,y_{T'}) ,对每个时间步 t′(符号与输⼊序列或编码器的时间步 t 有区别),解码器输出![](https://latex.codecogs.com/gif.latex?y_{t'})的条件概率将基于之前的输出序列![](https://gitee.com/kkweishe/images/raw/master/ML/2019-8-29_15-39-17.png)和背景变量 c,即: ![](https://gitee.com/kkweishe/images/raw/master/ML/2019-8-29_15-45-12.png) @@ -55,7 +55,7 @@ ![](https://gitee.com/kkweishe/images/raw/master/ML/2019-8-29_15-47-36.png) -有了解码器的隐藏状态后,我们可以使⽤⾃定义的输出层和softmax运算来计算 ![](https://gitee.com/kkweishe/images/raw/master/ML/2019-8-29_15-49-45.png),例如,基于当XQ前时间步的解码器隐藏状态 st′、上⼀时间步的输出![](https://gitee.com/kkweishe/images/raw/master/ML/2019-8-29_15-46-54.png)以及背景变量 c 来计算当前时间步输出 yt′ 的概率分布。 +有了解码器的隐藏状态后,我们可以使⽤⾃定义的输出层和softmax运算来计算 ![](https://gitee.com/kkweishe/images/raw/master/ML/2019-8-29_15-49-45.png),例如,基于当前时间步的解码器隐藏状态![](https://latex.codecogs.com/gif.latex?s_{t'})、上⼀时间步的输出![](https://gitee.com/kkweishe/images/raw/master/ML/2019-8-29_15-46-54.png)以及背景变量 c 来计算当前时间步输出![](https://latex.codecogs.com/gif.latex?y_{t'})的概率分布。 From 38e33a4a98938a71db3b1adb413b8b9d2009b24f Mon Sep 17 00:00:00 2001 From: Discrete-Mathematics <150026417+Discrete-Mathematics@users.noreply.github.com> Date: Fri, 20 Jun 2025 21:57:48 +0800 Subject: [PATCH 16/25] Update README.md --- NLP/16.6 Attention/README.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/NLP/16.6 Attention/README.md b/NLP/16.6 Attention/README.md index 80ae363..e070275 100644 --- a/NLP/16.6 Attention/README.md +++ b/NLP/16.6 Attention/README.md @@ -20,11 +20,11 @@ **仍然以循环神经⽹络为例,注意⼒机制通过对编码器所有时间步的隐藏状态做加权平均来得到背景变量。解码器在每⼀时间步调整这些权重,即注意⼒权重,从而能够在不同时间步分别关注输⼊序列中的不同部分并编码进相应时间步的背景变量。** -在注意⼒机制中,解码器的每⼀时间步将使⽤可变的背景变量。记 ct′ 是解码器在时间步 t′ 的背景变量,那么解码器在该时间步的隐藏状态可以改写为: +在注意⼒机制中,解码器的每⼀时间步将使⽤可变的背景变量。记![](https://latex.codecogs.com/gif.latex?c_{t'})是解码器在时间步t′的背景变量,那么解码器在该时间步的隐藏状态可以改写为: ![](https://gitee.com/kkweishe/images/raw/master/ML/2019-8-31_18-27-38.png) -这⾥的关键是如何计算背景变量 ct′ 和如何利⽤它来更新隐藏状态 st′。下⾯将分别描述这两个关键点。 +这⾥的关键是如何计算背景变量![](https://latex.codecogs.com/gif.latex?c_{t'})和如何利⽤它来更新隐藏状态![](https://latex.codecogs.com/gif.latex?s_{t'})。下⾯将分别描述这两个关键点。 @@ -49,7 +49,7 @@ ⼴义上,注意⼒机制的输⼊包括查询项以及⼀⼀对应的键项和值项,其中值项是需要加权平均的⼀组项。在加权平均中,值项的权重来⾃查询项以及与该值项对应的键项的计算。 -让我们考虑⼀个常⻅的简单情形,即编码器和解码器的隐藏单元个数均为 h,且函数 ![](https://latex.codecogs.com/gif.latex?a(s,h)=s^Th)。假设我们希望根据解码器单个隐藏状态 st′−1 和编码器所有隐藏状态 ht, t = 1, . . . , T来计算背景向量 ct′ 。我们可以将查询项矩阵 Q 设为![](https://gitee.com/kkweishe/images/raw/master/ML/2019-8-31_18-29-41.png),并令键项矩阵 K 和值项矩阵 V 相同且第 t ⾏均为 ![](https://latex.codecogs.com/gif.latex?h_t^T) 。此时,我们只需要通过⽮量化计算: +让我们考虑⼀个常⻅的简单情形,即编码器和解码器的隐藏单元个数均为 h,且函数 ![](https://latex.codecogs.com/gif.latex?a(s,h)=s^Th)。假设我们希望根据解码器单个隐藏状态 st′−1 和编码器所有隐藏状态 ht, t = 1, . . . , T来计算背景向量![](https://latex.codecogs.com/gif.latex?c_{t'})。我们可以将查询项矩阵 Q 设为![](https://gitee.com/kkweishe/images/raw/master/ML/2019-8-31_18-29-41.png),并令键项矩阵 K 和值项矩阵 V 相同且第 t ⾏均为 ![](https://latex.codecogs.com/gif.latex?h_t^T) 。此时,我们只需要通过⽮量化计算: ![](https://latex.codecogs.com/gif.latex?softmax(QK^T)V) @@ -59,7 +59,7 @@ ### 2.2 更新隐藏状态 -现在我们描述第⼆个关键点,即更新隐藏状态。以⻔控循环单元为例,在解码器中我们可以对⻔控循环单元(GRU)中⻔控循环单元的设计稍作修改,从而变换上⼀时间步 t′−1 的输出 yt′−1、隐藏状态 st′−1 和当前时间步t′ 的含注意⼒机制的背景变量 ct′。解码器在时间步: math:t’ 的隐藏状态为: +现在我们描述第⼆个关键点,即更新隐藏状态。以⻔控循环单元为例,在解码器中我们可以对⻔控循环单元(GRU)中⻔控循环单元的设计稍作修改,从而变换上⼀时间步 t′−1 的输出 ![](https://latex.codecogs.com/gif.latex?y_{t'-1})、隐藏状态![](https://latex.codecogs.com/gif.latex?s_{t'-1})和当前时间步t′的含注意⼒机制的背景变量![](https://latex.codecogs.com/gif.latex?c_{t'})。解码器在时间步: math:t’ 的隐藏状态为: ![](https://gitee.com/kkweishe/images/raw/master/ML/2019-8-31_18-32-47.png) @@ -87,7 +87,7 @@ (Tom,0.3)(Chase,0.2) (Jerry,0.5) -**每个英文单词的概率代表了翻译当前单词“杰瑞”时,注意力分配模型分配给不同英文单词的注意力大小。**这对于正确翻译目标语单词肯定是有帮助的,因为引入了新的信息。 +**每个英文单词的概率代表了翻译当前单词“杰瑞”时,注意力分配模型分配给不同英文单词的注意力大小。** 这对于正确翻译目标语单词肯定是有帮助的,因为引入了新的信息。 同理,目标句子中的每个单词都应该学会其对应的源语句子中单词的注意力分配概率信息。这意味着在生成每个单词yi的时候,原先都是相同的中间语义表示C会被替换成根据当前生成单词而不断变化的Ci。理解Attention模型的关键就是这里,即由固定的中间语义表示C换成了根据当前输出单词来调整成加入注意力模型的变化的Ci。增加了注意力模型的Encoder-Decoder框架理解起来如下图所示。 @@ -109,7 +109,7 @@ 这里还有一个问题:生成目标句子某个单词,比如“汤姆”的时候,如何知道Attention模型所需要的输入句子单词注意力分配概率分布值呢?就是说“汤姆”对应的输入句子Source中各个单词的概率分布:(Tom,0.6)(Chase,0.2) (Jerry,0.2) 是如何得到的呢? -对于采用RNN的Decoder来说,在时刻i,如果要生成yi单词,我们是可以知道Target在生成Yi之前的时刻i-1时,隐层节点i-1时刻的输出值Hi-1的,而我们的目的是要计算生成Yi时输入句子中的单词“Tom”、“Chase”、“Jerry”对Yi来说的注意力分配概率分布,那么可以用Target输出句子i-1时刻的隐层节点状态Hi-1去一一和输入句子Source中每个单词对应的RNN隐层节点状态hj进行对比,即通过函数F(hj,Hi-1)来获得目标单词yi和每个输入单词对应的对齐可能性,这个F函数在不同论文里可能会采取不同的方法,然后函数F的输出经过Softmax进行归一化就得到了符合概率分布取值区间的注意力分配概率分布数值。 +对于采用RNN的Decoder来说,在时刻i,如果要生成![](https://latex.codecogs.com/gif.latex?y_{i})单词,我们是可以知道Target在生成![](https://latex.codecogs.com/gif.latex?y_{i})之前的时刻i-1时,隐层节点i-1时刻的输出值![](https://latex.codecogs.com/gif.latex?H_{i-1})的,而我们的目的是要计算生成![](https://latex.codecogs.com/gif.latex?H_{i-1})时输入句子中的单词“Tom”、“Chase”、“Jerry”对![](https://latex.codecogs.com/gif.latex?Y_{i})来说的注意力分配概率分布,那么可以用Target输出句子i-1时刻的隐层节点状态![](https://latex.codecogs.com/gif.latex?H_{i-1})去一一和输入句子Source中每个单词对应的RNN隐层节点状态![](https://latex.codecogs.com/gif.latex?H_{j})进行对比,即通过函数![](https://latex.codecogs.com/gif.latex?F(h_j,h_{i-1}))来获得目标单词![](https://latex.codecogs.com/gif.latex?y_{i})和每个输入单词对应的对齐可能性,这个F函数在不同论文里可能会采取不同的方法,然后函数F的输出经过Softmax进行归一化就得到了符合概率分布取值区间的注意力分配概率分布数值。 ![](https://gitee.com/kkweishe/images/raw/master/ML/2019-9-25_20-28-58.png) @@ -119,7 +119,7 @@ 一般在自然语言处理应用里会把Attention模型看作是输出Target句子中某个单词和输入Source句子每个单词的对齐模型,这是非常有道理的。 -**目标句子生成的每个单词对应输入句子单词的概率分布可以理解为输入句子单词和这个目标生成单词的对齐概率,**这在机器翻译语境下是非常直观的:传统的统计机器翻译一般在做的过程中会专门有一个短语对齐的步骤,而注意力模型其实起的是相同的作用。 +**目标句子生成的每个单词对应输入句子单词的概率分布可以理解为输入句子单词和这个目标生成单词的对齐概率,** 这在机器翻译语境下是非常直观的:传统的统计机器翻译一般在做的过程中会专门有一个短语对齐的步骤,而注意力模型其实起的是相同的作用。 如果把Attention机制从上文讲述例子中的Encoder-Decoder框架中剥离,并进一步做抽象,可以更容易看懂Attention机制的本质思想。 @@ -129,7 +129,7 @@ ![](https://latex.codecogs.com/gif.latex?Attention(Query,Source)=\sum_{i=1}^{L_x}Similarity(Query,key_i)*Value_i) -其中,Lx=||Source||代表Source的长度,公式含义即如上所述。上文所举的机器翻译的例子里,因为在计算Attention的过程中,Source中的Key和Value合二为一,指向的是同一个东西,也即输入句子中每个单词对应的语义编码,所以可能不容易看出这种能够体现本质思想的结构。 +其中,![](https://latex.codecogs.com/gif.latex?L_x=||Source||)代表Source的长度,公式含义即如上所述。上文所举的机器翻译的例子里,因为在计算Attention的过程中,Source中的Key和Value合二为一,指向的是同一个东西,也即输入句子中每个单词对应的语义编码,所以可能不容易看出这种能够体现本质思想的结构。 至于Attention机制的具体计算过程,如果对目前大多数方法进行抽象的话,可以将其归纳为两个过程:第一个过程是根据Query和Key计算权重系数,第二个过程根据权重系数对Value进行加权求和。而第一个过程又可以细分为两个阶段:第一个阶段根据Query和Key计算两者的相似性或者相关性;第二个阶段对第一阶段的原始分值进行归一化处理; @@ -139,7 +139,7 @@ Self Attention也经常被称为intra Attention(内部Attention),最近一年也获得了比较广泛的使用,比如Google最新的机器翻译模型内部大量采用了Self Attention模型。 -在一般任务的Encoder-Decoder框架中,输入Source和输出Target内容是不一样的,比如对于英-中机器翻译来说,Source是英文句子,Target是对应的翻译出的中文句子,Attention机制发生在Target的元素Query和Source中的所有元素之间。**而Self Attention顾名思义,指的不是Target和Source之间的Attention机制,而是Source内部元素之间或者Target内部元素之间发生的Attention机制,也可以理解为Target=Source这种特殊情况下的注意力计算机制。**其具体计算过程是一样的,只是计算对象发生了变化而已,所以此处不再赘述其计算过程细节。 +在一般任务的Encoder-Decoder框架中,输入Source和输出Target内容是不一样的,比如对于英-中机器翻译来说,Source是英文句子,Target是对应的翻译出的中文句子,Attention机制发生在Target的元素Query和Source中的所有元素之间。**而Self Attention顾名思义,指的不是Target和Source之间的Attention机制,而是Source内部元素之间或者Target内部元素之间发生的Attention机制,也可以理解为Target=Source这种特殊情况下的注意力计算机制。** 其具体计算过程是一样的,只是计算对象发生了变化而已,所以此处不再赘述其计算过程细节。 很明显,引入Self Attention后会更容易捕获句子中长距离的相互依赖的特征,因为如果是RNN或者LSTM,需要依次序序列计算,对于远距离的相互依赖的特征,要经过若干时间步步骤的信息累积才能将两者联系起来,而距离越远,有效捕获的可能性越小。 From 199a94c2001dfcd90af3af632941f319eb385114 Mon Sep 17 00:00:00 2001 From: Discrete-Mathematics <150026417+Discrete-Mathematics@users.noreply.github.com> Date: Fri, 20 Jun 2025 22:04:58 +0800 Subject: [PATCH 17/25] Update README.md --- NLP/16.8 BERT/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/NLP/16.8 BERT/README.md b/NLP/16.8 BERT/README.md index 77ab482..3c688db 100644 --- a/NLP/16.8 BERT/README.md +++ b/NLP/16.8 BERT/README.md @@ -63,7 +63,7 @@ Bert最近很火,应该是最近最火爆的AI进展,网上的评价很高 上面这种模型做法就是18年之前NLP领域里面采用预训练的典型做法,之前说过,Word Embedding其实对于很多下游NLP任务是有帮助的,只是帮助没有大到闪瞎忘记戴墨镜的围观群众的双眼而已。那么新问题来了,为什么这样训练及使用Word Embedding的效果没有期待中那么好呢?答案很简单,因为Word Embedding有问题呗。这貌似是个比较弱智的答案,关键是Word Embedding存在什么问题?这其实是个好问题。 -**这片在Word Embedding头上笼罩了好几年的乌云是什么?是多义词问题。**我们知道,多义词是自然语言中经常出现的现象,也是语言灵活性和高效性的一种体现。多义词对Word Embedding来说有什么负面影响?如上图所示,比如多义词Bank,有两个常用含义,但是Word Embedding在对bank这个单词进行编码的时候,是区分不开这两个含义的,因为它们尽管上下文环境中出现的单词不同,但是在用语言模型训练的时候,不论什么上下文的句子经过word2vec,都是预测相同的单词bank,而同一个单词占的是同一行的参数空间,这导致两种不同的上下文信息都会编码到相同的word embedding空间里去。所以word embedding无法区分多义词的不同语义,这就是它的一个比较严重的问题。 +**这片在Word Embedding头上笼罩了好几年的乌云是什么?是多义词问题。** 我们知道,多义词是自然语言中经常出现的现象,也是语言灵活性和高效性的一种体现。多义词对Word Embedding来说有什么负面影响?如上图所示,比如多义词Bank,有两个常用含义,但是Word Embedding在对bank这个单词进行编码的时候,是区分不开这两个含义的,因为它们尽管上下文环境中出现的单词不同,但是在用语言模型训练的时候,不论什么上下文的句子经过word2vec,都是预测相同的单词bank,而同一个单词占的是同一行的参数空间,这导致两种不同的上下文信息都会编码到相同的word embedding空间里去。所以word embedding无法区分多义词的不同语义,这就是它的一个比较严重的问题。 有没有简单优美的解决方案呢?ELMO提供了一种简洁优雅的解决方案。 From 8d8d95df8736448388f32b6b46bc26c91e52b819 Mon Sep 17 00:00:00 2001 From: Discrete-Mathematics <150026417+Discrete-Mathematics@users.noreply.github.com> Date: Fri, 20 Jun 2025 22:09:06 +0800 Subject: [PATCH 18/25] Update README.md --- Deep Learning/10. Neural Network/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Deep Learning/10. Neural Network/README.md b/Deep Learning/10. Neural Network/README.md index 9644f50..9aca13c 100644 --- a/Deep Learning/10. Neural Network/README.md +++ b/Deep Learning/10. Neural Network/README.md @@ -191,7 +191,7 @@ 正向传播(forward-propagation)是指对神经网络沿着从输入层到输出层的顺序,依次计算并存储模型的中间变量(包括输出)。 -逻辑回归的计算步骤:所以回想当时我们讨论逻辑回归的时候,我们有这个正向传播步骤,其中我们计算𝑧,然后𝑎,然后损失函数𝐿。 正向传播类似,计算![](https://latex.codecogs.com/gif.latex?z^{[1]},a^{[1]}),再计算![](https://latex.codecogs.com/gif.latex?z^{[2]},a^{[2]}),最后得到**loss function**。 +逻辑回归的计算步骤:所以回想当时我们讨论逻辑回归的时候,我们有这个正向传播步骤,其中我们计算𝑧,然后𝑎,然后损失函数𝐿。 正向传播类似,计算![](https://latex.codecogs.com/gif.latex?z^{[1]},a^{[1]}),再计算![](https://latex.codecogs.com/gif.latex?z^{[2]},a^{[2]}),最后得到**loss function**。 ![](http://wx3.sinaimg.cn/mw690/00630Defgy1g5nmdcfqwjj30dp039t8n.jpg) @@ -275,7 +275,7 @@ 在图像分类的情景中,softmax分类器输出可以是一个图像类别的离散值,和线性回归不同的是,**softmax输出单元从一个变成了多个。** -softmax回归和线性回归一样将输入特征与权重做线性叠加。与线性回归的一个主要不同在于,**softmax回归的输出值个数等于标签里的类别数。**下图是用神经网络描绘了softmax回归,也是一个单层神经网络,由于每个输出 ![](https://latex.codecogs.com/gif.latex?o_1,o_2,o_3)的计算都要依赖于所有的输入 ![](https://latex.codecogs.com/gif.latex?x_1,x_2,x_3,x_4),softmax回归的输出层也是一个全连接层。 +softmax回归和线性回归一样将输入特征与权重做线性叠加。与线性回归的一个主要不同在于,**softmax回归的输出值个数等于标签里的类别数。** 下图是用神经网络描绘了softmax回归,也是一个单层神经网络,由于每个输出 ![](https://latex.codecogs.com/gif.latex?o_1,o_2,o_3)的计算都要依赖于所有的输入 ![](https://latex.codecogs.com/gif.latex?x_1,x_2,x_3,x_4),softmax回归的输出层也是一个全连接层。 ![](http://wx4.sinaimg.cn/mw690/00630Defly1g5lpopm1c3j30h906574z.jpg) From d600124f7b313e7aceae481c4896f99773487abc Mon Sep 17 00:00:00 2001 From: Discrete-Mathematics <150026417+Discrete-Mathematics@users.noreply.github.com> Date: Fri, 20 Jun 2025 22:13:13 +0800 Subject: [PATCH 19/25] Update README.md --- Deep Learning/11. CNN/README.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/Deep Learning/11. CNN/README.md b/Deep Learning/11. CNN/README.md index 63057aa..fc53284 100644 --- a/Deep Learning/11. CNN/README.md +++ b/Deep Learning/11. CNN/README.md @@ -204,7 +204,7 @@ 更细致的识别可以提前规定好有k个组成部分,做成k个部分的回归, - **例如:**框出两只眼睛和两条腿,4元祖*4=16(个连续值) + **例如:**框出两只眼睛和两条腿,4元组*4=16(个连续值) 3. Regression部分用欧氏距离损失,使用SGD训练。 @@ -234,9 +234,9 @@ - 你需要找很多位置, 给很多个不同大小的框 - 你还需要对框内的图像分类 -- 当然, 如果你的GPU很强大, 恩, 那加油做吧… +- 当然, 如果你的GPU很强大, 嗯, 那加油做吧… -**边缘策略:**想办法先找到可能包含内容的图框(**候选框**),然后进行分类问题的识别。 +**边缘策略:** 想办法先找到可能包含内容的图框(**候选框**),然后进行分类问题的识别。 **方法**:根据RGB值做区域融合。**fast-CNN**,共享图窗,从而加速候选框的形成。 @@ -293,9 +293,9 @@ SPP Net真是个好方法,R-CNN的进阶版Fast R-CNN就是在R-CNN的基础 R-CNN有一些相当大的缺点(把这些缺点都改掉了,就成了Fast R-CNN)。 -**大缺点:**由于每一个候选框都要独自经过CNN,这使得花费的时间非常多。 +**大缺点:** 由于每一个候选框都要独自经过CNN,这使得花费的时间非常多。 -**解决:**共享卷积层,现在不是每一个候选框都当做输入进入CNN了,而是输入一张完整的图片,在第五个卷积层再得到每个候选框的特征。 +**解决:** 共享卷积层,现在不是每一个候选框都当做输入进入CNN了,而是输入一张完整的图片,在第五个卷积层再得到每个候选框的特征。 原来的方法:许多候选框(比如两千个)-->CNN-->得到每个候选框的特征-->分类+回归 @@ -336,9 +336,9 @@ Faster R-CNN的方法目前是主流的目标检测方法,但是速度上并 1. 给个一个输入图像,首先将图像划分成7\*7的网格。 2. 对于每个网格,我们都预测2个边框(包括每个边框是目标的置信度以及每个边框区域在多个类别上的概率)。 -3. 根据上一步可以预测出7*7*2个目标窗口,然后根据阈值去除可能性比较低的目标窗口,最后NMS去除冗余窗口即可。 +3. 根据上一步可以预测出7\*7\*2个目标窗口,然后根据阈值去除可能性比较低的目标窗口,最后NMS去除冗余窗口即可。 -**小结:**YOLO将目标检测任务转换成一个回归问题,大大加快了检测的速度,使得YOLO可以每秒处理45张图像。而且由于每个网络预测目标窗口时使用的是全图信息,使得false positive比例大幅降低(充分的上下文信息)。 +**小结:** YOLO将目标检测任务转换成一个回归问题,大大加快了检测的速度,使得YOLO可以每秒处理45张图像。而且由于每个网络预测目标窗口时使用的是全图信息,使得false positive比例大幅降低(充分的上下文信息)。 但是YOLO也存在问题:没有了Region Proposal机制,只使用7*7的网格回归会使得目标不能非常精准的定位,这也导致了YOLO的检测精度并不是很高。 From 308c9fe01b06256a5bcbb4610aacd5c349a0bbcf Mon Sep 17 00:00:00 2001 From: Discrete-Mathematics <150026417+Discrete-Mathematics@users.noreply.github.com> Date: Fri, 20 Jun 2025 22:16:25 +0800 Subject: [PATCH 20/25] Update README.md --- Deep Learning/11. CNN/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Deep Learning/11. CNN/README.md b/Deep Learning/11. CNN/README.md index fc53284..8db35d2 100644 --- a/Deep Learning/11. CNN/README.md +++ b/Deep Learning/11. CNN/README.md @@ -204,7 +204,7 @@ 更细致的识别可以提前规定好有k个组成部分,做成k个部分的回归, - **例如:**框出两只眼睛和两条腿,4元组*4=16(个连续值) + **例如:** 框出两只眼睛和两条腿,4元组*4=16(个连续值) 3. Regression部分用欧氏距离损失,使用SGD训练。 @@ -257,7 +257,7 @@ R-CNN的简要步骤如下: SPP:Spatial Pyramid Pooling(空间金字塔池化),SPP-Net是出自2015年发表在IEEE上的论文。 -众所周知,CNN一般都含有卷积部分和全连接部分,其中,卷积层不需要固定尺寸的图像,而全连接层是需要固定大小的输入。所以当全连接层面对各种尺寸的输入数据时,就需要对输入数据进行crop(crop就是从一个大图扣出网络输入大小的patch,比如227×227),或warp(把一个边界框bounding box(红框)的内容resize成227×227)等一系列操作以统一图片的尺寸大小,比如224*224(ImageNet)、32*32(LenNet)、96*96等。 +众所周知,CNN一般都含有卷积部分和全连接部分,其中,卷积层不需要固定尺寸的图像,而全连接层是需要固定大小的输入。所以当全连接层面对各种尺寸的输入数据时,就需要对输入数据进行crop(crop就是从一个大图扣出网络输入大小的patch,比如227×227),或warp(把一个边界框bounding box(红框)的内容resize成227×227)等一系列操作以统一图片的尺寸大小,比如224\*224(ImageNet)、32\*32(LenNet)、96*96等。 ![](https://julyedu-img-public.oss-cn-beijing.aliyuncs.com/Public/Image/Question/1525249316_603.png) From 3744c51582c2d768570e01f1d7028a135699a089 Mon Sep 17 00:00:00 2001 From: Discrete-Mathematics <150026417+Discrete-Mathematics@users.noreply.github.com> Date: Fri, 20 Jun 2025 22:21:11 +0800 Subject: [PATCH 21/25] Update README.md --- Machine Learning/5.2 Markov/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Machine Learning/5.2 Markov/README.md b/Machine Learning/5.2 Markov/README.md index 1ac1a38..c711469 100644 --- a/Machine Learning/5.2 Markov/README.md +++ b/Machine Learning/5.2 Markov/README.md @@ -262,7 +262,7 @@ wikipedia上是这样定义因子图的:将一个具有多变量的全局函 4. 之所以总把HMM和CRF进行比较,主要是因为CRF和HMM都利用了图的知识,但是CRF利用的是马尔科夫随机场(无向图),而HMM的基础是贝叶斯网络(有向图)。而且CRF也有:概率计算问题、学习问题和预测问题。大致计算方法和HMM类似,只不过不需要EM算法进行学习问题。 -5. **HMM和CRF对比:**其根本还是在于基本的理念不同,一个是生成模型,一个是判别模型,这也就导致了求解方式的不同。 +5. **HMM和CRF对比:** 其根本还是在于基本的理念不同,一个是生成模型,一个是判别模型,这也就导致了求解方式的不同。 ## 7. 参考文献 From f98ee2b04f9b45fe07ac18f83348aa7a21a881c5 Mon Sep 17 00:00:00 2001 From: Discrete-Mathematics <150026417+Discrete-Mathematics@users.noreply.github.com> Date: Fri, 20 Jun 2025 22:23:47 +0800 Subject: [PATCH 22/25] Update README.md --- NLP/16.1 Word Embedding/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/NLP/16.1 Word Embedding/README.md b/NLP/16.1 Word Embedding/README.md index 45f4fdf..693b846 100644 --- a/NLP/16.1 Word Embedding/README.md +++ b/NLP/16.1 Word Embedding/README.md @@ -180,7 +180,7 @@ NNLM说的是定义一个前向窗口大小,其实和上面提到的窗口是 ### 4.2 Word2Vec -谷歌2013年提出的Word2Vec是目前最常用的词嵌入模型之一。Word2Vec实际是一种浅层的神经网络模型,它有两种网络结构,**分别是CBOW(Continues Bag of Words)连续词袋和Skip-gram。**Word2Vec和上面的NNLM很类似,但比NNLM简单。 +谷歌2013年提出的Word2Vec是目前最常用的词嵌入模型之一。Word2Vec实际是一种浅层的神经网络模型,它有两种网络结构,**分别是CBOW(Continues Bag of Words)连续词袋和Skip-gram。** Word2Vec和上面的NNLM很类似,但比NNLM简单。 **CBOW** From f9a2b308a75c21e26cfda9490a0fdad28b0030a5 Mon Sep 17 00:00:00 2001 From: Discrete-Mathematics <150026417+Discrete-Mathematics@users.noreply.github.com> Date: Fri, 20 Jun 2025 22:30:49 +0800 Subject: [PATCH 23/25] Update README.md --- Deep Learning/12.1 GRU/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Deep Learning/12.1 GRU/README.md b/Deep Learning/12.1 GRU/README.md index 6a0b4ee..1d376c7 100644 --- a/Deep Learning/12.1 GRU/README.md +++ b/Deep Learning/12.1 GRU/README.md @@ -29,7 +29,7 @@ GRU它引⼊了**重置⻔(reset gate)和更新⻔(update gate)** 的概 ![](https://latex.codecogs.com/gif.latex?Z_t=\sigma(X_tW_{xz}+H_{t-1}W_{hz}+b_z)) -sigmoid函数可以将元素的值变换到0和1之间。因此,重置⻔ ![](https://latex.codecogs.com/gif.latex?R_t)和更新⻔ ![](https://latex.codecogs.com/gif.latex?Z_t)中每个元素的值域都是[0*,* 1]。 +sigmoid函数可以将元素的值变换到0和1之间。因此,重置⻔ ![](https://latex.codecogs.com/gif.latex?R_t)和更新⻔ ![](https://latex.codecogs.com/gif.latex?Z_t)中每个元素的值域都是[0,1]。 ### 2.2 候选隐藏状态 From 2c12050c3fce5430213c130dac115a58b4895a10 Mon Sep 17 00:00:00 2001 From: Discrete-Mathematics <150026417+Discrete-Mathematics@users.noreply.github.com> Date: Fri, 20 Jun 2025 22:31:07 +0800 Subject: [PATCH 24/25] Update README.md --- Deep Learning/12.1 GRU/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Deep Learning/12.1 GRU/README.md b/Deep Learning/12.1 GRU/README.md index 1d376c7..84739ae 100644 --- a/Deep Learning/12.1 GRU/README.md +++ b/Deep Learning/12.1 GRU/README.md @@ -9,7 +9,7 @@ ## 1. 什么是GRU -在循环神经⽹络中的梯度计算⽅法中,我们发现,当时间步数较⼤或者时间步较小时,**循环神经⽹络的梯度较容易出现衰减或爆炸。虽然裁剪梯度可以应对梯度爆炸,但⽆法解决梯度衰减的问题。**通常由于这个原因,循环神经⽹络在实际中较难捕捉时间序列中时间步距离较⼤的依赖关系。 +在循环神经⽹络中的梯度计算⽅法中,我们发现,当时间步数较⼤或者时间步较小时,**循环神经⽹络的梯度较容易出现衰减或爆炸。虽然裁剪梯度可以应对梯度爆炸,但⽆法解决梯度衰减的问题。** 通常由于这个原因,循环神经⽹络在实际中较难捕捉时间序列中时间步距离较⼤的依赖关系。 **门控循环神经⽹络(gated recurrent neural network)的提出,正是为了更好地捕捉时间序列中时间步距离较⼤的依赖关系。** 它通过可以学习的⻔来控制信息的流动。其中,门控循环单元(gatedrecurrent unit,GRU)是⼀种常⽤的门控循环神经⽹络。 From 2172de00388be3c2dccbc2af7e2d4526889ffd63 Mon Sep 17 00:00:00 2001 From: Discrete-Mathematics <150026417+Discrete-Mathematics@users.noreply.github.com> Date: Fri, 20 Jun 2025 22:32:21 +0800 Subject: [PATCH 25/25] Update README.md --- Deep Learning/10. Neural Network/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Deep Learning/10. Neural Network/README.md b/Deep Learning/10. Neural Network/README.md index 9aca13c..9c27219 100644 --- a/Deep Learning/10. Neural Network/README.md +++ b/Deep Learning/10. Neural Network/README.md @@ -53,7 +53,7 @@ **一般说到神经网络的层数是这样计算的,输入层不算,从隐藏层开始一直到输出层,一共有几层就代表着这是一个几层的神经网络**,例如上图就是一个三层结构的神经网络。 -**解释隐藏层的含义:**在一个神经网络中,当你使用监督学习训练它的时候,训练集包含了输入𝑥也包含了目标输出𝑦,所以术语隐藏层的含义是在训练集中,这些中间结点的准确值我们是不知道到的,也就是说你看不见它们在训练集中应具有的值。 +**解释隐藏层的含义:** 在一个神经网络中,当你使用监督学习训练它的时候,训练集包含了输入𝑥也包含了目标输出𝑦,所以术语隐藏层的含义是在训练集中,这些中间结点的准确值我们是不知道到的,也就是说你看不见它们在训练集中应具有的值。 - 多隐藏层的神经网络比 单隐藏层的神经网络工程效果好很多。 - 提升隐层层数或者隐层神经元个数,神经网络“容量”会变大,空间表达力会变强。