理论-基础知识0-杂

杂谈

1. 对机器学习问题而言,数据和特征(包括获取先验知识所用到的数据和特征)决定了结果的上限,而模型、算法的选择和优化则是在逐步接近这个上限。

2. 数值型特征归一化

  • 为什么需要进行特征归一化?

    • 为了消除数据特征之间的量纲影响,使得不同指标处于同一数量级,具有可比性。(尤其在kNN等基于度量的算法中,这一点极其重要)
    • 特征归一化后优化目标的等值图会变为圆形,不同指标上的更新速度更为一致,容易通过梯度下降找到最优解。
  • 特征归一化的方b法:

    • 线性函数归一化(min-max scaling)

      \[\frac{x-x_{min}}{x_{min}-x_{max}}~~~~~~~~~~~~[0,1] \]

      \[\frac{2x-(min+max)}{max-min}~~~~~~~~~~~~[-1,1] \]

    • 零均值归一化(z-score normalization)

      \[\frac{x-\mu}{\sigma} \]

  • 什么时候会用到特征归一化?

    • 通过梯度下降算法所求解的模型,如线性回归、逻辑回归、支持向量机、神经网络。
    • 决策树并不适用、因为决策树进行节点分裂时主要依据数据集对于特征的信息增益比,与归一化无关。

3. 类别型特征

  • 类别性特征的编码方式:
    • 序号编码(ordinal encoding):用于处理类别间具有大小关系的数据(例如成绩),转换后保留了大小关系。
    • 独热编码(one-hot encoding):用于处理类别间不具有大小关系的数据(例如轴承故障类别)
    • 二进制编码(binary encoding):赋予类别ID,将对应ID的二进制编码作为结果。(本质是用二进制对ID进行哈希映射,最终得到0/1特征向量,且维数少于独热编码,节省存储空间)
    • Helmert Contrast, Sum Contrast, Polynomial Contrast, Backward Difference Contrast ...

4. 组合特征

  • 什么是组合特征?

    • 为了提高复杂关系的拟合能力,特征工程经常会将低阶离散特征组合,构成高级组合特征。
    • 如果要组合的低阶特征维度过高,造成高阶特征维度过高,可以先对低阶特征进行降维。
  • 如何有效的找到组合特征?

    • 决策树,并可以采用梯度提升决策树有效地构建决策树,该方法的思想是每次都在之前构建的决策树的残差上构建下一棵决策树。

5. 文本表示模型

  • 文本表示模型有哪些?

    • 词袋模型(Bag of Words):将整段文本以词为单位切分开,那么文本可以表示为一个长向量,向量中的每一维代表一个单词,该维对应的权重反映了词在文章中的重要程度。常用TF-IDF计算权重,

      \[TF-IDF(t,d)=TF(t,d) \times IDF(t) \]

      其中TF(t,d)为单词t在文档d中出现的频率,IDF(t)为逆文档频率,用来衡量单词t对表达语义所起的重要性

      \[IDF(t)=log \frac {文章总数}{包含t的文章总数+1} \]

    • N-gram:单词拆分后的含义与组合起来的含义可能差别很大,可以将连续出现的n个词组成的词组(N-gram)作为一个单独的特征放到向量表示中,构成N-gram模型。

    • 词干抽取(Word Stemming):同一词会有多种词性变化,却有相似的含义,可将不同词性的单词统一成为同一词干的形式。

    • 主题模型(Topic Model):从文本库中发现有代表性的主题(得到每个主题上的词分布特性),并能够计算出每篇文章的主题分布。

    • 词嵌入模型(Word Embedding):词嵌入是一类将词向量化的模型的统称,核心思想是将每个词映射为低维空间(50~300维)上的一个稠密向量(Dense Vector),空间中的每一维可以看作一个隐含的主题。

    • Word2Vec:一种常用的词嵌入模型,一种浅层的神经网络结构,由CBOW(Continues Bags of Words)和Skip-gram两部分组成。CBOW根据上下文出现的词语预测当前词的出现概率,skip-gram根据当前词预测上下文词的生成概率。

    • 隐迪利克雷模型(LDA)

