人工智能考试试卷

时间:2024-10-22 14:20:30

正确答案

  1. AI是( )的英文缩写
    Artificial Intelligence

  2. 图灵测试的功能是什么()
    测试机器是否具备人类智能

  3. 人工智能诞生于( )年?
    1956

  4. 下列有关人工智能的说法中,不正确的是()。
    人工智能是以人为载体的智能

  5. python的发明者是
    吉多·范罗苏姆

  6. 以下哪个不是集成开发工具的优点
    算法提升

  7. python中下载工具包的命令开头是
    pip install

  8. python字符串是用一对( )括起来的。
    引号"

  9. python 3%2 的计算结果是( )。
    1

  10. python 21//7 的计算结果是( )。
    3

  11. 在python语言中,符号^是表示什么()
    按位异或运算符

  12. 在python语言中,指数运算符号是()
    **

  13. python中,函数使用()返回值
    return

  14. if 语句解决的核心问题是( )。
    判断

  15. python 2>=3 or 2<=4 输出的结果是( )。
    True

  16. 若n为整数,下述while循环执行的次数为:()
    3

  17. 1980年代,机器学习什么流派处于主导地位()
    符号主义

  18. 爬山算法的缺点是
    陷入局部最优解

  19. 协同过滤算法属于以下哪种算法()
    推荐算法

  20. 以下算法最适用于解决八皇后问题的是()
    爬山算法

  21. 以下哪个应用不属于回归问题
    路线规划

  22. 下面关于机器学习的学习工具错误的是( )。
    Keras是Facebook开发的

  23. 下面算法不属于有监督学习的是( )。
    主成分分析法

  24. 房价预测一般选用什么算法()
    线性回归算法

  25. 以下哪个不是模式识别的应用()
    温度监控

  26. 以下哪个不是计算机视觉相关的应用
    短视频推荐

  27. 联结主义的代表算法是()
    神经网络

  28. 以下哪个是降维算法的目的
    提升效率

  29. 以下算法哪个是属于降维算法()
    主成分分析(PCA)算法

  30. 一般来说,下列哪种方法常用来预测连续独立变量( )?
    线性回归

  31. 以下不属于最小二乘估计量的特性()
    随机性

  32. 下面有关分类算法的准确率,召回率,F1 值的描述,错误的是( )
    准确率、召回率和 F 值取值越接近 0,查准率或查全率就越高

  33. 逻辑回归将输出概率限定在 (0,1)之间。下列哪个函数起到这样的作用( )
    Sigmoid 函数

  34. 加入使用逻辑回归对样本进行分类,得到训练样本的准确率和测试样本的准确率。增加新特征后以下说法正确的是( )?
    训练样本准确率一定增加或保持不变

  35. Sigmoid 函数称为对数几率函数,其函数的值域为( )
    (0,1)

  36. 当事件B已经发生的时候,事件 A发生的可能性,称为在 B 条件下 A 发生的条件概率,表示为:
    P(A|B)

  37. 以下属于生成式模型的是( )
    朴素贝叶斯模型

  38. 在统计模式识别分类问题中,当先验概率未知时,可以使用( )?
    最小损失准则

  39. 下面关于贝叶斯分类器描述错误的是( )
    是基于后验概率,推导出先验概率

  40. 以下哪个不是降低欠拟合风险的方法()
    减少特征数量

  41. 假定某同学使用贝叶斯分类模型时,特征重复的情况下以下说法正确的是( )
    模型效果相比无重复特征的情况下精确度会降低

  42. 机器学习中L1正则化和L2正则化的区别是( )
    使用L1可以得到稀疏的权值,使用L2可以得到平滑的权值

  43. Precision 和 Recall 正确定义的是( )
    Precision=tp/(tp+fp), Recall=tp/(tp+fn)

  44. 使用 Ridge 回归,若 λ 较大时正确的是( )
    偏差增大,方差减小

  45. 关于 L1、L2 正则化下列说法正确的是( )?
    L1 正则化得到的解更加稀疏

  46. 在回归模型中,下列哪一项在权衡欠拟合和过拟合中影响最大( )?
    多项式阶数

  47. 下面不属于分类算法的是( )
    异常检测法

  48. Cart算法计算的的是( )。
    基尼系数

  49. 下列属于无监督学习的是()
    k-Means

  50. 下面关于ID3算法中说法错误的是( )
    ID3算法是一个二叉树模型

  51. 下面关于信息增益描述正确的是()
    划分可以带来纯度的提高,信息熵的下降。

  52. 以下不属于K-Means的优点是()
    不需要评估指标

  53. 我们基于什么来构建一颗决策树()
    基于纯度来构建

  54. 下列不属于ID3算法的缺点的是()
    采用迭代方法,得到的结果只是局部最优

  55. 以下不是决策树的构成元素()
    果实

  56. 以下对熵的描述正确的是()
    变量的不确定性越大,熵也就越大

  57. 以下对信息熵的描述正确的是()
    信息熵越大,纯度越低

  58. 以下哪种不属于“不纯度”的指标
    恩格尔系数

  59. 以下哪个不是KNN的三要素()
    怎么选择数据

  60. 以下哪个应用不是基于聚类算法
    语言翻译

  61. 关于K-Means和KNN的描述不正确的是()
    KNN是无监督学习

  62. 以下有关SVM说法不正确的是()
    SVM全称是Super Vector Machines

  63. 有两个样本点,第一个点为正样本,它的特征向量是(0,-1);第二个点为负样本,它的特征向量是(2,3),从这两个样本点组成的训练集构建一个线性SVM分类器的分类面方程是( )
    x+2y=3

  64. 以下关于SVM核函数说法正确的是
    ①和②

  65. 下列不是SVM核函数的是
    logistic核函数

  66. 在选用核函数的时候,下面描述错误的是:
    如果数据线性不可分,则不使用核函数

  67. 下面哪个选项对 K 折交叉验证的描述错误的是:
    对于K折交叉验证, K越大越好

  68. 假设我们使用原始的非线性可分版本的 Soft-SVM 优化目标函数。为了得到线性可分离的模型我们需要( )
    C 正无穷大

  69. 如果惩罚参数C趋于无穷,下面哪项描述是正确的( )
    若最优分离超平面存在,必然能够将数据完全分离

  70. 下面哪个属于SVM应用( )
    以上均是

  71. 训练SVM的最小时间复杂度为O(n²),那么以下哪种数据集不适合用SVM?
    大数据集

  72. SVM的效率依赖于
    以上所有

  73. SVM在下列哪种情况下表现糟糕
    含噪声数据与重叠数据点

  74. 大多数情况下在不知道用什么核函数的时候,可以选用
    高斯核函数

  75. SVM中的代价函数的参数表示:
    误分类与模型复杂性之间的平衡

  76. 假定你使用SVM学习数据X,使用一个二次核函数,C趋于无穷时,对于训练集数据:
    仍然能正确分类数据

  77. 假设你在卷积神经网络的第一层中有5个卷积核,每个卷积核尺寸为7×7,具有零填充且步幅为1。该层的输入图片的维度是224×224×3。那么该层输出的维度是( )
    218 x 218 x 5

  78. 假定你在神经网络中的隐藏层中使用激活函数 X,给定输出 -0.01,X 可能是以下哪一个激活函数( )?
    tanh

  79. 逻辑回归将输出概率限定在 (0,1)之间。下列哪个函数起到这样的作用( )
    Sigmoid 函数

  80. Sigmoid 函数称为对数几率函数,其函数的值域为( )
    (0,1)

  81. 人工神经网络不具有的基本属性是( )
    凸性

  82. 以下关于标准 RNN 模型,说法不正确的是( )。
    反向传播时不考虑时间方向

  83. 普通的反向传播算法一样,它重复地使用( )
    链式法则

  84. 神经网络研究属于下列( )学派
    连接主义

  85. 我们在训练神经网络过程中,使用梯度下降法不断更新( )数值,进而使得损失函数最小化?
    参数

  86. 输入图片大小为200×200,经过一层卷积(kernel size 5×5,padding 1,stride 2),pooling(kernel size 3×3,stride 1),又一层卷积(kernel size 3×3,stride 1)后,输出特征图大小为( )
    97

  87. 和“AI是新电力”相类似的说法是什么?
    AI正在改变很多的行业。

  88. 在某神经网络的隐层输出中,包含0.75,那么该神经网络采用的激活函数可能是()
    以上都可能

  89. 在卷积神经网络模型中,softmax激活函数常常跟在什么层后面?
    卷积层

  90. 在卷积神经网络模型中,卷积层用于:
    特征提取

  91. CNN最核心的部分是:
    卷积层

  92. 以下不属于Haar特征的是:
    角度特征

  93. 两张人脸通过比对,他们的特征相似度,如果( )阈值,即判定两张人脸属于同一人。
    大于

  94. 人脸认证系统容易受到欺骗,所以( )检测技术显得异常重要。
    人脸活体

  95. 人工智能的目的是让机器能够____,以实现某些脑力劳动的机械化。
    模拟、延伸和扩展人的智能

  96. Lienhart R.等对Haar-like矩形特征库作了进一步扩展,加入了旋转____角的矩形特征。
    45°

  97. OpenCV用于把图像写入文件的函数是:
    Imread

  98. OpenCV的图像显示函数是:
    imshow

  99. 一*人脸识别准入系统中,最适合的学习方法是( )。
    多分类问题

  100. OpenCV用于卷积计算的是:
    filter2D()

  101. Numpy中可用于表示无符号数的是:
    uint16

  102. ()是首个经过深度学习训练的人脸识别模型
    DeepFace

  103. 在初步处理之后,人脸识别算法通过深度卷积网络,将输入的人脸图像,转换成一个()表示
    向量

  104. 一般在计算机视觉任务中所用的特征可以分为:传统特征与()
    深度特征

  105. OpenCV用于把图像写入文件的函数是:
    imwrite

  106. 卷积神经网络中的池化层的作用是:
    降低特征图的尺寸

  107. 卷积神经网络中,以下哪种激活函数能更好解决梯度消失问题:
    ReLU

  108. 在深度学习中,用于处理时序数据的主要模型是:
    RNN

  109. 深度学习中常用的损失函数包括以下哪些:
    交叉熵损失

  110. 在卷积神经网络中,卷积操作的主要作用是:
    提取特征

  111. 在卷积神经网络的训练过程中,常采用的优化算法是:
    Adam

  112. 在卷积神经网络中,padding的作用是:
    保持输出尺寸与输入一致

  113. CNN中的卷积层主要用于:
    特征提取

  114. 在卷积神经网络中,参数共享的作用是:
    减少模型参数

  115. 深度学习中的Dropout技术用于:
    防止过拟合

  116. 在卷积神经网络中,池化层的主要作用是:
    减少特征图的尺寸

  117. 卷积神经网络中的Softmax函数通常用于:
    多分类问题

  118. RNN网络容易遇到的主要问题是:
    梯度消失

  119. 深度学习中的LSTM模型用于解决:
    长序列依赖问题

  120. 在深度学习中,用于处理序列数据的模型是:
    RNN

  121. 深度学习中用于处理图像数据的主要模型是:
    CNN

  122. 卷积神经网络中常用的池化操作是:
    最大池化

  123. 深度学习中常用的正则化技术包括:
    L2正则化

  124. 深度学习模型的训练过程中,过拟合通常通过以下手段避免:
    Dropout

  125. 在训练卷积神经网络时,批归一化的作用是:
    加速收敛

  126. 在卷积神经网络中,池化操作的主要作用是:
    减少特征图尺寸

  127. 深度学习模型中激活函数ReLU的作用是:
    引入非线性

  128. 在卷积神经网络中,stride的作用是:
    控制卷积核的移动步幅

  129. 深度学习中的反向传播算法用于:
    更新模型参数

  130. 卷积神经网络中的卷积核大小会影响:
    提取的特征信息

  131. 深度学习中常用的优化算法包括:
    SGD和Adam

  132. LSTM网络相对于传统RNN的优势在于:
    解决长期依赖问题

  133. 在卷积神经网络中,激活函数常用于:
    引入非线性

  134. 在卷积神经网络的卷积操作中,stride的大小决定:
    输出特征图的尺寸

  135. 深度学习中常用的防止过拟合的方法是:
    Dropout

  136. 在训练卷积神经网络时,批归一化技术的作用是:
    加速训练过程

  137. 卷积神经网络中的参数共享的作用是:
    减少模型参数

  138. 卷积神经网络中的池化层的主要作用是:
    降低特征图的尺寸

  139. 深度学习中LSTM网络用于处理:
    时序数据

  140. 深度学习中的Softmax函数通常用于:
    分类任务

  141. 在卷积神经网络的池化层中,常用的操作是:
    最大池化

  142. 卷积神经网络中的卷积核用于:
    提取局部特征

  143. 在深度学习模型中,Batch Normalization用于:
    加速模型收敛

  144. 深度学习模型中,常用的损失函数包括:
    交叉熵

  145. 深度学习中的梯度消失问题常出现在:
    RNN网络

  146. LSTM网络相较于普通RNN的优势在于:
    解决长序列依赖问题

  147. 卷积神经网络中的ReLU激活函数的作用是:
    引入非线性

  148. 在卷积神经网络中,卷积操作的主要作用是:
    提取特征

  149. 在深度学习中,Dropout用于:
    防止过拟合

  150. 卷积神经网络中的卷积层主要用于:
    特征提取

