AI常用部分知识整理

sigmoid 输出结果0到1,单调递增,多用于多分类的输出

 

softmax 输出结果0到1,单调递增,多用于单分类的输出 (多个输出的和为1)

激活函数

tanh:存在梯度消失问题,所以很少用

relu:缺点:1.没有负值. 2.特征屏蔽太多,导致模型无法学习到有效特征 部分采用Leaky ReLU

Swish:在深层模型上的效果优于 ReLU

其他见下面网站(尤其是对梯度消失和爆炸的处理):

激活函数(ReLU, Swish, Maxout) - 康行天下 - 博客园

优化函数

SGD   随机梯度下降,通常要设weight_decay,可带动量

Adam 目前大多用这个

学习率

CosineAnnealingLR  余弦退火 防止进入局部最优

ReduceLROnPlateau  学习率自动下降

损失函数

0,1二分类:BCELoss      

单分类:MSELoss  均方差   (pytorch上介绍MSEloss用作回归问题,NLLLoss用于分类问题)

多分类:CrossEntropyLoss (交叉熵)是把以上Softmax–Log–NLLLoss合并成一步

GAN:BCELoss BCEWithLogitsLoss

连续信息: CTCLoss

归一化层

输入层也要根据经验数据进行归一化,如统计的大量图像的均值和标准差分别为[0.485, 0.456, 0.406], [0.229, 0.224, 0.225]

BatchNorm2d:会加速batch训练的速度

池化层

MaxPool2d :常用语中间层,效果比avgpool2d好

AdaptiveAvgPool2d : 常用语最后的FC层之前做Global Pooling

数据增强

data_transforms = {
	'train' : transforms.Compose([transfoims. RandomRotation(45),  #-45到45度之间随机旋转
		transforms.CenterCrop (224),  #从中心开始裁剪
		transforms.RandomHorizontalFiip(p=0. 5),  #以0.5概率,随机水平翻转 
		transfonns.RandomVerticalFiip(p=0. 5),  #以0.5概率,随机垂直翻转
		transforms.ColorJitter(brightness=0.2, contrast=0.1, saturation=0.1, hue=0.1),  #参数为亮度、对比度、饱和度、色相
		transforms.RandomGrayscale (p=0.025),  #以0.025概率转换成灰度, 3通道就是R=G=B
		transforms.ToTensor(),
		transforms.Normalize([0.483, 0.456, 0.406], [0.229, 0.224, 0.225])    #均值,标准差
	]),
	'valid' : transforms.Compose([transforms.Resize(256),
		transforms.CenterCrop(224),
		transforms.ToTensor(),
		transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225])
	]),
}

卷积后feature map大小公式

感受野

featuremap上的点能够感受到输入层范围的变化。距离输入层越近感受野越小。应用:GoogLeNet的使用不同大小的卷积核,来获取不同范围的感受野。前景图像有大有小,所以需要不同的感受野,ResNet残差网络可能也有部分考虑。FasterRCNN利用感受野确定原图与卷积后图片的矩形框的位置

迁移学习

在样本量少或训练时间短时,通常用现成的网络和对应的网络参数,对部分参数的训练进行冻结,来加快训练速度的方法

一般步骤

网络结构

图像

常用骨干网络:

VGG:多层小的卷积核代替大的卷积,参数量降低。

ResNet:残差网络,至少不比上一次差。在物体分类中效果很好

SENet:增加注意力机制,可应用到其他网络中,来提高效果

MobileNet:空间可分离(二维矩阵改为两个一维矩阵相乘) 深度可分离(一次卷积改为生成层的卷积和1x1卷积)

EffNet:

Faster RCNN:两阶段的目标检测算法,包括阶段一的Region proposal以及阶段二的bounding box回归和分类。

Mask RCNN:沿用了Faster RCNN的思想,特征提取采用ResNet-FPN的架构,另外多加了一个Mask预测分支(即ResNet-FPN+Fast RCNN+Mask)。对每个RoI预测了对应的二值掩膜(binary mask)。所谓二进制mask,就是当像素属于目标的所有位置上时标识为1,其它位置标识为 0。可用于语义分割和实例分割