6. 图像不足时的处理方法

  • 一个模型所能提供的信息一般来源于两个方面:一是训练数据中蕴含的信息;二是在模型的形成过程中(包括构造、学习、推理),人们提供的先验信息。训练数据不足,意味着从原始数据中获取的信息比较少,这种情况下要保证模型的训练效果,就需要更多的先验信息。先验信息可以作用在模型上,例如让模型采用特定的内在结构、条件假设或添加其他一些约束条件;先验信息也可以直接施加在数据集上,即根据特定的先验假设去调整、变换或扩展训练数据,让其展现出更多的、更有用的信息,以利于后续模型的训练和学习

  • 训练数据的不足带来的问题主要表现为过拟合(训练集准确率高,测试集准确率低的泛化能力不足),相应的处理方法有两类:

    • 基于模型:简化模型、添加约束以缩小假设空间(L1\L2正则)、集成学习、Dropout

    • 基于数据:数据扩充(旋转、平移、缩放、裁剪、填充、左右翻转、添加噪声、变换颜色、亮度、清晰度、对比度、锐度)

    • 特征空间变换:一些通用的数据扩充和上采样技术,如SMOTE(Synthetic Minority Over-sample Technique)、gan。

      • 但这里gan又如何理解?如果说神经网络的信息量表达上限无法超过数据集的信息量上限,那么gan所生成的样本的信息量上限也无法超过数据集的信息量上限啊。那么如果原始数据集无法保证网络的训练完全,那就算加上gan生成的样本又如何呢?这里多引入的不就是gan多出的网络结构以及一些随机噪声吗?这样真的有意义吗?

      • 还是说gan所生成的样本的信息量上限可以超过原始数据集的信息量上限呢?那这种多出来的信息量来自于gan的特别的网络结构和训练方式,这种网络形式是一种普适的信息量增益?

      • 从GAN的原理以及实际应用的角度出发探讨下可能性:

        1:GAN生成数据是从数据分布的角度来进行的,生成的是一个和真实数据分布相似的数据分布,先不说小样本情况下GAN网络训练的难度,当真实数据本少较少时,这个分布情况大概率也是不理想的,基于一个差的数据分布进行样本生成,生成的东西可能会不忍直视;

        2:GAN网络本身是一种吃数据的神经网络,也是需要足够的数据来支持网络训练收敛的,在数据量较少的情况下,则难以达到一个满意的纳什平衡,并且很容易陷入模式崩塌,一旦如此,生成的样本量虽然有了扩充,但是对于样本多样性并无明显帮助,近似于对样本简单的复制,对我们下游神经网络来说,会导致模型有偏,同时在划分训练、验证、测试集时,还会出现我们不愿意看到的数据泄露情况发生;

        3:当数据量较大时,对于我们下游神经网络而言,不在需要GAN扩充样本的情况下,也可以很好的支持网络训练,相比于使用GAN,还不如利用简单的数据增强方式(缩放、旋转、加噪声、遮挡等)来扩充样本量来的容易;当数据中等时,利用GAN进行生成样本,来扩充数据集,似乎可以有助于下游神经网络的训练收敛。

        总结:GAN是基真实数据分布来进行实现的,从原理以及实现的角度来看,利用GAN来解决小样本问题似乎机会渺茫,但并不完全否定,这也与我们面对的实际问题密切相关。

    • 迁移学习

