版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第7章神经网络01第7章神经网络理解前向计算、误差反传与卷积特征提取数据挖掘基础及应用本章学习路线02神经网络要素理解神经元、激活和参数更新。BP神经网络逐层前向计算,按链式法则求导。卷积神经网络观察卷积、池化和全连接计算。实验与评价复现实例,比较训练与验证。学习目标:能完成小型网络的前向和反向计算,说明CNN各层作用,并设计基本的比较实验。图7-1神经网络知识结构图神经元的计算03接收输入输入特征x,连接权重w。加权求和z=Σⱼwⱼxⱼ+b偏置使结果平移。激活变换a=f(z)引入非线性。传递输出a作为下一层输入,或任务的输出。可学习参数训练过程调整权重w和偏置b。激活函数的形式通常由网络设计确定。权重的正负和大小表示当前计算中的作用,不能直接解释为变量的因果影响。偏置是模型参数,训练时可以更新。它与学习率、隐藏层大小等超参数不同。一个神经元的前向手算04输入与参数x=(1,2),w=(0.2,−0.1)。b=0.1,使用Sigmoid。z=0.2×1−0.1×2+0.1=0.1。激活输出σ(z)=1/(1+e⁻ᶻ)。a=σ(0.1)≈0.5250。先算线性组合,再算激活。后续反向计算沿用本例。本页参数是用于手算的教学设定。输出是否适合作为类别概率,还取决于模型训练与校准。多层网络中的非线性05只有仿射变换时第一层:h=W₁x+b₁。第二层:z=W₂h+b₂。代入后:z=(W₂W₁)x+(W₂b₁+b₂)。仍然是输入的仿射变换。隐藏层加入非线性h=f(W₁x+b₁)。z=W₂h+b₂。非线性激活改变表示能力。例如XOR的两组对角样本,需要比一条直线更复杂的边界。这里讨论隐藏层的表达能力。分类输出端的Sigmoid或Softmax还承担把分数转换为概率形式的作用。Sigmoid与Tanh的函数曲线06Sigmoid:σ(z)=1/(1+e⁻ᶻ)Tanh:输出位于(−1,1)两者在正、负两端逐渐饱和,导数接近0。Tanh以0为中心,但这并不保证所有网络都更容易训练。ReLU与LeakyReLU的函数曲线07ReLU(z)=max(0,z)LeakyReLU:负半轴斜率0.01ReLU在负半轴的梯度为0,神经元可能长期不激活。LeakyReLU保留小斜率,缓解这一问题。激活函数的导数与饱和08函数导数训练时的关注点Sigmoidσ(z)[1−σ(z)]最大值0.25,两端接近0Tanh1−tanh²(z)两端接近0ReLUz>0时为1,z<0时为0在z=0处不可导,代码需约定LeakyReLUz>0时为1,z<0时为0.01负半轴保留小梯度Swish:zσ(z)σ(z)+zσ(z)[1−σ(z)]平滑,可出现负输出ReLU导数可写为(Z>0)。Sigmoid的A(1−A)不能直接用于ReLU隐藏层。任务、输出与损失函数09任务常见输出形式常见损失连续值回归一个或多个连续输出均方误差MSE二分类一个Sigmoid输出二元交叉熵BCE互斥多分类各类别分数经Softmax转换多分类交叉熵Softmax的归一化pₖ=exp(zₖ)/Σⱼexp(zⱼ),各类别概率之和为1。Sigmoid与MSE也可组合用于教学,但其输出梯度与BCE组合不同。本章例7.1保留ReLU隐藏层、Sigmoid输出和MSE损失,便于与教材代码对应。梯度下降的参数更新10θ新=θ旧−α∇θL梯度与更新方向梯度指向局部增长最快的方向。沿负梯度方向尝试降低损失。θ包括各层权重和偏置。α是学习率。步长与收敛学习率过小,下降可能缓慢。过大时可能振荡或发散。非凸网络可能遇到鞍点和局部解。一次更新不保证到达全局最优。反向传播负责计算梯度,优化器负责根据梯度更新参数,两者承担不同步骤。学习率对更新轨迹的影响11L(θ)=(θ−3)²从θ₀=0开始。梯度为2(θ−3)。α=0.1:逐步接近3。α=0.5:一步到达3。α=1.1:振荡幅度扩大。曲线由更新公式逐步计算。该一维函数的合适步长不能直接照搬到复杂网络。梯度估计与优化器12选择基本作用需要区分全批量/小批量用全部或部分样本估计梯度影响一次更新的样本数SGD按当前梯度执行更新学习率和批量大小影响轨迹Momentum累积历史梯度方向帮助平滑部分振荡AdaGrad/RMSProp根据梯度历史调整参数步幅具体累积方式不同Adam结合一阶和二阶矩估计仍需选择学习率和验证效果自适应优化器也不保证更好的泛化。比较优化器时,统一网络、数据划分、训练预算与评价方法。Dropout的训练与推断13训练时的随机屏蔽设丢弃概率p=0.5。输入激活a=(2,4,6,8)。本次掩码m=(1,0,1,0)。采用反向缩放:a′=m⊙a/(1−p)=(4,0,12,0)。推断时的完整计算使用反向缩放的实现,推断时关闭随机屏蔽。本例激活保留为(2,4,6,8)。训练掩码通常每次重新采样。丢弃概率需要通过验证选择。这里展示一种具体随机掩码。按1/(1−p)缩放,使训练时每个激活的期望与输入一致。批量归一化的计算14x̂=(x−μB)/√(σB²+ε),y=γx̂+β单特征小批量示例x=(1,3),均值μB=2。按总体口径计算方差σB²=1。忽略极小ε时,x̂≈(−1,1)。设γ=2、β=1,输出≈(−1,3)。统计量与可学习参数均值和方差来自训练批量。γ与β通过训练更新。CNN通常按通道聚合批量和空间。小批量可能使统计量不稳定。BN可改善训练条件,其效果依赖具体网络与数据。不能保证每个任务都会提高性能。训练模式与推断模式15模块训练阶段通常的推断阶段Dropout随机屏蔽并按实现进行缩放关闭随机屏蔽BatchNormalization使用当前批量统计并更新运行统计使用训练累积的运行统计权重与偏置通过梯度更新固定参数进行预测模式切换影响结果验证和测试需要切换到推断模式,并关闭梯度记录以节省资源。BN的具体行为还取决于是否启用运行统计,不能只按批量大小判断。模式切换与停止梯度记录是两件事。批量归一化也不能替代对原始数据缺失、编码和尺度的处理。多层前馈网络的结构16按层理解连接图中输入有3个特征。隐藏层宽度依次为2、3。输出端有2个神经元。前向计算逐层传递激活。反向计算逐层传递梯度。本页沿用教材图7-3。后续XOR代码采用2个输入、3个隐藏单元和1个输出,是另一种网络配置。图7-3反向传播示意图批量前向计算的维度17变量形状含义XN×dN个样本,每个d个特征W₁,b₁d×h,1×h隐藏层权重和广播偏置Z₁=XW₁+b₁N×h隐藏层线性结果A₁=ReLU(Z₁)N×h隐藏层激活W₂,b₂h×1,1×1二分类输出层参数P=σ(A₁W₂+b₂)N×1每个样本一个输出教材部分推导按列放样本,代码按行放样本。本课后续采用行样本约定,转置和矩阵乘法随之对应。一个隐藏层的前向计算18隐藏层:2个输入、2个单元x=(1,2)。W₁=[[1,−1],[0.5,1]]。b₁=(0,0)。z₁=xW₁+b₁=(2,1)。a₁=ReLU(z₁)=(2,1)。输出层:1个单元W₂=(0.5,−1)ᵀ,b₂=0.2。z₂=2×0.5+1×(−1)+0.2=0.2。P=σ(0.2)≈0.5498。每一层的输入来自上一层输出。本页数值是独立的教学设定,用于说明维度与计算顺序,与例7.1的随机初始化参数不同。预测值与损失函数19MSE=(1/N)Σᵢ(Pᵢ−yᵢ)²均方误差的输出导数单输出情况下:∂L/∂Pᵢ=2(Pᵢ−yᵢ)/N。还需乘Sigmoid导数,才能得到对输出层z₂的梯度。二元交叉熵的组合BCE=−mean[ylogP+(1−y)log(1−P)]。与Sigmoid组合后,对z₂的梯度为(P−y)/N。损失定义是否含1/2、使用求和还是平均,都会影响梯度中的常数。程序应与所写公式一致。反向传播中的链式法则20∂L/∂w=(∂L/∂a)(∂a/∂z)(∂z/∂w)损失到输出由预测值与标签,计算损失的导数。经过激活乘当前激活函数对应的局部导数。经过线性层输入参与权重梯度,权重传递激活梯度。逐层求导累积所有路径,得到各参数梯度。BP是按计算图应用链式法则的过程。先得到当前参数下的全部梯度,再统一更新参数。单神经元的反向手算21损失与输出端梯度沿用z=0.1,a≈0.5250。真实标签y=1。L=½(a−y)²≈0.11282。δ=∂L/∂z=(a−y)a(1−a)≈−0.11846。权重与偏置梯度∂L/∂wⱼ=δxⱼ。∂L/∂b=δ。∂L/∂w₁≈−0.11846。∂L/∂w₂≈−0.23692。∂L/∂b≈−0.11846。这里使用½平方误差便于手算。XOR代码采用平均平方误差,输出端梯度会多出2/N。一次更新前后的变化22量更新前α=0.1更新后w₁0.200000.21185w₂−0.10000-0.07631b0.100000.11185预测输出a0.524980.54266损失½(a−1)²0.112820.10458本次更新后输出更接近标签1,损失下降。对其他网络与学习率,仍需检查实际损失变化。一隐层网络的批量反向传播23D₂=2(P−y)⊙P⊙(1−P)/N输出层参数梯度∂L/∂W₂=A₁ᵀD₂。∂L/∂b₂=按样本行求和(D₂)。D₂的形状为N×1。权重梯度形状与W₂一致。隐藏层梯度D₁=(D₂W₂ᵀ)⊙1[Z₁>0]。∂L/∂W₁=XᵀD₁。∂L/∂b₁=按样本行求和(D₁)。⊙表示逐元素相乘。D₁计算使用更新前的W₂。ReLU导数根据线性输入Z₁的正负确定。例7.1:XOR数据与初始化24x₁x₂y000011101110importnumpyasnpX=np.array([[0,0],[0,1],[1,0],[1,1]],float)y=np.array([[0],[1],[1],[0]])rng=np.random.default_rng(0)W1=rng.normal(0,.5,(2,3))b1=np.full((1,3),.1)W2=rng.normal(0,.5,(3,1))b2=np.zeros((1,1))eta,N=.1,len(X)为便于复现,固定随机种子并显式设置初始化。本例没有验证集,仅用于演示前向和反向计算。例7.1:训练循环与前向计算25history=[]forepochinrange(10001):Z1=X@W1+b1A1=np.maximum(0,Z1)Z2=A1@W2+b2P=1/(1+np.exp(-Z2))loss=np.mean((P-y)**2)ifepoch%100==0:history.append((epoch,loss))ifepoch==10000:break#此处接下一页的反向与更新变量对应网络层Z1为隐藏层线性输入。A1为ReLU输出。Z2为输出层线性输入。P为Sigmoid输出。先算损失,再执行反向。更新次数为10000次。下一页代码放在同一个for循环内,保持四个空格缩进。epoch=10000时只记录最终结果。例7.1:反向梯度与参数更新26D2=2*(P-y)*P*(1-P)/NG2=A1.T@D2g2=D2.sum(0,keepdims=True)D1=(D2@W2.T)*(Z1>0)G1=X.T@D1g1=D1.sum(0,keepdims=True)W1-=eta*G1b1-=eta*g1W2-=eta*G2b2-=eta*g2更新前算完梯度D2组合损失与激活导数。D1包含ReLU的导数掩码。先计算G1、G2、g1、g2。随后更新全部参数。避免混用新旧权重。中心有限差分可用于核对反向传播。ReLU隐藏层的导数按Z₁的正负判断,采用(Z₁>0)。例7.1:实际计算的损失与输出27输入预测P阈值0.5(0,0)0.02290(0,1)0.98431(1,0)0.98491(1,1)0.01420最终MSE≈0.000300图表来自固定种子0、学习率0.1的实际计算,属于4个训练样本的拟合结果,不代表对新数据的泛化性能。训练、验证与测试28划分数据训练、验证、测试各有不同用途。训练参数在训练部分拟合缩放和网络参数。验证选择选择网络与学习率,决定提前停止。测试评估固定最终方案,报告测试结果。损失下降与泛化训练损失下降,说明对当前训练数据拟合得更好。是否能处理新样本,需要看独立验证和测试。相关样本应按人员、设备等分组划分。提前停止应使用验证数据。反复按测试结果选择设置,会使测试集参与模型选择。卷积神经网络的计算链29输入图像保留空间排列,记录输入通道数。卷积与激活学习局部模式,生成多个特征图。池化或下采样缩小空间尺寸,保留部分响应。整合与输出全连接或全局池化,输出任务结果。局部连接与参数共享同一个卷积核在不同位置重复使用,相邻位置共享一组可学习参数。多层网络逐渐扩大感受野,后层可以组合前层提取的局部特征。CNN常用于图像等有网格结构的数据,也有一维和三维形式。具体网络不一定包含所有这些层。卷积窗口的逐元素乘加30首个3×3窗口111011001卷积核101010101左上角响应对应位置相乘并求和。1+0+1+0+1+0+0+0+1=4。滑动后使用相同卷积核。本例不翻转卷积核,采用深度学习中常用的互相关计算。步长为1,不填充。图7-4卷积运算示例例7.2:教材5×5输入的完整输出31输入:每行依次递增12345678910111213141516171819202122232425卷积核-1-1-1-18-1-1-1-1输出:3×3000000000左上角输出为8×7−(1+2+3+6+8+11+12+13)=0。原输入是线性斜坡,该核在有效区域的响应均为0。例7.2:卷积计算的核心代码32I=np.arange(1,26).reshape(5,5)K=np.array([[-1,-1,-1],[-1,8,-1],[-1,-1,-1]])out=np.zeros((3,3))foriinrange(3):forjinrange(3):patch=I[i:i+3,j:j+3]out[i,j]=np.sum(patch*K)print(out)窗口与索引每次取一个3×3窗口。逐元素乘法后求和。结果写入对应输出位置。本例无偏置,步长为1。本例的输出为全零。本段与教材例7.2使用相同输入和卷积核。更换输入结构或卷积核后,输出通常随之改变。卷积的填充、步长与尺寸33Hout=⌊(H+2P−K)/S⌋+1输入边长H核大小K填充P步长S输出边长530135311553022本页假设膨胀率为1,宽度按相同方法计算。填充补充边界位置,步长控制窗口移动间隔。多通道卷积与参数数量34跨输入通道求和RGB输入有3个通道。一个3×3卷积核包含3组权重。跨通道累加,得到1个输出通道。若设置8个输出通道,共有8组这样的卷积核。参数共享的数量例子3×3卷积,3个输入通道,8个输出通道,每通道一个偏置。参数量=(3×3×3+1)×8=224。与图像空间位置数无关。此处假设普通卷积,groups=1。输入图像越大,计算量仍会增加,不能把参数共享理解为计算量不变。卷积后的逐元素激活35卷积层的局部输出-2031-14ReLU之后003104负值置为0,正值保留。激活层不改变这个特征图的形状。本页矩阵为教学构造。ReLU引入非线性,池化和下采样则改变空间信息,两类操作作用不同。最大池化与平均池化的手算362×2窗口,步长212345678910111213141516最大池化681416平均池化3.55.511.513.5左上窗口为1、2、5、6。最大值为6,平均值为3.5。每个通道独立进行普通空间池化。图7-5最大池化与平均池化的示例对比例7.3:边缘不足一个完整窗口37最大池化:3×37910171920222425平均池化:3×3467.5141617.521.523.525按教材循环保留边缘的部分窗口。右下角仅含25,因此最大值和平均值都为25。输出尺寸采用向上取整。例7.3:部分窗口与全局池化38F=np.arange(1,26).reshape(5,5)max_pool=np.zeros((3,3))avg_pool=np.zeros((3,3))foriinrange(0,5,2):forjinrange(0,5,2):patch=F[i:i+2,j:j+2]max_pool[i//2,j//2]=patch.max()avg_pool[i//2,j//2]=patch.mean()global_avg=F.mean()print(global_avg)#13.0局部与全局的区别局部池化保留多个位置。整图求均值只保留一个数。本例全局平均值为13。边界规则需按框架核对。本页部分窗口未补零。本例局部池化保留3×3输出,全局平均池化得到一个数值。多个输入通道通常分别计算全局均值。全连接层的展平与输出39特征图教材例子为4×4单通道。展平按固定顺序展开,得到16个特征。线性变换16×4权重矩阵,再加4维偏置。输出得到4个数值,再按任务处理。全连接参数量16个输入、4个输出:16×4+4=68个可学习参数。若展平前的空间尺寸或通道数增加,全连接层输入长度和参数量也随之增加。全连接层本身计算仿射变换。是否追加激活、Softmax或其他处理,由后续任务决定。例7.4:全连接计算的维度核对40F=np.arange(1,17).reshape(4,4)x_flat=F.reshape(-1)rng=np.random.default_rng(0)W=rng.random((16,4))b=rng.random(4)z=x_flat@W+bprint(x_flat.shape)#(16,)print(W.shape)#(16,4)print(z.shape)#(4,)线性输出还需解释展平顺序必须前后一致。随机参数只用于展示维度。这4个输出尚未训练。不能直接叫作类别概率。训练目标需与输出匹配。随机权重演示全连接的维度变化。训练时,权重与偏置需要通过损失函数和梯度更新。一个小型CNN的尺寸变化41阶段输出形状(不含批量维)可学习参数灰度输入28×28×103×3卷积,8通道,P=128×28×8(3×3×1+1)×8=80ReLU与2×2池化,S=214×14×80展平15680全连接到10个类别分数101568×10+10=15690本页按H×W×C显示形状,实际代码需核对通道顺序。基础结构未加入BN和Dropout。BP学习过程与CNN层的关系42BP描述怎样计算梯度前向计算得到预测与损失。反向传播计算各参数梯度。优化器据此更新参数。全连接网络和CNN都可用BP训练。卷积核的权重也由损失更新。CNN描述怎样组织计算局部连接和共享权重提取特征。激活层引入非线性。池化改变空间尺寸和信息保留。全连接或全局池化整合特征。输出形式与损失匹配具体任务。理解网络时同时关注前向的张量形状、反向的局部导数,以及训练和推断阶段的行为。课后练习1:激活函数与导数43函数与导数的同轴比较绘制Sigmoid、Tanh、ReLU、LeakyReLU和Swish。再画各函数的导数曲线。标注ReLU在0处的约定。比较大正值和大负值处的梯度。需要解释的现象哪些函数在两端逐渐饱和?哪些函数允许负输出?负输入时是否还传递梯度?报告定义、绘图
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年安全生产红线模拟试题(含答案)
- 粪便处理工创新意识竞赛考核试卷含答案
- 2026年4月全国自考计算机应用基础模拟试卷及答案详解
- 2026年海亮小学招聘模拟试题(含答案)
- 机械密封件制造工安全生产能力水平考核试卷含答案
- 2026年短诗三首模拟试题(含答案)
- 2026年市政监理考试模拟题及答案详解
- 2026年认识线段模拟题及答案详解
- 2026年北大心理学模拟试题(含答案)
- 2026年春考汽修专业模拟试题(含答案)
- 2026年建筑行业绿色材料应用知识测试
- 张炳厚学术思想、临床经验及其地龟汤类方治疗慢性肾脏病的深度探究
- HPV健康科普教学课件
- 长输管道施工安全培训课件
- 行政复议法律文书写作指南
- 2025-2026学年江苏省南京市秦淮区七年级(上)期中数学试卷(含答案)
- 重大医疗安全突发事件应急处置机制和预案
- 高校学生志愿服务管理规范
- 消化道穿孔教学课件
- T/CECS 10153-2021建筑排水用沟槽式连接高密度聚乙烯(HDPE)管材及管件
- 2025版《VOCs废气处理设施安全检查表》(全)
评论
0/150
提交评论