初次接触深度学习时,大家可能会感到无从下手。这里有一些有关深度学习的技巧和要点可供大家参考。
这些都是什么?
在本篇文章,我们将介绍一些深度学习中的常见概念,以帮助大家快速了解这个神奇的领域。
梯度可视化。图中红色箭头为蓝色函数对应的梯度。
梯度∇ (Nabla)
梯度是一个函数的偏导数,以多个向量作为输入,并输出一个单一的数值(即神经网络中的代价函数)。当我们需要使函数输出增加时,梯度能够告诉我们输入变量在图中的应变化的方向。我们在深度学习中应用梯度,并使用梯度的反方向来降低我们算法的损失。
后向传播
也称为反向传播,是指在网络中正向传播输入数据之后,反向传播误差并根据误差调整网络权重的过程。这种方法在实际应用时使用了微积分中的链式法则。
Sigmoid σ
用于将网络权重映射至[0, 1]区间的激活函数。该函数在图中的曲线类似一个字母'S',函数因此得名,在希腊语中sigma表示字母S。该函数也被称为logistic函数。
Geoffrey Hinton定义的ReLU计算公式
校正线性单元或ReLU
sigmoid函数的值域限制在[0, 1]区间内,而ReLU的值域为0到正无穷。这意味着,sigmoid更适合logistic回归,而ReLU能够更好地表示正数输出。ReLU不会产生梯度消失问题。
Tanh函数
Tanh
Tanh函数是一个可将你的网络权重初始化为[-1, 1]区间内实数的函数。假设你的数据已经规范化,那么我们会得到一个更大的梯度:因为数据以0为中心分布,函数的导数更高。为了验证这点,我们计算tanh函数的导数,并观察函数在[0, 1]区间内的输入。tanh函数的值域为[-1, 1]区间,而sigmoid函数的值域为[0, 1]区间。这也避免了在梯度中的偏差。
LSTM/GRU
通常应用于递归神经网络,也可扩展至其他场景使用,其充当小型"记忆单元",能够保持输入数据间的状态,用于模型训练,同时,也可解决梯度消失问题,梯度消失问题会导致递归神经网络在进行大约7次迭代后失去先前输入数据的上下文。
Softmax
Softmax函数通常在神经网络的最后用于模型结果的分类。该函数采用多元logistic回归,通常用于多类别的分类任务。Softmax函数通常与交叉熵共同构成模型的损失函数。
L1范式与L2范式
这些正则化方法通过对系数施加惩罚以避免过拟合。L1范式可产生稀疏模型,而L2范式则不会。范式用于指定模型的复杂度。这至关重要,因为它能够提高模型的泛化能力,防止模型对训练数据过拟合。
Dropout
[1]"它防止模型过拟合,并提供了一种有效的方式,来联合不同的数量接近指数级的神经网络架构"(Hinton)。这种方法在网络中随机选择并剔除显式和隐含的神经元。选择的神经元数量取决于该层设置的dropout百分比。
批规范化
[1]当模型网络层数很深时,会出现内部协变量偏移的问题。这种偏移是指"训练期间网络参数变化所导致的网络输出分布的变化" (Szegedy)。如果我们可以减少内部协变量偏移,那么我们就可以更好更快地训练模型。批规范化通过使用均值与方差对传入网络的各批数据进行规范化处理,进而解决此类问题。
目标函数
也称为损失函数或评价优化函数。网络训练的目的在于最小化损失以最大化网络精度。
F1/F分数
F1/F分数是一种根据准确率与召回率来评估模型预测精度的评价指标,计算公式如下:
F1 = 2 (准确率 召回率) / (准确率 + 召回率)
准确率:在所有预测结果中,预测正确的结果比例为多少?
准确率 = 真阳性结果数 / (真阳性结果数 + 假阳性结果数)
召回率:在所有实际正确的结果中,预测出来的正确结果的比例为多少?
召回率 = 真阳性结果数 / (真阳性结果数 + 假阴性结果数)
交叉熵
交叉熵用于计算预测标签与实际情况的偏差。有时简称为CE。
交叉熵是一种损失函数,与热力学中熵的概念相关。交叉熵用于多类别分类场景下预测误差的计算。
本文介绍的内容可能不够全面,如果有任何您觉得有必要补充的内容,欢迎您与我联系。
[1] * 参考自: InflationAaron
数十款阿里云产品限时折扣中,赶紧点击领劵开始云上实践吧!
以上为译文
本文由北邮@爱可可-爱生活 老师推荐,阿里云云栖社区组织翻译。
文章原标题《Deep Learning Cheat Sheet》,作者:Camron Godbout,译者:6816816151
文章为简译,更为详细的内容,请查看原文