深度学习知识图谱笔记

最近花了几天时间对目前常用神经网络模型(backbone),生成对抗GAN,模型压缩,NPL,距离计算,优化器进行了分类整理,用简短的几句话对相关特性进行了总结描述,如有误请指正,方便强化记忆,供学习、选型、面试。详细组件功能介绍请参考其它博文。

没有什么是一张图解决不了的,如果有就再画一张

深度学习知识图谱笔记_第1张图片

目录

1 神经网络模型(backbone)

2 生成对抗

3 模型压缩

4 NPL

 5 距离计算

6 常用名词

7 优化器

8 强化学习


1 神经网络模型(backbone)


1.1 Deeper(更深层次的网络)
    LeNet-5 卷积始祖,结构:卷积+池化+卷积+池化+卷积+全连接+全连接
    AlexNet
        创新点:采用ReLU激活函数代替Sigmoid,Dropout
        局部相应归一化、扩增数据、分卡训练
    ZFNet
        卷积可视化始祖
        滤波器尺寸更小
    VGGNet
        结构简洁:5层卷积层,3层全连接层、softmax输出层构成
        创新点:小卷积核和多卷积核,VGG使用多个较小卷积核(3x3)
        两个3x3相当于一个5x5
        LRN层无性能增益
    ResNet
        创新点:shortcut,分为Basic block和bottle block
        一是导数总比原导数加1,解决梯度消失
        二是y=f(x)+x式子中引入了恒等映射,解决了深度增加时神经网络退化
        第一个卷积层采用7x7的大卷积核,更大的感受野,获取图片更多的初始特征
    DenseNet
        创新点:密集连接方式,DenseNet提升了梯度的反向传播,使得网络更容易训练
        DenseNet网络包包括Dense Block和Transition layer两个基础模块
        参数更小且计算更高效(concatenate来实现特征复用,计算量很小)
        由于特征复用,分类器使用到了低级特征,需要较大的显存才能运行

1.2 Module(模块化网络)
    GoogleNet V1
        创新点:Inception 模块化,采用不同大小的卷积核不同尺度的特征融合
        加深的基础上进行加宽,稀疏网络结构
        采用1x1卷积,一是减少维度来减少参数和计算量,二是修正线性激活,
        增加非线性拟合能力(每个1x1后都有ReLU激活函数)
        采用辅助分类器:一是为了避免梯度消失,用于向前传导梯度,
        二是将中间某一层输出用作分类,起到模型融合作用
        用Global Ave Pool取代了FC,防止过拟合作用
    GoogleNet V2
        借鉴VGG,用两个3x3卷积代替一个5x5卷积
        将滤波器大小nxn的卷积分解为1xn和nx1卷积的组合
    GoogleNet V3
        采用RMSProp优化器
    GoogleNet V4
        利用残差网络(ResNet)来改进V3

1.3 Faster(更快的网络)
    Squeeze Net
        创新点:基础单元是Fire Module,多个Fire Module堆叠,
        Fire Module又包括两个部分:squeeze layer和Expand layer 
        多使用1x1的卷积,少使用3x3的卷积(Idea from GoogleNet),减少channel的数量
        将降采样后置,即推迟使用Pooling从而增加感受野    
    MobileNet
        MobileNet V1
            深度卷积:将卷积拆分为单通道的形式
            逐点卷积:即1x1卷积,对深度卷积得到的特征图进行升维
            引入宽度α和分辨率缩放因子
        MobileNet V2
            Linear bottleneck:去掉卷积单元中最后一个ReLU函数
            Inverted residual:先升维,卷积,降维
    shuffle Net
        shuffleNet V1
            group convolution(分组卷积):将输入特征图按通道数分组,
            用不同的卷积核分别进行卷积
            channel shuffle(通道混洗):对分组卷积之后的特征图的排列顺序
            进行打乱排列reshape--transpose--flatten
        shuffleNet V2
            卷积层的输入和输出特征通道数相等时MAC最小,此时模型速度最快
            过多group操作会增大MAC,从而使模型速度变慢
            模型中的分支数量越少,模型速度越快
            尽可能减少element-wise操作
    LightCNN 提出了MFM的一种新的特征图融合方法,在特征提取效果和特征提取速率方面取得了很大的进步
