五天学会Deep Learning

2023-05-24,,

五天学完deep learning。。。。。。是时候来证明chatGPT和new bing的能力了。。。。。。

DAY1

Sigmoid function

Sigmoid 函数是一种常用的激活函数,它将输入值映射到 0 和 1 之间。它的公式为 f(x) = 1 / (1 + e^-x)。Sigmoid 函数的输出值具有平滑性,因此它在深度学习中常用于分类问题。

Softplus function

Softplus 函数是一种激活函数,它将输入值映射到正实数范围内。它的公式为 f(x) = ln(1 + e^x)。Softplus 函数的输出值具有平滑性,因此它在深度学习中常用于回归问题。

KL divergence

KL 散度(Kullback-Leibler divergence)是一种用于衡量两个概率分布之间差异的方法。它的定义为 D_KL(P||Q) = ∑_i P(i) * log(P(i)/Q(i)),其中 P 和 Q 是两个概率分布。KL 散度越大,说明两个概率分布之间的差异越大。

举个例子,假设我们有两个概率分布 P 和 Q,其中 P = [0.5, 0.5],Q = [0.9, 0.1]。那么,我们可以计算它们之间的 KL 散度为 D_KL(P||Q) = 0.5 * log(0.5/0.9) + 0.5 * log(0.5/0.1) ≈ 0.36。这意味着 P 和 Q 之间存在一定的差异。

Structured Probabilistic Model

结构化概率模型使用图来表示随机变量之间的相互作用。每个节点代表一个随机变量。每条边代表一种直接相互作用。这些直接相互作用暗示了其他的间接相互作用,但只有直接相互作用需要被明确建模

Overflow and Underflow

溢出和下溢都是由于给定的位数无法表示给定的数字而发生的错误。溢出是指给定的位数无法表示给定的数字,这意味着数字需要更多的位数来表示。还有一种情况是数字太小,无法根据给定的数字模式表示。这就叫做下溢

Poor Conditioning

条件差是指函数对输入的微小变化反应迅速。舍入误差可能会迅速改变输出。考虑函数\(f(x)=A^{-1}x\),其中\(A\)是一个矩阵,它的条件数很高。\(A^{-1}\)会放大输入误差。\(x\)中的微小误差可能会迅速改变\(A^{-1}x\)的输出。其他方法,包括矩阵分解,可以替代矩阵求逆方法来避免条件差,以提高数值稳定性

Day 2

Capacity

深度学习神经网络模型的容量控制了它能够学习的映射函数类型的范围。容量过小的模型无法学习训练数据集,意味着它会欠拟合,而容量过大的模型可能会记住训练数据集,意味着它会过拟合或在优化过程中卡住或迷失

No free lunch theorem

“没有免费午餐”定理(No Free Lunch Theorem)通常用于优化和机器学习领域,它的意思是当所有优化算法的性能在所有可能的问题上平均时,它们的性能都相同。这意味着没有单一最佳的优化算法。由于优化、搜索和机器学习之间的密切关系,它也意味着对于预测建模问题(如分类和回归),没有单一最佳的机器学习算法

Frequentist and Baysian statistics

频率主义和贝叶斯统计学是两种不同的数据分析方法,它们在如何使用概率方面有所不同。贝叶斯统计学将过去的知识和证据纳入先验分布,并用当前数据更新它以产生后验分布。频率主义统计学仅使用当前实验的数据进行预测或检验假设,在频率主义中未知参数是固定但未知的。

Local Constancy and Smoothness Regularization
Manifold Learning

Day 3

Deep Feedforward Networks

Softmax == soft argmax
第一张图

更深的模型可能会更好

Regularization for Deep Learning

L1 and L2 regularization

相比 L2正则化,L1正则化会产生更 稀疏(sparse)的解。

D4

Dataset Augmentation

数据增强是一种人为增加数据集大小的过程,通过对现有数据点应用各种变换(如旋转、平移和缩放)来添加新的数据点。最近发现,神经网络的输入层注入噪声,在噪声的幅度被细心调整后,该方法是非常高效的。

通常,普适操作(例如,向输入添加高斯噪声)被认为是机器学习算法的一部分,而特定于一个应用领域(如随机地裁剪图像)的操作被认为是独立的预处理步骤。

Noise Robustness

噪声鲁棒性是指算法在添加一些噪声到数据后,其性能的稳定性。这意味着算法能够在噪声干扰的情况下保持有效性。

另一种正则化模型的噪声使用方式是将其加到权重。这项技术主要用于循环神经网络。这可以被解释为关于权重的贝叶斯推断的随机实现。贝叶斯学习过程将权重视为不确定的,并且可以通过概率分布表示这种不确定性。向权重添加噪声是反映这种不确定性的一种实用的随机方法。

在某些假设下,施加于权重的噪声可以被解释为与更传统的正则化形式等同,鼓励要学习的函数保持稳定。

Label smoothing

标签平滑是一种正则化技术,它通过引入标签(输出)噪声来防止神经网络过拟合。这考虑到数据集中可能存在错误,因此直接最大化log p(y|x)的可能性可能是有害的。假设对于一个小常数ϵ,训练集标签y以概率1-ϵ正确,否则不正确。

