版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
国家级一流本科线上线下混合式课程“人工智能”第7章
人工神经网络与深度学习了解人工神经元、人工神经网络和深度学习的基本概念理解人工神经元和人工神经网络的工作过程掌握神经元、BP神经网络和生成对抗网络的工作原理能够搭建BP神经网络模型、生成对抗网络模型,完成网络的训练和应用本章主要内容和目标主要内容7.1人工神经元与人工神经网络7.1.1神经元与人工神经元7.1.2人工神经网络国家级一流本科课程
深度学习框架
神经网络BP神经网络
神经元神经元、神经网络与深度学习生物神经元细胞体是进行信息处理。轴突作用相当于神经元的输出。树突作用相当于神经元的输入端。神经元模型如何工作?下面我们看一个例子构建一个90个输入的神经元数字9的图像和数字图像数字6和数字9对于数字6模式的net值常用的几种激活函数(1)
sigmoid函数:(2)
符号函数:常用的几种激活函数(3)线性整流函数ReLU:(4)双曲正切函数:数字6的模式是给定的用数字6的模式作为神经元的连接权重单一神经元的学习注意:
在一般情况下,我们并不知道待识别对象的模式,也就不知道神经元的连接权重,如何通过对实例数据学习来确定连接权重?单一神经元学习过程单一神经元学习算法:为什么要用激活函数?为什么要用偏置值?怎样设置偏置值?=61=51神经元的训练学习过程的一个简单例子输入是数据2,期望输出是数据7。神经元的学习训练过程16次调整后神经元的建模过程目标:确定连接权重、激活函数过程:正向传递数据反向调整参数直至满足误差要求7.1.2人工神经网络
神经网络是由神经元广泛互连组成的网络。神经网络中的神经元也称为神经元节点,或直接称为节点。人工神经网络的分类——根据神经元的连接方式划分前馈型神经网络反馈型神经网络前馈型神经网络神经网络学习
神经网络学习是指调整神经网络的连接权重或者结构,使得对任一输入都能得到所期望的输出。
所谓训练,就是通过样例数据调整神经网络的连接权重的过程,且使得正确识别的输出接近于1,非正确识别的输出时接近于0。神经网络知识表示方法推方法理当网络模型确定后,通过样例数据训练网络参数的过程,相当于学习过程;对未知输入数据进行识别或判断的过程,相当于推理过程。主要内容7.2BP神经网络及其学习算法7.2.1BP神经网络结构7.2.2BP神经网络的学习算法国家级一流本科课程7.2.3BP神经网络学习的例子7.2.1BP神经网络结构BP神经网络属于前馈型神经网络类型。图7-15BP神经网络结构示意图加入偏执点的BP神经网络结构示意图数据在BP神经网络中的传递过程BP神经网络的优势
BP神经网络具有很强的学习能力
已经证明,对于任意一个给定的连续函数,可以用一个三层的BP神经网络以任意精度逼近。对于一个实际问题如何选择合理的BP神经网络层数和每层的神经元的个数,目前尚缺少有效的理论和方法。7.2.2BP神经网络的学习算法建立一个确定的神经网络,调整网络连接权重值和偏置值,使得对于任一输入都能够得到所期望的输出。通过正向的数据传播,进行网络计算;通过反向逐层的误差传播,调整网络中的各个连接权重和偏置值,以得到需要的BP神经网络。BP神经网络学习方法BP神经网络学习目的BP神经网络学习的主要思路应用训练数据对网络进行训练,直至所有样例数据的网络输出与期望输出之间误差达到要求为止。BP神经网络学习过程(1)误差是如何表示和传递的呢?(2)连接权重是如何调整的?这里有两个关键的问题:(1)误差是如何表示的?一般用一个称之为损失函数的函数来刻画该样例数据的网络输出与其期望输出之间的误差,梯度下降算法图7-20修改量过大可能产生的“振荡”现象示意图图7-19一元二次函数图像及求最小值示意图第一种情况:输出层神经元与其上一层神经元连接参数的调整第二种情况:隐藏层、输入层神经元连接参数的调整我们先来讨论第m-2层第i个神经元与第m-1层第j个神经元的连接参数的调整第m-2层第i个神经元与第m-1层第j个神经元的连接参数的调整同理可推得,BP神经网络中的第层的第i个神经元与第k层的第j个神经元的连接权重用的调整公式为其中,且有BP神经网络的连接参数调整过程说明BP神经网络的连接参数调整是“由后向前”进行的。
首先,调整的是输出层神经元与其上一层神经元的连接参数;接着,“由后向前”依次调整隐藏层与其前一层各个神经元的连接权重,直至第一个隐藏层与输入层各个神经元的连接权重为止,完成一次神经网络参数调整。之后,应用新的连接参数和样例数据,从前向后传递数据,直至输出层得到输出后,将输出与期望输出计算误差。如果满足误差要求,则结束一轮次的连接权重的调整,否则根据新的误差函数再从后向前调整连接权重,直到满足误差要求为止。
一般地,一次使用一个样本的BP算法称为随机梯度下降算法,一次使用一小部分样本的BP算法称为小批量梯度下降法。循环往复,多次调整,直至满足误差要求。BP神经网络算法学习的步骤:(1)初始化BP神经网络,随机给网络中的所有连接权重赋初值;(2)从训练样例集中取一个样例,将样例信息输入的网络;(3)由网络的输入端开始,“由前向后”计算各层神经元节点的输出;(4)计算网络的实际输出与期望输出的误差;(5)从输出层开始反向计算调整连接权重直到第一层,按照梯度下降的方法,向着误差减小的方向,调整各个连接参数;(6)对训练样例集中的每一个样例重复上面的步骤,直到对整个训练样例集的误差达到要求为止。BP神经网络学习的例子赋初值输出层与其上一层的连接参数隐藏层与其上一层的连接参数输入层的连接参数BP神经网络学习的例子y=5.00009858192轮次参数调整满足误差要求误差随着参数调整轮次的变化情况和损失函数随着参数调整轮次的变化情况迭代算法BP算法实际上是一个迭代算法,反复使用训练集中的样本对神经网络进行训练01收敛速度慢BP学习算法在训练时需要大量的带有标签的训练数据,且由于算法采用的是梯度下降方法进行的连接参数调整,使得算法容易陷入局部最优。02没有架构设计的标准我们在使用BP神经网络时网络需要多少层、每层需要多少神经元节点等都没有相关的标准或准则。03BP学习算法的总结2016年GeoffreyHinton在《科学》上发表了题为“用神经网络降低数据维数”的论文,被认为是深度学习(DeepLearning)领域开创性论文,掀起了AI和神经网络的研究热潮,深度学习甚至成为了神经网络的代名词。7.3深度学习深度神经网络国家级一流本科课程深度学习框架神经网络所包含的层数称为神经网络的深度,并将包含很多很多层的神经网络称为深度神经网络(DeepNeuralNetwork,DNN),相应的学习算法被称为深度学习(DeepLearningNeuralNetwork,DL)深度学习框架是为了解决网络算法及其推导的复杂性问题而产生的。很多公司设计和开发了许多深度学习框架,这些框架是专门为搭建神经网络而设计的。使用深度学习框架时,我们只需要设计好神经网络,框架会自动实现BP算法。判别式模型生成式模型深度学习模型深度学习模型按照功能分类所谓的判别式模型是指用来判别“是什么”或是“属于哪一类?的深度学习模型。所谓的生成式模型是指用来生成数据、图像、样例,甚至模式等的深度学习模型。主要内容7.4生成对抗网络及在图像生成中的应用7.4.1生成对抗网络7.4.2基于生成对抗网络的图像生成方法国家级一流本科课程7.4.1生成对抗网络生成对抗网络(generativeadversarialnetworks,GAN)于2014年由Goodfellow等人提出,它是一种无监督学习算法框架。生成对抗网络属于生成式深度学习模型。1、生成对抗网络GAN的结构生成对抗网络(以下简称GAN)主要由生成网络和判别网络两部分组成,一般称生成网络为生成器,判别网络称为判别器。2、生成对抗网络GAN的目标函数
生成对抗网络GAN学习训练目标:使生成网络生成的数据样本更接近真实样本,使判别网络的判别数据样本的结果更准确。
在GAN中生成网络G和判别网络D的优化可看作是一个二元极小极大的问题,建立包含G和D的目标函数V(G,D),如下式所示2、生成对抗网络GAN的目标函数——判别器和生成器的最优条件3、生成对抗网络GAN的训练3、生成对抗网络GAN的训练7.4.2基于生成对抗网络的图像生成方法1、
基于生成对抗网络GAN图像生成方法2图像生成的例子实验平台主要包括硬件实验平台和软件实验平台。数据集使用的是MNIST数据集,它是一个广泛用于机器学习和图像识别研究的手写数字图像数据集。3、结果与分析请多多指教!谢谢您的关注!国家级一流本科课程国家级一流本科课程第8章
基于卷积神经网络图像分类方法及案例章节11卷积神经网络结构233基于PyTorch框架的Mnist数据集分类案例2卷积神经网络基础本章学习目标了解卷积神经网络背景知识学习卷积神经网络原理及结构认识PyTorch框架熟练掌握构建和训练卷积神经网络模型本章主要介绍卷积神经网络的发展过程和基础知识,以及基于卷积神经网络的图像分类方法,并通过所学分类方法进行案例实验。通过了解卷积神经网络的原理及结构的相关知识,将学习如何构建和训练卷积神经网络模型来解决图像分类问题1卷积神经网络结构PART11卷积神经网络结构定义卷积神经网络(ConvolutionalNeuralNetworks,以下简称CNN)是一种前馈神经网络,具有深度结构并使用卷积计算。它是深度学习中的重要算法之一,其灵感来源于人类视觉系统的工作原理。它在图像分类、语义分割、目标检测等任务中取得了巨大的成功。CNN的组成部分包括卷积层、池化层、全连接层和激活函数。贯穿整个CNN的特点是参数共享和局部连接。参数共享意味着在卷积过程中,同一个卷积核会在输入数据的不同位置上应用,从而共享参数并减少模型的复杂度。局部连接意味着每个卷积核只关注输入数据中的局部区域,有助于更好地捕捉局部特征。1卷积神经网络结构总体架构CNN的卷积层用于提取图像中的局部特征,池化层用于减少参数量和计算复杂度,并提取具有鲁棒性的特征,全连接层用于将特征表示映射到输出类别,激活函数使模型进行非线性的变换从而起到更好的拟合效果。模型的训练和优化通过反向传播算法来更新模型的权重和偏置1卷积神经网络结构卷积层卷积操作也可以看成一个函数或者一种算法,这种函数则需要输入一个矩阵和卷积核,按照卷积步骤要求进行计算。可以通过下面的图示进行简单理解,假设有一个5*5的矩阵和一个3*3的卷积核。1卷积神经网络结构当进行卷积操作时,我们将这个3*3的卷积核应用于5*5的输入矩阵中每个位置,s通过逐元素相乘并求和的方式来计算输出矩阵的对应位置的值。1卷积神经网络结构卷积层的输出可以作为下一层的输入,通过堆叠多个卷积层,网络能够学习到更加抽象和高级的特征表示。下面将用代码和可视化结果,对卷积层进行进一步的学习。首先需要导入进行卷积操作所用到的库:1卷积神经网络结构加载输入的图片并创建一个卷积核使用Scipy库中的convolve2d函数来进行二维卷积操作通过plt库绘制出输入图像、卷积核、卷积后图像1卷积神经网络结构1卷积神经网络结构池化层在经过卷积层提取完特征之后,可以直接连接全连接层然后接softmax进行分类输出图片类别,但此时所经过卷积后的特征图数据量特别大,也就面临着庞大的计算量挑战,这时池化层就发挥出了应有的作用,它可以进一步降低网络训练参数和模型过拟合的程度。1卷积神经网络结构总的来说,池化层是CNN中用于减小特征图尺寸、参数数量和计算复杂度的重要组成部分。它通过对输入特征图的局部区域进行汇聚操作,将特征值聚合为一个更小的输出值。池化层在特征提取过程中起到重要作用,并增加了网络的平移不变性和鲁棒性。1卷积神经网络结构下面将用代码和可视化,对池化层进一步的学习。首先导入池化操作所用到的库。定义一个最大池化操作的函数:1卷积神经网络结构定义一个平均池化操作的函数:定义一个输入图像和池化尺寸,执行最大池化和平均池化操作:1卷积神经网络结构使用plt库将两种池化后的结果可视化:1卷积神经网络结构激活函数以下是几种常见的激活函数及其特点Sigmoid函数Tanh函数1卷积神经网络结构激活函数以下是几种常见的激活函数及其特点ReLU函数LeakyReLU函数1卷积神经网络结构全连接层全连接层是神经网络中常见的一种层级,它起着将前一层的所有神经元与当前层的所有神经元相连接的作用,实现了神经网络的端对端映射。全连接层的主要功能是通过激活函数引入非线性映射能力,并将前一层的特征映射到当前层的输出。这样,通过堆叠多个全连接层,神经网络可以实现复杂的非线性映射。全连接层还能够通过调整权重矩阵中的权重来学习输入特征与输出结果之间的关系,从而实现对输入数据的分类、回归以及其他任务。1卷积神经网络结构随着神经网络中的全连接层数的增加,使得参数增加,表示能力大幅度增强的同时,也很容易出现过拟合现象。过拟合指的是机器学习模型在训练数据上表现得很好,但在新的未见过的数据上表现较差的现象。当模型过度地记住了训练数据的细节和噪声,而未能很好地捕捉到数据的普遍模式和规律时,就会出现过拟合。随着神经网络的发展,许多过拟合的解决方法被提出。1卷积神经网络结构Dropout的主要作用是减少神经网络的复杂度,防止神经元之间出现过度依赖,从而提高模型的泛化能力。它可以视为在每个训练样本中使用了不同的子网络,通过对不同的子网络进行训练来获得模型的鲁棒性。下图为未使用Dropout和使用Dropout的全连接层对比图1卷积神经网络结构下面将用代码和可视化对全连接层进行进一步的学习,首先需要导入全连接层所用到的库,定义一个含有dropout正则化方法的全连接层:1卷积神经网络结构创建一个模型的实例:使用模型进行前向传播,输入数据是32个样本,每个样本有10个特征:
1卷积神经网络结构学习率是一个控制模型更新步长的超参数,它决定了模型在每次参数更新时改变的幅度较高的学习率会导致参数更新过大,可能会使模型在训练过程中不收敛甚至发散。这种情况下,模型可能无法达到最优解,甚至无法有效地学习数据的特征。因此,如果学习率设置过高,需要降低学习率,以确保模型的稳定性和收敛性。另一方面,较低的学习率会导致训练过程收敛速度过慢,可能需要更多的迭代才能达到较好的性能。如果学习率设置过低,可以尝试增加学习率,以加快模型的收敛速度。
优化器是一种用于更新模型参数的算法。它根据模型的损失函数和参数的梯度来调整参数的值,以使模型在训练过程中逐渐优化并收敛到最优解。不同的优化器具有不同的更新策略和特点,可以根据具体任务和需求选择合适的优化器。学习率和优化器1卷积神经网络结构以下是一些在CNN中常用的优化器:1、随机梯度下降(StochasticGradientDescent,SGD):SGD是最基本和常用的优化器之一。它在每次迭代中随机选择一个样本或一小批样本来计算损失函数的梯度,并使用该梯度来更新模型参数。SGD可以用于训练CNN,但可能在收敛速度和稳定性方面存在一些问题。2、动量优化器:动量优化器在SGD的基础上引入了动量项,用于加速梯度下降过程。它通过累积之前的梯度方向来决定下一次更新的方向和步长,从而在训练过程中更快地收敛。动量优化器在训练CNN时可以帮助克服局部最优解,并提高训练速度和稳定性。3、AdaGrad:AdaGrad(AdaptiveGradient)是一种自适应学习率的优化器。它根据每个参数的历史梯度信息来自动调整学习率,对于稀疏特征或出现频率低的特征有较好的效果。在CNN中,AdaGrad可以用于训练,但可能会导致学习率过早下降,从而影响模型的收敛性能。1卷积神经网络结构以下是一些在CNN中常用的优化器:4、RMSProp:RMSProp(RootMeanSquarePropagation)是一种改进的AdaGrad算法。它引入了一个衰减系数来平衡历史梯度和当前梯度的比重,从而更好地适应不同特征的学习率。RMSProp在CNN中的训练中表现良好,能够加速收敛并提高性能。5、Adam:Adam(AdaptiveMomentEstimation)是一种结合了动量优化和自适应学习率的优化器。它通过计算梯度的一阶矩估计和二阶矩估计来自适应地调整学习率,并具有较好的收敛性和泛化性能。Adam是CNN中广泛使用的优化器之一,能够在训练过程中有效地优化模型参数。这些优化器在CNN的训练过程中具有不同的特点和适用性。选择合适的优化器取决于网络的结构、数据的特点以及训练任务的需求。此外,还可以结合学习率调度、正则化和其他技术来进一步优化CNN模型的训练和性能,学习率的选择对于模型的训练效果和收敛速度至关重要。1卷积神经网络结构本节内容主要讲述了卷积神经网络的主体结构和其中主要层次的原理及代码实现过程,接下来将运用卷积神经网络的所学内容进行实战练习,以卷积神经网络为框架,实现对图像分类的案例分析。2卷积神经网络基础PART22卷积神经网络基础CNN的具有特点如下1、参数共享和局部连接。2、对平移不变性具有良好的处理能力。3、深度学习和多层结构。4、自动学习特征表示。5、并行计算和高效处理。卷积神经网络的特点2卷积神经网络基础但是同时CNN也存在一些缺点:1、对输入尺寸有要求:CNN一般要求输入数据为固定大小的图像。这在某些应用场景下可能会限制其适用性。2、需要大量的训练数据:CNN通常需要大量的标注数据进行训练,以获得良好的性能。这对于某些领域或任务可能会存在挑战。3、训练和调参复杂:CNN的训练和调参过程相对复杂,需要进行适当的超参数调整和网络结构设计。2卷积神经网络基础卷积神经网络发展历程卷积神经网络在上个世纪已经初具雏形,在图像领域发挥着重要的作用。有许多经典的结构,主要包括:LeNet、AlexNet、ZFNet、VGG、GoogleNet、ResNet、SENet等,其发展过程如下图所示。2卷积神经网络基础84Lecun提出了LeNet-5模型结构,该模型将BP算法应用到这个神经网络结构的训练上,用于解决手写数字识别的视觉任务,就形成了当代CNN的雏形。2卷积神经网络基础852012年的ImageNet图像识别大赛,Hinton组的论文中提出了AlexNet模型,引入了dropout方法以及新颖的深层结构,将错误率从25%降低到了15%,以超过第二名10.9个百分点的巨大优势夺得当年冠军,颠覆了图像识别领域。2卷积神经网络基础86牛津大学提出了VGG-Nets,以VGG为基础网络,荣获了2014年ImageNet大赛中分类任务的第二名和定位任务的第一名。VGG可以看成是AlexNet的网络加深,通过反复堆叠3*3的小型卷积核和2*2的最大池化层来实现。2卷积神经网络基础87GoogLeNet将CNN的研究上升到了新的高度。2卷积神经网络基础882015年何恺明推出的ResNet在ISLVRC和COCO上获得第一名。ResNet在结构上做了更大的创新,它并不再是单一的的使用层数堆积,其添加了残差块这一结构,缓解了模型加深带来的梯度消失和梯度爆炸,同时也解决了网络退化问题。2卷积神经网络基础89在CNN的发展中,有许多工作致力于提升网络性能的空间维度,此外也可以从其他角度考虑提升性能,比如关注特征通道之间的关系。这种思路促使了SENet(Squeeze-and-ExcitationNetworks)的提出,SENet网络结构如下图所示。3基于PyTorch框架的Mnist数据集分类案例PART33基于PyTorch框架的Mnist数据集分类案例本章内容首先介绍了图像分类和分类任务所需要用到的PyTorch框架,主要介绍了PyTorch框架的优势和特点,以及在图像分类任务中常用到的库。之后介绍了本次实验案例所用到的Mnist手写数字数据集,以及运用PyTorch框架进行构建模型,实现了基于PyTorch对于Mnist数据集分类案例的整体过程。3基于PyTorch框架的Mnist数据集分类案例图像分类图像分类,就是根据图像信息中所反映出来的不同特征,把不同类别的目标区分开来的图像处理方法。CNN就是图像处理技术进步的产物,图像分类则是CNN常用的场景之一,在图像处理领域起到重要的作用和意义。我们可以通过CNN来实现在不同物种层次上识别不同对象。3基于PyTorch框架的Mnist数据集分类案例1、自动化识别和分类。图像分类使计算机能够自动地从大量的图像数据中识别和分类不同的对象、场景或模式。这对于人们进行手动分类和标注来说是一项耗时且费力的任务,而图像分类技术能够快速、准确地完成这项工作。2、目标检测和物体识别。通过对图像进行分类,可以确定图像中存在的对象或物体的类别,为进一步的分析和处理提供基础。01023基于PyTorch框架的Mnist数据集分类案例3、视觉监控和安全。图像分类在视觉监控和安全领域起到重要作用。通过对监控图像进行分类,可以自动识别出异常事件、危险物体或可疑行为,提高安全性和监控效率4、医学影像和诊断。图像分类在医学影像领域具有广泛应用。医生可以通过对医学图像进行分类,快速识别和诊断不同的病变、疾病或异常情况,提高医疗诊断的准确性和效率5、自动驾驶和智能交通。图像分类在自动驾驶和智能交通系统中起着关键作用。通过对道路图像进行分类,可以识别出交通标志、车辆和行人等,实现自动驾驶和智能交通的功能0304053基于PyTorch框架的Mnist数据集分类案例PyTorch介绍PyTorch由Facebook开源的神经网络框架,是Torch的python版本,专门针对GPU加速的深度神经网络编程。Torch是一个经典的对多维矩阵数据进行操作的张量库,在机器学习和其他数学密集型应用有广泛应用。与Tensorflow的静态计算图不同,PyTorch的计算图是动态的,可以通过实时运算来改变计算图。作为经典机器学习库Torch的端口,PyTorch为Python语言使用者提供了舒适的写代码选择,此外,PyTorch也遵循Python独特功能编写可读代码的编码风格。PyTorch能够实时运行和测试部分代码,而不是等待整个程序的编写3基于PyTorch框架的Mnist数据集分类案例1、速度快。PyTorch的灵活性不以速度为代价,在许多评测中,PyTorch的速度表现胜过Tensorflow和Keras等框架。框架的运行速度和程序员的编码水平有极大关系,但同样的算法,使用PyTorch实现的那个更有可能快过用其他框架实现的。2、使用简单。PyTorch是所有的框架中面向对象设计的最优雅的一个。PyTorch继承了Torch的特点,尤其是API的设计和模块的接口都与Torch高度一致。其设计最符合人们的思维,它让用户尽可能地专注于实现自己的想法,所思即所得,不需要考虑太多关于框架本身的束缚。PyTorch有着其他框架所没有的优势:3基于PyTorch框架的Mnist数据集分类案例3、架构简洁。PyTorch的设计追求最少的封装,尽量避免重复创造,简洁的设计带来的另外一个好处就是代码易于理解,PyTorch的源码只有Tensorflow的十分之一左右,更少的抽象、更直观的设计使得PyTorch的源码十分易于阅读。4、活跃的社区。PyTorch提供了完整的文档,循序渐进的指南,作者亲自维护的论坛供用户交流和求教问题。Facebook人工智能研究院对PyTorch提供了强力支持,作为当今排名前三的深度学习研究机构,FAIR的支持足以确保PyTorch获得持续的开发更新,不至于像许多由个人开发的框架那样昙花一现。3基于PyTorch框架的Mnist数据集分类案例NEXT此外,在运用PyTorch框架进行训练模型时常常会提及一些概念,因此有必要对重要的概念进行了解:张量(Tensor):张量是PyTorch中的核心数据结构,类似于多维数组。它可以表
示输入数据、模型参数和计算结果。张量可以具有不同的维度和形状,并且可以在CPU或GPU上进行计算。模型(Model):模型是由神经网络层组成的结构,用于执行特定任务。
PyTorch提供了nn.Module类,用于定义和组织模型。模型可以包含各种层(如全
连接层、卷积层、循环神经网络等)以及激活函数和损失函数等。123基于PyTorch框架的Mnist数据集分类案例3前向传播(ForwardPropagation):前向传播是指从模型的输入开始,通过模型的各个层逐层计算,最终得到输出的过程。在PyTorch中,可以通过定义模型的"forward"方法来实现前向传播逻辑4反向传播(BackwardPropagation):反向传播是训练神经网络模型时使用的一种算法,用于计算模型参数的梯度。通过自动求导功能,PyTorch可以根据损失函数和前向传播过程自动计算每个参数的梯度,并将其保存在模型的属性中。这些梯度可以用于更新模型参数以最小化损失函数5优化器(Optimizer):优化器是用于更新模型参数的算法。PyTorch提供了各种优化器,如随机梯度下降、Adam、Adagrad等。优化器根据模型参数的梯度和学习率等参数,计算出参数的更新量,并将其应用于模型6损失函数(LossFunction):损失函数用于衡量模型在训练数据上的性能。PyTorch提供了各种损失函数,如均方误差(MSE)、交叉熵损失(Cross-Entropy)、对比损失(ContrastiveLoss)等。损失函数通常与优化器一起使用,用于计算梯度并更新模型参数3基于PyTorch框架的Mnist数据集分类案例1、NumPy:NumPy是一个Python科学计算的核心库,提供了高性能的数值计算功能。它支持多维数组和矩阵操作,以及广播功能。在PyTorch中,张量操作和数据处理与NumPy非常相似,因此NumPy经常与PyTorch一起使用。可以通过使用NumPy来加载、转换和操作数据,以及进行数学计算和统计分析。2、Pillow:Pillow是一个Python图像处理库,可以与PyTorch一起使用。它提供了丰富的图像读取、保存和处理功能。使用Pillow也可以轻松地加载、保存和转换各种图像格式,如JPEG、PNG等。此外,Pillow还提供了一些图像处理操作,如调整大小、裁剪、旋转、滤镜等。在PyTorch中,可以使用Pillow来预处理图像数据,以便用于训练和评估模型。3、Matplotlib:Matplotlib是一个广泛使用的Python绘图库,用于创建各种静态、动态和交互式图表。它提供了丰富的绘图功能,包括折线图、散点图、柱状图、饼图等。在PyTorch中可以使用Matplotlib来可视化模型的训练过程、绘制损失函数曲线、显示图像结果等。其简单易用性使得它成为了PyTorch中常用的可视化工具之一。PyTorch常用库介绍3基于PyTorch框架的Mnist数据集分类案例4、torchvision:torchvision是一个用于计算机视觉任务的PyTorch扩展库。它提供了一些常用的数据集如CIFAR-10、CIFAR-100、MNIST等。这些数据集可以通过简单的调用进行加载,并且已经预定义了数据预处理的方式。同时包含了一些经典的图像分类模型,如AlexNet、VGG、ResNet等。这些模型可以通过简单的调用进行加载,并且可以使用预训练的权重进行初始化。5、OpenCV:OpenCV是一个开源的计算机视觉库,提供了大量的图像处理和计算机视觉算法。它支持各种图像操作,如加载、保存、调整大小、裁剪、旋转、滤镜、边缘检测等。在PyTorch中可以使用OpenCV来进行更高级的图像处理操作,如图像增强、对象检测、图像分割等。OpenCV还提供了一些计算机视觉算法的实现,如人脸检测、目标跟踪等。PyTorch可以与OpenCV无缝集成,以便进行更复杂和灵活的图像处理任务。3基于PyTorch框架的Mnist数据集分类案例Mnist数据集介绍Mnist数据集来自美国国家标准与技术研究所,它是一个经典的机器学习数据集,,其中训练集来自250位测试人员手写的数字构成,其中一半是高中学生,另一半是人口普查局的工作人员。测试集与训练集类似,也是相同占比的手写数字数据,该数据集在图像分类任务中应用非常广泛。其中手写数字的灰度图像均是28*28像素。数据集总体包含了60000个训练样本和10000个测试样本。3基于PyTorch框架的Mnist数据集分类案例
通过代码获取数据集中前10条数据的图片形式:3基于PyTorch框架的Mnist数据集分类案例2、模型构建。首先需要定义一个CNN模型的主体架构,包括卷积层、池化层、全连接层中许多参数的设置以及层与层的相对位置和激活函数的选取。对于本章基于PyTorch框架的Mnist数据集分类案例中,使用PyTorch框架中的Module类来构建模型,并通过定义模型的层结构和参数来创建自定义的CNN模型1、数据准备。首先需要准备训练数据集和验证数据集。本章使用的Mnist数据集采用的是60000个样本的训练数据集和10000个样本的验证数据集。训练数据集包含了大量的标注图像,可以知道一张图像对应的确切数字。而验证数据集用于在训练过程中评估模型的性能。数据集的准备包括数据预处理和数据增强等,比如将所有数据集的尺寸裁剪成同一大小,从而进行更好的网络训练神经网络训练过程3基于PyTorch框架的Mnist数据集分类案例4、优化器选择优化器其实就是在神经网络训练中一种更新参数的算法,它根据模型的损失函数和参数的梯度来调整参数的值,以使模型在训练过程中逐渐优化并收敛到最优解。选择合适的优化器来更新模型的参数,常见的选择包括随机梯度下降和Adam优化器。这些优化器在神经网络的训练过程中具有不同的特点和适用性。选择合适的优化器取决于网络的结构、数据的特点以及训练任务的需求。此外,还可以使用学习率调度器来动态调整学习率,以进一步优化训练过程5、训练循环进行前向传播过程,通过模型的前向传播计算模型的输出。然后将模型的输出与真实标签进行比较,计算得出损失函数的值。再通过反向传播算法,计算出损失函数对模型参数的梯度,以梯度为标准,更新模型的参数,起到优化效果。经过一定次数的迭代,定期使用验证数据集对模型的性能进行评估,可以计算准确率、精确度等指标。最后设置训练终止条件,停止该模型的训练。3、损失函数的定义。对于图像的分类,选择适合于分类任务的损失函数可以起来提升网络精度并减少迭代次数的作用,常见的损失函数包括交叉熵损失函数、对数损失函数、多项式损失函数等。损失函数用于衡量模型输出与真实标签之间的差异,选择哪种损失函数取决于任务的性质、标签的类型以及模型的架构。对于特定的任务,还可以根据需要进行损失函数的定制化3基于PyTorch框架的Mnist数据集分类案例案例分析在进行代码编写之前需要配置代码所需环境,首先需要确保计算机中安装了Python环境,PyTorch支持Python3.6及以上版本。可以从Python官方网站(网址为:/downloads/)下载并安装适合自己计算机操作系统的Python版本。有了Python环境之后,需要进行PyTorch框架的安装,可以从PyTorch官网中选取适合操作系统的PyTorch版本进行安装。如下图所示,选取的PyTorch版本为windows操作系统下的稳定版本,使用pip语句进行安装,使用Python语言环境进行编写,并且采用CUDA11.8的GPU版本进行训练。安装方法为复制最下面两行代码,在计算机安装python环境的命令行中打开并粘贴进去。如果安装速度过慢,可以添加清华源的国内镜像进行安装。3基于PyTorch框架的Mnist数据集分类案例3基于PyTorch框架的Mnist数据集分类案例NEXT安装完成后,可以在Python解释器中输入以下代码importtorchprint(torch.__version__)如果安装成功,会输出显示PyTorch的版本号。另一个用到的工具是Jupyternotebook,它是一种交互式的编程环境,提供了一种方便的方式来创建和共享代码、数据分析和可视化的文档。它是基于Web的,允许用户在浏览器中编写和运行代码,并将代码、文本和图像等元素组合在一起形成一个完整的文档环境准备以后,进入代码编写阶段,首先导入实验所需要用到的库:3基于PyTorch框架的Mnist数据集
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 汽车学校发展规划
- 儿童康复健康宣教-1
- 2026年车辆租赁及保养服务合同三篇
- 《管理学基础》第4版 课件 第1-5章 管理与管理者 - 组织结构设计
- 建筑建材行业2026年投资策略分析报告:受益下游高景气度量价盈利持续兑现
- 2026年广东省高考化学全程复习规划与备考指南
- 2026辅助员面试题库及答案
- 2026海口幼师面试题目大全及答案
- 1.3 同底数幂的除法 同步练习【北师】七下数学一课一练
- 古文史考试试题及答案
- 九年级语文(深圳专用)上学期期末真题汇编-散文阅读练习题(含答案)
- 幽门螺杆菌感染双联方案专家共识解读总结2026
- 2026年广东省高三一模英语试题及答案
- 2025-2026年护士执业资格考试试题及答案解析(完整版)
- 2026年珲春市事业单位公开招聘工作人员和基层治理专干(含专项招聘高校毕业生)(180人)笔试参考试题及答案详解
- 重庆师范大学《英语读写2》2026-2027学年第一学期期末试卷含解析
- 六升七 英语综合能力提升课|备战初中入学考试
- 2026中国质子治疗系统引进成本与本土化生产可行性报告
- (完整)2026年全国高校辅导员素质能力大赛基础知识试题+参考答案
- 2026-2030中国间苯二甲酰氯(ICL)(CAS-99-63-8)行业市场发展趋势与前景展望战略分析研究报告
- 应急处置安全指导手册
评论
0/150
提交评论