版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第一章思考题什么是机器学习?答:机器学习是研究如何使用机器来模拟人类学习活动的一门学科,研究机器如何获得新知识和新技能。在此,“机器”指的就是计算机,包括电子计算机、中子计算机、光子计算机、神经计算机等。简述机器学习的分类。答:机器学习系统根据其学习进行预测的方式分为有监督学习、半监督学习、无监督学习和强化学习。简述机器学习与人工智能、深度学习之间的关系?答:人工智能的根本在于智能,而机器学习是部署支持人工智能的最重要方法,它能使计算机从数据中找出问题并交付人工智能应用程序;而深度学习则是机器学习的一个重要子集,它能使计算机解决更复杂的问题。第二章思考题B2.D3.B4.C5.C6.B7.C8.D9.B10.A11.B12.DB14.B15.B16.D17.D18.B19.B20.C21.A22.C23.A24.C25.B第三章思考题使用PIL的预定义滤波器进行图像边缘检测。fromPILimportImage,ImageFilter#打开图像image=Image.open('input.jpg')#方法1:使用FIND_EDGES滤波器(最常用的边缘检测)edges_find=image.filter(ImageFilter.FIND_EDGES)#方法2:使用CONTOUR滤波器(轮廓检测)edges_contour=image.filter(ImageFilter.CONTOUR)#方法3:使用EMBOSS滤波器(浮雕效果,也可用于边缘增强)edges_emboss=image.filter(ImageFilter.EMBOSS)#保存结果edges_find.save('edges_find.jpg')edges_contour.save('edges_contour.jpg')edges_emboss.save('edges_emboss.jpg')使用PIL库的filter()函数,调整图像亮度为原来的3倍(提示:调用ImageEnhance())fromPILimportImage,ImageEnhancedefadjust_brightness_basic(image_path,output_path,factor=3.0):"""将图像亮度调整为原来的3倍参数:image_path:输入图像路径output_path:输出图像路径factor:亮度因子,1.0为原始亮度,3.0为3倍亮度"""#打开图像image=Image.open(image_path)#创建亮度增强器enhancer=ImageEnhance.Brightness(image)#调整亮度(3倍)brightened_image=enhancer.enhance(factor)#保存结果brightened_image.save(output_path)returnbrightened_image#使用示例result=adjust_brightness_basic('input.jpg','brightened_3x.jpg',factor=3.0) 3.边缘检测模板如下,使用此自定义模板对图像进行处理。fromPILimportImage,ImageFilterimportnumpyasnpdefprocess_with_custom_template(image_path,template,template_name,output_suffix):"""使用指定的自定义模板处理图像参数:image_path:图像路径template:模板矩阵(二维列表或一维列表)template_name:模板名称output_suffix:输出文件后缀"""#打开图像image=Image.open(image_path).convert('L')#将模板转换为一维列表ifisinstance(template[0],list):#如果是二维列表kernel=[]forrowintemplate:kernel.extend(row)size=(len(template[0]),len(template))else:#如果是一维列表kernel=templatesize=(int(len(template)**0.5),int(len(template)**0.5))print(f"使用模板:{template_name}")print(f"模板大小:{size}")print(f"模板值:{kernel}")#创建自定义滤波器custom_filter=ImageFilter.Kernel(size=size,kernel=kernel,scale=1)#应用滤波器processed_image=image.filter(custom_filter)#保存结果output_path=f"output_{output_suffix}.jpg"processed_image.save(output_path)print(f"结果已保存至:{output_path}\n")returnprocessed_image#预定义的自定义模板CUSTOM_TEMPLATES={'laplacian_2':[[-1,-1,-1],[-1,8,-1],[-1,-1,-1]],}#测试所有模板deftest_all_templates(image_path):"""测试所有自定义模板"""results={}fortemplate_name,templateinCUSTOM_TEMPLATES.items():try:result=process_with_custom_template(image_path,template,template_name,template_name)results[template_name]=resultexceptExceptionase:print(f"处理模板{template_name}时出错:{e}")returnresults#使用示例all_results=test_all_templates('input.jpg')OpenCV读取图像、显示图像、保存图像;实现静态的图像旋转、缩放、剪裁。importcv2importnumpyasnpimportmatplotlib.pyplotaspltdefbasic_image_operations(image_path):"""OpenCV图像基本操作:读取、显示、保存"""#1.读取图像#cv2.IMREAD_COLOR:彩色图像(默认)#cv2.IMREAD_GRAYSCALE:灰度图像#cv2.IMREAD_UNCHANGED:包含alpha通道#读取彩色图像color_image=cv2.imread(image_path,cv2.IMREAD_COLOR)#读取灰度图像gray_image=cv2.imread(image_path,cv2.IMREAD_GRAYSCALE)#读取原始图像(包含alpha通道)unchanged_image=cv2.imread(image_path,cv2.IMREAD_UNCHANGED)#检查图像是否成功加载ifcolor_imageisNone:print(f"错误:无法读取图像{image_path}")returnprint("图像读取成功!")print(f"彩色图像形状:{color_image.shape}")#(高度,宽度,通道数)print(f"灰度图像形状:{gray_image.shape}")#(高度,宽度)#2.显示图像#使用OpenCV显示图像cv2.imshow('ColorImage',color_image)cv2.imshow('GrayImage',gray_image)#等待按键,0表示无限等待cv2.waitKey(0)cv2.destroyAllWindows()#使用Matplotlib显示图像(需要转换BGR到RGB)plt.figure(figsize=(12,6))plt.subplot(1,2,1)rgb_image=cv2.cvtColor(color_image,cv2.COLOR_BGR2RGB)plt.imshow(rgb_image)plt.title('ColorImage(RGB)')plt.axis('off')plt.subplot(1,2,2)plt.imshow(gray_image,cmap='gray')plt.title('GrayImage')plt.axis('off')plt.tight_layout()plt.show()#3.保存图像#保存灰度图像cv2.imwrite('gray_output.jpg',gray_image)#保存彩色图像cv2.imwrite('color_output.jpg',color_image)#保存为PNG格式(支持透明通道)cv2.imwrite('output.png',color_image)print("图像保存成功!")returncolor_image,gray_image#使用示例color_img,gray_img=basic_image_operations('input.jpg')第四章思考题KNN算法的K值对分类结果有什么影响?如何选择一个合适的K值?答:KNN算法核心思想是如果一个样本在特征空间中的k个最相似样本中的大多数属于某一个类别,则该样本也属于这个类别。即KNN算法在预测一个新的值X所属类别时,根据它距离最近的K个点是什么类别来判断X属于哪个类别。 KNN分类算法中,不同的k值可能会导致不同的分类结果。k值到底怎么选涉及到距离的度量问题。K值,也就是选择几个和预测样本相邻的已知数据样本。如果K取值太小,好处是近似误差会减小,只有特征与这个预测样本(方形)很相似的才对该预测样本的类别起作用。但同时预测结果对近邻的样本点非常敏感,仅由非常近的训练样本决定预测结果,会使模型变得复杂,容易过拟合。如果k值太大,学习的近似误差会增大,导致分类模糊,即欠拟合。KNN算法中可以使用哪些距离度量方法?不同的距离度量方法对分类结果有何影响?答:距离决定了预测样本所属类别,不同的距离所确定的近邻点不同。度量距离有很多种方法,平面上常用的是欧式距离、曼哈顿距离、余弦距离、球面距离等。KNN算法对于哪些类型的数据集表现较好?对哪些类型的数据集可能表现不佳?答:KNN算法对数据分布相对均匀、特征空间维度较低、分类边界复杂的数据集表现较好。对于高维数据集、数据分布不均衡、数据集中存在大量噪声的数据集表现不佳。第五章思考题如何确定K-Means聚类算法中的最佳K值?答:常用的方法有肘部法、轮廓系数法、Calinski-Harabasz指数、Davies-Bouldin指数、间隙统计量、层次聚类辅助法。通常是:先看肘部图:获得初步的K值范围;计算多个指标:轮廓系数、Calinski-Harabasz等;结合业务理解:考虑实际应用场景的需求;可视化验证:对不同的K值进行降维可视化(如PCA+t-SNE)。K-Means聚类算法中可以使用哪些距离度量方法?不同的距离度量方法对聚类结果有何影响?答:K-Means聚类算法中度量距离有很多种方法,常用的是欧式距离、曼哈顿距离、余弦距离等。通常:先用欧氏距离+标准化作为基线,可视化数据分布:如果簇明显非球形,考虑其他距离。计算多个距离的评估指标,选择表现最好的考虑计算成本:大数据集避免马氏距离。最终以业务目标为导向:选择使聚类结果最有解释性的距离K-Means聚类算法中初始中心点的选择对聚类结果有何影响?答:初始中心点的选择对聚类结果有着决定性影响,这是K-Means最主要的局限之一。WCSS值不同:不同初始化的收敛值差异可能高达10-30%;簇分配不同:部分边界点可能被分配到不同簇;收敛速度不同:有些初始化需要更多迭代第六章思考题1、SVM中的核函数有什么作用?答:SVM通过选择一个核函数k,对于非线性的情况,将数据映射到高维空间,来解决在原始空间中线性不可分的问题。解决了高维计算灾难问题,使得处理复杂的现实世界数据成为可能。SVM如何确定最大间隔超平面?这个超平面有什么意义?答:SVM的求解目标是找到一个唯一的、最优的超平面。这个过程可以分解为以下几个关键步骤:1.定义间隔
->2.
设定“最大化最小间隔”目标
->3.
转化为“最小化||w||²”的凸优化问题
->4.
用拉格朗日法求解,得到由支持向量唯一确定的超平面。SVM中的支持向量指什么?它为什么重要?答:支持向量是训练数据集中那些位于最大间隔边界上或跨越间隔边界的样本点。支持向量机的重要性体现在:唯一确定超平面、提供稀疏表示,高效存储与计算、使模型具有抗噪能力、反映数据的关键结构信息、直接关联模型复杂度。SVM重要的不是多数远离边界的"简单"样本,而是少数位于边界地带的"困难"样本。这些困难样本(支持向量)不仅定义了分类边界,也决定了模型的泛化能力。这正是SVM既强大又高效的根本原因。第七章思考题 1.决策树为什么会出现过拟合,如何通过剪枝来防止过拟合?答:当类别太多时,决策树算法非常容易过拟合,导致泛化能力不强。可以通过设置节点最少样本数量和限制决策树深度来改进。主动简化模型,降低复杂度,以牺牲一点点训练精度为代价,换取泛化能力的大幅提升。剪枝分为两大类:预剪枝
和
后剪枝。两者都旨在通过正则化来控制模型复杂度。在实践中,后剪枝(特别是代价复杂度剪枝)通常能得到比预剪枝泛化能力更强的模型,但预剪枝因其简单和高效也被广泛使用。最佳做法是结合使用预剪枝(设置一个宽松的停止条件)和后剪枝,并通过交叉验证来最终确定树的最佳复杂度。 2.构建决策树时,如何确定最佳分割点?答:确定最佳分割点的过程,就是一次
“特征选择”+“阈值搜索”
的穷举优化过程。其目标是找到一个“刀子落下”的位置,能让分割后的两堆数据各自内部的“混乱度”总和最小。在实际使用中(如Scikit-learn),你只需要选择
criterion
参数(如
‘gini’,
‘entropy’,
‘mse’),算法会自动为你完成上述所有计算。随机森林是如何从决策树发展而来的?有哪些优点和缺点?答:随机森林(RandomForest,RF)是一种集成学习方法,主要用于分类和回归问题。随机森林是由多个决策树构成的森林,算法分类结果由这些决策树投票得到,决策树在生成的过程当中分别在行方向和列方向上添加随机过程,行方向上构建决策树时采用放回抽样(bootstraping)得到训练数据,列方向上采用无放回随机抽样得到特征子集,并据此得到其最优切分点,这便是随机森林算法的基本原理。 随机森林优点 (1)在数据集上表现良好,不容易陷入过拟合。 (2)在当前的很多数据集上,相对其他算法有着很大的优势,随机森林具有很好的抗噪声能力。 (3)能够处理很高维度(feature很多)的数据,并且不用作特征选择,对数据集的适应能力强:既能处理离散型数据,也能处理连续型数据,数据集无须规范化。 (4)训练速度快,可以得到变量重要性排序(两种:基于OOB误分率的增加量和基于分裂时的GINI下降量)。 (5)在训练过程中,能够检测到feature间的互相影响。 (6)容易做成并行化方法,实现比较简单。 随机森林缺点 (1)随机森林已经被证明在某些噪音较大的外类或回归问题上会过拟合。 (2)对于有不同取值属性的数据,取值划分较多的属性会对随机森林产生更大的影响,所以随机森林在这种数据上产出的属性权值是不可信的。随机森林中有哪些重要的参数需要调整?如何通过交叉验证来选择最优的参数组合?随机森林的参数主要分为三类:框架参数、单树参数和采样参数。它们的调整优先级和作用各不相同。1.框架参数(控制森林整体)n_estimators(最重要的参数之一)含义:森林中决策树的数量。影响:树越多,模型越稳定,方差越低,性能通常越好,但计算成本也线性增加。调参方向:增加此值几乎总是能提升模型性能,直到达到收益平台期。目标是选择一个在性能饱和点与计算成本间平衡的值。2.单树参数(控制每棵树的复杂度)max_depth(剪枝关键参数)含义:树的最大深度。None
表示树会一直生长直到所有叶节点纯净或包含的样本数少于
min_samples_split。影响:限制深度是防止单棵树过拟合最直接的方法。深度越大,单棵树拟合能力越强,但也更容易学到噪声。调参方向:从小值开始(如3,5,10),逐步增加,观察验证集性能。通常不需要特别大。min_samples_split含义:一个内部节点分裂所需的最小样本数。影响:值越大,树的分裂越保守,树越简单。调参方向:常用值在2到10之间。对于大数据集,可以尝试更大的值(如0.1%的样本数)。min_samples_leaf含义:一个叶节点必须包含的最小样本数。影响:与
min_samples_split
类似,但作用于叶节点。可以平滑模型,对回归问题尤其重要。调参方向:常用值在1到10之间。max_features(最重要的参数之一)含义:寻找最佳分裂时考虑的特征子集大小。可以是整数、浮点数(百分比)或
{“auto”,“sqrt”,“log2”}。影响:这是控制树与树之间相关性的核心杠杆。值越小(如
sqrt),随机性越强,树间相关性越低,方差降低更有效,但单棵树的偏差可能增加。值越大(如
None,即用所有特征),树可能越强,但树间相关性也越高。调参方向:常用范围为
sqrt(分类默认)到
log2
或0.3-0.8(比例)。回归任务常用
n_features(全部特征)或稍小一些。criterion含义:分裂质量衡量标准。分类常用
“gini”(基尼)或
“entropy”(信息增益),回归常用
“squared_error”(MSE)。影响:通常影响不大,gini
计算稍快,可作为默认。3.采样参数(控制数据扰动)bootstrap
与
oob_score含义:bootstrap=True(默认)启用Bootstrap采样;oob_score=True
则计算袋外(Out-Of-Bag)样本的预测精度,作为模型泛化能力的无偏估计。影响:Bootstrap是Bagging的基础。OOB分数可以快速评估模型,省去单独的验证集,在数据稀缺时很有用。调参方向:通常保持
True。max_samples(Scikit-learn>=0.22)含义:Bootstrap采样时,从训练集中抽取的样本数(或比例)。影响:小于1.0可以进一步增加随机性,有时能提升性能。调参方向:如果使用,可尝试0.8或0.9。第八章思考题 1.什么是线性回归分析,线性回归分析目的是什么?答:回归分析(regressionanalysis)是确定两种或两种以上变量间相互依赖关系的一种统计分析方法,侧重于考察变量间的变化规律,并通过回归方程描述和反映这种关系,进而为预测提供科学依据。线性回归就是将输入项分别乘以一些常量,再将结果加起来得到输出。线性回归包括一元线性回归和多元线性回归。 2.多元线性回归中,如何选择自变量?常用的变量选择方法有哪些?答:多元线性回归中常用的自变量选择原则:在保证解释力的前提下,模型越简单越好;避免模型过拟合与欠拟合,变量太少,易发生欠拟合(高偏差,无法捕捉数据规律);变量太多易发生过拟合(高方差,模型过于复杂,泛化能力差)。常用的变量选择方法主要分为三类:过滤法、包裹法、嵌入法。第九章思考题 1.描述BP神经网络的反向传播算法是如何工作的?答:BP神经网络的训练和学习过程包含信息正向传播和误差反向传播两个阶段,即输入训练样本从输入层传入,经隐层处理后传向输出层,若输出层的实际输出与期望输出(即教师信号)不符,则转入误差反向传播过程,即将实际输出与期望输出的误差按照某种学习规则(如梯度下降学习规则)沿原来的连接通路逐层返回,并将误差分摊给各层所有单元,从而获得各层单元的误差信号,此误差信号即作为修正各层单元权值的依据。这种信号正向传播和误差反向传播的网络权值调整过程周而复始,直到网络输出误差降低到可以接受的程度,或达到预先设定的学习次数,即完成了网络训练和学习过程。 2.解释BP神经网络的梯度消失和梯度爆炸现象,讨论可能的解决方案。答:导致梯度消失/爆炸的具体原因有:权值初始化不当、激活函数的选择、网络深度、损失函数的曲面特性。避免梯度消失的常用方案:更换激活函数(ReLuctant族)、使用残差连接、优化初始化权重等。避免梯度爆炸的常用方案:梯度剪裁、使用归一化层优化初始化权重探讨BP神经网络的权重初始化方法及其对网络训练和收敛速度的影响。答:初始化与激活函数强耦合:选择初始化方法前,先看用什么激活函数。与归一化层的协同:在BatchNorm/LayerNorm广泛使用的今天,初始化的重要性有所下降,因为归一化层能稳定输入分布。但初始化依然重要,它决定了训练最初几步的稳定性。预训练即高级初始化:在大模型时代,使用在大规模数据上预训练好的权重作为下游任务的初始化,是最强、最有效的“初始化”方法。讨论学习率对BP神经网络训练的影响,并讨论如何动态调整学习率。答:学习率策略的选择本质上是探索与利用的权衡:大学习率探索新区域,小学习率精细利用当前区域。优秀的动态调整策略能够在训练不同阶段自动平衡这两者。解释BP神经网络的局部最小值、鞍点和正则化的概念。答:局部最小值是在损失函数曲面上,某个点的损失值比其邻近区域的所有点都小,但不是全局最小的点。鞍点是指梯度为零,但既不是局部最小值也不是局部最大值的临界点。正则化是防止过拟合的核心技术,核心目标是在经验风险最小化基础上,增加模型复杂度的惩罚。第十章思考题 1.卷积神经网络中的池化层、卷积层、全连接层分别起到什么作用?答:卷积层:特征提取器,是CNN的眼睛和触觉,负责从原始像素中自动提取有意义的局部特征。池化层:特征降维与不变性增强器。池化层的主要任务是降低数据维度(下采样),同时保留最显著的特征,并增加模型对微小变化的鲁棒性。全连接层位于CNN末端,负责整合所有局部特征,进行高层语义理解,并输出最终预测结果。 2.什么是卷积核?卷积核的尺寸对网络性能有什么影响?答:卷积核,也称滤波器,是一个小的、可学习的权重矩阵,它在输入数据上滑动,通过局部点积运算来提取特定类型的空间特征。卷积核尺寸(如1×1,3×3,5×5,7×7)是CNN设计中最关键的超参数之一,对应感受野的大小,即输出特征图上的一个点对应输入图像的区域大小。卷积核尺寸影响着网络计算复杂度和参数量,以及对目标的敏感性,小卷积核对精细细节和微小目标更敏感;大卷积核可能模糊或忽略小目标,更适合大物体。步长和填充在卷积运算中起什么作用?步长是卷积核在输入上每次滑动移动的像素数。填充是在输入特征图的边缘周围添加额外像素(通常是0),以控制输出尺寸。如何防止卷积神经网络过拟合?答:数据增强+预训练模型+早停法;Dropout+BatchNorm+学习率调整为什么卷积神经网络在图像识别任务中表现优异?答:CNN将人类对图像的深刻理解(局部性、平移不变性、层次性)编码到网络架构中,然后让数据在这个“正确引导”的架构中自动学习最优特征表示。这种先验引导的数据驱动学习范式,正是CNN在图像识别中表现优异的根本原因。第十一章思考题Transformer网络的核心机制是什么?答:Transformer的五大核心机制:(1)自注意力机制:全局信息交互的核心(2)多头注意力:并行多视角理解(3)位置编码:注入序列顺序信息(4)前馈网络:逐位置非线性变换(5)残差连接与层归一化:训练稳定的保障Transformer的核心是通过自注意力机制实现所有位置间的直接、并行、全局信息交互,配合位置编码、多头注意力、前馈网络等组件,构建了一个高度并行化、强表达力且训练稳定的序列建模架构。多头注意力机制的作用是什么?答:多头注意力的核心思想:并行地从多个不同角度理解输入。Transformer网络与传统的RNN、LSTM网络相比有何优势?Transformer相对于RNN/LSTM的核心优势可以总结为:并行计算革命:彻底释放GPU/TPU的并行能力,训练速度提升5-10倍。长程依赖解决:任意距离直接连接,完美解决梯度消失/爆炸问题。全局上下文理解:每个词看到整个序列,实现真正的全局理解。表示能力更强:多头注意力学习丰富、分层的语言关系。训练更稳定:残差连接+层归一化支持超深网络训练。架构更统一:一个架构适应所有任务,便于预训练-微调。代价是:O(n²)的计算复杂度、更大的内存
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2026学年康县四年级数学下学期期末联考试题(含解析)
- 2025-2026学年广西壮族贺州市昭平县数学三年级第二学期期末复习检测模拟试题含答案
- 中医药法测试题目及完整答案
- 2026-2030亚硫酸氢铵行业市场现状供需分析及重点企业投资评估规划分析研究报告
- 金融行业面试常见试题及详细答案
- 2026应急现场处置手册(综合通~用版)
- 2026年计算机二级C语言程序设计模拟题
- 融资租赁变更运营服务协议
- 人力资源排他性平台服务协议
- 2026年秋苏教版科学四年级上册教学工作计划
- 安全仪表系统(sis)管理制度
- 灌排泵站运行工操作规程竞赛考核试卷含答案
- 勘察单位考核制度
- 脑介入手术风险告知书样本
- SA8000-2026社会责任管理体系全套管理手册及程序文件
- 金属冶炼安全员培训课程课件
- 教师风险管理办法
- 深度学习 课件 第2章 卷积神经网络
- 外墙保温装饰一体板施工方案
- 云南省公路工程试验检测费用指导价
- 签约仪式策划方案大型签约仪式流程方案
评论
0/150
提交评论