OpenCV 用什么语言编写?
C++

人工智能技术的现状是什么?
已经广泛应用于各个行业

Jupyter Lab 的主要用途是什么?
数据科学和机器学习

以下哪个是 Python 的正确变量声明方式?
a = 10

哪个库主要用于数据处理和分析?
pandas

如何定义一个函数在 Python 中?
def myFunction():

AIGC 的全称是什么?
Artificial Intelligence Generated Content

下列哪一个是 Python 中的合法列表定义?
list = [1, 2, 3]

下列哪个库通常用于数据分析和处理?
NumPy

哪个 Python 库常用于制作数据可视化图表?
Matplotlib

下列哪个选项最准确地描述了爬山算法的概念?
通过逐步改善当前解找到最优解

爬山算法在人工智能中主要用于解决哪类问题?
优化问题

爬山算法的一个主要缺点是什么?
它可能陷入局部最优解

爬山算法的一个主要优点是什么?
简单易实现

线性回归模型用于预测哪个类型的变量?
连续变量

线性回归模型在人工智能中主要用于什么任务?
数值预测

线性回归的一个主要优点是什么?
计算复杂度低

线性回归的一个主要缺点是什么?
对异常值敏感

在 Python 中,哪一个库通常用于实现线性回归?
sklearn

在数据集可视化中,使用 matplotlib 库绘制散点图的函数是哪个?
scatter()