Semi-Supervised Learning

半监督学习是一种机器学习方法,它介于监督学习和无监督学习之间。它是一种使用少量标记数据和大量未标记数据来训练模型的方法。这种方法的目的是利用未标记数据来帮助模型更好地理解数据分布,从而提高模型的性能。

Multitask Learning

多任务学习是一种机器学习技术,它训练模型同时执行多个任务。在深度学习中,多任务学习指通过在任务之间共享网络的一些层和参数来训练神经网络执行多个任务。这种方法可以通过利用任务之间的共性和差异来提高学习效率和预测准确性。

从深度学习的观点看,底层的先验知识如下:能解释数据变化(在与之相关联的不同任务中观察到)的因素中,某些因素是跨两个或更多任务共享的。

Early Stopping

提前终止是一种非常不显眼的正则化形式,它几乎不需要改变基本训练过程、目标函数或一组允许的参数值。这意味着,无需破坏学习动态就能很容易地使用提前终止。相对于权重衰减,必须小心不能使用太多的权重衰减,以防网络陷入不良局部极小点(对应于病态的小权重)。

提前终止需要验证集,这意味着某些训练数据不能被馈送到模型。为了更好地利用这一额外的数据,我们可以在完成提前终止的首次训练之后,进行额外的训练。在第二轮,即额外的训练步骤中,所有的训练数据都被包括在内。有两个基本的策略都可以用于第二轮训练过程。一个策略是再次初始化模型,然后使用所有数据再次训练。另一个策略是保持从第一轮训练获得的参数,然后使用全部的数据继续训练。

提前终止正则化模型的真正机制是什么呢?认为提前终止可以将优化过程的参数空间限制在初始参数值 \(\theta_0\) 的小邻域内。

Parameter Tying and Parameter Sharing

参数绑定和参数共享是一种控制深度神经网络复杂度的方法,它通过强制某些权重共享相同的值来实现。特定形式的权重共享是硬编码的,用来表达某些不变性。一个典型的例子是卷积层的平移不变性.

参数共享的一个显著优点是,只有参数(唯一一个集合)的子集需要被存储在内存中。对于某些特定模型,如卷积神经网络CNN,这可能可以显著减少模型所占用的内存。

卷积层的平移不变性是指卷积层对输入的平移具有不变性。这意味着,当输入图像发生平移时,卷积层的输出也会相应地平移,但不会发生其他变化。

然而,现代卷积网络并不是完全平移不变的。小的输入平移或转换可能会导致输出发生剧烈变化。常用的下采样方法,如最大池化、跨步卷积和平均池化,都忽略了采样定理。信号处理中众所周知的解决方案是在下采样之前通过低通滤波进行抗混叠。然而,简单地将这个模块插入深度网络会降低性能;因此,它目前很少被使用。

Dropout

Dropout的另一个重要方面是噪声是乘性的。如果是固定规模的加性噪声,那么加了噪声 ϵ 的整流线性隐藏单元可以简单地学会使 hi 变得很大(使增加的噪声 ϵ 变得不显著)。

另一种深度学习算法——批标准化,在训练时向隐藏单元引入加性和乘性噪声重新参数化模型。批标准化的主要目的是改善优化,但噪声具有正则化的效果,有时没必要再使用Dropout。

Sparse Representations

惩罚神经网络中的激活单元,稀疏化激活单元。这种策略间接地对模型参数施加了复杂惩罚。

weight scaling inference rule

权重缩放推理规则是一种在测试时使用的近似平均方法。这种方法的思想是在测试时使用一个没有dropout的单一神经网络。如果一个单元在训练期间以概率p保留,那么该单元的输出权重在测试时乘以p,如图3所示。这样可以确保对于任何隐藏单元,期望输出(在训练时用于丢弃单元的分布下)与测试时的实际输出相同。通过这种缩放,具有共享权重的2n个网络可以组合成一个用于测试时的单一神经网络。Srivastava(2014)发现,使用dropout训练网络并在测试时使用这种近似平均方法,与使用其他正则化方法进行训练相比,可以显著降低各种分类问题的泛化误差。

Adversarial Training

对抗训练是一种机器学习技术,它涉及使用对抗样本来训练神经网络,这些输入被稍微修改以欺骗网络。目标是通过使网络对某些特征或扰动不变来提高网络的鲁棒性和泛化能力。对抗训练可以通过不同的方式进行,例如使用第二个网络提供反馈,使用一些对抗样本重新训练网络,或者回收梯度信息来生成对抗样本。对抗训练是少数几种能够抵御强攻击的防御措施之一,但在大规模问题上可能代价高昂且不切实际¹。

我们可以通过 对抗训练(adversarial training)减少原有独立同分布的测试集的错误率——在对抗扰动的训练集样本上训练网络。

Tangent Distance, Tangent Prop and ManifoldTangent Classifier

五天学会Deep Learning的相关教程结束。

《五天学会Deep Learning.doc》

下载本文的Word格式文档,以方便收藏与打印。