7. 模型评估

  • 阶段划分:离线评估、在线评估

  • 常用指标

    • 准确率(Accuracy):分类正确的样本占样本个数的比例,常用于分类问题。

      \[Accuracy= \frac {n_{correct}}{n_{total}} \]

      • 缺陷:当数据不均衡时,占比大的数据会成为影响准确率的最主要因素。(比如负样本99%,所有样本都预测为负样本也可以获得99%的准确率)

      • 解决方法:是用平均准确率(各类别下的样本准确率的算术平均)

    • 精确率(Precision):分类正确的正样本个数占分类为正样本的样本个数的比例,常用于排序问题。

      召回率(Recall):分类正确的正样本个数占所有正样本个数的比例,常用于排序问题。

      • Precision 和 Recall 存在对立性,为了提高Precision,分类器需要尽量在更有把握时将样本分类为正样本,这会造成过于保守而漏掉没有把握的正样本,从而造成Recall的降低。
      • 排序问题,常采用TopN返回结果的 Precision 和 Recall 衡量排序模型的性能。并且为了更好得评价模型的好坏,要看模型在不同N下的Precision@N,Recall@N,并据此绘制出模型的P-R(Precision-Recall)曲线。只用某个点对应的精确率和召回率是不能全面衡量模型性能的,只有通过P-R曲线的整体表现,才能够对模型进行更加全面的评估。
    • 受试者工作特征曲线(Receiver Operating Characteristic Curve,ROC曲线)及曲线下面积(Area Under Curve, AUC):用于排序、分类

      • ROC的横坐标为假阳性率(False Positive Rate, FPR),纵坐标为真阳性率(True Positive Rate, TPR),计算公式如下:

        \[FPR=\frac {FP}{N} \]

        \[TPR = \frac{TP}{P} \]

        其中,P为真实的正样本的数量,N为真实的负样本的数量,TP是P中被预测为正样本的数量,FP是N中被预测为正样本的数量。

      • AUC指ROC曲线下的面积,AUC越大,说明分类器越可能把真正的正样本排在前面,分类性能越好。(ROC曲线一般在y=x的上方,对应的AUC取值一般在0.5~1,如果不是只需将模型预测概率反转为1-p就可以得到一个性能更好的分类器)

      • 相比于PR曲线,ROC曲线有一个特点:当正负样本的分布发生变化时,ROC曲线的形状基本保持不变,而P-R曲线的形状会发生较剧烈的变化。这个特点使得ROC曲线可以尽量降低不同测试集带来的干扰,更加客观地衡量模型本身的性能

    • 均方根误差(Root Mean Square Error, RMSE):常用于回归问题,计算公式如下:

      \[RMSE= \sqrt{\frac {\sum_{i=1}^{n}(y_i-\hat{y}_i)^2}{n}} \]

      • 缺陷:当数据段中存在离群点(Outlier)时,即使离群点很少也会使RMSE效果很差。
      • 解决方法:若认为离群点是干扰噪声,在预处理阶段应将离群点滤除;若认为离群点也是有用的信息,需进一步提高模型的预测能力,将离群点产生的机制建模进去;换一个更合适的指标,如平均绝对百分比误差。
    • 平均绝对百分比误差(Mean Absolute Percent Error, MAPE),计算公式如下:

      \[MAPE=\sum_{i=1}^{n}{|\frac {y_i-\hat y_i}{y_i}| \times \frac {100}{n}} \]

      优势:相对于RMSE,MAPE对每个点的误差进行了归一化,降低了离群点带来的绝对误差的影响。

  • 评估方法

    • Holdout校验:将原始样本集随机按比例划分为训练集和验证集,训练集用于模型训练,验证集用于验证。
      • 缺点:计算所得评估指标的值与样本划分有很大的关系,随机性较大
    • k-fold交叉验证(k一般取10):
      • 首先将全部样本划分为k个大小相等的样本子集;
      • 依此遍历这k个子集,每次将当前子集作为验证集,其余子集作为训练集,进行训练和验证;
      • 最后将k次评估指标的平均值作为最终的评估指标
    • 留一验证:
      • 每次留下一个样本作为测试集,其余所有样本作为训练集,最后也是将测试所得评估指标的平均值作为最终的评估指标结果。(时间开销极大,此外还有留P验证,时间开销更大)
    • 自助法:基于自主采样法的检验方法。
  • 在线A/B测试

    • 对模型进行了过充分的离线评估后,为什么还要进行在线A/B测试?
      • 离线评估无法完全消除模型过拟合的影响,因此得到的离线评估结果无法完全替代线上评估结果。
      • 离线评估无法完全还原线上的评估环境(延迟、数据丢失、标签数据缺失)
      • 线上系统的某些商业指标在离线评估中无法计算。(例如,离线评估往往关注模型的ROC曲线、P-R曲线等的改进,而线上评估可以全面了解新模型带来的用户点击率、留存时长、PV访问量等的变化)
    • 如何进行线上A/B测试?
      • 进行A/B测试的主要手段是将用户分为实验组和对照组,对实验组用户施与新模型,对照组用户施与旧模型,观察指标的区别。
      • 分组时要注意样本的独立性和采样方式的无偏性,确保同一用户每次只能分到一个组里,分组过程中选取的id也需要是随机数。

