深度学习常见概念整理(一)
超参数指在开始学习过程之前设置值的参数,而不是通过训练得到的参数数据。通常情况下,需要对超参数进行优化,给学习机选择一组最优超参数,以提高学习的性能和效果。
batch:批次。每次迭代时使用的一批样本就叫做一个Batch,样本的数量称为Batch Size。Batch大小是一个超参数,用于定义在更新内部模型参数之前要处理的样本数。深度学习每一次参数的更新的Loss Function并不是由一个样本得到的,而是由一个Batch的数据加权得到。
epoch:周期。一个epoch就是使用训练集中的全部样本训练一次。通俗的讲,Epoch的值就是整个训练数据集被反复使用几次。
iteration:使用Batch Size个样本训练一次的过程叫做一iteration。
Dropout:是一种正则化技术,可防止网络过度拟合套。顾名思义,在训练期间,隐藏层中的一定数量的神经元被随机地丢弃。这意味着训练发生在神经网络的不同组合的神经网络的几个架构上。你可以将 Dropout 视为一种综合技术,然后将多个网络的输出用于产生最终输出。
Dropout层:根据相应的概率拿掉一部分的神经元,然后开始训练,更新没有被拿掉神经元以及权重的参数,将其保留
希望激活函数的输出尽量满足高斯分布,可以在全连接层后、激活层前加上BN,本质目的是促进模型收敛,降低初始值对模型训练的影响,提高模型精度和泛化能力
。使用了BN,就不需要使用LRN(AlexNet中用到的局部响应归一化),也不需要过多的考虑权重初始值、Dropout和权重惩罚项的参数设置问题。
详解https://zhuanlan.zhihu.com/p/75603087
进行归一化处理的原因:
一旦训练数据与测试数据的分布不同,那么网络的泛化能力也大大降低;另外一方面,一旦每批训练数据的分布各不相同(batch 梯度下降),那么网络就要在每次迭代都去学习适应不同的分布,这样将会大大降低网络的训练速度,这也正是为什么我们需要对数据都要做一个归一化预处理的原因。
BN层位置:
Batch normalization 也可以被看做一个层面. 在一层层的添加神经网络的时候, 我们先有数据 X, 再添加全连接层, 全连接层的计算结果会经过 激励函数 成为下一层的输入, 接着重复之前的操作. Batch Normalization (BN) 就被添加在每一个全连接和激励函数之间.
BN层作用:
1.加快网络的训练和收敛的速度
2.控制梯度爆炸防止梯度消失
3.防止过拟合
BN层一般用在线性层和卷积层后面:
因为非线性单元的输出分布形状会在训练过程中变化,归一化无法消除他的方差偏移,相反的,全连接和卷积层的输出一般是一个对称,非稀疏的一个分布,更加类似高斯分布,对他们进行归一化会产生更加稳定的分布
卷积神经网络(CNN) 具有局部互联、权值共享、下采样(池化)和使用多个卷积层
的特点。
局部互联:是指每个神经元只感受局部的图像区域,也就是卷积操作。
权值共享:是指当前层所有特征图共用一个卷积核,每个卷积核提取一种特征,参数量明显下降;使用多个卷积核可以提取多种特征。
下采样:每次对输入的特征图错开一行或一列,能够压缩特征图大小,特征降维,提取主要特征,将语义相似的特征融合,对平移形变不敏感,提高模型泛化能力。
使用多个卷积层:能够提取更深层次的特征,组合特征实现从低级到高级、局部到整体的特征提取。
卷积神经网络、循环神经网络、对抗神经网络
(各种网络汇总https://blog.csdn.net/liutengjun_fudan/article/details/78286391
CNN
RNN
你的输入顺序将会影响神经网络的训练结果:相比先输入“曲奇饼”再输入“牛奶”,先输入“牛奶”再输入“曲奇饼”后,或许会产生不同的结果。RNN存在一大问题:梯度消失(或梯度爆炸,这取决于所用的激活函数),信息会随时间迅速消失,正如FFNN会随着深度的增加而失去信息一样。
GAN
生成式对抗网络(GAN:Generative adversarial networks)是一类不同的网络,它们有一对“双胞胎”:两个网络协同工作。
GAN可由任意两种网络组成(但通常是FF和CNN),其中一个用于生成内容,另一个则用于鉴别生成的内容。
深度神经网络具有从低级到高级、局部到整体的特征表达和学习能力,相比于浅层网络能更简洁紧凑的提取特征,但训练时容易发生过拟合、梯度弥散和局部极值
的问题。
过拟合(Overfitting):
一般发生在数据量较少而模型参数较多时,其表现是模型在训练时变现的很好(error和loss很低)、但在测试时较差(error和loss较大),使得模型的泛化能力不行。归根结底是数据量不够多不够好,最好的办法是通过增加数据量(更多更全的数据、数据增广、数据清洗),还可以通过使用dropout、BN、正则化等来防止过拟合,训练时的trick是适当增加训练时的batchsize、适当降低学习率。梯度弥散(Gradient Vanish):
是指在靠近输出层的隐层训练的好,但在靠近输入层的隐层几乎无法训练,是多层使用sigmoid激活函数所致(sigmoid函数在接近1的部分梯度下降的太快),用ReLu激活函数可以缓解这个问题。局部极值:
是指在训练深度网络时求解一个高度非凸的优化问题如最小化训练误差loss可能会得到坏的局部极值而非全局极值。采用梯度下降法也可能存在这种问题。
这与消失的梯度问题完全相反,激活函数的梯度过大。在反向传播期间,它使特定节点的权重相对于其他节点的权重非常高,这使得它们不重要。这可以通过剪切梯度来轻松解决,使其不超过一定值
使用各种方法,丰富数据多样性,提升算法鲁棒性
在损失函数后加上一个约束项,提高泛化能力
L2正则:
L2 正则化 / 规范化(L2 Regularization),又被称为权重衰减(Weight Decay)。
C 为当前神经网络的损失,C0 为之前的损失,a 为惩罚(penalty)因子。
L1正则:
监督学习(Supervised Learning):
指用来训练网络的数据所对应的输出是已知的,其可能是一个类别标签,可能是一个或多个值。
无监督学习(Unsupervised Learning):
指数据没有被标记,即类别未知,而完全由计算机自行判断。一般适用于缺乏先验知识或进行人工标注的成本过高的情况。
在无监督学习下对样本的划分通常被称为聚类(Clustering)
,常见方法有 K-means,混合高斯模型(GMM)等。
半监督学习:
是监督学习与无监督学习相结合的一种学习方法,在使用尽量少的工作从事人员的前提下,又能够带来比较高的准确性。也有弱监督学习(Weakly Supervised Learning)的叫法。
详解https://www.cnblogs.com/jinkun113/p/14186132.html
通常情况下,将一个目标完全正确地标记出来是不现实的。所以,我们引入一个新的参数交并比来判定。
IoU
:
交并比(IoU, Intersection over Union),表示预测边框与实际边框的交集面积与并集面积的比值。
IoU 可以反映出预测框(Predict Box)与真实框(Gound-Truth)的检测效果。一个预测框被认为是正确结果(TP),一般需要满足与目标物体的真实框重合度(IoU)超过一个阈值(一般为 50%),否则为错误结果(FP)。
如果将其作为损失函数,下列情况并不能很好反映出实际存在的问题:
(1)如果两个框没有相交,根据定义,IoU = 0,则完全无法体现出框之间的距离。此时 Loss 值为 0,无梯度回传,无法进行学习训练;
(2)无法区分对齐方式,精准反映实际重合效果。
GIoU
:
广义交并比(GIoU, Generalized-IoU),在 CVPR2019《Generalized Intersection over Union: A Metric and A Loss for Bounding Box Regression》中首次提出。论文提出直接把 IoU 设为回归的 Loss 值,计算公式如下:
其中,C 表示两个框的最小闭包区域面积,如下图所示:
DIoU
:
距离交并比(DIoU, Distance-IoU),相比 GIoU,它还考虑了框之间的距离、尺度,使得预测框回归变得更加稳定,不会出现发散问题。
DIoU 可以直接最小化两个框的距离,因此比 GIoU 收敛快得多。对于两个框在水平或垂直方向的情况,DIoU 可以使回归非常快,而 GIoU 几乎退化为 IoU。
DIoU 还可以替换普通的 IoU 评价策略,应用于非极大值抑制(NMS, Non-Maximum Suppression)中,使得结果更加合理有效。
CIoU
:
完整交并比(CIoU, Complete-IoU),考虑到 Boundingbox 回归三要素中的长宽比还没被考虑,CIoU 在 DIoU 的基础上增加了惩罚因子,alpha*v, 这个alpha是权重函数,v用来衡量长宽比的相似性。
其余参考文章:
深度学习入门必须理解这25个概念 https://blog.csdn.net/hzp666/article/details/76070346
深度学习常见的基本概念整理 https://blog.csdn.net/hzp666/article/details/76070346
[深度学习] 基本概念介绍汇总 https://www.cnblogs.com/jinkun113/p/14186132.html
青古の每篇一歌
《半糖主义》
爱得来不易
要留一点空隙彼此才能呼吸