《动手学深度学习》学习日志3

一、优化:

1.优化与深度学习不同之处

• 优化方法目标:训练集损失函数值
• 深度学习目标:测试集损失函数值(泛化性)

2.优化在深度学习中的挑战

• 局部最小值
• 鞍点
• 梯度消失

二、梯度下降

1.批量梯度下降和随机梯度下降

批量梯度下降—最小化所有训练样本的损失函数,使得最终求解的是全局的最优解,即求解的参数是使得风险函数最小。
随机梯度下降—最小化每条样本的损失函数,虽然不是每次迭代得到的损失函数都向着全局最优方向, 但是大的整体的方向是向全局最优解的,最终的结果往往是在全局最优解附近。

三、数据增强

1.图像增广

大规模数据集是成功应用深度神经网络的前提。图像增广(image augmentation)技术通过对训练图像做一系列随机改变,来产生相似但又不同的训练样本,从而扩大训练数据集的规模。图像增广的另一种解释是,随机改变训练样本可以降低模型对某些属性的依赖,从而提高模型的泛化能力。例如,我们可以对图像进行不同方式的裁剪,使感兴趣的物体出现在不同位置,从而减轻模型对物体出现位置的依赖性。我们也可以调整亮度、色彩等因素来降低模型对色彩的敏感度。可以说,在当年AlexNet的成功中,图像增广技术功不可没。本节我们将讨论这个在计算机视觉里被广泛使用的技术。

2.常用的图像增广方法

• 翻转和裁剪
• 变化颜色
• 叠加多个图像的增广方法

3.图像增广的作用

下列不属于图像增广的作用的是:B
A.缓解过拟合
B.缓解欠拟合
C.增加模型泛化能力
D.通过旋转/翻转等方式可以降低对某些属性的依赖。
选项二:错误,欠拟合普遍原因是模型对于数据过于简单,因此图像增广不能缓解欠拟合,但是能缓解过拟合,通过加入相似的图片也能 提高泛化能力和减小对某些无关属性如图片方向、大小的依赖。

四、模型微调

1.迁移学习

迁移学习(transfer learning),将从源数据集学到的知识迁移到目标数据集上。例如,虽然ImageNet数据集的图像大多跟椅子无关,但在该数据集上训练的模型可以抽取较通用的图像特征,从而能够帮助识别边缘、纹理、形状和物体组成等。这些类似的特征对于识别椅子也可能同样有效。

2.模型微调

微调是迁移学习中一种常用技术。
• 在源数据集(如ImageNet数据集)上预训练一个神经网络模型,即源模型。
• 创建一个新的神经网络模型,即目标模型。它复制了源模型上除了输出层外的所有模型设计及其参数。我们假设这些模型参数包含了源数据集上学习到的知识,且这些知识同样适用于目标数据集。我们还假设源模型的输出层跟源数据集的标签紧密相关,因此在目标模型中不予采用。
• 为目标模型添加一个输出大小为目标数据集类别个数的输出层,并随机初始化该层的模型参数。
• 在目标数据集(如椅子数据集)上训练目标模型。我们将从头训练输出层,而其余层的参数都是基于源模型的参数微调得到的。

五、优化算法进阶

1.下列算法中哪个没有使用到Exponential Moving Average:C
A.RMSProp
B.Adam
C.Adagrad
D.SGD Momentum
解释:
选项1: RMSProp的自适应学习率分母使用了EMA
选项2: Adam自适应学习率的分子和分母都使用了EMA
选项3: Adagrad的自适应学习率没有使用EMA,而是对梯度平方进行累加,因而存在梯度消失的问题
选项4: Momentum也即对梯度计算EMA

2.下列关于RMSProp, AdaGrad, AdaDelta, Adam等高阶优化算法的说法错误的是:D
A.RMSProp利用Exponential Moving Average解决了Adagrad梯度消失的问题
B.AdaGrad出现梯度消失的原因是自适应学习率分母的不断累加使其存在最终趋于0的可能
C.AdaDelta是基于RMSProp的改进算法,其只有一个超参数
D.Adam没有使用Momentum算法
解释:
选项1: 正确,RMSProp不是直接对梯度平方进行累加,而是使用EMA对上一时刻的自适应学习率的分母进行衰减
选项2: 正确,当梯度一直不为0时,Adagrad的自适应学习率的分母会不断累加,使自适应学习率趋于0,出现梯度消息的问题
选项3: 正确,Adelta是基于RMSprop的改进,只需传入EMA的衰减参数
选项4: 错误,Adam使用了Momentum算法,其是RMSProp与Momentum的结合
3.下列关于Adam的说法错误的是:D
A.Adam使用了Exponential Moving Average
B.Adam对大小相差很大数量级的梯度都可以rescale到相近的大小
C.Adam是RMSProp和Momentum算法的结合,并对EMA权重进行了无偏操作
D.Adam使用了两次Exponential Moving Average,并且二者使用相同的衰减参数
解释:
选项2: 正确,Adam算法中的 m_tmt 和 v_tvt (原文符号)分别是梯度的一阶矩和二阶矩估计,二者相比,可以使更新量rescale到1的附近。
选项4: 错误,m_tmt 和 v_tvt 均使用了EMA,但是二者的衰减参数并不相同

六、词嵌入基础word2vec

1.one-hot 向量表示单词

我们在“循环神经网络的从零开始实现”一节中使用 one-hot 向量表示单词,虽然它们构造起来很容易,但通常并不是一个好选择。一个主要的原因是,one-hot 词向量无法准确表达不同词之间的相似度,如我们常常使用的余弦相似度。

2.Word2Vec 词嵌入工具

Word2Vec 词嵌入工具的提出正是为了解决上面这个问题,它将每个词表示成一个定长的向量,并通过在语料库上的预训练使得这些向量能较好地表达不同词之间的相似和类比关系,以引入一定的语义信息。基于两种概率模型的假设,我们可以定义两种 Word2Vec 模型:

2.1Skip-Gram 跳字模型:

假设背景词由中心词生成,即建模 P(wo∣wc),其中 wc 为中心词,wo 为任一背景词;

2.2CBOW (continuous bag-of-words) 连续词袋模型:

假设中心词由背景词生成,即建模 P(wc∣Wo),其中 Wo 为背景词的集合。

六、词嵌入进阶

在“Word2Vec的实现”一节中,我们在小规模数据集上训练了一个 Word2Vec 词嵌入模型,并通过词向量的余弦相似度搜索近义词。虽然 Word2Vec 已经能够成功地将离散的单词转换为连续的词向量,并能一定程度上地保存词与词之间的近似关系,但 Word2Vec 模型仍不是完美的,它还可以被进一步地改进:

1.子词嵌入(subword embedding)

FastText 以固定大小的 n-gram 形式将单词更细致地表示为了子词的集合,而 BPE (byte pair encoding) 算法则能根据语料库的统计信息,自动且动态地生成高频子词的集合;

2.GloVe 全局向量的词嵌入

通过等价转换 Word2Vec 模型的条件概率公式,我们可以得到一个全局的损失函数表达,并在此基础上进一步优化模型。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值