FPN:Feature Pyramid Networks 基于Faster RCNN,将每个大小的特征图和上采样后的特征图融合,然后进行多尺度目标检测,包括自下而上,自上而下和横向连接三个部分,将各个层级的特征进行融合,使其同时具有强语义信息和强空间信息。是一种通用架构,可以结合各种骨架网络使用。  1.1.2 FPN结构详解_哔哩哔哩_bilibili

 YOLO:多个网络优点的结合体,目前有稳定的V5版本和相应的训练参数。最终输出的特征图为7*7*30,理解为图片长宽7*7等分。30=((4+1)*2+20),两个Bbox位置及置信度,还有20个分类打分

SSD:(Single Shot MultiBox Detector)结合FasterRCNN的Anchor机制和YOLO的回归思想。其核心是在不同尺度的特征图上采用卷积核来预测一系列Default Bounding Boxes的类别、坐标偏移

Swin-Transformer:与以往基于anchor的position propose不同,直接使用transformer生成。将图片分割成4*4大小的多个patch。论文中将7*7个patch做为一个window(计算self-atterntion的基本单元)。使用patch merging解决多尺度问题,相对位置作为transformer的position,基于移动窗口的自注意力使图片相连的两个窗口之间有了交互,从而具有全局建模的能力


DETR:基于transfermer的物体检测,整个训练过程中未传入位置信息,而是训练得到。transfermer的object query获取预测的bbox位置,代码    在预测和结果真实结果的匹配中使用了匈牙利算法



detectron2是facebook AI research(FAIR)重构detectron的深度学习框架,是2020年最火的深度学习框架(另外还有mmdetection,simpledet,目标检测三大开源神器:Detectron2/mmDetection/SimpleDet - 知乎 (zhihu.com))。detectron2从基于caffe重构为完全基于pytorch,集成了先进的目标检测和语义分割算法,并有一大批预训练好的模型,即插即用十分方便
常用数据集:ImageNet classification,  COCO region detection,ADE20k  semantic segmentation

图片模型一般结构:

NLP

nlp中很少用BatchNormalization,而用LayerNormalization(因为输入长度不同,会有padding)

RNN:循环神经网路,即一个序列当前的输出与前面的输出也有关。具有记忆功能。W,U,V在每个时刻都是相等的(权重共享),隐藏状态可以理解为:  S=f(现有的输入+过去记忆总结) 

LSTM:在RNN基础上引入了输入门、遗忘门、输出门,解决RNN的长记忆问题。GRU相似,只有两个门。缺点同RNN不能并行计算

word2vec:词向量(通常50~300维向量)    embedding    ,通过大量的语料库的学习(CBOM或skip-gram),生成词向量,相同性质的词的向量具有相似性,则可以通过 欧式距离或cos等  做更多操作   

transformer:引入注意力机制(QKV), QK的点乘体现了Q向量与K向量的相似性。  多头注意力机制会将feature映射到不同空间, 残差和LayerNormalization解决训练问题。包含Encoder和Decoder两部分,Encoder-Decoder结构中 ,Encoder 输出K,V 、 Decoder 生成Q(作为输入部分)。NLP中是对句子中的每个单词进行embedding,CV中是对整幅图像分为许多大小相同的patch,然后对patch进行embedding。                  BERT

推荐系统

CV和NLP的结合。通过向量间的欧式距离或cos,推荐相似的东西

模型裁剪策略-FPGM

模型裁剪指的是通过去除网络中冗余的通道(channel)、滤波器(filter)、神经元(neuron)等,来得到一个更轻量的网络,同时尽可能保证模型精度。

相比于裁剪通道或者特征图的方法,裁剪滤波器的方法可以得到更加规则的模型,因此减少内存消耗,加速模型推理过程。

之前的裁剪滤波器的方法大多基于范数进行裁剪,即,认为范数较小的滤波器重要程度较小,但是这种方法要求存在的滤波器的最小范数应该趋近于0,否则我们难以去除。

针对上面的问题,基于几何中心点的裁剪算法(Filter Pruning via Geometric Median, FPGM)被提出。FPGM将卷积层中的每个滤波器都作为欧几里德空间中的一个点,它引入了几何中位数这样一个概念,即与所有采样点距离之和最小的点。如果一个滤波器的接近这个几何中位数,那我们可以认为这个滤波器的信息和其他滤波器重合,可以去掉。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值