8. 样本间距离度量

  • 常用的度量指标:

    • 欧氏距离(2范数)

    • p范数(p-norm):p的取值范围是[1.inf),p在范围(0,1)内并不是范数,因为违反三角不等式(||x+y||<=||x||+||y||)

      \[||x||_{p}=(\sum_{i=1}^{n}|x_{i}|^{p})^{\frac{1}{p}} \]

    • 余弦距离

      \[cos(a,b)=\frac{a\cdot{b}}{||a||||b||}=\frac{\sum_{i=1}^{n}x_{i}\cdot{y_{i}}}{\sqrt{\sum_{i=1}^{n}(x_{i})^{2}}\cdot{\sqrt{\sum_{i=1}^{n}(y_{i})^{2}}}} \]

    • 交叉熵(cross entropy)

      \[H(p,q)=-\sum_{i}p_ilnq_i \]

      \[H(p,q)=-\int_xp(x)logq(x)dx \]

      \(p\),\(q\)分布一致时取最小,证明

    • f-divergence(f散度)

    \[D_{f}(p(x)||q(x))=\int q(x)f(\frac{p(x)}{q(x)})dx \]

    ​ f满足f(1)=0,以保证p(x)与q(x)相同时,散度维零。

    • K-L散度(相对熵):f散度的一个特例,取f(x)=xlog(x)

      \[D_{KL}(p||q)=\int p(x)log(\frac{p(x)}{q(x)})dx \]

    • J-S散度(Jensen-Shannon divergence):解决了K-L散度不对称的问题

      \[D_{JS}(p||q)=\frac{1}{2}D_{KL}(p||\frac{p+q}{2}) + \frac{1}{2}D_{KL}(q||\frac{p+q}{2}) \]

    • Wasserstein distance (WD)-1 / Earth-Mover(EM) distance

      \[W(p_r,p_g)=\inf_{r\in{\prod(p_r,p_g)}}E_{(x,y)\sim{r}}[||x-y||] \]

      \[\Downarrow \]

      \[W(P_{r},P_{g})=\frac{1}{K}\sup_{||f||_{L}≤K}\{E_{x\in{P{r}}}[f(x)]-E_{x\in{P{g}}}[f(x)]\} \]

      \[|f(x_{1})-f(x_{2})|\leq{K|x_{1}-x_{2}|} \]

    • Wasserstein distance (WD)-2

      \[W_2(p_r,p_g)=(\inf_{r\in{\prod(p_r,p_g)}}E_{(x,y)\sim{r}}[||x-y||^2])^{\frac{1}{2}} \]

  • 时候用余弦距离/余弦相似度与欧式距离的区别和联系?

    • 当研究对象的特征维度很高时,余弦相似度依然保持“相同为1,相交为0,相反为-1”的特性,而欧式距离则受维度的影响较大,范围不固定。

    • 欧式距离体现数值上的绝对差异,余弦距离体现方向上的相对差异。

    • 归一化后的欧氏距离与余弦距离是等价的(单位圆):

      \[||A-B||_2= \sqrt {2(1-COS(A,B))} \]

  • 距离三公理:非负性、对称性、三角不等式(余弦距离不满足三角不等式,KL距离\相对熵不满足对称性和三角不等式)

杂记

1,高维特征所带来的问题:

  • 在距离度量算法中(如K近邻算法),高维空间中两点之间的距离难以有效度量。
  • 在逻辑回归模型中,参数数量会随着维度增加而增加,容易引起过拟合问题。
  • 通常只有部分维度是对分类、预测有帮助的,应考虑特征选择降低维度。

2,相比于全连接网络,卷积神经网络和循环神经网络的优势:

  • 对局部特征的提取
  • 减少了网络中的待学习参数、提高了学习效率、并降低了过拟合风险。

3,模型结果较差的思考角度:

  • 评估指标选择不合理
  • 模型过拟合和欠拟合
  • 测试集和训练集划分不合理
  • 线下评估与线上测试的样本分布存在差异

4,从线性回归来理解正则化

5,Hinton、Bengio、LeCun三巨头联手长文:深度学习从兴起到未来

6,深度网络的优势/为什么是深度?

  • 深度网络之所以出色,是因为它们利用了一种特定形式的组合性,其中一层中的特征以多种不同的方式组合,以在下一层创建更多抽象特征。
  • 对于像感知这样的任务,这种组合性非常有效,并且有强有力的证据表明这种组合性质被生物感知系统所利用。

7,ReLU的变革性在于:

  • 深度网络的早期成功涉及使用 sigmoid 非线性函数或双曲正切激活函数对隐含层进行无监督预训练(ReLU之前都是一层层叠加上去的)
  • ReLU 使学习变得容易,通过反向传播和随机梯度下降来训练深度网络,而无需逐层预训练(用了ReLU可以一次性训练一个完整的网络)

8,注意力机制的变革性在于:

  • 将神经网络从纯粹的矢量转换机器(比如CNN就是来者不拒,全都处理)转变为可以动态选择对哪些输入进行操作的架构,并且可以将信息存储在可区分的关联存储器中。

  • 隐藏层可以使用注意力来动态选择它们将组合来自前一层的哪些向量来计算它们的输出,这可以使输出独立于输入的呈现顺序或使用不同输入之间的关系。

  • 这种架构的一个关键特性是它们可以有效地对包括集合和图在内的不同类型的数据结构进行操作。

9,Transformer 架构的 “self-attention” 模块:

  • 层中的每个模块使用标量积来计算其查询向量与该层中其他模块的关键向量之间的匹配。

  • 匹配项被归一化为总和为 1,然后使用产生的标量系数来形成前一层中其他模块产生的值向量的凸组合。

  • 结果向量形成下一计算阶段的模块的输入。

  • 模块可以是多头的,以便每个模块计算几个不同的查询、键和值向量,从而使每个模块有可能有几个不同的输入,每个输入都以不同的方式从前一阶段的模块中选择。

