社交网站模板,精美网页设计模板,如何申请微信企业号,济南市新增风险点信息公布文章目录 1 MLP知识引入1.1 深度学习的发展1.2 神经元(Neuron)1.3 感知机(Perception)1.3.1 介绍1.3.2 感知机在二分类中的应用1.3.2.1 理论1.3.2.2 感知机计算实例 1.3.3 感知机总结 2 MLP(Multilayer Perceptron)2.1 介绍2.2 反向传播2.2.1 实例2.2.2 反向传播计算实例 3 总结… 文章目录 1 MLP知识引入1.1 深度学习的发展1.2 神经元(Neuron)1.3 感知机(Perception)1.3.1 介绍1.3.2 感知机在二分类中的应用1.3.2.1 理论1.3.2.2 感知机计算实例 1.3.3 感知机总结 2 MLP(Multilayer Perceptron)2.1 介绍2.2 反向传播2.2.1 实例2.2.2 反向传播计算实例 3 总结 多层感知机MLP 是一种基础的人工神经网络
Artificial Neural Network, ANN结构主要用于分类和回归任务。它采用
全连接层结构每一层的所有神经元与下一层的所有神经元相连。由于其能够逼近复杂的非线性映射关系MLP 成为机器学习模型中的重要组成部分。 1 MLP知识引入
1.1 深度学习的发展
深度学习的核心 是基于人工神经网络的算法这些算法无需在特征设计和工程阶段依赖领域专家的输入。传统机器学习模型的性能高度依赖于数据质量以及特征的有效性而深度学习通过自动学习数据的特征来解决这一问题。算法会从数据集中提取模式并将这些特征组合成更高层次的抽象表示。这种减少人工干预的特性使得深度学习算法能够更快速地适应新数据。
深度学习为何颠覆传统
自动化特征提取深度学习算法能够自主学习数据的特征而无需手动设计特征。多层次特征表示通过多层神经网络结构深度学习可以从简单到复杂逐层学习数据中的模式和特征。广泛的实际应用从自动驾驶到语音助手从人脸识别到语音转文本深度学习的应用已经深入日常生活。
神经网络的灵感 神经网络的设计受大脑神经元结构的启发但并不是对其的精确建模。尽管我们仍然对大脑的工作原理了解有限但其智能的演化能力为科学研究提供了启示。今天的深度学习不试图复制大脑的工作方式而是专注于实现能够学习多层模式表示的系统。
历史与发展 深度学习的进步并非一蹴而就而是硬件性能提升与数据可用性满足复杂算法计算需求的结果。从最初模仿神经元的简单结构到如今广泛应用的复杂模型深度学习经历了漫长的探索和发展路径。
结论 深度学习的快速发展得益于自动化的特征学习能力和多层模式表示的强大功能。
1.2 神经元(Neuron)
神经元的起源
在20世纪40年代神经生理学家 Warren McCulloch 和逻辑学家 Walter Pitts 合作创建了一个模型用于模拟大脑的工作方式。他们的模型是一种简单的线性模型能够根据一组输入值和权重生成正或负的输出其数学形式为 f ( x , w ) x 1 w 1 x 2 w 2 ⋯ x n w n f(x, w) x_1w_1 x_2w_2 \cdots x_nw_n f(x,w)x1w1x2w2⋯xnwn
其中 x i x_i xi 是输入。 w i w_i wi 是对应的权重。输出值决定模型的激活情况。
这种计算模型被命名为“神经元”因为它试图模仿大脑神经元的核心工作机制。类似于大脑神经元接收电信号McCulloch 和 Pitts 的神经元 通过接收输入信号并在信号足够强时将其传递给其他神经元。
神经元模型与逻辑门
最早的神经元应用是复制逻辑门的功能它处理一到两个二进制输入并使用布尔函数来实现激活。例如
与门 (AND Gate) x 1 ∧ x 2 当且仅当输入之和 ≥ 2 时激活 x_1 \land x_2 \quad \text{当且仅当输入之和 $\geq 2$ 时激活} x1∧x2当且仅当输入之和 ≥2 时激活或门 (OR Gate) x 1 ∨ x 2 当输入至少一个为 1 时激活 x_1 \lor x_2 \quad \text{当输入至少一个为 1 时激活} x1∨x2当输入至少一个为 1 时激活 这些逻辑门展示了神经元如何通过简单的权重和阈值实现布尔逻辑操作。
模型的局限性
尽管 McCulloch 和 Pitts 的神经元模型具有创新性但它存在一个关键问题它不能像大脑一样“学习”。权重需要提前手动设定模型无法根据数据自适应地调整参数。 Frank Rosenblatt 的感知机
十年后Frank Rosenblatt 扩展了 McCulloch 和 Pitts 的神经元模型提出了一种能够“学习”权重的算法。这种算法通过数据训练来调整权重从而生成目标输出。这一改进发展出了感知机模型为神经网络的进一步发展奠定了基础。
1.3 感知机(Perception)
1.3.1 介绍
尽管如今的感知机已经非常成熟但最初它被设计为一种图像识别机器其名称来源于人类的感知功能如感知、识别和分析图像。
感知机的核心思想 是构建一种能够直接从物理环境如光、声音、温度等中获取输入并对其进行处理的机器而无需人类的干预。感知机基于神经元的计算单元类似于之前的模型每个神经元接收一系列输入和权重。
感知机的主要特点 加权和与阈值 在感知机模型中输入按照权重进行加权求和当加权和超过预定义的阈值时神经元会“激活”产生输出。其数学形式为 y { 1 , if ∑ i w i x i − T 0 0 , otherwise y \begin{cases} 1, \text{if } \sum_i w_i x_i - T 0 \\ 0, \text{otherwise} \end{cases} y{1,0,if ∑iwixi−T0otherwise 其中 T T T 是阈值。 激活函数 感知机使用激活函数决定神经元是否激活。最初的感知机使用 阶跃函数 或 Sigmoid 函数它们将连续的加权和映射到 0 或 1。
1.3.2 感知机在二分类中的应用
1.3.2.1 理论
感知机可以作为一个 二分类模型通过控制激活函数的输出定义一个线性决策边界。目标是找到一个分隔超平面最小化误分类点与决策边界之间的距离。其损失函数为 D ( w , c ) − ∑ i ∈ M y i ( x i w i c ) D ( w , c ) − ∑ i ∈ M y i ( x i w i c ) D(w, c) - \sum_{i \in M} y_i (x_i w_i c)D(w, c) - \sum_{i \in M} y_i (x_i w_i c) D(w,c)−i∈M∑yi(xiwic)D(w,c)−i∈M∑yi(xiwic) 其中 M M M 是所有误分类样本的集合。 对于正确分类的样本没有惩罚也就是它们不会触发权重和偏置的更新。 y i y_i yi 是样本的真实标签 1 1 1 或 − 1 -1 −1 x i x_i xi 是样本的输入值。 w w w 是权重 c c c 是偏置。
损失函数的目的是惩罚误分类样本并通过优化 w w w 和 c c c使误分类样本尽量减少。
优化方向
感知机通过 随机梯度下降Stochastic Gradient Descent, SGD 优化损失函数。如果数据是线性可分的SGD 保证在有限步数内收敛。通过最小化损失 D ( w , c ) D(w, c) D(w,c)更新参数 w w w 和 c c c使得误分类被纠正 权重 w w w 和偏置 c c c 将根据误分类样本的贡献进行调整。 直到所有样本被正确分类或损失达到最小。
损失函数的核心思想是只惩罚误分类样本最终通过调整参数找到一个决策边界来正确分类所有数据。 权重和偏执的更新梯度计算
(1)权重
对权重 w w w 的偏导数 ∂ D ∂ w ∂ ∂ w ( − ∑ i ∈ M y i ⋅ ( x i ⋅ w c ) ) \frac{\partial D}{\partial w} \frac{\partial}{\partial w} \left( - \sum_{i \in M} y_i \cdot (x_i \cdot w c) \right) ∂w∂D∂w∂(−i∈M∑yi⋅(xi⋅wc))
展开后 ∂ D ∂ w − ∑ i ∈ M y i ⋅ ∂ ∂ w ( x i ⋅ w c ) \frac{\partial D}{\partial w} - \sum_{i \in M} y_i \cdot \frac{\partial}{\partial w} (x_i \cdot w c) ∂w∂D−i∈M∑yi⋅∂w∂(xi⋅wc)
由于偏置 c c c 与 w w w 无关忽略它的导数部分得 ∂ D ∂ w − ∑ i ∈ M y i ⋅ x i \frac{\partial D}{\partial w} - \sum_{i \in M} y_i \cdot x_i ∂w∂D−i∈M∑yi⋅xi
梯度为误分类样本的 y i ⋅ x i y_i \cdot x_i yi⋅xi 之和。
(2)偏置
对偏置 c c c 的偏导数 ∂ D ∂ c ∂ ∂ c ( − ∑ i ∈ M y i ⋅ ( x i ⋅ w c ) ) \frac{\partial D}{\partial c} \frac{\partial}{\partial c} \left( - \sum_{i \in M} y_i \cdot (x_i \cdot w c) \right) ∂c∂D∂c∂(−i∈M∑yi⋅(xi⋅wc))
展开后 ∂ D ∂ c − ∑ i ∈ M y i ⋅ ∂ ∂ c ( x i ⋅ w c ) \frac{\partial D}{\partial c} - \sum_{i \in M} y_i \cdot \frac{\partial}{\partial c} (x_i \cdot w c) ∂c∂D−i∈M∑yi⋅∂c∂(xi⋅wc)
由于 x i ⋅ w x_i \cdot w xi⋅w 与 c c c 无关其导数为 0偏置 c c c 的导数为 1因此 ∂ D ∂ c − ∑ i ∈ M y i \frac{\partial D}{\partial c} - \sum_{i \in M} y_i ∂c∂D−i∈M∑yi
梯度为误分类样本的 y i y_i yi 之和。
(3)权重和偏置的更新公式
利用随机梯度下降SGD根据学习率 η \eta η权重和偏置的更新公式如下 权重 w w w 的更新公式 w w η ⋅ ∑ i ∈ M y i ⋅ x i w w \eta \cdot \sum_{i \in M} y_i \cdot x_i wwη⋅i∈M∑yi⋅xi 偏置 c c c 的更新公式 c c η ⋅ ∑ i ∈ M y i c c \eta \cdot \sum_{i \in M} y_i ccη⋅i∈M∑yi 激活函数
损失函数优化完成后模型的权重 w w w 和偏置 c c c 用于预测新的样本。激活函数将模型输出值转化为分类结果。 Sigmoid 函数 定义为 f ( x ) 1 1 e − x f(x) \frac{1}{1 e^{-x}} f(x)1e−x1将任意实数映射到 [ 0 , 1 ] [0, 1] [0,1]使其适合输出概率值。在分类问题中一般小于0.5为0大于等于0.5为1。Sigmoid 的非线性特性使其在感知机的早期应用中广泛使用。 ReLU修正线性单元 定义为 f ( x ) max ( 0 , x ) f(x) \max(0, x) f(x)max(0,x)ReLU 是近年来深度学习中最常用的激活函数之一。优势 计算高效。避免了 Sigmoid 的梯度消失问题。对输入尺度不敏感缩放不影响其特性。 1.3.2.2 感知机计算实例
假设以下数据集用于二分类任务
样本编号 x i x_i xi y i y_i yi真实标签1212-1-130.5-1
模型初始参数为权重 w 0.5 w 0.5 w0.5偏置 c − 1 c -1 c−1
模型输出计算
计算每个样本的线性输出 z x i ⋅ w c z x_i \cdot w c zxi⋅wc
样本编号 z x i ⋅ w c z x_i \cdot w c zxi⋅wc1 2 ⋅ 0.5 − 1 0 2 \cdot 0.5 - 1 0 2⋅0.5−102 − 1 ⋅ 0.5 − 1 − 1.5 -1 \cdot 0.5 - 1 -1.5 −1⋅0.5−1−1.53 0.5 ⋅ 0.5 − 1 − 0.75 0.5 \cdot 0.5 - 1 -0.75 0.5⋅0.5−1−0.75 激活函数
这里以ReLU激活函数为例其定义为 f ( z ) max ( 0 , z ) f(z) \max(0, z) f(z)max(0,z)
对上述线性输出应用 ReLU 激活函数得到
样本编号 z z zReLU 输出 f ( z ) f(z) f(z)1 0 0 0 0 0 02 − 1.5 -1.5 −1.5 0 0 03 − 0.75 -0.75 −0.75 0 0 0 误分类判断
分类规则
对于正类样本 y i 1 y_i 1 yi1 f ( z ) 0 f(z) 0 f(z)0。对于负类样本 y i − 1 y_i -1 yi−1 f ( z ) 0 f(z) 0 f(z)0。
分类结果
样本 1 f ( z ) 0 f(z) 0 f(z)0但 y 1 1 y_1 1 y11误分类。样本 2 f ( z ) 0 f(z) 0 f(z)0符合 y 2 − 1 y_2 -1 y2−1正确分类。样本 3 f ( z ) 0 f(z) 0 f(z)0符合 y 3 − 1 y_3 -1 y3−1正确分类。
误分类样本集合 M { 1 } M \{1\} M{1}。 使用随机梯度下降SGD更新参数
感知机的损失函数定义为 D ( w , c ) − ∑ i ∈ M y i ⋅ z D(w, c) -\sum_{i \in M} y_i \cdot z D(w,c)−∑i∈Myi⋅z
对权重 w w w 和偏置 c c c 的更新公式为
权重更新 w w η ⋅ y i ⋅ x i w w \eta \cdot y_i \cdot x_i wwη⋅yi⋅xi偏置更新 c c η ⋅ y i c c \eta \cdot y_i ccη⋅yi
设学习率 η 0.1 \eta 0.1 η0.1对于误分类样本 1
更新权重 w 0.5 0.1 ⋅ 1 ⋅ 2 0.5 0.2 0.7 w 0.5 0.1 \cdot 1 \cdot 2 0.5 0.2 0.7 w0.50.1⋅1⋅20.50.20.7更新偏置 c − 1 0.1 ⋅ 1 − 1 0.1 − 0.9 c -1 0.1 \cdot 1 -1 0.1 -0.9 c−10.1⋅1−10.1−0.9
更新后的模型参数为 w 0.7 w 0.7 w0.7 c − 0.9 c -0.9 c−0.9 重新计算模型输出并分类
使用更新后的参数重新计算线性输出 z x i ⋅ w c z x_i \cdot w c zxi⋅wc
样本编号 x i x_i xi z x i ⋅ w c z x_i \cdot w c zxi⋅wc12 2 ⋅ 0.7 − 0.9 0.5 2 \cdot 0.7 - 0.9 0.5 2⋅0.7−0.90.52-1 − 1 ⋅ 0.7 − 0.9 − 1.6 -1 \cdot 0.7 - 0.9 -1.6 −1⋅0.7−0.9−1.630.5 0.5 ⋅ 0.7 − 0.9 − 0.55 0.5 \cdot 0.7 - 0.9 -0.55 0.5⋅0.7−0.9−0.55
对 z z z 应用 ReLU 激活函数
样本编号 z z zReLU 输出 f ( z ) f(z) f(z)1 0.5 0.5 0.5 0.5 0.5 0.52 − 1.6 -1.6 −1.6 0 0 03 − 0.55 -0.55 −0.55 0 0 0
分类结果
样本 1 f ( z ) 0.5 0 f(z) 0.5 0 f(z)0.50分类为正类正确分类。样本 2 f ( z ) 0 f(z) 0 f(z)0分类为负类正确分类。样本 3 f ( z ) 0 f(z) 0 f(z)0分类为负类正确分类。 我们可以发现这个例子中没有激活函数的非线性参与其更新公式只依赖线性输出 z x i ⋅ w c z x_i \cdot w c zxi⋅wc。在求梯度时完全由输入值 x i x_i xi 和标签 y i y_i yi 决定这意味着在感知机模型中没有梯度消失的问题吗
从计算流程来看确实没有直接涉及 激活函数的斜率导数而是简单地采用了 ReLU 激活函数的值来判断正负输出从而决定分类结果。上面的例子本质上是在模拟一个感知机的行为而不是一个典型的 MLP 或深度神经网络中的反向传播过程。
在感知机的流程中由于激活函数的输出是离散的如正值或零参数的更新规则直接基于分类错误的样本而不是梯度的具体值。这种情况和 MLP 或深度学习中 通过梯度下降法更新权重 的逻辑不同。也就是说在感知机模型中梯度消失问题几乎不会出现因为感知机的更新规则只依赖于分类错误的样本。每次更新都是直接加减一个学习率乘以样本特征的调整量没有涉及梯度衰减的问题。但实际上感知机肯定是有梯度消失的问题的。 总结
误分类样本触发参数更新仅误分类样本影响模型的权重和偏置。ReLU 的作用对线性输出进行截断保留正值表示神经元激活。优化流程 每次迭代通过 SGD 更新参数使误分类样本数量逐步减少。最终模型通过 ReLU 激活函数对输出值进行分类实现正确分类。
1.3.3 感知机总结
感知机接受输入并为每个输入分配一个初始权重。通过计算加权和 z ∑ x i w i c z \sum x_i w_i c z∑xiwic 后ReLU 激活函数决定输出值。ReLU 的定义为 f ( z ) max ( 0 , z ) f(z) \max(0, z) f(z)max(0,z)
感知机使用随机梯度下降SGD来优化权重以最小化误分类点与分类边界之间的距离。一旦 SGD 收敛数据集将被一个线性超平面分为两个区域。 感知机的局限性
尽管感知机可以表示任意逻辑电路但它无法表示 XOR 问题即当输入不同的时候输出为 1。例如 XOR 问题的输入和输出如下
输入 ( 0 , 0 ) (0, 0) (0,0)输出 0 0 0输入 ( 1 , 1 ) (1, 1) (1,1)输出 0 0 0输入 ( 0 , 1 ) (0, 1) (0,1) 或 ( 1 , 0 ) (1, 0) (1,0)输出 1 1 1
感知机的线性性质导致它无法解决这种非线性问题即单一感知机无法应用于非线性数据。举一个例子
是否下雨 ( x 1 x_1 x1)是否有车 ( x 2 x_2 x2)是否需要带伞 ( y y y)0 不下雨0 没有车0 不需要带伞0 不下雨1 有车0 不需要带伞1 下雨0 没有车1 需要带伞1 下雨1 有车0 不需要带伞
2 MLP(Multilayer Perceptron)
2.1 介绍
MLP是为了解决单层感知机的局限性而发展起来的。它是一种神经网络其中输入与输出之间的映射是非线性的。MLP 包括输入层、输出层和一个或多个隐藏层每个隐藏层由多个神经元堆叠在一起。
在单层感知机中神经元必须具有一个激活函数如 ReLU 或 Sigmoid用于设置阈值。而在 MLP 中神经元可以使用任意的激活函数。 MLP 属于前馈算法 (Feedforward Algorithms) 的范畴具体工作过程如下
输入数据与初始权重结合通过加权和计算出中间值。结果通过激活函数处理如 ReLU将线性组合映射到非线性空间。每一层的输出会传递到下一层逐层传播直到最终输出层。
这种逐层计算的方式确保每一层都能够基于输入生成更高层次的特征表示最终输出层得出最终的预测结果。
2.2 反向传播
2.2.1 实例
如果算法仅仅在每个神经元中计算加权和将结果传播到输出层并停止模型将无法学习能够最小化损失函数的权重。这种方式不会实际优化模型参数。
反向传播 (Backpropagation) 的引入解决了这个问题
它通过链式法则从输出层向输入层逐层计算梯度。更新每一层的权重以最小化损失函数确保模型能够逐渐优化。
反向传播的引入使得 MLP 成为一种功能强大的神经网络能够在复杂的非线性任务中表现优异。 反向传播是允许多层感知机MLP学习的机制。它通过迭代调整网络中的权重以最小化损失函数的值。
反向传播正常工作的一个关键要求是神经元中将输入和权重组合的函数如加权和和激活函数如 ReLU必须是可微分的。这些函数必须具有有界的导数因为梯度下降Gradient Descent通常是 MLP 中的优化方法。 反向传播的步骤 前向传播 输入层通过初始权重计算加权和将结果传递给隐藏层。激活函数应用于隐藏层输出结果继续传播至输出层。损失函数如均方误差 MSE计算预测值与实际值的差异。 反向传播 计算损失函数相对于每个权重的梯度。从输出层开始通过链式法则将误差逐层传播回去。更新每一层的权重以最小化损失函数。
梯度下降中的权重更新公式
在每次迭代中通过前向传播计算所有层的加权和后利用均方误差Mean Squared Error, MSE计算损失并基于损失对所有输入-输出对计算梯度。然后通过反向传播将梯度从输出层传递回第一个隐藏层逐层更新权重。
权重的更新公式如下 Δ w ( t ) − ϵ d E d w ( t ) α Δ w ( t − 1 ) \Delta w(t) -\epsilon \frac{dE}{dw(t)} \alpha \Delta w(t-1) Δw(t)−ϵdw(t)dEαΔw(t−1)
其中 Δ w ( t ) \Delta w(t) Δw(t) 表示当前迭代的权重更新值。 ϵ \epsilon ϵ 表示学习率用于控制每次更新的步长。 d E d w ( t ) \frac{dE}{dw(t)} dw(t)dE 表示损失函数 E E E 对权重 w ( t ) w(t) w(t) 的梯度。 α Δ w ( t − 1 ) \alpha \Delta w(t-1) αΔw(t−1) 是动量项其中 α \alpha α 是动量系数 Δ w ( t − 1 ) \Delta w(t-1) Δw(t−1) 是上一轮的权重更新值。
更新过程 梯度计算通过均方误差对权重 w ( t ) w(t) w(t) 计算损失函数的偏导数 d E d w ( t ) \frac{dE}{dw(t)} dw(t)dE。 动量引入动量项 α Δ w ( t − 1 ) \alpha \Delta w(t-1) αΔw(t−1) 可以加速梯度下降特别是在梯度方向变化较小时避免震荡。 权重更新当前权重更新值 Δ w ( t ) \Delta w(t) Δw(t) 是梯度下降和动量的加权组合。
收敛条件
这个过程会持续迭代直到每对输入-输出的梯度收敛即新计算的梯度变化小于指定的收敛阈值convergence threshold。一旦收敛网络的权重被优化到能够最小化损失函数的值。
2.2.2 反向传播计算实例
假设我们有以下公式 z ( x y ) × w z (x y) \times w z(xy)×w
这里我们有三个变量x、y 和 w。假设这些变量有如下数值 x 2 x 2 x2 y 3 y 3 y3 w 4 w 4 w4
根据公式 z ( x y ) × w z (x y) \times w z(xy)×w我们可以拆解计算过程
计算 q x y q x y qxy得到 q 2 3 5 q 2 3 5 q235。计算 z q × w z q \times w zq×w得到 z 5 × 4 20 z 5 \times 4 20 z5×420。
问题如何计算每个变量对输出 z z z 的影响
假设我们想知道如果 x、y 或 w 的值发生一点变化输出 z 会受到多大影响。这就是 梯度 的作用反向传播可以帮助我们计算这些梯度。
反向传播
反向传播的目标是计算每个变量的梯度即 ∂ z ∂ x \frac{\partial z}{\partial x} ∂x∂zx 对 z 的影响 ∂ z ∂ y \frac{\partial z}{\partial y} ∂y∂zy 对 z 的影响 ∂ z ∂ w \frac{\partial z}{\partial w} ∂w∂zw 对 z 的影响
我们使用 链式法则Chain Rule从输出 z 逐步回溯计算每个变量的梯度。
具体计算步骤
(1)计算 ∂ z ∂ q \frac{\partial z}{\partial q} ∂q∂z
因为 z q × w z q \times w zq×w对 q 求偏导数 ∂ z ∂ q w 4 \frac{\partial z}{\partial q} w 4 ∂q∂zw4
这表示 q 每增加 1z 将增加 4。
(2)计算 ∂ z ∂ w \frac{\partial z}{\partial w} ∂w∂z
继续计算 w 对 z 的影响因为 z q × w z q \times w zq×w对 w 求偏导数 ∂ z ∂ w q 5 \frac{\partial z}{\partial w} q 5 ∂w∂zq5
这表示 w 每增加 1z 将增加 5。
(3)计算 ∂ z ∂ x \frac{\partial z}{\partial x} ∂x∂z 和 ∂ z ∂ y \frac{\partial z}{\partial y} ∂y∂z
因为 q x y q x y qxy我们可以对 x 和 y 分别求偏导数 ∂ q ∂ x 1 \frac{\partial q}{\partial x} 1 ∂x∂q1 ∂ q ∂ y 1 \frac{\partial q}{\partial y} 1 ∂y∂q1
接着利用链式法则我们可以得到 x 和 y 对 z 的影响 ∂ z ∂ x ∂ z ∂ q × ∂ q ∂ x 4 × 1 4 \frac{\partial z}{\partial x} \frac{\partial z}{\partial q} \times \frac{\partial q}{\partial x} 4 \times 1 4 ∂x∂z∂q∂z×∂x∂q4×14 ∂ z ∂ y ∂ z ∂ q × ∂ q ∂ y 4 × 1 4 \frac{\partial z}{\partial y} \frac{\partial z}{\partial q} \times \frac{\partial q}{\partial y} 4 \times 1 4 ∂y∂z∂q∂z×∂y∂q4×14
通过反向传播我们得到了每个变量的梯度 ∂ z ∂ x 4 \frac{\partial z}{\partial x} 4 ∂x∂z4 ∂ z ∂ y 4 \frac{\partial z}{\partial y} 4 ∂y∂z4 ∂ z ∂ w 5 \frac{\partial z}{\partial w} 5 ∂w∂z5
这些梯度告诉我们
x 和 y 每增加 1z 会增加 4。w 每增加 1z 会增加 5。
反向传播的意义
反向传播帮助我们计算每个变量的梯度这是优化模型参数的关键。通过梯度我们知道如何调整 x、y 和 w 来增加或减少 z。
反向传播是从输出开始回溯逐层计算每个变量对最终输出的影响梯度。在深度学习中这一过程用于计算模型参数的梯度从而更新模型的权重以最小化损失函数并提高模型的预测准确性
注意直接对各个变量求导非常复杂这里通过链式法则一步步计算各个变量的梯度确保了梯度的计算可以复用中间结果提高了计算效率特别是对于深度神经网络而言
3 总结
MLP多层感知机是一种前馈神经网络由输入层、一个或多个隐藏层和输出层组成。与单层感知机相比MLP 通过引入非线性激活函数如 ReLU、Sigmoid和隐藏层可以捕捉复杂的非线性关系从而解决感知机无法处理的问题例如 XOR 问题。其主要优点包括
表达能力强能够拟合任意复杂的非线性函数。自动特征提取隐藏层通过学习数据的隐含模式实现对输入的多层次表示。灵活性可扩展多个隐藏层和神经元适应不同任务需求。
下一篇文章中我们将通过一个实际的 MLP 代码例子深入学习如何实现 MLP 解决实际问题的完整过程。