NLP&深度学习速通速通

本文最后更新于:2026年1月4日 晚上

所以为什么要在没有深度学习基础的前提下学这门课呢。

0.开始之前

其实是因为小导让我选一门AI相关的课,但是选课的时候我手贱把机器学习给退了……(我感觉我是个傻逼)

不过作为速通之王,上了一半发现太难所以退课这种事情我是绝对干不出来的。

这篇博客行文主要根据课程PPT编写,课程为中国科学院大学网络空间安全的自然语言处理基础。实际上笔者在写这篇博客的时候我已经开始疯狂地翘课了(弃刀贼属于是)如果这篇博客写的有问题,欢迎大家批评指正。

1.绪论

1.1-1.4

PPT有很多“废话”。等到快期末的时候我再在这里整理。

2.语料库与语言知识库

3.深度学习基础模型

3.1 概述

NLP中常用的模型有:

  1. 全连接前馈神经网络:DNN
  2. 卷积神经网络:RNN
  3. 图卷积神经网络:GNN
  4. 循环神经网络:RNN

3.2 DNN

3.2.1 人工神经元模型

如下图PPT所示,简而言之就是输入X[i]和权重W[i]乘积之和,再加上偏置b,送进偏置函数即可得到输出。

人工神经元模型

这里激活函数引用的是非线性激活函数,有如下性质。

  1. 连续并可导(允许少数点上不可导)的非线性函数。
  2. 激活函数及其导函数要尽可能的简单
  3. 激活函数的导函数的值域要在一个合适的区间内

(这几个性质的选择都是有原因的,回头我一定记补上)

常用激活函数汇总表,这里见PPT。不再一一列举。

3.2.2 人工神经网络

互相连接而成即可:

人工神经网络

3.2.3 前馈神经网络DNN

神经元分属不同的层。无反馈(有向无环图),信号从输入层到输出层单向传播。

前反馈神经网络示意图

输入是X,输出是Y。其中参数分两种,一类是权重,一类是偏置。权重的参数表示较为复杂,通俗地讲就是,上标l代表进入第l层之前的权重。这里一定一定一定要注意下标!下标i和j代表从l-1层的第j个神经元到l层第i个神经元之间的权重。如下图所示:

参数下标

翻过来i和j的原因后面讲

再回到上面的“前反馈神经网络示意图”,X和Y都相当于一个矩阵或者说向量,这里X是一个N*1的向量,Y则是M*1。而W则有点近似于一个多维数组。图中WL就代表从第L-1层到第L层的一个权重矩阵。

注意到图中有一个aL,这个东西代表第L层神经元的输出集合。显而易见这个也是一个向量。一个神经元的输出是wx+b,对于一层神经元,可以像图中一样写成向量形式:aL=δ(WL*aL-1+bL)。其中第L层的输出给激活函数的信息我们也可以记作zL,即zL=WL*aL-1+bL

假设第L-1层有j个神经元,第L层有i个神经元。aL-1显然是一个j*1的向量,aLL则是i*1。那么WL就是一个i*j的矩阵。第k列为一个i*1的向量,包含了L-1层的第k个神经元到L层的所有神经元的所有边的权重,而第k行为一个1*j的转置向量,包含了第L层第k个神经元所有来此第L-1层神经元的边的权重。

输入内容也可以单独算一层,记作a0

把它们写成矩阵乘法的运算就是途中这种层次嵌套的形式了:

汇总

3.2.4 梯度下降法

在设计好模型的层数后,我们需要确定W和b,即确定学习参数。所有的参数可以被定义为θ,即:θ={ W1, b1 ,W2,b2…… WL,bL},而模型的输出可以被视为y=f(x,θ)。由于待确定的参数量往往非常巨大,因此解方程的思路不可行,一般用迭代调参法进行过参数学习。即通过不断微步调整参数,让模型输出y递归性地逼近标准输出$\hat{y}$。

为了解决这个问题。需要定义一个损失函数L(θ) ,即用一种方法表示出y与$\hat{y}$的误差大小,并尝试求其最小值。这样就变成了一个关于θ的函数L(θ)求极值点的问题。

L(θ)也可写作C(θ)

常见损失函数:

  1. 0-1损失
  2. 平方损失函数:L(Y,f(X,θ)) = ($\hat{Y}$–f($$,θ))2
  3. 绝对值损失函数:L(Y,f(X,θ)) = |$\hat{Y}$–f(X,θ)|
  4. 对数损失函数
  5. 交叉熵(负对数似然函数)
  6. Hinge损失
  7. 指数损失……

调参相当于一个微步移动的过程,需要设定一个学习率η,这个可以粗略理解为“步长”。然后需要计算出L的**梯度L’(θ)**,通过θi+1 = θi – ηL’(θi+1),不断计算出下一步的θ值,最终找到一个L’(θi)的极小值。

这里需要弄清楚一个概念:梯度。这个是一个向量,包含了L对θ内每个变量上的偏导数。其意义就是“指向”一个函数上升降最快的一个方向。那么θ沿着这个方向的反方向下降(减去梯度乘以学习率η),循环迭代多轮,即可找到或者逼近梯度为0的一个点。

alt text

现在有一个问题是,为什么梯度是上升最快的方向呢?这个问题可以参考这篇博客:

为什么梯度向量∇f指向函数值增长最快的方向

我知道很多人和我一样基础知识稀烂,可以看看这篇补补:

知乎:偏导,全微分,方向导数与梯度,各自有不同风景!

3.2.5 反向传播算法

PPT里内容有点过于简洁了,这里扔个链接可以参考:

深度学习 | 反向传播详解

反向传播算法(Back Propagation,BP)核心思想是:将输出误差以某种形式反传给各层所有的单元,各层按本层误差修正各单元连接权值。

这是以一种有监督学习,采用梯度下降法调参。

首先,需要给出有一个给定的数据集{($X$1,$\hat{y}$1),($X$2,$\hat{y}$2),……,($X$R,$\hat{y}$R)},以及一组学习网络参数θ={ W1, b1 ,W2,b2…… WL,bL}。之后,确定一个损失函数L(θ),


NLP&深度学习速通速通
http://example.com/2025/10/05/Blog/AI/NLP&深度学习速通/NLP&深度学习速通/
作者
Jmp.Cliff
发布于
2025年10月5日
许可协议