1.4 Functional(功能性网络)
    检测
        x-RCNN
            RCNN 1.SS提取RP;2.CNN提取特征;3.SVM分类;4.BB盒回归
            Fast RCNN 1.SS提取RP;2.CNN提取特征,加入ROI Pooling层;3.softmax分类;4.多任务损失函数边框回归
            Faster RCNN
                1.RPN提取RP;2.CNN提取特征,加入ROI Pooling层;3.softmax分类;4.多任务损失函数边框回归
                RPN(Region Proposal Network) 
                    1.anchor生成(一个概率值和四个坐标值);
                    2.框回归,根据IOU初次筛选;
                    3.NMS(非极大值抑制)再次筛选得到Proposal框
                RIO pooling
                    根据输入image,将region proposal映射到feature map对应位置
                    将映射后的区域划分为相同大小的sections(sections数量与输出维度相同,根据输出取整)
                    对每个sections进行max pooling操作
        YOLO
            YOLO V1
                检测变为回归问题
                整张图划为7x7,每个格子预测两个目标,输出置信度和坐标位置,
                没有使用Region proposal,小目标效果不好
            YOLO V2
                引入自定义darknet分类网络
                引入anchor思想,产生多个boundingboxes先验框
                使用k-Means聚类方法来训练boundingboxes
            YOLO V3
                从v2的darknet-19 到v3 darknet-53
                AnchorBoxes数目从v2中的5个提升到v3中的9个
                用Logistic分类器替换softmax分类器
                增加特征融合
        SSD
            基于Faster RCNN中的Anchor提出了相似的Prior box,一般是4~6个,在不同尺度的feature map 
            加入基于特征金字塔,继承将检测转变为回归问题
            整张图8x8网格+anchor+FCN,多尺度特征融合,
            不同层的feature map 3x3滑动窗感受野不同,作为不同尺度检测
        FPN(Feature Pyramid Network)
            目标分离:浅层目标简单位置准确,深层目标复杂位置粗略,
            浅层特征关注纹理特征,深层网络关注网路本质特征;
            将处理过的低层特征Layer2和处理过的高层特征Layer4进行累加,结合bottom-up与top-down,
            横向连接(lateral-connection)方法获得较强语义连接
        RetinaNet
            组成:ResNet-50+PFN
            引入focal loss
    分割:判断图像每个像素点的类别
        Mask RCNN
            ResNet+FPN+RPN+RoI
                head+FCN+Mask
                Coordinates-reg
                Category-cls
            FCN
                全卷积:以卷积代替全连接匹配任意尺寸输入图片
                skip Architecture:FCN-32s/16s/8s
                Upsampling:反卷积
        UNet
            前半部分特征提取生成224x224,112x112,56x56,28x28,14x14;后半部分往回上采样+concat 
            U-net通过通道数的拼接,FCN是通过特征图对应像素值相加融合特征
        ENet
            包括7个阶段,每个阶段又类似ResNet的bottleneck模块组成,
            1-3属于编码阶段,5-7属于解码阶段,4阶段为中间过度
            使用了更大的编码结构和更小的解码结构;使用PReLU替代ReLU激活函数,使用空间dropout

 

2 生成对抗


2.1 DCGAN(Deep Convolutional GAN)
    引入卷积增加生成图片的质量
2.2 WGAN(Wasserstein GAN)
    利用Wasserstein-1距离,从目标函数的角度出发来提高模型的表现,在理论上解决了梯度消失问题
2.3 WGAN-GP(gradient penalty)
    用正则化的形式表达了对判别器的约束,具有强大的稳定性,几乎不需要调参,训练成功率极高
2.4 LSGAN(least square GAN)
    用散度x^2取代了朴素GAN的jensen-Shannon散度,提高了生成数据的质量和多样性
2.5 EBGAN(Energy-base GAN)
    对D的架构采用自动编码器的模式
2.6 BEGAN(Boundary Equilibrium GAN)
    基于EBGAN通过超参∈[0,1]来放宽均衡点
2.7 CGAN(conditional GAN)
    生成指定标签的数据
2.8 InfoGAN
    从噪声z中拆分出结构化的隐含编码c的方法,使得生成的过程具有一定的可控性
2.9 Pix2Pix
    用于图像翻译领域,训练需要相互配对的图片x与y
2.10 CycleGAN
    不需要配对的两个场景的相互映射,实现了图像间的相互转换
2.12 StarGAN
    将两两映射变多个领域之间的映射
    


3 模型压缩


3.1 模型剪枝
    减少head的数量和去除作用较少的层,共享参数
3.2 量化
    比如讲float32 降到 int8
3.3 知识蒸馏
    目标蒸馏
        Hard-Target/Soft-Target
        蒸馏温度的高低决定对负标签的关注程度
        Matching logits
    特征蒸馏
        第一阶段隐藏层学习
        第二阶段目标学习
