G検定 · LESSON 3
深度学习概述11%(当サイト設定) · 6 个主题
学习神经网络的基础、激活函数、误差函数、正则化、误差反向传播法和优化方法。
3.1神经网络与深度学习
神经网络与深度学习(单层感知机、多层感知机、CPU・GPU・TPU)
概念
单层感知机只有输入层和输出层,只能解决线性可分的问题(无法解决 XOR 问题)。加入隐藏层的多层感知机能处理非线性问题,把层加深就是深度学习。训练需要大量矩阵运算,因此使用擅长并行计算的 GPU,以及 Google 开发的面向深度学习的 TPU。
原理、步骤
- 理解单层感知机的局限(线性可分)
- 理解隐藏层使非线性表示成为可能
- 区分 CPU、GPU、TPU 各自擅长的处理
工作中的示例
把图像训练从 CPU 转移到 GPU,借助矩阵的并行计算大幅缩短训练时间。
易混淆点、考试注意事项
- XOR 无法用单层感知机解决(多层可以)
- GPU 原本用于图像处理,擅长并行运算
- TPU 是 Google 开发的面向张量计算的处理器
小测验
Q1. 单层感知机的局限,最合适的是哪项?
- 训练的计算量非常大,当时的计算机无法计算
- 输出是连续值,因此完全不能用于分类问题
- 只能解决线性可分的问题,无法解决像 XOR 这样线性不可分的问题
- 输入数量限于 2 个以内,无法处理 3 个以上的输入
查看答案和解析
正确答案:C 只能解决线性可分的问题,无法解决像 XOR 这样线性不可分的问题
单层感知机只能解决可用直线(超平面)划分的问题。加入隐藏层的多层感知机才能处理非线性问题。
Q2. 正在选择用于深度学习计算的硬件。擅长按顺序快速完成复杂处理、负责运行操作系统和一般应用程序的通用处理器,最合适的是哪项?
- TPU
- CPU
- FPGA
- GPU
查看答案和解析
正确答案:B CPU
CPU 用少数核心按顺序执行复杂处理。大量并行计算适合 GPU、TPU。(判断要点:擅长顺序性复杂处理的通用处理器)
参考链接
3.2激活函数
激活函数(Sigmoid、tanh、ReLU、Leaky ReLU、Softmax、梯度消失问题)
概念
激活函数对神经元的输出进行非线性变换。Sigmoid 函数(0〜1)的导数最大值只有 0.25,层数深时梯度容易消失(梯度消失问题)。tanh(−1〜1)的导数最大值为 1,有所改善。ReLU(0 以下为 0,正值保持不变)不易引起梯度消失,被广泛使用,Leaky ReLU 在负区域也保留微小的斜率。Softmax 函数用于多分类的输出层,使输出之和为 1,作为概率处理。
原理、步骤
- 隐藏层基本使用 ReLU 类函数
- 输出层:二分类用 Sigmoid,多分类用 Softmax,回归用恒等函数
- 出现梯度消失时,重新审视激活函数和归一化
工作中的示例
在 10 种商品的图像分类中,隐藏层使用 ReLU,输出层使用 Softmax,输出各类别的概率。
易混淆点、考试注意事项
- Sigmoid 导数的最大值为 0.25,tanh 为 1
- ReLU 在输入为负时,神经元可能不再学习(dying ReLU)
- Softmax 用于输出层,通常不用于隐藏层
小测验
Q1. 正在选择激活函数。在深层网络的隐藏层中,希望使用不易引起梯度消失、计算也轻的函数。最合适的是哪项?
- ReLU 函数
- Softmax 函数
- 恒等函数
- Sigmoid 函数
查看答案和解析
正确答案:A ReLU 函数
ReLU 在输入为正时原样输出(导数为 1),为负时输出 0,梯度不易消失。负侧学习停止的问题可用 Leaky ReLU。(判断要点:深层隐藏层,想避免梯度消失)
Q2. 正在选择激活函数。在预测住宅价格(无限制的连续值)的回归输出层,希望原样输出数值。最合适的是哪项?
- Softmax 函数
- 恒等函数
- ReLU 函数
- Sigmoid 函数
查看答案和解析
正确答案:B 恒等函数
回归的输出层一般使用原样返回输入的恒等函数。(判断要点:回归的输出层)
参考链接
3.3误差函数
误差函数(均方误差、交叉熵、KL 散度、Contrastive Loss、Triplet Loss)
概念
误差函数(损失函数)把预测与正确答案的偏差数值化,训练就是使其变小。回归使用均方误差,分类使用交叉熵。KL 散度测量两个概率分布的差异,用于 VAE 等。在度量学习中,使用让相似对靠近、不同对远离的 Contrastive Loss,以及使用锚点、正例、负例三元组的 Triplet Loss。
原理、步骤
- 根据任务类型(回归、分类、度量学习)选择误差函数
- 比较概率分布时使用 KL 散度
- 学习人脸比对等相似度时使用度量学习的损失
工作中的示例
在员工证人脸比对中,用 Triplet Loss 训练,使同一人的图像靠近、不同人的图像远离。
易混淆点、考试注意事项
- 分类使用均方误差时训练容易变慢(交叉熵更常用)
- KL 散度不对称(从 A 到 B 与从 B 到 A 的值不同)
- Triplet Loss 使用锚点、正例、负例三元组
小测验
Q1. 正在选择误差函数(损失函数)。在人脸认证中,希望用基准、同一人、不同人的三元组学习嵌入,使同一人的图像彼此接近、与不同人的图像远离。最合适的是哪项?
- Triplet Loss
- 交叉熵
- KL 散度(Kullback-Leibler)
- 均方误差函数
查看答案和解析
正确答案:A Triplet Loss
Triplet Loss 是使基准(锚点)与正例接近、与负例远离的度量学习误差函数。用二元组学习的是 Contrastive Loss。(判断要点:用三元组学习距离)
Q2. 正在选择误差函数(损失函数)。希望衡量两个概率分布相差多少,并作为使 VAE 潜在变量的分布接近标准正态分布的项来使用。最合适的是哪项?
- 均方误差函数
- Triplet Loss
- KL 散度(Kullback-Leibler)
- 交叉熵
查看答案和解析
正确答案:C KL 散度(Kullback-Leibler)
KL 散度表示两个分布之间的差异(非对称),用作 VAE 损失的正则化项。(判断要点:概率分布之间的差异)
参考链接
3.4正则化
正则化(L1・L2 正则化、Lasso 回归、Dropout)
概念
正则化是防止过拟合的方法。L1 正则化把权重绝对值之和加入误差,容易把不需要的权重变为 0(特征选择的效果)。把 L1 用于线性回归即为 Lasso 回归。L2 正则化加入权重的平方和,使权重整体变小(L2 的线性回归是 Ridge 回归)。Dropout 在训练中随机使神经元失效,获得类似多个模型集成的效果。
原理、步骤
- 根据训练数据与验证数据误差的差距确认过拟合
- 想精简特征量用 L1,想使整体平滑用 L2
- 神经网络中使用 Dropout
工作中的示例
在有 500 个特征量的销售预测中,用 Lasso 回归把许多特征量的系数变为 0,精简为重要的 30 个。
易混淆点、考试注意事项
- L1 容易使权重变为 0(稀疏),L2 使其变小但不易为 0
- Dropout 在推理时不使用
- 结合 L1 与 L2 的是 Elastic Net
小测验
Q1. 正在选择抑制过拟合的正则化方法。希望在神经网络训练时随机使一定比例的神经元失效,获得接近集成的效果。最合适的是哪项?
- Dropout
- L1 正则化
- L2 正则化
- 早停
查看答案和解析
正确答案:A Dropout
Dropout 使每次训练都在学习不同的网络,从而抑制过拟合。推理时使用全部神经元。(判断要点:随机使神经元失效)
Q2. 正在选择抑制过拟合的正则化方法。继续训练后验证数据的误差开始上升,希望在那个时点终止训练。最合适的是哪项?
- L1 正则化
- 早停
- L2 正则化
- Dropout
查看答案和解析
正确答案:B 早停
早停(early stopping)在验证误差不再改善时停止训练。(判断要点:因验证误差恶化而终止)
参考链接
3.5误差反向传播法
误差反向传播法(链式法则、梯度消失・梯度爆炸、信用分配问题)
概念
误差反向传播法把输出的误差从输出层向输入层反向传递,利用求导的链式法则高效计算各权重的梯度。层数深时,会出现梯度过小的梯度消失或过大的梯度爆炸。信用分配问题是确定哪个权重对误差负多大责任的问题,误差反向传播法是其解决方法之一。
原理、步骤
- 理解用链式法则计算复合函数导数的思路
- 用 ReLU、归一化、跳跃连接应对梯度消失
- 用梯度裁剪应对梯度爆炸
工作中的示例
训练深层 RNN 时出现梯度爆炸,因此使用为梯度大小设上限的梯度裁剪。
易混淆点、考试注意事项
- 误差反向传播法是计算梯度的方法,权重的更新方法(优化)是另一回事
- 梯度消失容易在使用 Sigmoid 函数时发生
- 梯度裁剪是梯度爆炸的对策(不是梯度消失的对策)
小测验
Q1. 在隐藏层使用 Sigmoid 函数容易发生梯度消失的原因,最合适的是哪项?
- 因为输出不会为负,权重会全部收敛到同一个值
- 因为输出的合计一定为 1,无法同时学习多个类别
- 因为导数的最大值只有 0.25,层数越多梯度越接近 0
- 因为输入为 0 时无法求导,训练计算会停止
查看答案和解析
正确答案:C 因为导数的最大值只有 0.25,层数越多梯度越接近 0
误差反向传播法把各层的导数相乘,小的值叠加后,输入侧的梯度就会消失。tanh 的导数最大值为 1,比 Sigmoid 有所改善。
Q2. Leaky ReLU 函数作为 ReLU 函数的改进被提出的原因,最合适的是哪项?
- 为了把输入为正时的斜率限制在 0.25 以下,防止梯度爆炸
- 为了不论输入大小都使输出保持一定,使训练稳定
- 为了把输出控制在 0~1 的范围内,使各神经元的输出可当作概率
- 为了让负的输入也有小的斜率,防止出现不再学习的神经元
查看答案和解析
正确答案:D 为了让负的输入也有小的斜率,防止出现不再学习的神经元
ReLU 在负输入时梯度为 0,可能产生停止学习的神经元(dying ReLU)。Leaky ReLU 在负侧有微小的斜率。
参考链接
3.6优化方法
优化方法(梯度下降法、随机梯度下降法、Momentum、AdaGrad、RMSprop、Adam、学习率、早停、双下降现象、超参数搜索)
概念
梯度下降法沿误差梯度的反方向一点点更新权重,有用全部数据计算的批量、逐条的随机梯度下降法(SGD)和小批量。Momentum 加入惯性抑制振荡,AdaGrad 降低更新幅度大的权重的学习率,RMSprop 改善了这种下降过度的问题,Adam 结合了 Momentum 和 RMSprop。学习率是更新的幅度。早停在验证误差开始增加时停止训练。双下降现象是模型变大后误差先增加再减少的现象。超参数用网格搜索、随机搜索、贝叶斯优化来搜索。
原理、步骤
- 先用 Adam 等常用方法和标准学习率尝试
- 监控验证误差并设置早停
- 用随机搜索或贝叶斯优化高效搜索超参数
工作中的示例
训练误差振荡而不下降,因此降低学习率,并把优化方法从带 Momentum 的 SGD 改为 Adam。
易混淆点、考试注意事项
- 学习率过大会发散,过小则慢且容易陷入局部最优
- AdaGrad 存在学习率过于趋近 0 的问题,RMSprop 加以改善
- 在鞍点(某方向为极小、另一方向为极大)处训练也会停滞
小测验
Q1. 在神经网络训练中,高效求出各权重相对于输出误差的梯度的方法是哪项?
- 前向传播
- 梯度裁剪
- 随机梯度下降法
- 误差反向传播法
查看答案和解析
正确答案:D 误差反向传播法
误差反向传播法使用复合函数的求导(链式法则),也是解决“哪个权重该对误差负责”问题(信用分配问题)的方法。正向的计算是前向传播。【其他选项】前向传播是从输入计算输出的处理。随机梯度下降用求出的梯度更新权重。梯度裁剪是缩小过大梯度的对策。
Q2. 正在选择梯度下降法的优化方法。希望结合惯性(梯度的移动平均)与按参数调整学习率(梯度平方的移动平均)两种思路。最合适的是哪项?
- 随机梯度下降法(SGD)
- Adam
- AdaGrad
- Momentum
查看答案和解析
正确答案:B Adam
Adam 结合了 Momentum 和 RMSprop,被广泛使用。AdaBound、AMSBound 是 Adam 的改进。(判断要点:Momentum 与 RMSprop 的结合)
参考链接
课程由本站根据公开信息独立编写,不保证与考试内容一致。产品规格可能变化,请在参考链接中确认最新信息。
使用须知(非官方、原创题目、不保证合格)
- 本站题目是根据官方公开的技能大纲和考试指南独立编写的原创练习题,并非真实考试题目。
- 本站与 GUGA、JDLA 等考试主办机构无合作关系,也未获得其认可或推荐。考试名称和机构名称可能是各权利人的商标或注册商标。
- 本内容仅为学习辅助,不保证考试合格。考试内容、形式和前提条件可能随时变更,参加考试前请务必在官方页面确认最新信息。
- 模拟考试的正确率无法换算为官方(换算)分数,也不能预测是否合格。
- 进度仅保存在本浏览器(localStorage)中;使用 Google 登录后才会同步到账号。可在“Cookie 与存储设置”页面(日语)中删除。