在 Python 中,哪一个库通常用于实现爬山算法?
scipy

下列哪个选项最准确地描述了分类问题的特点?
预测类别标签

在分类问题中,常见的特征工程方法不包括以下哪一项?
特征分解

逻辑回归模型主要用于解决什么类型的问题?
分类问题

逻辑回归模型输出的是哪种类型的值?
概率值

在 Python 中,使用 numpy 库构建 sigmoid 函数的代码中,哪一个函数用于计算指数?
np.exp()

逻辑回归中的损失函数通常使用哪种函数?
交叉熵

梯度下降法更新模型参数时,关键的步骤是什么?
计算梯度

在 Python 中,哪个函数可以用来分割数据集为训练集和测试集?
train_test_split()

在 scikit-learn 中,逻辑回归模型的类名是什么?
LogisticRegression

在 scikit-learn 中,哪个类用于实现高斯朴素贝叶斯分类器?
GaussianNB

如何使用 pandas 库读取 CSV 格式的数据文件?
data = pd.read_csv(‘data.csv’)

决策树模型是一种什么类型的模型?
分类模型

在 Python 中,构建决策树模型常用哪个库?
scikit-learn

K-means 算法主要用于什么任务?
聚类

在 Python 中,进行 K-means 聚类常用哪个库?
scikit-learn

鸢尾花数据集用于哪个领域的学习?
分类

K-means 聚类算法中,如何确定初始聚类中心?
随机选择

决策树算法中,如何选择最佳分割点?
最大化信息增益

在 sklearn 中,构建决策树回归模型的类是?
DecisionTreeRegressor

K-means 算法的时间复杂度主要受什么影响?
数据点数量和迭代次数

在使用 K-means 聚类时,如何评估聚类效果?
轮廓系数

多层感知机属于什么类型的神经网络?
前馈神经网络

多层感知机在图像识别中最常用的任务是什么?
分类

哪个库可以简化 TensorFlow 的使用,帮助快速构建深度学习模型?
Keras

在 Keras 中,创建模型的主要类是什么?
Sequential

多层感知机模型的输出层激活函数为线性函数时,通常用于什么任务?
回归

多层感知机模型的隐藏层使用什么激活函数?
ReLU

在训练深度学习模型时,哪种方法可以防止过拟合?
使用 Dropout

多层感知机中,常用的优化算法是什么?
Adam

多层感知机模型的输出层激活函数为 Softmax 时,通常用于什么任务?
分类

在 TensorFlow 中,构建模型的核心类是什么?
Model

卷积神经网络的核心层是什么?
卷积层

在 Keras 中,构建卷积层的类是什么?
Conv2D

在图像预处理中,常用的图像归一化方法是什么?
将像素值缩放到 0 到 1 之间

在训练 CNN 模型时,常用的优化算法是什么?
Adam

评估 CNN 模型性能的常用指标是什么?
精度

卷积神经网络中的池化层主要作用是什么?
降低维度

在 Keras 中,哪一个类用于池化层的构建?
以上都是

在训练 CNN 模型时,数据增强的作用是什么?
增加训练数据的多样性

在 CNN 中,使用何种技术可以提高模型的泛化能力?
以上都是

CNN 模型中的 Flatten 层的作用是什么?
将多维输入展平为一维

GPT 模型的全称是什么?
Generative Pre-trained Transformer

在使用 ChatGPT 时,prompt 的作用是什么?
提供上下文和指导生成的内容

以下哪种工具可以用来与 ChatGPT 进行交互?
Jupyter Notebook

ChatGPT 可以用来辅助什么类型的任务?
所有以上的任务

使用 ChatGPT 时,如何提高生成内容的质量?
提供详细的 prompt

GPT 模型的主要应用领域是什么?
自然语言处理

在生成式模型中,什么是 “few-shot learning”?
使用少量示例进行学习

如何通过 prompt 调整 GPT 模型的生成风格?
修改 prompt 的内容和形式

ChatGPT 是由下列哪家公司(或组织)推出的?
OpenAI

GPT模型使用的主要架构是:
Transformer

