[NLP复习笔记] 神经网络及BP算法
1. 神经网络
1.1 神经元
神经元(Neuron)或节点(Node) 是神经网络的基本单元。下图是一个简单的神经元示意图,
在进行数据的加权和偏置处理,以及通过 激活函数
最后生成一个值/向量

1.2 神经网络
通常情况下,神经网络有三种类型的层,每个层都由若干个神经元组成:
-
输入层(
):这是数据进入神经网络的地方,不进行任何计算。 -
隐藏层(
):介于输入层和输出层之间的层,可以有一个或多个。隐藏层进行数据的加权和偏置处理,以及激活函数的应用。 -
输出层(
):生成最终的输出,如分类预测或回归值。
在输入层到隐藏层、隐藏层到输出层之间,往往都会有 权重矩阵,权重决定了输入对于输出的贡献大小,是神经网络中的可学习参数。

图中,
假设输入层
得到隐藏层向量,而这个
假设输出层
得到输出。不过,往往会再通过一个激活函数,此处一般采用
2. 正向传播
正向传播 其实就是将一个样本
最后,在正向传播结束后产生了预测输出
在神经网络中,损失函数
对于当前问题,我们有如下的损失函数
3. 反向传播(BP算法)
3.1 BP算法简介
在前面,我们定义了损失函数
使用这些梯度以及一个学习率参数来更新网络中的权重,我们通常采用 梯度下降法 。
经过反复迭代后,最小化损失函数,得到最优参数(权重)。
但是,我们无法直接得到导数

3.2 典型示例
我们用一个比较简单的示例来理解

然后,我们从损失函数开始需要进行反向传播。因此,我们需要损失函数中每个权重对应的导数。
由链式求导法则:

然而实际上的问题不止这么简单,对于一个分类问题,损失函数往往采用 交叉熵损失,且往往涉及激活函数
下图就是一个简单的示例:

图中,输入层
类似于前面那个非常简陋的例子的过程,采用链式求导法则,可以得到如下导数公式的推导:
-
每一层的表达式
-
损失函数
-
阶段求导
-
链式求导
PS:这个是作业里的题目,直接贴图片了,还是很好理解的。
参考
《机器学习》周志华
一切都是命运石之门的选择,本文章来源于博客园,作者:MarisaMagic,出处:https://www.cnblogs.com/MarisaMagic/p/17950907,未经允许严禁转载
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」