tags
type
status
date
slug
summary
category
password
icon
以下记录核心结论以供查阅,具体细节见课程PPT

回归

损失项+正则项

正则项

L1:,会尽可能把参数压到0
L2:,会尽可能让参数小,但不是0

线性回归

一般我们取,也可以取

二分类逻辑回归

法1:
y=0/1,因此实际上求和每一项是f(x)或者1-f(x)
一般我们取
法2交叉熵损失:
二者其实是等价的

SoftMax

其中yi和j为1…K,表示标签;i表示样本下标

Lagrange对偶与KKT条件

  1. 原问题:
其中f.g.h均为凸函数,从而可行域为凸集
  1. 对偶问题:
  1. KKT条件(假设原问题与对偶问题能达到同一个最优解,在凸优化的前提下成立)

    感知机

    yi=-1/1

    SVM

    1. 原问题:
      1. 对偶问题:
        1. 得到
          j为某个支持向量的下标(
      • 软线性可分
      1. 原问题:
        1. 对偶问题:
          1. 得到
            j为某个支持向量的下标(
        • 核函数
        替换成
        notion image
        notion image
        接近线性可分的数据,线性核和多项式核性能与高斯核差不多;高斯核对比较扭曲的边界性能较好,但对数据大小比较敏感,不能出现巨大的量纲差,因此最好在训练前对数据进行normalization
        一般而言,C决定取值范围,太小会欠拟合,太大会过拟合且跑的很慢
        • 可以进行多分类/回归

        聚类

        KNN:判断型的算法。离样本点最近的k个点投票
        K-means:需要给定k。先取k个中心,把每个点分到最近的簇,然后每个簇重新选中心,重复过程直到中心不变。K-mediods,轮廓系数。可以用来压缩,同一个簇携带相同信息。
        DBSCAN:从核心对象开始顺藤摸瓜
        • 比较K-means和DBSCAN
        前者趋向于聚类成球形,后者可以处理条状的
        后者在密度相差大时表现不好
        无论如何,聚类前最好normalize

        降维

        • 特征值分解
        ,则有
        定义,我们可以令
        ,
        从而
        对角阵为特征值,V为特征向量构成的正交矩阵
        进一步,用矩阵分块我们可以化简得
        从而特征值越大的维度越重要(因为v都已归一化)
        • SVD
        U由的特征向量构成,V由的特征向量构成,都是正交矩阵
        • PCA
        希望从d维降至d’维,使得各个维度上的方差尽可能大
        如果保证,则最后结果就是取了的特征值最大的前d’个特征向量组成W,投影结果就是
        要保证这一点只要,故要先中心化
        • 核PCA
        作特征值分解。

        FCN

        • 全连接层ci→co
          • 输入X(ci*n),权重W(co*ci) & b(co*1),输出Z(co*n)
            运算负荷 n*co*ci MAC
        • Softmax层n→K
          • 输入x(n*1),权重W(K*n) & b(1*1),输出y(K*1)
            其实就是把全连接的h变成了softmax。
        • softmax防溢出
        • DropOut
        只在训练过程中使用,提升泛化性
        对每个元素独立操作
        • BatchNorm
        加在激活函数之前。目的是让激活函数在我们希望的区域中工作。对每个channel分别归一化
        用batchnorm是因为认为各个数据(沿N的维度)有相同的分布,而各个特征维度(channel)有特征不同的可能
        notion image
        • 当batch扩大K倍时,学习率也应扩大K倍

        CNN

        • 卷积层ci→co
        输入X(ci*H*W),卷积核W(co*c*FH*FW),偏置b(co*1)输出(co*OH*OW),填充(Padding)为P,步幅为S
        多个通道与多个卷积核分别卷积然后加起来,如此称为一组卷积核。可以存在co组不同卷积核,从而输出会有FN个通道
        运算负荷 (ci*FH*FW)*(co*OH*OW) MAC
        • 感受野
        某一层输出在原始图像上映射区域的边长
        我们从后往前计算。假设后一层感受野是f,这一层卷积步长为s,卷积核大小为K,则感受野从f→s*(f-1)+K
        • 池化层Pooling
        max/average,下采样
        • 张量→一维向量
        输入X(c*H*W),卷积核W(n*c*H*W),偏置b(n*1),输出一维向量y(n*1)
        每个是X与第i组卷积核卷积的结果,不填充,结果是一个实数。

        RNN

        • FP
        均不依赖于时间
        RNN只是把神经网络沿时间复用了。我们可以自由选择在哪些时刻输入数据,以及用哪些时刻的输出,从而实现不定长的网络
        • BP
        假设
        更新W梯度时需要把各个时刻的梯度相加
        如果Loss与多个yi有关系,则把各个yi对应的梯度相加。这样看起来就像在按时间展开的图上往反向流。更新梯度的时候把所有的流求和
        notion image
        notion image

        Transformer

        • RNN的Attention改进
        在Decoder中,每次我最应该关注哪些词?
        用当前隐变量与前面所有的隐变量计算相似度,并将线性组合变成(context vector)
        notion image
        • Attention
        RNN不能并行计算,这很讨厌。我们可以改进Encoder,使其变成一种并行的神经网络。
        Encoder,Decoder各自有self-attention;Decoder取Encoder最后一层结果(对应前面的)计算相似度,称为cross/Encoder-Decoder Attention。
        notion image
        notion image
        无论是self-attention还是cross-attention,其实都在做这样一件事:输入一些查询,根据其与的相似度,重新组合
        不该同时用来算内积(相似度)和做输出,我们改成用算相似度,用作线性组合作为输出。分别是经过两个不同的全连接层Wk,Wv的结果
        在self-attention中,经过另一个全连接层Wq的结果;在cross-attention中,是Decoder经过(masked) self-attention后的向量
        • 多头注意力
        原来
        现在把Q分成几个
        得到的,拼起来之后还是
        这样总的计算量不会变化
        • LayerNorm
        每个样本分开计算,将每个样本的各个维度(C,H,W)归一化
        与BatchNorm的区别:无论在训练中还是推理时,LayerNorm都要重新计算样本的均值和方差,一直都是非线性函数;而BatchNorm在推理时不重新计算均值和方差,就是一个线性函数
        • Encoder
        一个block:Self-attention → ResAdd → LayerNorm → Forward → ResAdd → LayerNorm
        LayerNorm(Z+X)
        • Decoder
        一个block:Masked Self-attention → ResAdd → LayerNorm → Cross-attention → ResAdd → LayerNorm → Forward → ResAdd → LayerNorm
        对训练而言,其输入都是能拿到的(强制使用正确的结果)。先过一个Masked self-attention,模拟一个个生成的过程,每个词只能注意到前面的词。在cross-attention中,KV由Encoder的输出计算得到,Q由Masked self-attenion计算得到
        对推理而言,Decoder仍然是自回归,依次输出zi并作为下一时刻输入的一部分

        Mid-term Pre

        • 超参数优化(网格搜索)
        1. 粒子群算法:把解表示为空间中的点
        1. 遗传算法:把解表示为个体的染色体,通过染色体交叉、变异和自然选择挑选出最优解
        • 归一化
        1. Batch/Layer/Instance/Group Norm
          1. channel/instance 下标取成特定值
            Batch: i_c=C 在样本方向归一化,各通道分别进行
            Layer: i_N=N 在通道方向归一化,各样本分别进行
            Instance: i_c=C,i_N=N
            Group: i_c=C1..Ck,i_N=N
        1. Weight Norm
          1. 把w的方向和大小分离
        • Mixture of Experts(MoT)
        问题:FCN过于稠密,我们想把参数量和计算量解耦
        解决:把全连接层拆成很多个expert,用gate选择分数最高的K个expert
        • AutoGluon
        简化机器学习coding
        联邦学习的决策树聚合
        • Dataset Bias
        我们的数据集究竟对现实世界有怎样的代表性?
        人眼难以区分来自不同数据集的图片,但模型却可以比较好的分类。这说明不同数据集之间有系统性的偏差。这可能导致模型在不同数据集上表现差别很大
        • OpenMMLab
        • Softmax vs Multiclass-SVM
        用Multiclass-SVM替代模型的最后一层softmax,可以提升准确性
         
        数电奇幻文学
        Loading...