下列哪些是人工智能的特点
信息处理 (Y)
自我学习 (Y)
优化升级 (Y)
以下哪些是人工智能在企业中的功能应用
认知 (Y)
预测 (Y)
决策 (Y)
集成解决方案 (Y)
以下哪些工作特征容易被人工智能替代
决策需要信息量小 (Y)
决策过程简单 (Y)
重复性工作 (Y)
以下哪些是人工智能常见应用案例
车牌识别 (Y)
人脸识别 (Y)
自动驾驶 (Y)
情感分类 (Y)
机器翻译 (Y)
以下哪些是Python语言的特点
简单易学 (Y)
可移植性 (Y)
解释性 (Y)
开源 (Y)
可扩展性 (Y)
高级语言 (Y)
以下哪些是Python语言的缺点
执行效率稍低 (Y)
代码无法加密 (Y)
以下哪些是Python语言的应用
爬虫 (Y)
大数据与数据分析 (Y)
人工智能开发 (Y)
Web开发 (Y)
自动化运维与自动化测试 (Y)
Python的容器有哪些
列表 (Y)
元组 (Y)
字典 (Y)
集合 (Y)
下列哪些属于AI的常见应用领域
机器学习 (Y)
计算机视觉 (Y)
语言识别 (Y)
自然语言处理 (Y)
深度学习 (Y)
下列哪些选项不是用来创建Python的自定义类
Function (Y)
func (Y)
procedure (Y)
以下不是监督学习算法的是
聚类算法 (Y)
降维算法 (Y)
机器学习的通用步骤包括
选择数据 (Y)
数据建模 (Y)
训练模型 (Y)
测试模型 (Y)
验证模型 (Y)
调优模型 (Y)
以下哪些是常见的机器学习应用案例
机器人对战职业选手 (Y)
导航系统 (Y)
医疗健康 (Y)
智能家居 (Y)
智能安防 (Y)
以下哪些是机器学习的应用领域
数据挖掘 (Y)
统计学习 (Y)
计算机视觉 (Y)
语音识别 (Y)
自然语言处理 (Y)
以下哪些属于机器学习经典算法
回归算法 (Y)
线性回归 (Y)
逻辑回归 (Y)
支持向量机 (Y)
神经网络 (Y)
梯度下降法常运用在哪些算法中
线性回归 (Y)
逻辑回归 (Y)
神经网络 (Y)
推荐算法 (Y)
以下哪些是机器学习的学习工具
TensorFlow (Y)
Keras (Y)
Pytorch (Y)
Scikit-learn (Y)
Caffe2 (Y)
极大极小值算法主要应用场景是
零和游戏 (Y)
完全信息 (Y)
以下哪些应用是使用了自然语言处理
机器翻译 (Y)
舆情监测 (Y)
文本分类 (Y)
语音识别 (Y)
机器学习的流派有哪些
符号主义 (Y)
贝叶斯派 (Y)
联结主义 (Y)
进化主义 (Y)
行为类推主义 (Y)
scikit-learn把机器学习大致分为哪几类问题
分类问题 (Y)
回归问题 (Y)
聚类问题 (Y)
降维问题 (Y)
哪些是分类问题在实际中的应用
垃圾邮件识别 (Y)
手写数字识别 (Y)
人脸识别 (Y)
语音识别 (Y)
分类问题具体算法包括哪些
逻辑回归 (Y)
朴素贝叶斯 (Y)
决策树 (Y)
KNN最近邻算法 (Y)
逻辑回归的优点是
实现简单,广泛的应用于工业问题上 (Y)
分类时计算量非常小,速度很快,存储资源低 (Y)
便利的观测样本概率分数 (Y)
假如你用Logistic Regression算法去预测用户在网上的购买项目,下面那些步骤你应该采纳
尝试着减小正则项λ (Y)
减小样本量 (Y)
下列方法中,可以用于特征降维的方法包括
主成分分析 PCA (Y)
线性判别分析 LDA (Y)
AutoEncoder (Y)
矩阵奇异值分解 SVD (Y)
受试者工作特征曲线(ROC)曲线的纵轴是
TPR (Y)
Recall (Y)
变量选择是用来选择最好的判别器子集, 如果要考虑模型效率,应该做的变量选择的考虑
多个变量是否有相同的功能 (Y)
特征是否携带有效信息 (Y)
交叉验证 (Y)
朴素贝叶斯分类的优点有
算法逻辑简单,易于实现 (Y)
分类过程中时空开销小 (Y)
以下可以有效解决过拟合的方法是
增加样本数量 (Y)
通过特征选择减少特征数量 (Y)
采用正则化方法 (Y)
机器学习将数据分为
训练集 (Y)
验证集 (Y)
测试集 (Y)
以下属于机器学习性能评估指数的是
准确率 (Y)
召回率 (Y)
精准率 (Y)
F1 分数 (Y)
ROC曲线 (Y)
PR曲线 (Y)
以下属于KNN的缺点的是
在大数据集上表现不佳,在大数据集上,搜索最近K邻的时间成本和算力成本大 (Y)
需要对数据进行归一化标准化等处理,否则可能影响判断 (Y)
对噪声、缺失点等敏感,需要人为的处理数据 (Y)
在构造决策树过程中,哪些是重要的问题
选择哪个属性作为根节点 (Y)
选择哪些属性作为子节点 (Y)
什么时候停止并得到目标状态,即叶节点 (Y)
下面描述正确的是
信息熵越大,纯度越低 (Y)
变量的不确定性越大,熵越大 (Y)
基尼系数越小,则不纯度越低,特征越好 (Y)
以下哪些是KNN距离度量方法
曼哈顿距离 (Y)
欧式距离 (Y)
解决聚类问题常用算法有
KNN (Y)
K-Means (Y)
DBSCAN (Y)
以下是无监督学习的优点是
降低数据采集难度 (Y)
极大程度扩充样本量 (Y)
可能发现新的数据规律 (Y)
K-Means主要优点有
原理比较简单,实现也是很容易,收敛速度快 (Y)
聚类效果较优 (Y)
算法的可解释度比较强 (Y)
主要需要调参的参数仅仅是簇数k (Y)
关于KNN和K-Means描述正确的是
KNN目的是为了确定一个点的分类 (Y)
K-Means目的是为了将一系列点集分成K类 (Y)
KNN是分类算法 (Y)
K-Means是聚类算法 (Y)
以下属于交叉验证方法的是
简单交叉验证 (Y)
K折交叉验证 (Y)
留一交叉验证 (Y)
以下描述正确的是
给定n个数据点,如果其中一半用于训练,一半用于测试,则训练误差和测试误差之间的差别会随着n的增加而减少 (Y)
SVM可以通过正则化系数控制模型的复杂度,避免过拟合 (Y)
Q: 假设你训练SVM后,得到一个线性决策边界,你认为该模型欠拟合。在下次迭代训练模型时,不应该考虑
A: 增加测试数据 (Y)
A: 减少训练数据 (Y)
Q: 下列有关SVM说法正确的是
A: SVM使用核函数的过程实质是进行特征转换的过程 (Y)
A: SVM对线性不可分的数据有较好的分类性能 (Y)
A: SVM的支持向量是少数的几个数据点向量 (Y)
Q: 关于支持向量机SVM, 下列说法正确的是
A: L2正则项,作用是最大化分类间隔,使得分类器拥有更强的泛化能力 (Y)
A: Hinge 损失函数,作用是最小化经验分类错误 (Y)
A: 当参数C越小时,分类间隔越大,分类错误越多,趋于欠学习 (Y)
Q: 关于Logistic回归和SVM 正确的是
A: Logistic回归的输出就是样本属于正类别的几率,可以计算出概率 (Y)
A: SVM的目标是找到使得训练数据尽可能分开且分类间隔最大的超平面,应该属于结构风险最小化 (Y)
A: SVM可以通过正则化系数控制模型的复杂度,避免过拟合 (Y)
Q: 下面哪些是基于核的机器学习算法
A: Radial Basis Function(RBF)(径向基核函数) (Y)
A: Linear Discriminate Analysis(LDA)(主成分分析法) (Y)
A: Support Vector Machine(SVM)(支持向量机) (Y)
Q: 对于K折交叉验证, 以下对K的说法正确的是
A: K越大, 不一定越好, 选择大的K会加大评估时间 (Y)
A: 选择更大的K, 就会有更小的bias (Y)
A: 在选择K时, 要最小化数据集之间的方差 (Y)
Q: 变量选择是用来选择最好的判别器子集,如果要考虑模型效率,应该做的变量选择的考虑是
A: 变量对于模型的解释有多大作用 (Y)
A: 特征携带的信息 (Y)
A: 交叉验证 (Y)
Q: 下面哪个/些选项对 K 折交叉验证的描述是正确的
A: 增大 K 将导致交叉验证结果时需要更多的时间 (Y)
A: 更大的 K 值相比于小 K 值将对交叉验证结果有更高的信心 (Y)
A: 如果 K=N,那么其称为留一交叉验证,其中 N 为验证集中的样本数量 (Y)
Q: 梯度下降算法的步骤包括什么
A: 计算预测值和真实值之间的误差 (Y)
A: 重复迭代,直至得到网络权重的最佳值 (Y)
A: 把输入传入网络,得到输出值 (Y)
A: 用随机值初始化权重和偏差 (Y)
A: 对每一个产生误差的神经元,调整相应的(权重)值以减小误差 (Y)
Q: 下列哪一项操作是非线性的
A: 修正线性单元(ReLU) (Y)
A: tanh (Y)
Q: 下列哪些算法可以用来构造神经网络
A: 线性回归 (Y)
A: 逻辑回归 (Y)
A: RNN (Y)
A: CNN (Y)
Q: 关于神经网络,下列说法正确的是
A: 增加网络层数,可能会导致过拟合 (Y)
A: 减少网络层数,可能会导致模型性能的下降 (Y)
Q: 下列哪个是conv2d的基本参数
A: kernel_size(卷积核大小) (Y)
A: stride(步长) (Y)
A: padding(填充) (Y)
Q: 哪些是深度学习快速发展的原因
A: 现在我们有了更好更快的计算能力 (Y)
A: 我们现在可以获得更多的数据 (Y)
A: 深度学习已经取得了重大的进展,比如在在线广告、语音识别和图像识别方面有了很多的应用 (Y)
Q: 以下说法哪一项是正确的
A: 增加训练集的大小通常不会影响算法的性能,这可能会有很大的帮助 (Y)
A: 增加神经网络的大小通常不会影响算法的性能,这可能会有很大的帮助 (Y)
Q: 以下属于卷积神经网络的层是
A: 卷积层 (Y)
A: 池化层 (Y)
A: 输入层 (Y)
A: 全连接层 (Y)
Q: 卷积层的配置参数包括
A: 滤波器个数 (Y)
A: 感受野 (Y)
A: 零填补(zero-padding) (Y)
A: 步长(stride) S (Y)
Q: 图像识别的具体步骤
A: 确定需要机器识别的物体种类,收集该物体的图像,并将收集的图片标记对应的标签 (Y)
A: 对收集的图像进行预处理 (Y)
A: 构建神经网络 (Y)
A: 加载图像,将图像输入神经网络进行训练并保存模型 (Y)
Q: 下列哪个选项是与图像处理相关的库
A: OpenCV (Y)
A: numpy (Y)
Q: Opencv支持什么系统
A: Windows (Y)
A: Linux (Y)
A: Android (Y)
A: Mac OS (Y)
Q: 以下属于Opencv支持的领域的是
A: 人机互动 (Y)
A: 物体识别 (Y)
A: 图像分割 (Y)
A: 人脸识别 (Y)
Q: 以下属于Numpy数值编程工具的是
A: 矩阵数据类型 (Y)
A: 矢量处理 (Y)
A: 精密的运算库 (Y)
Q: 计算机视觉主要任务包含
A: 目标检测 (Y)
A: 图像语义分割 (Y)
A: 图像分类 (Y)
A: 物体识别 (Y)
Q: 以下领域主要依赖于图像识别技术
A: 文字识别 (Y)
A: 视频监控 (Y)
A: 自动驾驶 (Y)
Q: 基于特征的人脸识别的步骤包括
A: 输入图像-识别图像 (Y)
Q: 人脸识别的第一步所用的特征是
A: 基于手工设计的特征 (Y)
Q: 哪些是早期的计算机视觉方法
A: 支持向量机(SVM) (Y)
A: 简单的卷积神经网络(CNN) (Y)
A: 隐马尔可夫模型(HMM) (Y)
Q: Numpy 包括
A: 一个强大的N维数组对象Array (Y)
A: 比较成熟的(广播)函数库 (Y)
A: 用于整合C/C++和Fortran代码的工具包 (Y)
A: 实用的线性代数、傅里叶变换和随机数生成函数 (Y)
Q: 关于GPT模型的特点,正确的是
A: GPT模型是使用自注意力机制的Transformer架构 (Y)
A: GPT模型通过无监督预训练和有监督微调进行训练 (Y)
Q: 在使用GPT进行智能数据分析时,以下步骤正确的是
A: 对数据进行描述性统计分析 (Y)
A: 将统计分析结果作为提示输入GPT模型 (Y)
A: 让GPT生成基于分析结果的报告 (Y)
Q: 以下关于GPT模型的局限性,正确的是
A: GPT模型可能会生成含有偏见和不良信息的文本 (Y)
A: GPT模型的输出完全依赖于输入提示的质量 (Y)

  1. Python语言是解释型语言。 正确
  2. 当前人工智能发展阶段处于“强”人工智能。 错误
  3. 符号学习 & 机器学习是人工智能实现方法 正确
  4. 机器学习是一种从数据中寻找规律、建立关系,根据建立的关系去解决问题的方法。 正确
  5. 机器学习是一种实现人工智能的方法 正确
  6. 深度学习是一种实现机器学习的技术 正确
  7. Python源代码文件后缀为ph 错误
  8. python代码中,#号的代码不会运行 正确
  9. jupyterlab的特点是单独执行、测试 正确
  10. 在python中,pip的功能是导入库 错误
  11. 布尔值运算只有and和or 错误
  12. 变量名可以以数字开头 错误
  13. 字典的键和值使用逗号分隔 错误
  14. python中用def定义函数并链接功能名称。 正确
  15. python中空值代表0 错误
  16. 爬山算法,是一种局部贪心的最优算法 正确
  17. 随机重启爬山算法可以在一定程序上解决爬山算法局部最优的问题 正确
  18. 穷举法能高效解决八皇后问题 错误
  19. 机器学习的方法分为监督学习、无监督学习、半监督学习、强化学习 正确
  20. 判断垃圾邮件是分类问题 正确
  21. K-Means算法的训练数据不含标签 正确
  22. 降维算法的特征是将数据从高维降低到低维层次,减少冗余信息 正确
  23. 牛顿法主要运用在线型回归中 错误
  24. TensorFlow是基于Theano框架进行更多的优化和改进的 错误
  25. 回归分析法是一种通过建立一个数学表达式进行统计估计和预测的统计研究方法。 正确
  26. 机器学习求解过程中,一般情况下,数据越多,效果越好 正确
  27. 大部分数据挖掘中的算法是机器学习的算法在数据库中的优化 正确
  28. 计算机视觉就是音频处理技术与机器学习的结合。 错误
  29. 自然语言处理技术主要是让机器理解人类的语言的一门领域。 正确
  30. 极大极小值算法常用于棋类等由两方较量的游戏和程序 正确
  31. 正则化是一个通用的算法和思想,所以会产生过拟合现象的算法都可以使用正则化来避免过拟合。 正确
  32. 逻辑回归(Logistic Regression)主要解决二分类问题,用来表示某件事情发生的可能性。 正确
  33. 逻辑回归当中不可以加入正则项用于避免过拟合。 错误
  34. 在训练一个线性回归模型时,如果数据量较少,容易发生过拟合。 错误
  35. sigmoid 函数称为对数几率函数 正确
  36. 梯度下降法是寻找函数极小值的一种方法。 正确
  37. 损失函数(loss function)或代价函数(cost function)是将随机事件或其有关随机变量的取值映射为非负实数以表示该随机事件的“风险”或“损失”的函数。 正确
  38. 逻辑回归使用的损失函数是交叉熵损失函数。 正确
  39. 逻辑回归可以用梯度下降法求解参数。 正确
  40. 召回率(Recall)也叫查全率,表示正确分类的正例个数占分类为正例的实例个数的比例。 正确
  41. 朴素贝叶斯模型属于机器学习的生成式模型。 正确
  42. 朴素贝叶斯分类器的一个假定是每个变量相互条件独立。 正确
  43. P(A∩B)可以用P(A|B)P(A)表示 错误
  44. 朴素贝叶斯模型是基于先验概率,推算后验概率的过程。 正确
  45. 逻辑回归属于广义线性模型,其在线性回归的基础上加了一个 Sigmoid 函数映射,并输出的是离散值,解决的是分类。 错误
  46. 定义损失函数 L(f),一个最简单的想法是计数分类错误的次数 正确
  47. 准确率高并不能代表一个算法就好 正确
  48. 精准率通俗理解为:“宁可错杀一千,不可放过一个!” 错误
  49. KNN不在训练期间进行学习,所以运行速度较快 正确
  50. KNN对噪声、缺失点等敏感,需要人为的处理数据。 正确
  51. KNN在大数据集上表现良好,在大数据集上,搜索最近K邻的时间成本和算力成本小 错误
  52. 决策树算法采用树形结构,自顶向下递归方式构造决策树。 正确
  53. 决策树节点之间存在父子关系。 正确
  54. C4.5 算法计算的是基尼系数 正确
  55. KNN的通俗解释:近朱者赤近墨者黑 正确
  56. KNN中,K的取值通常为奇数 错误
  57. KNN中常见的分类方法是vote 正确
  58. 对于聚类问题,使用不同的聚类准则,产生的聚类结果不同 正确
  59. 在K-Means中,同一聚类中的对象相似度较高;而不同聚类中的对象相似度较小。 正确
  60. K-Means对于不是凸的数据集比较容易收敛 错误
  61. K-Means采用迭代方法,得到的结果只是局部最优 正确
  62. 在线性可分的情况下,支持向量是那些最接近决策平面的数据点 正确
  63. SVM中的代价函数的参数表示误分类与模型复杂性之间的平衡 正确
  64. SVM是这样一个分类器,它寻找具有最小边缘的超平面,因此它也经常被称为最小边缘分类器 正确
  65. 如果SVM模型欠拟合,可以通过增大惩罚参数C的值来改进模型。 正确
  66. 在训练完 SVM 之后,我们可以只保留支持向量,而舍去所有非支持向量。仍然不会影响模型分类能力。 正确
  67. 在其他条件不变的前提下,SVM算法中使用高斯核/RBF核代替线性核容易引起机器学习中的过拟合问题 正确
  68. SVM软间隔允许一定量的样本分类错误 正确
  69. SVM在数据集含噪声数据与重叠数据点的情况下表现良好。 正确
  70. SVM的目标是找到使得训练数据尽可能分开且分类间隔最小的超平面 正确
  71. SVM可以通过正则化系数控制模型的复杂度,避免过拟合 正确
  72. 核函数的本质是两个函数的内积,而这个函数在SVM中可以表示成对于输入值的高维映射。 正确
  73. SVM泛化误差指的就是SVM对未知数据的预测能力 正确
  74. SVM中使用高斯核函数之前通常会进行特征归一化,特征归一化总是有用的 错误
  75. 如果特征维度远远大于样本数,则SVM表现出色 正确
  76. 每一张图片都是由很多个像素组成的,每个像素是通过RGB(红绿蓝)3个通道的数值来存储的,数值范围在(0,255) 正确
  77. 训练CNN时,可以对输入进行旋转、平移、缩放等预处理提高模型泛化能力。这么说是对,还是不对? 正确
  78. 深度学习属于机器学习的子类。 正确
  79. 当激活函数是单调时,单层神经网络的误差函数是凹的 错误
  80. 信息熵是用来评估当前训练得到的概率分布与真实分布的差异情况 正确
  81. 在链式法则中,学习率越大越好 错误
  82. 线性激活层对于深层神经网络没有作用 错误
  83. 人工智能属于机器学习的子类 错误
  84. 池化层是卷积神经网络的核心。 错误
  85. 深度神经网络属于卷积神经网络 错误
  86. 通过多层卷积层堆叠,各层提取到特征逐渐由文字、车轮、人脸等高层级特征过渡到边缘、纹理、方向等低层级特征。 正确
  87. 图像识别就是让计算机有和人类一样对图像理解的能力,包括图像表示的内容,图像中物体之间的关系等要素。 正确
  88. 机器通过神经网络学习到物体的轮廓,颜色,纹理等特征,并通过计算将这些特征记录下来,就可以得到一个分类模型了,最终我们既可以通过这个模型进行图像识别了。 正确
  89. 在观察模型训练效果时,观察loss值比观察准确率更直观 正确
  90. RNN是一种时间上进行线性递归的神经网络 正确
  91. DeepFace是首个经过深度学习训练的人脸识别模型。 错误
  92. 人脸识别的关键点,通常是眼角的位置、鼻子的位置、脸的轮廓点 正确
    1. 1964年,图灵首次尝试以计算形式进行“面部识别” 错误
  93. numpy比Python自身的嵌套列表(nested list structure)结构要高效的多 正确
  94. 人脸对齐就是据关键点,使用仿射变换将人脸统一“摆正”,尽量去消除姿势不同带来的误差。 正确
  95. Opencv轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,,实现了图像处理和计算机视觉方面的很多通用算法。 正确
  96. 计算机视觉四大基本任务:分类、定位、检测、自动化 错误
  97. 人脸识别技术的难点在于语义鸿沟(semantic gap) :人类可以轻松地从图像中识别出目标,而计算机看到的图像只是一组0到255之间的整数。 正确
  98. 人脸识别的第一步是得到人脸位置的bounding box 正确
  99. 人脸识别算法的第一步的bounding box提取用的是基于深度学习的方法 错误
  100. 矩形特征的特征值计算,只与此特征矩形的端点的积分图有关 正确
  101. 基于特征的人脸识别技术的最广泛应用是人脸验证 错误
  102. 人脸验证(FaceIdentification),就是检测A、B是否是属于同一个人。只需要计算向量之间的距离,设定合适的报警阈值(threshold)即可。 正确
  103. 积分图就是只遍历一次图像就可以求出图像中所有区域像素和的快速算法,大大的提高了图像特征值计算的效率。 正确
  104. 人脸识别中的剪切-表征过程利用的是深度学习 正确