10,深度学习:工程科学还是自然科学?

11,各种Optimizer梯度下降优化算法回顾和总结

https://zhuanlan.zhihu.com/p/343564175
https://zhuanlan.zhihu.com/p/55150256

12,12种主要的Dropout方法:如何应用于DNNs,CNNs,RNNs中的数学和可视化解释

13,17篇注意力机制PyTorch实现,包含MLP、Re-Parameter系列热门论文

14,【CNN】很详细的讲解什么以及为什么是卷积(Convolution)!

15,哈工大硕士生用Python实现了11种数据降维算法,代码已开源!

16,pytorch中各种学习率衰减函数

深度学习的未来

0. 总的问题

  • 监督学习需要太多标记数据,而无模型强化学习需要太多试验。人类似乎能够以少得多的经验很好地概括。
  • 当前的系统对分布变化的鲁棒性不如人类,人类可以通过很少的例子快速适应这种变化。
  • 当前的深度学习在感知任务和通常所谓的 system 1 任务方面最为成功。将深度学习用于需要经过深思熟虑步骤序列的 system 2 任务,是一个仍处于起步阶段的令人兴奋的领域。

1. 分布外泛化

  • 问题:

    从早期开始,机器学习的理论家就关注IID(独立同分布)假设,即测试用例应该来自与训练示例相同的分布。不幸的是,这在现实世界中并不是一个现实的假设:只需考虑由于各种智能体改变世界的行为引起的非平稳性,或者智能体通过学习获得的逐渐扩大的思维视野,总是有更多的东西需要学习和发现。实际上,当今最好的 AI 系统在从实验室到现场时的性能往往会受到影响。

  • 方向

    我们希望在面对分布变化(称为分布外泛化)时实现更大的鲁棒性,这是在面对新任务时降低样本复杂性(良好泛化所需的示例数量)的更普遍目标的一个特例。人类可以以一种不同于普通 IID 泛化的方式进行泛化:我们可以正确解释现有概念的新组合,即使这些组合在我们的训练分布下极不可能,只要它们尊重我们已经学到的高级句法和语义模式。最近的研究帮助我们阐明了不同的神经网络架构在这种系统化泛化能力方面的表现。如何设计具有这些能力的未来机器学习系统,以更好地泛化或更快地适应样本外分布?

2. 从同质层到代表实体的神经元组(神经网络结构的扩展)

  • 方向

    来自神经科学的证据表明,相邻的神经元组(形成所谓的超列)紧密相连,可能代表一种更高级别的向量值单元,不仅能够发送标量,而且能够发送一组协调值。这个想法是胶囊架构的核心,也是软注意力机制的使用所固有的,其中集合中的每个元素都与一个向量相关联,从中可以读取一个键向量和一个值向量(有时也是查询向量)。考虑这些向量级单元的一种方法是表示对象的检测及其属性(如在胶囊中的姿势信息)。

3. 多时间尺度(训练方法的扩展)

  • 方向

    大多数神经网络只有两个时间尺度:权重在许多示例中适应缓慢,而激活值随着每个新输入而迅速变化。添加快速适应和快速衰减的 “快速权重” 的叠加会引入有趣的新计算能力,特别是这一机制创建了一个高容量的短期记忆。

4. 更高层次的认知

  • 问题

    • 在考虑新的挑战时,例如在交通规则异常的城市中驾驶,甚至想象在月球上驾驶车辆时,我们可以利用我们已经掌握的知识和通用技能,并以新的方式动态地重新组合它们。这种成体系的形式,允许人类在未知环境中进行相当好的泛化。我们如何通过重用已知的知识来使神经网络能够快速适应新环境,从而避免干扰已知技能?似乎人类的(system 1)处理能力允许我们在计划或推理时猜测未来的潜在益处或害处,这提出了 system 1 网络如何指导更高(system 2)级别的搜索和规划的问题。我们如何设计包含这种归纳偏差的深度学习架构和训练框架?

    • 人类幼儿执行因果发现的能力表明,这可能是人类大脑的一个基本属性,最近的工作表明,在干预变化下优化分布外泛化可用于训练神经网络以发现因果依赖性或因果变量 。我们应该如何构建和训练神经网络,以便它们能够捕捉到世界的这些潜在因果属性?

posted @ 2021-06-19 00:04  tensor_zhang  阅读(203)  评论(0编辑  收藏  举报