《智能计算机系统导论》 教案汇 -第2-9章-智能计算系统的数学基础-综合实验_第1页
《智能计算机系统导论》 教案汇 -第2-9章-智能计算系统的数学基础-综合实验_第2页
《智能计算机系统导论》 教案汇 -第2-9章-智能计算系统的数学基础-综合实验_第3页
《智能计算机系统导论》 教案汇 -第2-9章-智能计算系统的数学基础-综合实验_第4页
《智能计算机系统导论》 教案汇 -第2-9章-智能计算系统的数学基础-综合实验_第5页
已阅读5页,还剩111页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

《智能计算系统导论》课程教案《智能计算系统导论》课程教案PAGEPAGE1智能计算系统导论课程教案第二讲智能计算系统的数学基础课名称论 授教师何锋项宇李佩李威 授对象生 工单位院 课程名称智能计算系统导论授课章节第二章授课内容智能计算系统的数学基础授课时长4学时授课班级/教 材《智能计算系统导论》,何召锋等主编,人民邮电出版社授课时间/授课地点/教学目标理解线性代数、微积分与概率论在智能计算系统中的核心地位(MLE、MAP)等数学方法在机器学习中的作用。为后续课程奠定数学基础教学内容1.2.3.线性代数基础微积分基础概率论基础教学重点1.2.3.线性代数在智能计算中的基础作用;梯度与优化思想;概率论与统计方法在不确定性建模中的意义。教学难点1.2.3.向量、矩阵与高维空间的抽象理解;梯度、偏导数等微积分概念的直观解释;MLE与MAP的思想区别与联系。教学方法教师讲授、启发引导学习,多媒体幻灯片教学特色1、讲授内容是根据教材知识和课外资料进行了综合整理,对必要内容进行了扩展,讲授内容源于教材而高于教材;2、教学内容有广度有深度,详略结合;3、教学目标明确、长远,联系实际;并在教学过程中灌输育人思想。教学环节教学内容时间分配知识回顾1、简单回顾上节课所讲述的内容;2、简单介绍本节课所要讲述的内容以及讲述流程。5分钟1:线性代数基础1.向量及其运算(1)物理意义:向量是既有大小又有方向的量(如力、速度)。AIx175,70,120,90)。(2)数学表示:n维实数向量集合记为Rn。通常数学中使用列向量,而编程(如Python)中常用数组表示。15分钟(3)运算加法与减法:对应分量相加减。要求两个向量维数必须相等。数乘(ScalarMultiplication)k与向量每个分量相乘。内积(InnerProduct):两个向量对应分量乘积之和。哈达玛积(HadamardProduct):对应分量直接相乘,结果仍是一个向量。记为x⊙y。L1范数:向量所有分量绝对值之和。||x||1=|x1||x2||xn|。L2范数(欧几里得长度||x||2=sqrt(x1^2x2^2xn^2)。2.矩阵及其运算(1)矩阵的概念定义:mxn的二维数组。aijij列的元素。全连接层的权重通常表示为一个权重矩阵W。(2)核心运算转置(Transpose):将矩阵的行和列互换,记为A^T。矩阵乘法(重点):C=A·B。规则:结果矩阵C的第i行第j列元素=A的第i行向量与B的第j列向量的内积。10分钟条件:A的列数必须等于B的行数。AI场景:yWxb(神经元的前向计算过程)。(3)逆矩阵AAB=BAI(I为单位矩阵,对角线为1,其余为0),则B是A的逆矩阵,记为A^-1。AXBAX(A^-1)B。(4)矩阵范数Frobenius或能量。3.行列式(1)定义与几何意义定义:方阵A映射为一个标量,记作det(A)或|A|。det(A)=0,说明变换后维度塌缩,矩阵不可逆。10分钟(2)核心性质性质1:交换行列式的两行,行列式值变号。性质2:将某一行乘以常数k后加到另一行,行列式值不变(这是计算行列式的最常用技巧)。(3)计算方法:初等行变换(主对角线下方全是。结果:上三角矩阵的行列式=主对角线所有元素的乘积。4.线性方程组(1)矩阵表示法线性方程组可以写成:AX=B。其中A是系数矩阵,X是未知数向量,B是常数向量。这是智能计算处理复杂系统问题的通用建模方式。(2)高斯消元法(GaussianElimination)步骤1:构建增广矩阵。将矩阵A和向量B合并。步骤2:消元(Elimination)。利用初等行变换将增广矩阵化为阶梯型。步骤3:回代(Back-substitution)。从最后一个方程解出最后一个未知数,依次向上代入解出所有变量。(3)实例练习(教材案例)方程组:2x+y-z=8-3x-y+2z=-11-2x+y+2z=-3演示过程:写出增广矩阵[A|B]。第一步:通过行变换消去第2行和第3行的x项。第二步:消去第3行的y项,得到z=-1。第三步:回代得到y=3,x=2。10分钟2:一元函数微积分基础1.一元函数与变化率(1)物理意义:一元函数描述“输入—输出”的对应关系,导数刻画输出相对于输入的变化速度。(2)AI意义:在机器学习中,损失函数L(ω)描述模型参数ω对预测误差的影响。9分钟2.导数的定义与直观理解(1)数学定义:导数是函数在某一点处的瞬时变化率。(2)几何意义:导数等于函数曲线在该点处切线的斜率。(3)工程直觉:9分钟如果导数为正,参数增大会让误差变大;如果导数为负,参数增大会让误差变小。这是后续“参数如何更新”的理论基础。3.常见一元函数的导数(认识层面)介绍多项式函数、指数函数、对数函数的导数形式,不强调推导过程,强调:导数计算是“工具”;重点在于理解“导数的意义”和“如何使用导数”。9分钟4.导数与优化问题以简单的一元函数最小值问题为例说明:函数在极小值点附近,导数为0;若导数不为0,则可以沿着“使函数减小的方向”更新参数。引出核心思想:沿着负导数方向调整参数,可以逐步逼近最优解。9分钟5.积分的直观意义(1)几何意义:积分表示曲线下的面积。(2)工程意义:积分可用于描述“累计量”,例如:概率密度的累积概率;误差或能量的总体大小。强调:在智能计算中,理解积分的含义比掌握复杂计算更重要。9分钟3:多元函数微积分基础1.多元函数的概念(1)定义:多元函数的输入由多个变量组成,如ƒ(x,y),ƒ(x1,x2,…,xn)(2)AI场景:模型的损失函数通常是高维函数:L(ω1,ω2,…,ωn)其中每一个ωi,都是模型参数。8分钟2.偏导数(1)定义:对其中一个变量求导,其余变量视为常数。(2)直观理解:偏导数回答的问题是:“只改变某一个参数,对整体误差会产生什么影响?”8分钟3.梯度(Gradient)(1)定义:8分钟梯度是由所有偏导数组成的向量:(2)几何意义:梯度指向函数值上升最快的方向。(3)工程意义:梯度是模型参数更新的核心依据,几乎所有深度学习算法都围绕梯度展开。4.梯度下降算法(思想层面)(1)基本流程:初始化模型参数;计算损失函数的梯度;沿负梯度方向更新参数;重复迭代直至收敛。(2)强调:深度学习训练,本质上是在高维参数空间中反复执行梯度下降。8分钟5.高维优化的直观类比通过“人在山谷中下坡寻找最低点”的类比,帮助学生建立对高维优化问题的直观认识,降低抽象难度。8分钟4:概率论基础1.随机性与不确定性现实问题中,数据往往受到噪声、测量误差和环境变化的影响。AI9分钟2.随机变量与概率分布介绍随机变量的概念,以及:离散型随机变量连续型随机变量重点介绍正态分布:自然界和数据分析中最常见;是很多算法的默认假设。9分钟3.数学期望与方差期望:随机变量的平均水平。方差:随机变量围绕期望的波动程度。工程意义:期望反映模型的“平均表现”;方差反映模型的“稳定性”。9分钟4.中心极限定理(直观理解)大量独立随机变量的平均值会趋向于正态分布。这一定理,解释了为什么在机器学习中广泛使用正态分布假设。9分钟5.参数估计思想引入(1)最大似然估计(MLE):选择使观测数据出现概率最大的参数。9分钟(2)最大后验估计(MAP):在MLE基础上引入先验知识,对参数进行约束。强调:这是后续学习逻辑回归、贝叶斯模型、深度学习损失函数设计的数学基础。本章小结本章系统介绍了线性代数、微积分与概率论三类核心数学工具在智能计算中的作用与意义。线性代数为数据表示与模型结构提供了基本语言,使高维数据、参数和运算过程能够以向量和矩阵的形式进行统一描述;微积分为模型训练与参数优化提供了理论基础,通过导数、梯度以及梯度下降方法,刻画了模型参数调整与损失函数变化之间的关系;概率论与统计方法则用于描述数据与模型中的不确定性,为概率建模、参数估计以及学习算法的设计提供了支撑。而是其核心支撑之一。5分钟作业(1)解以下线性方程组:使用矩阵的行列式和逆矩阵方法进行解答。(2)设有函数ƒ(x,y)定义如下:ƒ(x,y)=x3-3xy+2y3-4x+5y请计算函数ƒx,)∇ƒx,)ƒx,)的黑塞矩阵∇2ƒ(x,y)。(3)ABP(A)=0.5,P(B)0.4P(A∩B0.2PB|A)PA|B)。(401的标准正态分布。如果生产出100件产品,计算其中生产误差大于1的产品所占的比例。(5)简述三种大数定律(切比雪夫大数定律、伯努利大数定律和辛钦大数定律)之间的关系和区别。X1,X2,...,X5来自均值为µσ2Nµ,σ2),其概率密度函数为x1=2.3,x2=2.8,x3=3.1,x4=2.6,数据,求参数µ和σ2的最大似然估计。(7)简述最大似然估计和最大后验估计之间的关系和区别。《智能计算系统导论》课程教案《智能计算系统导论》课程教案PAGEPAGE1智能计算系统导论课程教案第三讲机器学习与神经网络课名称论 授教师何锋项宇李佩李威 授对象生 工单位院 课程名称智能计算系统导论授课章节第三章授课内容机器学习、神经网络授课时长3学时授课班级/教 材《智能计算系统导论》,何召锋等编著,人民邮电出版社授课时间/授课地点/教学目标1、掌握机器学习的基本概念及其分类,了解相关模型的算法推导。2、掌握监督学习的基本概念和方法类型;3、掌握无监督学习的基本概念和方法类型;4、熟悉强化学习的概念和内容;5、了解机器学习的多领域应用;6、识别过拟合与欠拟合现象,掌握正则化与其中超参数概念;7、熟悉交叉验证的基本概念和原理方法;8、熟悉神经网络中神经元模型和单层感知机的工作原理;9、掌握深度神经网络基本概念、模型结构、激活函数与训练;教学内容1、机器学习的基本概念和分类;2、监督学习、无监督学习、强化学习的基本概念和方法类型;3、过拟合与欠拟合现象的产生原因和基本概念;4、通过正则化避免过拟合的基本方法;5、交叉验证的基本概念和原理方法;6、神经元模型与单层感知机的模型工作原理7、深度神经网络的结构、激活函数与训练过程;教学重点1、机器学习的基本概念和分类;2、处理过拟合现象的实验方法;3、神经网络和深度神经网络的模型架构和工作原理;教学难点1、能够掌握机器学习的基本概念和相关知识;2、掌握神经网络和深度神经网络的模型架构和工作原理;教学方法教师讲授、启发引导学习,多媒体幻灯片教学特色1、讲授内容是根据教材知识和课外资料进行了综合整理,对必要内容进行了扩展,讲授内容源于教材而高于教材;2、教学内容有广度有深度,详略结合;3、教学目标明确、长远,联系实际;并在教学过程中灌输育人思想。教学环节教学内容时间分配知识回顾第二章智能计算系统的数学基础1、线性代数;2、一元函数微积分;3、多元函数微分学;4、概率论5分钟1、1、引言教学内容:目前机器学习发展相当迅速,机器学习就是要解决知识自动AlphaGo10很大程度上得益于目前机器学习理论和技术的进步,未来以机器学习为代表的人工智能技术将给人类社会带来深刻的变革。2、机器学习的概念教学内容:机器学习是构建智能系统的核心知识,它的特点在于其能够通过算法和统计模型分析大量数据,识别模式,并做出预测或决策,而无须明确编程指定每个步骤。机器学习方法在图像识别、推荐系统、自然语言处理等众多领域都有着广泛而深远的应用。人工智能是模仿人类智能的广泛概念,而机器学习是其核心分支,侧重于让计算机通过数据识别模式并进行自我改进。神经网络是机器学习中一种受生物启发的计算模型,深度学习则是利用多层神经网络提取高级特征以解决复杂问题的进阶技术。总的来说,四者构成了从宏观领域到具体实现方法的层层递进关系。3、机器学习的发展过程1)2050605分钟习,这类方法主要是研究系统的执行能力。206070207080习系统与各种应用结合起来,专家系统在知识获取方面的需求也极大刺激了机器学习的研究和发展。20802、4、机器学习的基本术语教学内容:数据集(经验转化为最终的数学模型的算法称为学习算法。机器学习的一般过程机器学习的系统模型机器学习的系统是一个反馈系统。环境是指外部信息的来源,为系统学习提供相关信息;知识库代表系统已经具有的知识和通过学习获得的知识;学习代表系统的学习模块,从环境中获取外部信息,然后后经过分析、综合、类模型,根据得到的新知识库,执行一系列任务,同时把执行结果信息反馈给学习环节,用以完成对新知识库的评价,指导进一步学习工作。机器学习系统的学习环节的一般过程在进行学习过程之前,首先需要确定学习模型,即具体采用何种方法进行机10分钟由于训练数据的质量会影响学习结果,通常在获得原始数据之后要进行数据清洗;数据中包含了非常丰富的信息,但是这些信息并非全部都是与问题求解有关,通常需要特征提取环节,从数据中提取对问题求解有用的信息,去除不相关信息;训练就是运行具体的算法,直至结束;学习模型训练之后就会得到相关知识,知识的具体形式根据不同的学习模型有不同的表示形式,如规则、网络、树、图等。(3)机器学习的基本问题分类问题:把一个数据分配到某已知类别中,每个已知的离散值代表一个已知类别或已知类别标识。目标空间是已知有限离散值空间,待求函数是分类函数。聚类问题:把已知数推集划分为不同的子集,并且不同类别之间的差距越大越好同一类别内的数据差距越小越好。目标空间是未知有限离散值空间,待求函数是分类函数,也成为分类器或分类模型。预测问题:一个数据在目标空间中符合某观测规律的像。目标空间是连续值空间,待求函数是回归曲线。联想问题:相关性分析或关联问题,就是发现不同数据(属性)之间的相互关系。目标空间是数据空间本身,待求函数就是求自身内部的一种映射。优化问题:在给定数据范围内寻找使某值达到最大(最小)的方法。目标空间是数据空间上的某种函数,学习目标是使对函数的某种度量达到极值。(4)机器学习模型的评估1) 评估原则机器学习模型的效果通常从学习结果和合理性的有效性、算法复杂度、模型鲁棒性、模型的适应性、模型描述的简洁性和可解释性几个方面进行衡量。1.学习结果和合理性的有效性:学习结果不但包括对已有数据的处理结果,更重要的是对未知世界的处理结果,即模型的泛化能力。2.算法复杂度:算法复杂度是指学习模型对时间和空间资源的使用情况。3.模型的鲁棒性:鲁棒性就是系统的健壮性,就是系统处理各种非正常数据的能力4.模型的适应性:适应性是指对于不同数据,学习模型本身需要做多少人工调整。5.模型描述的简洁性和可解释性:模型应该优先选择更简单的假设,模型描述越简洁、越容易理解越好。测试数据假设S为已有数据集,训练集和测试数据集符合相同分布规律。1S(2/3)作为训练数据,剩下作为测试,最后在测试数据集上验证学习结果。2Skkk次测试结果的平均值作为最终测试结果。3S学习结果有效性的度量评估机器学习结果的有效性就是用机器学习的结果与实际结果比较,给出一个量化指标以便于衡量学习质量。评估分类算法学习结果有效性的常用指标有准确率、精确度、召回率。N(和阴性(0)n1n2TP有FP个实际类别为阴性的样本被系统错误判定为阳性;TNFN1.准确率(accuracy)定义为被正确处理的数据个数与所有被处理数据个数的比值,即:accuracy=(TP+TN)/(TP+FP+TN+FN)=(TP+TN)/N2.精确度(precision)定义为被分类模型判定为阳性类的数据中实际类别为阳性样本的比率,即:precision=TP/(TP+FP)3.召回率(recall=TP/(TP+FN)4Fβ-mesure:一个综合考虑精确度和召回率的指标,即:Fβ=(β+1)preisin(T)reall(T)/β2prcison(T)+ecal(T]知识点3、5、有监督学习10分钟监督学习教学内容:(1)有监督学习的概念监督学习(supervisedlearning)是利用一组已知类别的样本调整分类器的参数,使其达到所要求性能的过程,也称为监督训练或有教师学习。监督学习是从有标签(label)的训练数据来推断一个功能的机器学习任务,训练数据包括一套训练示例。监督学习算法包括回归和分类。回归和分类的算法区别在于输出变量的(2)有监督学习的执行过程在训练数据集中训练数据同时拥有输入变量(x)和输出变量(y);y=f(xxf(x),得到相y′目标变量是机器学习预测算法的测试结果;(3)有监督学习的分类有监督学习主要分为回归问题和分类问题两大类。回归问题旨在预测连续型的数值输出,例如预测房价或股票趋势;而分类问题则专注于将输入样本分配到离散的预定义类别中,如识别垃圾邮件或进行图像分类。简而言之,两者的核心区别在于输出变量是连续数值还是离散类别,根据具体任务需求选择相应的方法。4、6、无监督学习教学内容:(1)无监督学习的基本概念定义:是一种根据没有被标记的训练样本解决模式识别中的各种问题的机器学习方法。解决的问题:在未加标签的数据中,试图找到隐藏的结构。执行过程:训练数据只有输入变量,并没有输出变量;无监督学习的目10分钟的是将这些训练数据潜在的结构或者分布找出来,以便于对这些数据有更多的了解。(2)无监督学习问题1:聚类问题聚类分析是针对给定的样本,依据它们特征的相似度或距离,将其归并到若干个类的数据分析问题。聚类的目的是通过得到的类发现数据的特点或对数据进行处理。聚类分析以相似性为基础,在一个聚类中的样本之间比不在同一个聚类中的样本之间具有更多的相似性。K均值聚类Kkknk1nC*2t=0km(0)=(1(0)l(0)k(0))3.对样本进行聚类,对固定的类中心m()=((t),…,l(t…,m(t)ml(t)GlC(t)4C(t),计算当前各个类中的样本均值,m(t)=((t),…,ml(t)m(t))5C*=Ctt=t1b层次聚类层次法是对给定的数据集进行层次似的分解,直至某种条件满足。聚合聚类:开始将每个样本各自分到一个类,然后将相距最近的两类合并,建立一个新的类,重复此操作直至满足停止条件,得到层次化的类别。分裂聚类:开始将所有样本分到一个类,然后将已有类中相距最远的样(3)无监督学习问题2:密度估计问题密度估计问题旨在了解数据点在特征空间中的分布,它有助于揭示数据的概率分布,这对于模型评估、异常检测等任务非常有用。核密度估计核密度估计是一种非参数化的概率密度估计方法,它不预先假设数据符合某种特定的分布形式(如正态分布),而是通过在每一个观测到的数据点中心“放置”一个平滑的核函数(通常是钟形的高斯核),然后将这些单独的核函数在整个数值空间上进行叠加,从而构建出一条连续且平滑的整体密度曲线,这种方法能够由数据自身驱动来揭示其分布特征,特别适合用于平滑地估计形状未知或不规则的数据分布密度。高斯混合模型高斯混合模型是一种基于统计的参数化密度估计与聚类方法,它假设观测到的复杂数据分布实际上是由若干个具有不同均值、方差和权重的单一高斯分布(正态分布)线性叠加而成的,通过使用期望最大化算法迭代地优化这些分布的参数,模型能够反向推算出每个数据点归属于各个高斯成分的概率大小,从而不仅能精确拟合数据的整体分布形态,还能有效地揭示数据内部潜在的群组结构并实现比传统硬聚类更灵活的“软聚类”。知识点5、强化学习7、强化学习教学内容:强化学习就是学习如何将场景或环境状态映射到动作,以获取最大的、数值的、奖赏信号。强化学习是一类算法,是让计算机实现从一开始完全随机的进行操作,通过不断尝试,从错误中学习,最后找到规律,学会达到目的的方法。5分钟8、有监督学习、无监督学习和强化学习的区别教学内容:机器学习的三大范式在目标、数据与方法上各具特色:有监督学习利用有标(SVM);无监督学习针对无标签数据,侧重于挖掘内在结构与模式(如聚类、降维);而强化学习则(Q策略梯度)。5分钟PAGEPAGE103.2引言介绍1、机器学习模型评估机器学习模型评估是衡量模型性能和可靠性的重要环节,也是模型开发与优化过程中不可或缺的步骤。通过评估,我们可以判断模型是否满足预期的任务需求,并发现潜在的问题或改进方向。模型评估通常依赖于一系列指标和方法,这些方法能够从不同角度量化模型的表现。2分钟6、2、过拟合与欠拟合教学内容:训练误差与泛化误差机器学习的主要目标是要求的模型尽可能学习出所有潜在样本的共同特性,能够在新样本上表现依旧良好,模型在新样本上的表现能力称为泛化。在此基础上,机器学习的目标可以重新定义为就是利用已有数据尽可能增强模型的泛化能力。这里定义一些概念用来解释什么是“模型的表现”和“数据的(如平均均方误差或者精度称为训练误差,相应地,训练完模型后会在测试集上验证模型的性能,这种在测试集上计算的某种度量误差称为泛化误差,模型表现得好往往指的是泛化误差小。过拟合与欠拟合基本概念导致其在训练集和测试集上的表现均较差;而过拟合则是模型过度复杂,以至于将训练数据中的随机噪声或非典型特征当作了普遍规律,表现为模型在训练集上误差极小,但在未见过的测试集上泛化能力显著下降。具体实例以线性回归为例,假设收集了9个一维输入和输出的数据点作为训练样本,可从多种多项式函数中选择备选模型h,以均方误差作为损失函数。15分钟一次函数C(八次多项式函数)虽然穿过了所有训练点,但因过度学习了样本中的随机噪声,导致其曲线剧B(三次多项式)能够既学习到数据规律又不受噪声干扰,达到了最优的拟合效果。在机器学习中常见的解决过拟合的方法有以下几种:1、重新设计模型,降低模型复杂度。2、增加训练数据量,减少对样本噪声的依赖。3L1/L2(Regularization)(Dropout)、提前停止(EarlyStopping)等技术。在深度学习中常见的解决过拟合的方法有以下几种:通过调整网络深度和宽度来控制模型的复杂度。利用大量训练数据进行预训练,以学习更稳定和泛化的特征表示。正则化技术来抑制过拟合。课堂互动3、课堂提问互动提问:如果我们在模型评估时发现训练误差很大,下一步应该尝试增加数据量还是增加模型复杂度?回答:应该先尝试增加模型复杂度或优化模型结构,因为此时模型处于欠拟合状态,增加数据量通常无法解决模型表达力不足的问题。5分钟知识点7、正则化4、正则化教学内容:基本概念正则化是一种重要的技术手段,用于抑制神经网络的复杂度,避免过拟合,其基本思想是在损失函数中引入模型复杂度的惩罚项,以约束模型参数,增参数范数惩罚参数范数惩罚是较常见,也较核心的正则化技术,主要包括L1L2正则化两种。其中,L2(WeightDecay)。正则化项L1L2其中,λ是正则化系数,用于控制正则化项在总损失函数中的比重;wi是模型的参数。引入L2正则化后的损失函数。L20(Shrinkage)10分钟化限制了参数向量的长度,相当于在参数空间中绘制一个超球体,只允许参数位于这个超球体内部,起到正则化的作用。相比之下,L10,起到特征选择的效果,相当于在参数空间中绘制一个超立方体,使参数稀疏化。在优化算法中,正则化技术通常通过在梯度中加入正则化项以缩减的形式调L2规则为:知识点8、交叉验证5、交叉验证教学内容:基本定义为了公平衡量模型的泛化能力,不能将用于最终评估的测试集提前用于超参数的选择,而应从训练集中划分出互不相交的验证集来辅助确定超参数并监留一法留一法(Leave-One-Out,LOO)是一种特殊的交叉验证方法,其核心在于将每一个样本都轮流作为验证集。10分钟DNNNN-1NN(3)k-折交叉验证法kk−1iDi作为验证D\Di(DDi的部分)作为训练集。根据所选的训练集训练模型,并用对应的验证集评估模型的性能,如记录误差率或其他相关评价指标。kkk3.31、机器学习与神经网络之间的关系教学内容:介绍的机器学习算法大部分都是在解决简单的线性问题。而现实世界中大部分情况下遇到复杂的非线性问题,那么就需要用到神经网络模型。神经网络是一种受生物神经系统启发的计算模型,在机器学习领域,神经网络通过模拟神经元及其连接关系,能够自动地从数据中学习特征表示并完成预测、分类等任务。3分钟9、2、神经元模型教学内容:(1)生物神经元进行传递,构成了神经系统信息处理的基础。5分钟(2)M-P模型M-P模型是由神经科学家麦卡洛克和沃尔特·皮茨于1943年提出的早期人工神经元模型,它通过简化生物神经元功能,接收多个加权后的二进制输入并激活状态非激活状态方面的研究奠定了基础。,3、单层感知机(1)模型结构感知机可以完成简单的线性分类任务。它是一个线性分类器,基于一个线性预测函数来进行二分类。其模型可以用公式来表示为:10、具体的单层感知机模型的结构:5分钟(2)几何意义从几何的角度看,单层感知机实际上是在特征空间中寻找一个超平面,将两个类别的数据分隔开。这个超平面的方程为ωTx+b=0,任何满足ωTx+b≥0的点被分为正类,而ωTx+b<0的点被分为负类。(3)局限性线性可分性。单层感知机只能处理线性可分的数据集。对于非线性可分的数据集,它不能找到一个合适的超平面来完美地分类所有的数据点。收敛性。如果数据集是线性可分的,感知机学习算法保证能够收敛。但如果数据集不是线性可分的,学习算法可能永远不会停止。局部最小值。感知机损失函数是凸的,因此在单层感知机中没有局部最表达能力。由于其简单的线性结构,因此单层感知机的表达能力受到限(有多个隐藏层的神经网络)在许多任务上表现得更好的原因。(4)引出深度神经网络由于单层感知机的种种局限性,其在现在的神经网络中的地位渐渐没落,取而代之的是模型算法更加复杂、能力也更加全面的深度神经网络。、4、深度神经网络(1)简介与发展深度学习通过模拟人脑分析方式,利用多层神经网络以端到端的形式逐层提取数据的高级抽象表示,在处理图像、文本等高维数据上比浅层网络更具优19572012AlexNet在图像分类上的突破,使深度学习逐渐主导GANResNetTransformer理等多领域的跨越式演进。25分钟(2)模型结构(前向传播)神经网络的拓扑结构一般包含输入层、隐藏层及输出层。以分类问题为例,其中输入数据特征的维度决定了输入层神经元的数量,分类类别数量决定了输出层神经元的数量。也就是说,给定训练样本后,输入和输出层节点数便已确定。因此只有隐藏层是可以调整设计的。具体来说,可以调整隐藏层的数量,以及隐藏层神经元的个数以构建具有不同拓扑结构的神经网络。前向传播是指输入数据从输入层进入,经过每一层神经元的线性变换(权重加权与偏置)及激活函数的非线性映射,逐层向后传递,最终在输出层产生预测结果的过程。以一个简单的神经网络前向传播过程为例:(3)激活函数:激活函数是深度神经网络从线性模型转向非线性建模的关键组件。激活函数赋予了深度神经网络处理复杂非线性问题的能力,是其发挥强大性能的必要前提。激活函数的必要性与核心作用:打破线性局限:如果没有激活函数,无论神经网络堆叠多少层,其本质仍是多个线性变换的组合,最终只能表示单一的线性方程。引入非线性元素:激活函数为网络注入了非线性性质,使得整个网络能够学习并表示线性模型无法捕捉的复杂数据模式和函数关系。增强表达能力:通过非线性映射,神经网络的表达能力显著增强,能够应对高维且复杂的实际任务。优化训练效率:特定的激活函数(如ReLU)在特定区域内有助于加快梯度下降的收敛速度。Sigmoid函数:函数:ReLU函数:5) PReLU/LeakyReLU函数:(4)反向传播神经网络的训练过程旨在最小化损失函数,使神经网络能够有效地学习和适应数据集。反向传播是一种对多层人工神经网络进行梯度下降的算法。它利用链式法则计算损失函数对网络每层权重的梯度,然后通过梯度下降的方法来更新权重,以逐步优化神经网络的性能。隐藏层到输出层的权值�(2)的更新:根据偏导数的链式法则推导:PAGEPAGE20(5)损失函数在机器学习和深度学习中,损失函数(也称为代价函数或目标函数)是一个用于估计模型的预测与真实值之间差异的函数。给定一个输入样本及其真实值,通过模型的预测输出,损失函数可以计算出一个数值来表示这种差异。损失函数具有如下性质。非负性。损失函数的值通常是非负的,表示预测和真实值之间的误差。连续性。为了使得优化算法(如梯度下降)能够有效地最小化损失函数,它通常需要是连续的。的(至少在其大部分点上),这样允许我们通过计算梯度来调整模型参数,以实现最优性能。常用损失函数:(1)均方差损失函数(2)交叉熵损失函数已经介绍完关于机器学习和神经网络的基本概念了,现在我们看看如果需要1、数据准备与预处理数据集构建:收集原始数据,并将其划分为训练集(用于模型学习)、验证集(用于调整超参数和监控过拟合)以及测试集(用于最终性能评估)。特征提取:将原始数据转化为模型可理解的数值向量。例如在实验中,使用Word2Vec将电影评论转化为向量。标签标注:为监督学习准备对应的目标变量(Label),建立从输入到输出的预期映射参考。2、模型架构设计(隐藏层数量(神经元个数)。选择激活函数:在网络中引入非线性元素(如ReLU、Sigmoid、Tanh),使模型具备处理复杂非线性函数的能力。损失函数定义:选择合适的函数(如回归任务用MSE,分类任务用交叉熵)10分钟总结来衡量模型预测值与真实值之间的差异。3、模型训练反向传播:利用链式法则计算损失函数对各层参数的梯度。参数更新:使用梯度下降等优化算法,根据梯度调整权重和偏置,以最小化损失函数。4、评估与调优性能监控:通过观察训练误差与泛化误差判断模型状态。应对拟合问题:若出现欠拟合,则增加模型复杂度或训练轮数。若出现过拟合,则引入L1/L2正则化、增加数据量或实施提前停止。超参数微调:利用交叉验证(如k-折交叉验证)在验证集上寻找最优的学习率、批次大小等超参数。5、模型部署与推理一旦模型在测试集上表现达标,即可将其保存并用于新数据的预测任务。3.4具体训练实战Sklearn实现情感分析课后完成章节相关习题1分钟PAGEPAGE1智能计算系统导论课程教案第四讲深度神经网络课名称论 授课教师:何召锋项刘宇李佩佩李威授课对象:人工智能学院专业本科生工单位院 课程名称智能计算系统导论授课章节第四章授课内容深度神经网络授课时长4学时授课班级/教 材《智能计算系统导论》,何召锋等主编,人民邮电出版社授课时间/授课地点/教学目标1、掌握卷积神经网络和循环神经网络的原理和基本内容;2、掌握Transformer网络的基本内容,熟悉其应用领域及相应模型的基本原理;3、了解大语言模型关键技术;4、了解主要的神经网络压缩与加速技术;5、熟悉常用的轻量化神经网络设计评价指标,了解常见的轻量化神经网络结构。教学内容1、卷积神经网络;2、循环神经网络;3、Transformer网络与大语言模型;4、神经网络压缩与加速;5、轻量化神经网络设计。教学重点1、卷积神经网络和循环神经网络的基本原理和结构;2、Transformer网络的基本原理、网络结构和核心组件;3、ViT模型的基本原理和特点;4、GPT系列模型的结构和核心思想;5、轻量化神经网络设计常用的评价指标。教学难点1、卷积神经网络卷积层的原理和实现;2、循环神经网络循环神经元的原理和实现;3Transformer教学方法教师讲授、启发引导学习,多媒体幻灯片教学特色1、讲授内容是根据教材知识和课外资料进行了综合整理,对必要内容进行了扩展,讲授内容源于教材而高于教材;2、教学内容有广度有深度,详略结合;3、教学目标明确、长远,联系实际;并在教学过程中灌输育人思想。教学环节教学内容时间分配知识回顾介绍提纲1、简单回顾上节课所讲述的内容;2、简单介绍本节课所要讲述的内容以及讲述流程。5分钟1、卷积神经网络的概念和特点NN5分钟2、卷积神经网络的组成卷积层:一组不同位置共享的卷积模板,用于抽取特征池化层:图像尺寸变小,降低数据维度激活函数:可看作一种非线性变换全连接层:整合提取到的特征,输出一个固定长度的向量Softmax:转化为分类概率卷积层和池化层与全连接层相结合可以实现从局部到全局的特征提取2:卷积神经网络的卷积层1、卷积运算的计算方式数学表达:神经网络:实际为计算矩阵内积(相关系数)25分钟多输入特征图单输出特征图卷积运算多输入特征图多输出特征图卷积运算不同的过滤器可检测不同特征。2、卷积运算的相关参数3、卷积运算的具体用途检测垂直边缘检测对角线边缘1、池化层3:卷积神经网络的池化层、激活函数和全连接层2、激活函数的作用可以看作一种非线性变换,提高模型表达和拟合能力可以改善模型优化过程,更快地收敛到最优解或局部最优解可以将模型输出控制在某个范围内3.3.315分钟3、全连接层4:常见的卷积神经网络1、LeNet-523600002、AlexNet853ReLU()激活函数、Dropout10分钟3、VGG特点是使用了统一的3×3的卷积核,以及增加了网络的深度;优点是结构规整,易于实现和扩展;缺点是参数数量过多,达到1.4亿个。4、ResNet引入了残差连接(ResidualConnection)的概念,可以缓解梯度消失(VanishingGradient)问题、提供稀疏激活(SparseActivation)、实现恒等映射(IdentityMapping),从而提高了网络的性能和泛化能力。5、GoogLeNet引入了Inception模块的概念,增加网络宽度,减少网络参数数量。6、DenseNet使用密集连接(DenseConnection)来连接每个卷积层,保持梯度流动,增强特征的传播和融合。5:循环神经网络及其变体1、循环神经网络的概念和特点RNN的基本单元是一个循环神经元。2、循环神经元数学每一时刻的隐藏层不仅由该时刻的输入层决定,还由上一时刻的隐藏层决定。U、W、b都是完全共享的,非常轻量化。25分钟3、RNN的分类根据输入和输出的长度和形式,RNN可以分为以下类型:一对一:可以用来处理固定长度的数据,例如图像分类、回归;一对多:可应用于图像描述、音乐生成等;多对一:可应用于文本分类、情感分析、语音识别等;多对多:可应用于机器翻译、序列标注、语音合成等。4、RNN的变体RNN的一个主要问题是梯度消失或爆炸的问题,即在反向传播过程中,梯度随着时间步的增加而呈指数级衰减或增长,导致出现训练困难或不稳定现象。RNN结构被提出。模型类型 结构特点 优点 缺点 适用场景最基本的循 计算简单, 梯度消失/爆简单RNN 短序列任务环结构 参数少 炸问题长序列,重引入门控机 解决长依赖 计算复杂,LSTM 要信息间隔制 问题 参数多远极端长序列 中等长度序简化版GRU 计算效率高 可能不如 列,资源受LSTMLSTM 同时考虑前 不能实时处 需要完整序双向RNN 信息更全面后文 理 列的任务知识点6:Transformer网络的基本原理和结构1、Transformer网络的基本原理TransformerRNN2、Transformer网络的基本单元TransformerBlockTransformerBlock化技术。30分钟PAGEPAGE103、位置编码Transformer4、自注意力机制自注意力机制的基本思想是计算输入序列中每个元素与其他所有元素之间的关联性,从而捕捉序列中的依赖关系和结构信息。自注意力机制的计算流程如下:从每个编码器的输入向量中生成查询向量、键向量和值向量self-attentionencode根据这些权重对所有的值进行加权求和,得到当前元素的新表示5、多头注意力机制知识点1、ViT模型20分钟7:transformer网络的应用领域(1)基本原理ViTTransformer(2)模型结构ViTtransformerTransformerTransformerTransformerViT2、GPT系列模型(1)基本原理GPTTransformer(2)模型结构GPT(Decoder-only)。解码器是一个多层的自注意力网(3)训练过程7:大语言模型的关键技术1、常见的大语言模型GPTBERT,双向的编码器模型T5,将所有任务都转化为文本生成任务10分钟CLIP,多模态模型,可将图像和文本对齐2、关键的大语言模型技术(如任务准确率或生成质量(参数数量)、数据量和计算量的增加而变化8:神经网络压缩与加速1、为什么要对神经网络进行压缩和加速2、主要的神经网络压缩与加速技术20分钟CP((称为量化:通过减少模型参数和激活值的位宽来降低存储和计算需求的技术;常见的量化技术包括定点量化、动态量化、后训练量化、量化感知训练。9:轻量化模型设计1、轻量化神经网络设计的评价指标参数量:指模型中可训练的参数的个数;一般参数量越少,模型越简单,存储空间越小,但是也可能导致模型表示能力的下降计算量:指模型进行一次前向传播所需要进行的每秒浮点运算次数(PloatingPointOperationsPerSecond,FLOPS),它反映了模型的2、常见的轻量化神经网络结构FireImageNetAlexNet1/50(DepthwiseSeparableConvolution,DSC)ImageNetInceptionV310分钟精度,但是参数量却减少到原来的1/36MobileNet,一种基于深度可分离卷积的轻量化网络结构,MobileNetV1ImageNetVGG-161/32;MobileNetV2ImageNetMobileNetV11/10(GroupChannelShuffle的轻量化网络结构,ShuffleNetV1ImageNetV11/253、轻量化神经网络的发展趋势模型和硬件的深度结合更加注重训练过程中的资源节约和效率提升知识小结transformer经网络结构,最后展望轻量化神经网络的发展趋势。5分钟作业CNNCNNCNNLeNet、AlexNet、VGG、ResNetRNN解释长短期记忆(LSTM)的结构及其工作原理。TransformerTransformerTransformerRNN为什么需要对神经网络进行压缩和加速?(10)什么是量化?神经网络模型量化的方法有哪些?(11)轻量化神经网络设计的主要评价指标有哪些?(12)描述常见的轻量化神经网络结构,如MobileNet、ShuffleNet等,并解释其设计思路和优缺点。PAGEPAGE1智能计算系统导论课程教案第五讲编程框架使用课名称: 智计算统导论授课教师:何召锋项刘宇李佩佩李威授课对象:人工智能学院专业本科生工单位: 人智能院课程名称智能计算系统导论授课章节第五章授课内容编程框架使用授课时长4学时授课班级/教 材编,人民邮电出版社授课时间/授课地点/教学目标1、理解编程框架在深度学习开发中的作用,掌握计算图、张量、自动求导等基本概念;2、了解PyTorch、TensorFlow2.0与飞桨的核心特点与适用场景;3、能够使用至少一种框架完成“数据准备—建模—训练—评估—保存/加载”的基本流程。教学内容1、为什么需要编程框架:效率、可维护性、调试、硬件加速与生态支持;2、编程框架概述:计算图(静态/动态、张量与自动微分;3、PyTorch:特点与基本用法;4、TensorFlow2.0:特点与基本用法;5、飞桨:特点与基本用法;6、本章小结与练习。教学重点1、动态/静态计算图与自动微分机制;2、三大框架的核心特点与差异;3、统一的模型开发流程(数据—模型—损失—优化—训练—评估—保存。教学难点1、计算图与自动求导在训练过程中的作用;2、不同框架API风格差异与迁移;3、训练循环与调参思路的建立。教学方法讲授+代码演示+课堂练习(小规模案例。教学特色1、讲授内容是根据教材知识和课外资料进行了综合整理,对必要内容进行了扩展,讲授内容源于教材而高于教材;2、教学内容有广度有深度,详略结合;3、教学目标明确、长远,联系实际;并在教学过程中灌输育人思想。教学环节教学内容时间分配知识回顾第四章深度神经网络1、CNN、RNN、Transformer的核心概念;2、压缩加速的概念和常用方法;5分钟知识点1、为什么需要为什么需要编程框架教学内容:从零开始实现深度学习算法并进行模型训练是一项复杂且容易出10分钟编程框架错的工作。深度学习模型包含大量细节与复杂的计算过程,手写实现不仅难以维护,还会在调试时遇到困难,例如难以可视化梯度、中间特征图或网络结构,导致问题难以定位。与此同时,模型需要不断迭代与更新,手写代码在扩展与维护方面成本极高。因此,深度学习编程框架通过提供高层抽象与内置功能,大幅降低了开发GPU/TPU件加速,显著提升训练与推理效率,同时可进行模型并行和数据并行以加速训练。在调试方面,框架通常配套可视化工具与调试模式,能够监控损失、准确率、梯度等关键指标,帮助开发者快速定位问题。再加上完善的文档、教程与社区生态,开发效率与模型可维护性显著提高,因此编程框架已成为深度学习实践的基础工具。知识点2、PyTorch1、PyTorch编程框架的特点教学内容:PyTorch以“动态图”为核心特征,适合研究与原型开发。其主要特点如下:1、动态图:计算图在运行时动态构建,能随着输入与控制流变化而调整,调试直观,易于观察中间结果与梯度信息。2、张量作为统一数据结构:PyTorch使用张量(Tensor)表示所有数据与GPUNumPy34、模块化设计:通过torch.nn提供丰富的神经网络层与工具,支持灵活的模型构建与组合。5、生态完善、应用广泛:社区资源丰富,广泛用于视觉、NLP、强化学习等任务,便于快速复现与迁移。2、PyTorch编程框架的基本用法教学内容:PyTorch的基本流程可概括为:安装与导入→张量操作→自动求导→构建模型→训练→保存与加载。(1)安装与导入根据CPU/GPU环境安装在代码中导入:importtorch(2)创建张量torch.Tensor(53):指定形状创建torch.tensor([5.534.5]):从列表创建torch.randn(33):随机初始化(3)张量操作加法:xy20分钟矩阵乘法:torch.mm(xy.view(3,1))改变形状:z.view(11)(4)自动求导requires_grad=True追踪梯度z.backward()触发反向传播,计算梯度(5)构建神经网络继承torch.nn.Module定义模型结构forward()中描述前向计算流程(6)损失函数与优化器例:nn.MSELoss()例:optim.SGD(net.parameters(),lr=0.01)(7)训练模型(典型训练循环)optimizer.zero_grad()清零梯度loss.backward()反向传播optimizer.step()更新参数(8)保存与加载模型保存:torch.save(net.state_dict(),'model.pth')加载:net.load_state_dict(torch.load('model.pth'))知识点3、TensorFlow2.0的特点与用法1、TensorFlow2.0的特点EagerExecution: TensorFlow2.0默认启用动态图执行,代码更接近普通Python,调试更直观,适合快速原型与实验。KerasAPI集成:tf.keras作为默认高层接口,简化模型构建、训练与部署流程。(3)自动微分与梯度计算:通过tf.GradientTape实现自动求导,支持高阶梯度计算,便于优化与研究任务。动静结合与部署能力:既可动态执行,也可导出为静态计算图,便于性能优化与工程部署。生态与工具链完善:提供TensorBoard可视化、TensorFlowHub模型库、Serving部署工具等,便于管理与应用模型。2、TensorFlow2.0的基本用法(1)安装与导入安装CPU/GPU版本(按环境选择)导入:importtensorflowastf(2)构建模型(KerasAPI)常用三种方式:20分钟Sequential:适合线性堆叠结构Functional:适合多输入/多输出与复杂结构Subclass:适合高度自定义结构(3)编译模型配置损失函数、优化器与评价指标:pile(optimizer=...,loss=...,metrics=...)(4)数据准备数据加载、归一化处理可用tf.data.Dataset构建训练/测试数据管道(5)模型训练使用model.fit()进行训练支持批训练与多轮迭代(6)模型评估与推断评估:model.evaluate()预测:model.predict()(7)模型保存与加载保存:model.save('my_model.h5')加载:tf.keras.models.load_model(...)4、飞桨的特点和基本用法1、飞桨的特点(1)(2)超大规模训练能力:支持分布式训练、模型并行与流水线并行等策略,满足超大规模模型训练需求。(3)多端多平台部署:提供高性能推理引擎,支持云端、移动端与边缘端部署,并兼容多类硬件平台。(4)2、飞桨的基本用法(1)安装与导入安装:pipinstallpaddlepaddle导入:importpaddle(2)定义模型飞桨支持三种常见建模方式:API:适合线性堆叠结构API:适合多输入/多输出及复杂拓扑API:适合高度自定义模型结构20分钟(3)定义损失函数如SE(4)定义优化器常用优化器如SGD、Adam等,用于更新模型参数。(5)训练模型典型训练流程包括:→→→→参数更新循环迭代直至满足训练条件(6)评估模型在验证/测试集上计算准确率、F1等指标评估模型性能。(7)保存与加载模型保存:paddle.save(model.state_dictmodel.pdparams')加载:model.load_dict(paddle.load('model.pdparams'))本章小结1、编程框架通过高层抽象与自动求导显著提升深度学习模型的开发效率与可维护性。2、PyTorch、TensorFlow2.0与飞桨是主流深度学习框架,分别在动态图易用性、工程部署与产业生态等方面具有特色。3、深度学习框架的通用流程包括数据准备、模型构建、损失与优化、训练、评估以及模型保存与加载。4、熟练掌握至少一种框架的基本用法,为后续模型设计、优化与应用落地奠定基础。10分钟作业1、理论理解题请用自己的话说明“为什么需要编程框架”,并从以下角度给出不少于300字的回答:手工实现深度学习模型可能遇到的主要困难;自动求导、硬件加速与调试工具带来的具体帮助;框架生态(文档、社区、模型库)对学习与工程落地的作用。2、概念辨析题对比动态图与静态计算图,至少给出4个维度的差异(如开发效率、调试方式、性能优化、部署场景等。3、代码实践题(基础)/TensorFlow2.0/(可使用MNIST或自建数据集。要求:数据准备与预处理;至少包含2;至少5个epoc;;-保存模型与加载模型的代码。+(150。4、代码实践题(对比/进阶)在完成基础模型后,尝试调整1个超参数(如学习率、batchsize、隐藏层维度(150字。5、框架比较题从“开发体验、可视化与调试、部署能力、社区生态”四个方面,对PyTorch、TensorFlow2.0、飞桨进行对比分析,写一段不少于400字的总结。(可选加分)实现同一个小任务分别用两种框架完成,并对比代码行数与开发效率,附上截图或训练曲线。PAGEPAGE1智能计算系统导论课程教案第六讲编程框架机理课名称: 论 授课教师:何召锋项刘宇李佩佩李威授课对象:人工智能学院专业本科生工单位: 院 课程名称智能计算系统导论授课章节第六章授课内容编程框架机理授课时长3学时授课班级/教 材编,人民邮电出版社授课时间/授课地点/教学目标1、理解深度学习编程框架在人工智能系统中的作用与意义;2、掌握PyTorch框架的设计原则及其核心思想;3、理解PyTorch的系统架构与关键实现机制4、了解主流深度学习框架的特点及适用场景;5、通过自动微分实验,加深对反向传播与自动求导机制的理解。教学内容1、PyTorch的设计原则;2、PyTorch系统实现机制;3、主流深度学习编程框架对比;4、实验:自动微分框架设计与实现。教学重点1、PyTorch的设计思想与动态图机制;2、自动求导(Autograd)与计算图执行机制;3、张量与设备管理在模型训练中的作用;4、自动微分与反向传播的基本原理。教学难点1、动态计算图的构建与反向传播过程;2、自动求导机制的内部逻辑;3、分布式训练中参数同步与通信机制的理解。教学方法教师讲授、启发式提问、板书推导、多媒体幻灯片演示与代码示例相结合。教学特色1、以实际深度学习框架为例,将抽象原理与工程实践相结合;23、强调人工智能系统工程思维,增强学生对底层机制的认知能力。教学环节教学内容时间分配知识回顾第五章编程框架使用1、编程框架的必要性;2、主流编程框架对比;3、PyTorch的基本使用方法;4、TensorFlow的基本使用方法。5分钟知识点1、编程框架概述与1、深度学习编程框架的作用教学内容:深度学习编程框架为模型构建、训练和部署提供统一的工具与接口,屏蔽底层硬件和算法实现细节,大幅提升模型开发效率,是现代人工智能系统的重5分钟要基础设施。知识点2、PyTorch设计原则1、PyTorch的设计原则教学内容:PyTorch的设计主要遵循以下三个原则:1)简洁性:APIPythonNumPy,模型结构清晰,易于理解和维护;2)灵活性:采用动态图机制,支持运行时动态构建计算图,便于调试和复杂模型设计;3)高效性:支持GPU加速、底层C++实现以及分布式训练,能够满足大规模模型训练需求。5分钟知识点3、PyTorch系统架构1PyTorchPyTorch1)数据存储与计算层(Tensor)CPUGPU2)自动求导与计算图执行层该层通过自动求导机制(Autograd)记录张量运算之间的依赖关系,在前向传播过程中动态构建计算图,并在反向传播时根据链式法则自动计算梯度。3)神经网络构建层该层提供了torch.nn等模块,用于定义网络结构、损失函数和常用模型组件,支持模块化、可复用的网络设计方式。4)优化与训练控制层该层通过torch.optim等模块实现参数更新策略,如随机梯度下降、Adam等优化算法,并支持模型训练过程的灵活控制。5)应用与接口层通过上述分层结构,PyTorch实现了对底层硬件和复杂算法细节的封装,使用户能够专注于模型设计与算法创新。10分钟知识点4、张量机制1、张量(Tensor)机制教学内容:PyTorch1)多维数据表示能力10分钟2)硬件无关性张量支持在CPU、GPU等不同设备上进行计算。通过设备抽象机制,用户可以在不改变算法逻辑的情况下,将计算迁移到不同硬件平台。3)与自动求导机制的结合4)高效并行计算能力C+CUDA2、张量在模型训练中的作用教学内容:在深度学习模型训练过程中,张量贯穿始终,具体体现在以下几个方面:1)模型参数以张量形式存储,并在训练过程中不断更新;2)输入样本和标签以张量形式参与前向传播计算;3)损失函数的计算结果以标量张量表示;4)反向传播过程中,各参数张量自动获得对应的梯度值。因此,总结来说,张量既是数据载体,也是计算与优化过程中的关键节点,是连接模型结构、计算图和优化算法的核心纽带。知识点5、自动求导1、自动求导机制概述自动求导是一种基于计算图的求导方法,它通过记录变量之间的运算关系,在不显式给出函数解析形式的情况下,能够准确计算任意可导函数的梯度。PyTorch配套示例代码:importtorch#1)定义需要梯度的参数张量w=torch.tensor(2.0,requires_grad=True)b=torch.tensor(-1.0,requires_grad=True)#2)前向计算x=torch.tensor(3.0)y_pred=w*xb #张量运算会被记录到计算图中#3)构造一个简单损失函数(目标值y=4)y_true=torch.tensor(4.0)loss=(y_pred-y_true)**2print("loss=",loss.item())print("loss.grad_fnloss.grad_fn) loss#4)反向传播:自动计算梯度loss.backward()print("dw=",w.grad.item())print("db=",b.grad.item())20分钟2、自动求导的实现原理PyTorch的自动求导机制基于链式法则实现反向传播。其基本流程如下:1)在前向传播过程中,框架会记录每一次张量运算及其对应的梯度计算规则;2)这些运算按照执行顺序被组织成一张计算图;4)根据链式法则逐层计算梯度,并将梯度累积到各参数张量中。通过上述机制,PyTorch能够自动完成复杂模型的梯度计算,而无需用户手动推导和实现反向传播公式。配套示例代码:importtorchx=torch.tensor(1.5,requires_grad=True)#构造一个多步运算链:y=(x^2+3x)*2a=x**2b=3*xc=a+by=2*cprint("y=",y.item())print("y.grad_fny.grad_fn) #yy(dy/dy=1)y.backward()print("dy/dx=",x.grad.item())3、梯度的存储与管理在自动求导过程中,梯度信息以张量属性的形式进行存储和管理。当张量被设置为需要计算梯度时,其在反向传播完成后会生成对应的梯度值。梯度具有以下特点:1)梯度以张量形式存储,与参数张量一一对应;2)梯度在多次反向传播中默认采用累加方式;配套示例代码:importtorchw=torch.tensor(2.0,requires_grad=True)x=torch.tensor(3.0)#第一次反向传播loss1=(w*x)**2loss1.backward()print("Afterloss1.backward(),w.grad=",w.grad.item())#第二次反向传播(不清零,梯度会累加)loss2=(w*x)**2loss2.backward()print("After loss2.backward(), w.grad =", w.grad.item(),"(accumulated)")3)在模型训练过程中,通常需要在每轮迭代前对梯度进行清零操作,以避免梯度叠加带来的影响。配套示例代码:importtorchw=torch.tensor(2.0,requires_grad=True)x=torch.tensor(3.0)optimizer=torch.optim.SGD([w],lr=0.1)forstepinrange(3):(grad)optimizer.zero_grad()loss=(w*x-5)**2loss.backward()optimizer.step()print(f"step={step},loss={loss.item():.4f},w={w.item():.4f},grad={w.grad.item():.4f}")4)合理管理梯度是保证模型训练稳定性和正确性的关键。知识点6、计算图执行机制1、计算图的基本概念教学内容:计算图是一种用于描述数学运算依赖关系的有向无环图。在计算图中:1)节点表示张量或中间计算结果;2)边表示张量之间的运算关系;3)图中从输入节点到输出节点的路径描述了前向传播过程。PyTorch2、动态计算图机制教学内容:与早期采用静态计算图的深度学习框架不同,PyTorch采用动态图机制。动态图机制的主要特点包括:1)计算图在运行过程中动态生成,而非事先定义;2)计算图结构可根据输入数据或程序控制流程发生变化;3)前向计算结束后,计算图随即释放,不占用额外资源。3、计算图执行与反向传播触发机制计算图的反向执行由反向传播操作触发。在执行过程中:1)计算图中每个节点的局部梯度会被逐步计算;2)梯度按照链式法则进行传播和累积;3)最终得到各模型参数相对于损失函数的梯度值。这一过程构成了深度学习模型训练中“前向传播—反向传播—参数更新”的核心计算循环。10分钟知识点7、设备1、设备管理机制教学内容:随着深度学习模型规模和计算复杂度的不断提升,模型训练对计10分钟管理算资源提出了更高要求。为充分利用不同类型的硬件资源,PyTorch提供了统一的设备管理机制。PyTorchCPU、GPU2、多设备计算与模型迁移教学内容:在实际应用中,为加速模型训练或处理大规模数据,常常需要使用GPU或多块计算设备进行计算。PyTorch多设备计算机制具有以下特点:1)模型结构与设备类型相互独立;2)相同模型代码可在不同硬件环境中复用;3)支持在训练和推理阶段灵活切换计算设备。这种设计方式提高了模型代码的可移植性和系统的工程适应能力。知识点8、分布式训练1、分布式训练的基本思想分布式训练的基本思想是:在分布式训练中,核心问题包括:1)计算任务的划分方式;2)参数或梯度的同步策略;3)多进程或多设备之间的通信机制。2、PyTorch的分布式训练机制教学内容:PyTorch在分布式训练过程中:1)模型通常会被复制到多个计算进程或设备上;2)每个进程负责处理一部分训练数据;3)各进程在完成局部计算后,对梯度或参数进行同步;4)同步完成后进入下一轮训练;25分钟5)PyTorchimporttorchimporttorch.nnasnnimporttorch.optimasoptimimporttorch.distributedasdistfromtorch.utils.dataimportDataset,DataLoaderfromtorch.utils.data.distributedimportDistributedSamplerdefsetup_distributed():"""torchrun会自动设置环境变量:RANK,WORLD_SIZE,LOCAL_RANK,MASTER_ADDR,MASTER_PORT"""dist.init_process_group(backend="nccl" iftorch.cuda.is_available()else"gloo")rank=dist.get_rank()local_rank=int(os.environ.get("LOCAL_RANK",0))world_size=dist.get_world_size()returnrank,local_rank,world_sizedefcleanup_distributed():dist.destroy_process_group()classToyDataset(Dataset):definit(self,n=2048,d=10):self.x=torch.randn(n,d)true_w=torch.randn(d,1)self.y=(self.x@true_w0).float() #二分类标签deflen(self):returnself.x.size(0)defgetitem(self,idx):returnself.x[idx],self.y[idx]#定义模型classSimpleNet(nn.Module):definit(self,d=10):super().init()=nn.Sequential(nn.Linear(d,32),nn.ReLU(),nn.Linear(32,1))defforward(self,x):return(x)defmain():rank,local_rank,world_size=setup_distributed()#设备设置iftorch.cuda.is_available():torch.cuda.set_device(local_rank)device=torch.device(f"cuda:{local_rank}")else:device=torch.device("cpu")#DistributedSampler确保每个进程拿到不同子集dataset=ToyDataset(n=4096,d=10)sampler=DistributedSampler(dataset,num_replicas=world_size,rank=rank,shuffle=True)dataloader = DataLoader(dataset, batch_size=64,sampler=sampler,num_workers=0)#每个进程各有一份模型,并用DDP包裹model=SimpleNet(d=10).to(device)ddp_model=torch.nn.parallel.DistributedDataParallel(model,device_ids=[local_rank]iftorch.cuda.is_available()elseNone)criterion=nn.BCEWithLogitsLoss()optimizer=optim.SGD(ddp_model.parameters(),lr=0.1)#训练循环forepochinrange(3):ddp_model.train()#关键:每个epoch需要set_epoch,保证各进程shuffle一致但划分不同sampler.set_epoch(epoch)total_loss=0.0forx,yindataloader:x,y=x.to(device),y.to(device)optimizer.zero_grad()logits=ddp_model(x)loss=criterion(logits,y)loss.backward()#DDP会在backward时自动做梯度同步(All-Reduce)optimizer.step()total_loss+=loss.item()#只让rank0打印,避免多进程刷屏ifrank==0:avg_loss=total_loss/len(dataloader)PAGEPAGE10print(f"[Epoch{epoch}]avg_loss={avg_loss:.4f}")cleanup_distributed()ifname =="main":main()知识点9、算子实现1、算子的概念与作用在PyTorch中,算子主要用于实现张量之间的各种运算,包括:1)基本数学运算;2)逻辑与比较运算;3)激活函数运算;4)卷积、池化等

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论