一、参考答案
一、编写一个简单的Python脚本,实现输入两个数字,计算并输出它们的和、差、积和商。
输入两个数字,计算并输出它们的和、差、积和商
num1 = float(input(“输入第一个数字: “))
num2 = float(input(“输入第二个数字: “))
print(f"和: {num1 + num2}”)
print(f"差: {num1 - num2}”)
print(f"积: {num1 * num2}”)
print(f"商: {num1 / num2}”)
二、编写一个简单的Python脚本,实现使用条件语句判断一个输入的整数是奇数还是偶数,并输出结果。
判断奇偶数
num = int(input(“输入一个整数: “))
if num % 2 == 0:
print(f”{num} 是偶数”)
else:
print(f"{num} 是奇数")
三、编写一个简单的Python脚本,实现使用循环语句打印1到10之间的所有整数。
打印1到10之间的所有整数
for i in range(1, 11):
print(i)
四、编写一个函数,接收一个字符串作为参数,返回该字符串的逆序。
def reverse_string(s):
return s[::-1]
input_str = input("输入一个字符串: “)
print(f"逆序字符串: {reverse_string(input_str)}”)
五、简述机器学习的主要步骤都有哪些?
答案:获取数据、划分数据、数据预处理、模型构建与训练、模型评估与优化、使用模型。
六、简述为什么要把数据集划分为训练集和测试集?什么函数可以实现数据划分?
答案:
对于模型的训练和评估过程需要使用不同的数据集,以此来保证模型的泛化能力。
可以使用如下函数:train_test_split
七、梯度下降训练线性模型的一般步骤是什么?

  1. 随机选一个????开始。
  2. 根据????????????(????)计算梯度向量。
  3. 如果梯度值小于容差????时,算法结束。
  4. 根据步长和梯度方向设定下一次????=????-步长*梯度。回到步骤2,重复以上操作。
    八、逻辑回归模型构建与训练
    一、数据加载和预处理
    import pandas as pd

数据加载

df = pd.read_csv(‘titanic_train.csv’)

数据预处理

填充缺失值

df[‘Age’].fillna(df[‘Age’].median(), inplace=True)
df[‘Embarked’].fillna(df[‘Embarked’].mode()[0], inplace=True)

分类变量转换

df = pd.get_dummies(df, columns=[‘Sex’, ‘Embarked’], drop_first=True)

显示处理后的数据

print(df.head())

二、特征选择与工程
from sklearn.preprocessing import StandardScaler

特征选择

features = [‘Pclass’, ‘Age’, ‘SibSp’, ‘Parch’, ‘Fare’, ‘Sex_male’, ‘Embarked_Q’, ‘Embarked_S’]
X = df[features]
y = df[‘Survived’]

特征标准化

scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)

三、逻辑回归模型训练与评估
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import accuracy_score, precision_score, recall_score, f1_score, confusion_matrix
import matplotlib.pyplot as plt
import seaborn as sns

数据集划分

X_train, X_test, y_train, y_test = train_test_split(X_scaled, y, test_size=0.2, random_state=42)

逻辑回归模型训练

model = LogisticRegression()
model.fit(X_train, y_train)

模型评估

y_pred = model.predict(X_test)
accuracy = accuracy_score(y_test, y_pred)
precision = precision_score(y_test, y_pred)
recall = recall_score(y_test, y_pred)
f1 = f1_score(y_test, y_pred)

print(f’Accuracy: {accuracy}‘)
print(f’Precision: {precision}’)
print(f’Recall: {recall}‘)
print(f’F1 Score: {f1}’)

九、多项式回归模型的构建与训练
import numpy as np
import numpy.random as rnd
from sklearn.linear_model import LinearRegression
from sklearn.preprocessing import PolynomialFeatures

m = 100
X = 6 * np.random.rand(m, 1) - 3
y = 0.5 * X**2 + X + 2 + np.random.randn(m, 1)

#构建2阶多项式模型
poly_features = PolynomialFeatures(degree=2, include_bias=False)
X_poly = poly_features.fit_transform(X)

lin_reg = LinearRegression()
lin_reg.fit(X_poly, y)

十、简述支持向量机算法中硬间隔、软间隔和核函数的概念和作用。
答案:
硬间隔:在保证所有类别数据都被正确分开的前提下,构建的决策边界叫做硬间隔。
软间隔:允许存在一些分类错误的情况下,构建的决策边界叫做软间隔。
核函数:通过引入核函数把低维度的输入空间转换为更高维度的空间,来解决非线性分离问题。
十一、简述生成一棵决策树基本步骤。
答案:
1)根据条件的设置计算当前树中所有条件的重要性;
2)选择树中最重要的条件作为根节点;
3)根节点后的每一个分支都可以看作一个新的树,重复以上过程。
十二、决策树模型的构建与训练
一、数据加载和预处理
import pandas as pd

数据加载

df = pd.read_csv(‘wine.csv’)

数据预处理

检查缺失值

print(df.isnull().sum())

二、划分数据集

计算各列与Class列的相关性

corr = wine.corr()[‘Class’].drop(‘Class’).sort_values(ascending=False)
print(corr)

特征选择

X = wine[[‘Flavanoids’,‘OD280/OD315_of_diluted_wines’]]
y = wine[‘Class’]

划分数据集

X_train,X_test,y_train,y_test = train_test_split(X,y,test_size=0.2,random_state=42)

三、决策树模型训练与评估
from sklearn.tree import DecisionTreeClassifier
from sklearn.metrics import accuracy_score, precision_score, recall_score, f1_score, confusion_matrix
import matplotlib.pyplot as plt
import seaborn as sns

决策树模型训练

model = DecisionTreeClassifier(random_state=42)
model.fit(X_train, y_train)

模型评估

y_pred = model.predict(X_test)
accuracy = accuracy_score(y_test, y_pred)
precision = precision_score(y_test, y_pred, average=‘weighted’)
recall = recall_score(y_test, y_pred, average=‘weighted’)
f1 = f1_score(y_test, y_pred, average=‘weighted’)

print(f’Accuracy: {accuracy}‘)
print(f’Precision: {precision}’)
print(f’Recall: {recall}‘)
print(f’F1 Score: {f1}’)

四、模型的可视化和解释
from sklearn.tree import export_graphviz
import graphviz

决策树可视化

dot_data = export_graphviz(model, out_file=None, feature_names=features, class_names=[‘Class 0’, ‘Class 1’, ‘Class 2’], filled=True, rounded=True, special_characters=True)
graph = graphviz.Source(dot_data)
graph.render(“decision_tree”)

特征重要性

importances = model.feature_importances_
feature_importance = pd.Series(importances, index=features)

print(feature_importance)

特征重要性可视化

feature_importance.sort_values().plot(kind=‘barh’)
plt.xlabel(‘Importance’)
plt.title(‘Feature Importance’)
plt.show()

题目:
一、请按照下列要求的步骤,搭建深度学习环境。
参考答案:
1.创建新环境:
conda create --name myenv python=3.6

2.激活环境:
conda activate myenv

3.安装 TensorFlow:
pip install tensorflow==2.2

4.安装其他依赖包:
pip install numpy pandas matplotlib scikit-learn

5.检查已安装的软件包:
conda list

6.切换回 base 环境:
conda deactivate

二、假设卷积层输入特征的高、宽、深分别为2242243,卷积核个数为18,卷积核边长为3*3,padding=1,步长=1。求输出特征图的尺寸。
公式:输出尺寸 = [(输入尺寸 - 卷积核尺寸 + 2 * padding) / 步长] + 1
请详细写出计算过程,说明输出的高、宽、深度。
参考答案:
Ø • 计算输出高宽:

输出特征图的高和宽为 224。
• 输出深度:输出深度等于卷积核的个数,因此输出深度为 18。

输出尺寸:224x224x18

三、假设卷积层输入特征图的尺寸为 64x64x32,卷积核个数为 64,卷积核的大小为 5x5,步长为 2,padding=0。求输出特征图的尺寸。
公式:输出尺寸 = [(输入尺寸 - 卷积核尺寸 + 2 * padding) / 步长] + 1
请详细写出计算过程,说明输出的高、宽、深度。
参考答案:
Ø • 计算输出高宽:

输出特征图的高和宽为 30。
• 输出深度:输出深度等于卷积核的个数,因此输出深度为 64。

输出尺寸:30x30x64

四、请给下面的代码添加尽量详尽的注释

导入所需的库

import numpy as np # 用于处理数组和矩阵操作
import tensorflow as tf # TensorFlow库,用于深度学习建模

加载MNIST数据集

mnist = tf.keras.datasets.mnist # MNIST数据集包含手写数字图像数据

第一次运行需要下载TensorFlow下的MNIST数据集,并将数据分为训练集和测试集

(X_train, y_train), (X_test, y_test) = mnist.load_data()

转换标签为one-hot编码

将训练集和测试集的标签从整数形式(0-9)转换为one-hot编码的形式

one-hot编码是指用向量表示类别,其中只有一个位置为1,其余为0

y_train = np.float32(tf.keras.utils.to_categorical(y_train, num_classes=10)) # 转换为float32数据类型
y_test = np.float32(tf.keras.utils.to_categorical(y_test, num_classes=10))

由于mnist的输入数据维度是(num, 28, 28),我们需要将二维图像展平成784维的向量

这里是将28x28像素的图片转为1维的784个像素点的向量

x_train = X_train.reshape(X_train.shape[0], X_train.shape[1] * X_train.shape[2])
x_test = X_test.reshape(X_test.shape[0], X_test.shape[1] * X_test.shape[2])

构建神经网络

model = tf.keras.models.Sequential() # Sequential模型意味着按顺序构建各层

添加神经网络层

model.add( tf.keras.layers.Flatten(input_shape=[28, 28]))
model.add( tf.keras.layers.Dense(300, activation=“relu”))
model.add (tf.keras.layers.Dense(100, activation=“relu”))
model.add( tf.keras.layers.Dense(10, activation=“softmax”))

定义优化器和损失函数

优化器使用SGD(随机梯度下降)算法,学习率为1e-3

optimizer = tf.optimizers.SGD(learning_rate=1e-3)

损失函数使用交叉熵损失函数,适用于多分类问题

loss_function = tf.losses.categorical_crossentropy

编译模型,指定优化器、损失函数和评价指标(accuracy表示准确率)

model.compile(optimizer=optimizer, loss=loss_function, metrics=[‘accuracy’])

训练模型

使用fit函数训练模型,指定训练集的输入(x_train)和输出(y_train)

batch_size表示每次处理128个样本,epochs表示训练遍数为10次

model.fit(x_train, y_train, batch_size=128, epochs=10)
model.evaluate(x_test, y_test)
model.save(‘model.h5’)
五、请给下面的代码添加尽量详细的注释

导入所需的库

from tensorflow.keras.datasets import cifar10 # 从Keras加载CIFAR-10数据集
from tensorflow.keras.models import Sequential # 导入Sequential用于顺序构建模型
from tensorflow.keras.layers import Dense, Flatten, Conv2D, MaxPooling2D # 导入常见层,如Dense、Flatten、Conv2D、MaxPooling2D
from tensorflow.keras.losses import categorical_crossentropy # 导入交叉熵损失函数
from tensorflow.keras.optimizers import Adam # 导入Adam优化器
import matplotlib.pyplot as plt # 导入matplotlib用于数据可视化
import tensorflow as tf # 导入TensorFlow
import numpy as np # 导入NumPy用于数据处理
from tensorflow.keras.callbacks import TensorBoard

第一步:加载数据集

(X_train, y_train), (X_test, y_test) = cifar10.load_data() # 加载CIFAR-10训练和测试数据

将训练和测试的标签转换为one-hot编码,并将图像数据转换为float32格式

y_train = np.float32(tf.keras.utils.to_categorical(y_train, num_classes=10))
y_test = np.float32(tf.keras.utils.to_categorical(y_test, num_classes=10))

第二步:构建模型

model = Sequential() # 初始化顺序模型

第一个卷积层:32个3x3的过滤器,激活函数为ReLU,输入形状为32x32的彩色图像

model.add(Conv2D(32, kernel_size=(3, 3), activation=‘relu’, input_shape=(32, 32, 3)))

最大池化层:2x2的池化窗口

model.add(MaxPooling2D(pool_size=(2, 2)))

第二个卷积层:64个3x3的过滤器,激活函数为ReLU

model.add(Conv2D(64, kernel_size=(3, 3), activation=‘relu’))

最大池化层:2x2的池化窗口

model.add(MaxPooling2D(pool_size=(2, 2)))

第三个卷积层:128个3x3的过滤器,激活函数为ReLU

model.add(Conv2D(128, kernel_size=(3, 3), activation=‘relu’))

最大池化层:2x2的池化窗口

model.add(MaxPooling2D(pool_size=(2, 2)))

Flatten层:将多维特征图展平为一维向量

model.add(Flatten())

全连接层:256个神经元,激活函数为ReLU

model.add(Dense(256, activation=‘relu’))

第二个全连接层:128个神经元,激活函数为ReLU

model.add(Dense(128, activation=‘relu’))

输出层:10个神经元,激活函数为Softmax,用于多分类任务

model.add(Dense(10, activation=‘softmax’))
model.summary()

第三步:编译模型

损失函数使用分类交叉熵,优化器使用Adam,学习率为1e-3,评价指标为准确率

model.compile(loss=categorical_crossentropy,
optimizer=Adam(learning_rate=1e-3),
metrics=[‘accuracy’])

第四步:训练模型

训练模型,使用50作为批量大小,训练20轮次

history = model.fit(X_train, y_train, batch_size=50, epochs=20, validation_split=0.2)

第四步:训练模型,并启用TensorBoard日志记录

使用 TensorBoard 回调函数,将训练过程中的日志数据保存到 ‘./logs’ 目录下

tb = TensorBoard(‘./logs’)

训练模型

使用 50 的批次大小,训练 20 轮,20% 的训练数据将用于验证(validation_split=0.2)

callbacks 参数用于指定训练过程中的回调函数,这里使用 TensorBoard 进行监控

history = model.fit(X_train, y_train, batch_size=50, epochs=20, validation_split=0.2, callbacks=[tb])

第五步:评估模型

在测试集上评估模型的表现,返回损失值和准确率

score = model.evaluate(X_test, y_test)
print(f’Test loss: {score[0]} / Test accuracy: {score[1]}')