写在前面
题目都是老师原创的,因此网上根本找不到对应的题目,只能通过学长学姐考试后回忆一个大概得问题出来,我现在将我搜集到的相关题目总结如下,并给出一个答案模板(不一定对)。
Begin
先给出24年学长的回忆版本
题型:选择 简答 分析题
选择:会考普通的对概念的理解(不难)还会考历史。这次考了创造CNN的Hinton教授和Alpha-fold模型(2024年的),还有AIGC的概念。
简答:一、分析产生式与一阶谓词蕴含式的区别(6’)
分析题:考算法
1.A算法,给了一个算法运行的树的图片:(1)A适用的条件;(2)open表和closed表的作用;(3)画出A*的一般的流程图;(4)给了一个表格,写出对于这棵树来说运行过程中open表和closed表每一步里面都装了啥节点;
2.CNN,给了一个单通道的图经过好几层的卷积+池化的图片:(1)写出图里标号的地方卷积核的尺寸or卷积核的数量,或者是池化的尺寸;(2)这个图用了卷积层加全连接层的混合网络,这样做的好处;(3)如果输入的图片从单通道变成3通道的RGB图片,参数和卷积核要怎么变;(4)卷积的好处
3.BP神经网络:(1)给了一个表格,填生物学概念和神经网络算法中对应的诠释,比如基因对应解的某一分量;(2)使用BP的目的;(3)写出BP算法的流程;
4.GAN,(1)写出GAN的原理和流程,还有画个GAN的图;(2)GAN的缺点;(3)GAN可能造成的危害
就具体题目进行分析
考题一:KNN 优缺点
优点:
- 简单易懂:KNN算法的原理和实现⾮常简单,容易理解和实现。
- ⽆需训练:KNN是⼀种惰性学习算法,它不需要在训练阶段构建模型,⽽是直接在预测阶段使⽤整个训练数据集。
- 可⽤于⾮线性问题:KNN不假设数据的分布,因此可以⽤于⾮线性问题的分类和回归。
- 分类决策透明:KNN的分类决策过程是透明的,因为分类是基于最近邻的投票结果。
- 可用于多分类问题:KNN可以很容易地扩展到多分类问题。
- ⽆需假设数据分布:KNN不需要对数据的分布做出任何假设,这使得它在某些情况下⽐基于概率的算法更加健壮。
- 对数据的表达能⼒强:KNN算法可以捕捉到数据中的复杂模式和关系。
缺点:
- 计算成本⾼:KNN在预测时需要计算测试实例与每个训练实例之间的距离,这可能导致⾼计算成本。
- 存储成本⾼:KNN需要存储全部数据集,因此存储成本较⾼。
- 对噪声敏感:KNN对异常值和噪声⾮常敏感,因为它们会影响最近邻的确定。
- 不平衡数据表现差:在类别不平衡的数据集中,KNN可能表现不佳,因为它依赖于多数投票。
- 选择K值困难:选择合适的K值可能很困难,不同的K值可能会对结果产⽣显著影响。
- 维度灾难:随着特征空间的维度增加,KNN的性能可能会下降,因为⾼维空间中的最近邻可能并不具有代表性。
- 对距离度量敏感:KNN的性能依赖于所选的距离度量,不同的度量可能会导致不同的结果。
- 需要归⼀化处理:KNN对特征的尺度⾮常敏感,因此在应⽤KNN之前通常需要进⾏特征归⼀化。
- 不适合⼤型数据集:由于其计算和存储成本,KNN可能不适合处理⾮常⼤的数据集。
- 预测速度慢:在预测阶段,KNN需要对每个测试实例进⾏距离计算,这可能导致预测速度较慢。
总的来说,KNN是⼀种简单且直观的算法,适⽤于⼩规模数据集和那些需要快速实现的场景。然⽽,在处理⼤规模数据集或需要⾼度优化性能的场景时,可能需要考虑其他更复杂的算法。
考题二:遗传算法基本过程
初始化种群 判断是否达到最优解 交叉 变异 选择
遗传算法(Genetic Algorithm, GA)是⼀种模拟⾃然选择和遗传学原理的搜索算法,⽤于解决优化和搜索问题。它是由JohnHolland等⼈在20世纪70年代提出的。遗传算法的基本过程通常包括以下⼏个步骤:
- 初始化:
随机⽣成⼀个初始种群,种群中的每个个体代表问题的⼀个潜在解决⽅案。
确定种群⼤⼩、交叉率(crossover rate)、变异率(mutation rate)等参数。 - 适应度评估:
计算每个个体的适应度(fitness),适应度是衡量个体解质量的指标,通常与问题的⽬标函数相关。 - 选择(Selection):
根据个体的适应度从当前种群中选择个体,以⽤于产⽣下⼀代。选择过程通常倾向于选择适应度较⾼的个体。 - 交叉(Crossover):
从选择的个体中随机配对,并在配对个体之间交换部分基因(遗传信息),以产⽣新的后代。交叉操作有助于探索解空间。 - 变异(Mutation):
以⼀定的概率随机改变后代个体的某些基因,以引⼊新的遗传变异,防⽌算法过早收敛到局部最优解。 - 新⼀代种群的形成:
结合交叉和变异产⽣的新个体,以及可能保留下来的⼀些适应度较⾼的⽗代个体,形成新⼀代种群。 - 终⽌条件检查:
如果满⾜终⽌条件(如达到最⼤迭代次数、适应度不再显著提⾼、找到满意的解等),则算法终⽌。
如果没有满⾜终⽌条件,算法返回步骤2,继续进化过程。
遗传算法的特点包括:
- 并行性:可以同时处理种群中的多个个体。
- 全局搜索:由于交叉和变异操作,GA能够在解空间中进⾏全局搜索。
- 基于概率:选择、交叉和变异过程都涉及随机性,使得算法能够探索更⼴泛的解空间。
- 简单性:算法的实现相对简单,易于理解和编程。
遗传算法⼴泛应⽤于函数优化、机器学习、调度问题、神经⽹络训练等领域。然⽽,它也有⼀些局限性,如可能需要较⻓时间才能收敛,且解的质量可能依赖于参数设置和问题特性。
考题三:BP神经⽹络的理论
考题四:如何解决BP⽹络梯度消散问题
- 初始化策略:
He初始化:这种⽅法通过调整权重初始化策略,使权重初始化为较⼩的随机值,⽽不是全部初始化为零。这样可以避免梯度消失,并且有助于⽹络的训练。
Xavier初始化:这种初始化⽅法通过将权重初始化为接近于零的随机值,来避免因权重初始化过⼤导致的梯度爆炸问题。 - 激活函数的选择:
ReLU及其变种:ReLU激活函数是解决梯度消失问题的有效⽅法,因为它在输⼊⼤于零时保持输出为1,这样就不会有梯度消失的问题。⽽ReLU的变种,如Leaky ReLU、ELU和SELU,也可以帮助解决梯度消失问题。 - 梯度裁剪:
通过限制梯度的⼤⼩来防⽌梯度爆炸,从⽽间接防⽌梯度消失。如果梯度的⼤⼩超过了预设的阈值,就对梯度进⾏缩放,使其⼤⼩不会超过阈值。 - 使⽤批量归⼀化:
批量归⼀化(Batch Normalization)能够在每⼀层之前对数据进⾏规范化处理,这样可以帮助稳定学习过程,防⽌梯度消失和梯度爆炸。 - 残差连接:
残差连接是深度学习中的⼀种技术,通过在⽹络中加⼊跳过某些层的连接,可以帮助梯度更有效地传递到⽹络的深层。 - 优化算法:
使⽤如AdaGrad、Adam等优化算法,这些算法可以⾃适应地调整学习率,以帮助缓解梯度消失问题
考题五:简述GAN的基本思路
GAN-generative adversarial network,使⽤对抗⽹络对两个神经⽹络进⾏训练
- ⽣成⽹络:从隐空间中随机采样作为输⼊,使输出结果需要尽量模仿训练集中的真实样本
- 判别⽹络:判别⽹络的输⼊则为真实的样本或⽣成⽹络的输⼊,⽬的是为了将⽣成⽹络的输⼊从真实样本中尽可能分辨出来
固定⽣成⽹络,训练判别⽹络
固定判别⽹络,训练⽣成⽹络
考题六:chatgpt⽤到的技术
generative pre-trained transformer
- Transformer模型:ChatGPT采⽤Transformer模型作为其基础结构。Transformer是Google于2017年提出的⼀种基于注意⼒机制的神经⽹络结构,可以并⾏计算和建模远距离依赖关系,⼗分适合语⾔理解与⽣成任务。
- GPT预训练模型:ChatGPT使⽤OpenAI发布的GPT-3作为其预训练模型。GPT-3是⼀种包含175亿参数的⼤规模语⾔理解模型,可以理解上百种语⾔任务,达到了⼈类⽔平。
- 多任务学习:ChatGPT在不同的数据集上进⾏finetune,这属于⼀种多任务学习⽅法。它可以让模型在不同的任务上进⾏迁移学习,提⾼其泛化能⼒。
- 迁移学习:ChatGPT⾸先在通⽤数据集上预训练GPT-3模型,然后在⼈机对话数据集上进⾏finetune。这属于⼀种典型的迁移学习⽅法,可以快速适应新的任务。
- 语言模型:ChatGPT实际上是⼀个语⾔⽣成模型。它可以根据输⼊序列,⾃动⽣成连贯的回复⽂本。实现这点,ChatGPT学习到了⼈类语⾔的知识与模式。
- Seq2Seq模型:ChatGPT属于⼀种Encoder-Decoder模型,其中Encoder⽤于理解输⼊,Decoder⽤于⽣成输出。这种模型结构适⽤于翻译、对话等序列到序列的任务。
- 策略学习:ChatGPT会根据上下⽂对某个回复进⾏评分,选择得分最⾼的回复。这属于⼀种策略学习或强化学习的⽅法,可以让模型选择更连贯的回复。
- 语言理解:ChatGPT在预训练过程中学习到了language understanding的能⼒。它可以理解输⼊句⼦的语义与语境,这为其⽣成连贯和符合逻辑的回复提供基础。
考题七:if chatgpt api开放了你用他做什么
- 聊天机器⼈:创建智能聊天机器⼈,⽤于客户服务、在线帮助、社交互动等。
- 内容⽣成:⾃动⽣成⽂章、故事、诗歌等⽂本内容。
- 语⾔翻译:集成到翻译⼯具中,提供实时语⾔翻译服务。
- 教育辅助:作为教学助⼿,帮助学⽣学习语⾔、历史、科学等。
- 个性化推荐:根据⽤户的兴趣和偏好,推荐个性化的内容。
- 数据分析:帮助分析和理解⼤量的⽂本数据。
- ⾃动摘要:为⻓篇⽂章或报告⽣成摘要。
- 问答系统:构建问答系统,提供快速准确的信息检索。
- 情感分析:分析⽂本中的情感倾向,⽤于市场研究或社交媒体监控。
- 辅助编程:帮助程序员编写代码或调试程序。
- 虚拟助⼿:集成到智能家居或个⼈助理设备中,提供语⾳交互功能。
- ⾃动化办公:帮助⾃动化⽂档处理、邮件回复等办公任务
- 游戏开发:在游戏中创建智能NPC,提供更丰富的游戏体验。
- 法律咨询:帮助分析法律⽂件,提供初步的法律咨询。
- 健康咨询:提供基于⽂本的医疗咨询和建议。
考题八:简述卷积层的特点和作用
Convolutional Neural Networks, CNNs
特点:
- 局部连接:卷积层中的每个神经元只与输⼊数据的⼀个局部区域相连接,⽽不是与整个输⼊数据相连接。这减少了计算量,并且使得⽹络能够捕捉局部特征。
- 参数共享:卷积层中的卷积核(或滤波器)在整个输⼊数据上滑动时使⽤相同的权重,这意味着⽆论输⼊数据有多⼤,学习的卷积核参数数量是固定的。
- ⾃动特征提取:卷积层能够⾃动学习数据中的局部特征,⽆需⼿动设计特征提取器。
- 空间维度减⼩:随着卷积层的堆叠,输出的空间维度(即图像的⾼度和宽度)通常会减⼩,这有助于提取更⾼层次的特征。
- 多通道处理:卷积层可以处理多通道数据,例如彩⾊图像的RGB通道。
- 可学习的卷积核:卷积核的权重是通过训练数据学习得到的,这意味着⽹络可以⾃动调整以适应特定的任务。
作用:
- 特征提取:卷积层的主要作⽤是提取输⼊数据中的有⽤特征,例如图像中的边缘、纹理和形状等。
- 特征映射:卷积层产⽣特征映射(Feature Maps),这些映射表⽰了输⼊数据在不同特征空间上的响应。
- 降维:通过池化层(Pooling Layers)与卷积层的结合使⽤,可以有效地降低数据的空间维度,同时保留重要信息。
- 多尺度特征学习:通过使⽤不同⼤⼩的卷积核或堆叠多个卷积层,⽹络可以学习到不同尺度的特征。
- 平移不变性:卷积层能够较好地处理图像中的平移不变性问题,即⽆论⽬标对象在图像中的位置如何变化,⽹络都能够识别。
- 减少计算量:由于局部连接和参数共享,卷积层⼤⼤减少了全连接层所需的计算量。
- 提⾼性能:卷积层的使⽤显著提⾼了深度学习模型在图像分类、⽬标检测、图像分割等任务上的性能。
- 可扩展性:卷积层的设计允许⽹络通过增加卷积核的数量和⼤⼩来扩展,以适应更复杂的任务。
考题九:单通道如果采用不同大小的卷积核那输出的特征图大小相同吗?
不相同。使用不同大小的卷积核处理相同的输入时,输出特征图的尺寸通常会有所不同,这主要是因为:
- 卷积核尺寸的影响:卷积核的大小直接影响感受野的大小,较大的卷积核会在每次滑动时覆盖更大的区域,从而可能导致输出特征图的尺寸与使用较小卷积核时不同。
- 填充和步长的选择:即使采用相同的填充(padding)和步长(stride)设置,不同的卷积核大小也会导致输出特征图尺寸的变化。例如,对于相同的输入图像,3×3和5×5的卷积核在没有额外调整的情况下(如改变padding值),会产生不同尺寸的输出特征图。
- 多尺度信息捕捉:使用不同大小的卷积核是为了捕捉输入数据的不同尺度的信息,因此它们生成的特征图不仅在数值上有所差异,在尺寸上也可能不同,以适应不同层次特征提取的需求。
为了使不同卷积核的输出特征图尺寸一致,可以在网络设计中通过调整填充(padding)、步长(stride)等参数来实现。然而,在实际应用中,有时也会接受不同尺寸的输出,并结合其他技术(如上采样、拼接操作等)来整合这些多尺度的特征信息。
A算法(A-Star Algorithm)
A算法(A-Star Algorithm)是一种在图形平面上,有多个节点的路径中,寻找一条从起点到终点的最短路径的算法。它结合了Dijkstra算法(保证了最短路径)和Best-First Search(Breadth-First Search)的特点,通过启发式评估来加速搜索过程。
基本流程
初始化
- 设置起点和终点。
- 初始化一个开放列表(Open List),将起点加入开放列表,并设置起点的
f
,g
,h
值。其中:f = g + h
g
是从起点到当前节点的实际代价。h
是从当前节点到终点的估计代价(启发式函数)。
循环
当开放列表不为空时,执行以下步骤:
- 选择当前节点:从开放列表中选择具有最低
f
值的节点,称为当前节点。 - 移动至关闭列表:将当前节点从开放列表移至关闭列表(Closed List),表示该节点已经被检查过。
- 邻居评估:
- 如果邻居节点不在开放列表中,计算其
g
值(从起点到邻居节点的代价)和h
值,然后加入开放列表。 - 如果邻居节点已经在开放列表中,但通过当前节点到达邻居节点的代价更低,则更新其
g
值,并记录当前节点为该邻居节点的父节点。
- 如果邻居节点不在开放列表中,计算其
检查终点
- 如果当前节点是终点,则算法结束,通过父节点回溯找到路径。
无解情况
- 如果开放列表为空且终点不在关闭列表中,表示无法找到从起点到终点的路径。
路径重建
- 从终点开始,通过父节点回溯,直到起点,构建出完整的路径。