3.4 参数共享
    如ALBERT 共享了Transforner层
3.5 参数矩阵近似
    矩阵的低秩分解
    


4 NPL


4.1 常见网络
    RNN
        有多个时刻输入时,网络层次比较深,根据链式法则则更容易出现梯度爆炸
    LSTM
        输入门、遗忘门、记忆门、输出门
    GRU
        重置门决定了如何将新的输入信息与前面的记忆相结合,
        更新门定义了前面记忆保存到当前时间的量,相比LSTM参数更少
    Transform
        由于RNN要求输出≤输入;
        encode-decode引入中间量C解决,但多个转换为一个存在表达不丰富丢失原信息
        多头自注意力机制和规范化层以及一个残差连接
        编码:词编码、句子编码、位置编码
    Bert
4.2 词汇表征
    Word2Vec
        CBOW适用于小型数据库,由上下文推出单个词--完型填空
            权重矩阵(look up table)
        Skim-gram适用于小型语料库,由单个词推出上下文--造句
    Doc2Vec    
4.3 搜索评价
    beam search
        是对贪心策略一个改进,就是稍微放宽一些考察的范围K
    BLEU
        N-gram的匹配度、召回率、惩罚因子
      

5 距离计算


5.1 信息量、熵
    信息量的期望就是熵
    熵为什么是对数形式
        概率越低信息量越大;概率越高信息量越低
        多个事件同时发生的概率相乘是多个信息量相加的和
        对数函数是上凸的,期望函数也是上凸的
5.2 lipschitz约束
    f(x1)-f(x2)≤C|x1-x2|
5.3 交叉熵
    KL散度-目标分布熵=交叉熵 (目标熵为常数)
5.4 KL散度(相对熵,信息增益)
    两个概率分布P和Q差异的度量
    非对称,不满足三角不等式
5.5 JS散度
    两个概率分布的相似度
    对称的,其取值是0到1
    解决没有重叠的两个分布梯度消失问题
5.6 Wasserstein 距离
    两个概率分布之间的距离,样本对距离的期望E(x,y)下界
    当两个概率重叠非常少,仍然能反映两个分布的远近,
    而JS散度在此情况下是常量,KL散度可能无意义
    


6 常用名词


6.1 非对称卷积
    每一个nxn的卷积都可以分解为nx1何1xn的两层卷积核
6.2 空洞卷积(Dilated Convolution)
    在标准卷积里插入空值以增加感受野,空洞为扩张率-1,应用HDC设计结构
    


7 优化器


7.1 SGD
    缺点:
        对所有的参数更新使用同样的learning rate,选择合适的learning rate比较困难
        SGD容易收敛到局部最优
7.2 Momentum
    优点:下降初期,抑制振荡,从而加快收敛
    缺点:下降中后期时,在局部最小值来回震荡的时候
7.3 Adagrad
    优点:
        前期gt较小的时候,regularizer较大,能够放大梯度
        后期gt较大的时候,regularizer较小,能够约束梯度
        适合处理稀疏梯度
    缺点:
        仍依赖于人工设置一个全局学习率
        中后期,分母上梯度平方的累加将会越来越大,使梯度趋向于0,使得训练提前结束
7.4 Adadelta
    特点:
        训练初中期,加速效果不错,很快
        训练后期,反复在局部最小值附近抖动
7.5 RMSprop
    特点:
        其实RMSprop依然依赖于全局学习率
        RMSprop算是Adagrad的一种发展,和Adadelta的变体,效果趋于二者之间
        适合处理非平稳目标 - 对于RNN效果很好
7.6 Adam
    特点:
        结合了Adagrad善于处理稀疏梯度和RMSprop善于处理非平稳目标的优点
        对内存需求较小
        为不同的参数计算不同的自适应学习率
        也适用于大多非凸优化 - 适用于大数据集和高维空间
        


8 强化学习


8.1 学习方式
    在线学习
        Sarsa
    离线学习
        Q learning
8.2 优化方向
    基于概率
        Policy Gradients
    基于价值
        Q learning和Sarsa
    基于概率和价值
        Actor-Critic
8.3 融合网络
    DQN

【参考】

https://www.cnblogs.com/silence-cho/p/11620863.html

https://zhuanlan.zhihu.com/p/22252270

https://mofanpy.com/
        
    码字不易,转载请说明~~ 

 

你可能感兴趣的:(深度学习,计算机视觉,深度学习,人工智能,卷积)