机器学习深度学习零散笔记,收集复习知识点

 

本文用于存放一些零散的笔记

  1. 模型训练技巧:若网络模型没有学习,先尝试让模型过拟合,正则化系数设为0,dropout设为0,删除批处理归一化可以发现梯度弥散或者爆炸,adam改为mini-sgd调低学习率。

  2. 为什么要用one-hot?看看来自网页的一段引用(https://www.jqr.com/article/000243

    在我们继续之前,你可以想一下为什么不直接提供标签编码给模型训练就够了?为什么需要one hot编码?

    标签编码的问题是它假定类别值越高,该类别更好。“等等,什么!”

    让我解释一下:根据标签编码的类别值,我们的迷你数据集中VW > Acura > Honda。比方说,假设模型内部计算平均值(神经网络中有大量加权平均运算),那么1 + 3 = 4,4 / 2 = 2. 这意味着:VW和Honda平均一下是Acura。毫无疑问,这是一个糟糕的方案。该模型的预测会有大量误差。

  3. 关于内积(点乘)、外积(叉乘)的几何意义复习可参考,整理成文

  4. data normalization实现方法:每个样本除以正则化因子(l1,l2,l无穷)+偏移量(1e-12)

  5. l1和l2正则化比较:当权重很大时,L2对权重的衰减速度比L1大得多,当权重很小时,L1对权重的缩小比L2快得多。

  6. 均匀分布,正态分布函数。

    numpy.random.rand()  # 组服从“0~1”均匀分布的随机样本值。随机样本取值范围是[0,1)
    
    numpy.random.randn()  # 标准正态分布,均值0,方差1
    
    np.random.normal()  # 正态分布,可以传入均值方差。

     

  7. init = tf.truncated_normal(shape, stddev=0.01) # 截断的正态分布,返回值锁定在均值左右两个西格玛范围内,概率95。44%。

  8. df.iloc[1:3, :]  # iloc : index location  

  9. 使用loc或者iloc查看数据值(但是好像只能根据行来查看?)。区别是loc是根据行名,iloc是根据数字索引

  10. fig,ax =plt.subplot() #整个图像为一个Figure对象。Figure对象中可以包含一个或多个Axes对象

  11. 机器学习面试总结https://www.cnblogs.com/huanyi0723/p/8470866.html

  12. MSE(L2损失)、MAE(L1损失)、Huber损失(L1,L2结合)的比较:

    MSE对误差取了平方(令e=真实值-预测值),因此若e>1,则MSE会进一步增大误差。如果数据中存在异常点,那么e值就会很大,而e²则会远大于|e|。因此,相对于使用MAE计算损失,使用MSE的模型会赋予异常点更大的权重。在第二个例子中,用RMSE计算损失的模型会以牺牲了其他样本的误差为代价,朝着减小异常点误差的方向更新。然而这就会降低模型的整体性能。因此MSE对异常点更加敏感

    为何要使用Huber损失?

    使用MAE训练神经网络最大的一个问题就是不变的大梯度,这可能导致在使用梯度下降快要结束时,错过了最小点。而对于MSE,梯度会随着损失的减小而减小,使结果更加精确。在这种情况下,Huber损失就非常有用。它会由于梯度的减小而落在最小值附近。比起MSE,它对异常点更加鲁棒。因此,Huber损失结合了MSE和MAE的优点。但是,Huber损失的问题是我们可能需要不断调整超参数delta。

  13. L1和L2正则化比较:相同:都是为了限制权重大小,使得不能任意拟合训练数据中的随机噪声。不同:L1会让参数变得更稀疏(更多参数变为0),L2不会(权重很小时如0.001,平方基本可以忽略,模型不会进一步将这个参数调整为零)。L1公式不可导,L2公式可导。

  14. 过拟合的解决方法:L2 Regularization, Droupout Regularization, Data Augmentation, Early Stopping, Batch Normalization(variance 1, mean-value 0),梯度截断(针对梯度弥散),Bagging  or Ensemble。

  15. 欠拟合:表现形式:训练集,测试集准确率都很低
    解决办法:增加网络层数,增加节点数,减少dropout值,减少L2正则值等等。

  16. 梯度消失和梯度爆炸的解决方法:Relu激活函数,预训练+微调,梯度剪裁+正则化,残差结构,LSTM。

  17.  softmax 和 batch normalization:BN是改变一批数据的分布(减去均值,除以标准差),方差为1均值为0。作用是将数据分布拉回梯度较大的位置,1.输入归一化 x_norm = (x-u)/std, 其中u和std是个累计计算的均值和方差。2.y=alpha×x_norm + beta,对归一化后的x进行比例缩放和位移。其中alpha和beta是通过迭代学习的。

    softmax用于多分类问题最后网络层的输出,所有输出的和为1。
  18. 信息熵、信息增益:信息熵用来衡量集合的纯度,Ent(D)的值越大说明纯度越低,种类越多。 信息增益用来衡量根据某个特征划分后的纯度。信息增益越大,意味着根据属性a划分后的纯度提升越大。信息增益是基础信息熵和某个特征划分后的信息熵的差值。信息增益是熵的减少或者是数据无序度的减少。

  19.  预训练和微调。大数据集应用向小数据集应用迁移的过程。我们通常的训练集不会很大,接到新的分类任务的时候没有必要重新训练,因为我们只有一小批量数据分布,很可能在训练集上出现过拟合。所以类似VGG模型都提供自己的训练参数,我们可以去掉最后一层的权重继续训练,以前的网络可以看做特征提取器或者网络初始化过程。

  20.  深度学习中,每层像素下降过快会影响网络性能。

  21.  权值共享,整张图片共享特征检测器。

  22.  卷积善于捕捉平移不变。即使移动几个像素,图片依然具有非常相似的特征。

  23. Use gradient descent to optimize parameters to reduce J.

  24.  超参数,预先设计的参数,并不是通过训练得到的参数。比如:Learning rate, iteration, batch size, epoch.

  25. 数据增强:图片水平垂直翻转,旋转;随机crop;对亮度、饱和度、对比度、模糊、噪音、锐化、色相处理。以上选择7个就可以。

  26. RNN的梯度消失和CNN中BP的不一样,这里主要指由于时间过长而造成记忆值较小的现象。 归一化的重要性:神经网络本对数据分布没有要求,但归一化可以加快训练速度。1. 使用梯度下降法求解最优解的模型,归一化非常重要:KNN,Logistic回归,GBDT,xgboot, adaboost。2. 有一些模型是基于距离的,所以量纲对于模型影响较大,就需要归一化数据,处理特征之间的权重问题,这样可以提高计算精度。比如,KNN,SVM,Kmeans,主成分分析。 3. 不需要归一化的模型:决策树,随机森林。因为他们不关心变量的值,而是关系变量的分布和变量之间的条件概率,其实就是不用求导。

  27. k折交叉验证的好处:每次迭代过程中每个样本点只有一次被划入训练集或测试集的机会。

  28. triplet loss(三元损失), hard triplet:hard triplets是使得triplet loss最大的三元组,即满足类内距离最大化并且类间距离最小。

  29. svm公式:看了又忘,忘了再看

  30. 岭回归:在线性回归基础上加上l2正则化约束。

  31. 随机森林回归&分类:多棵树集成模型。回归树——预测值为叶节点目标变量的加权均值 。分类树——某叶节点预测的分类值应是造成错判损失最小的分类值。 

  32. dropout如何抑制过拟合:1. 取平均作用,drop随机停掉一些神经元,让其不参与前向传播和反向更新。这相当于在训练多个神经网络,不同神经网络在不同方向上过拟合,互为反向的过拟合就可以抵消整体的过拟合。 2. 减少神经元之间的依赖。在dropout网络中,相邻神经元不一定会同时更新,阻止一些神经元只在一些特定特征下才起作用。这样迫使神经网络更加具有鲁棒性。

  33. VC维度,模型分类的性能。越复杂的模型,需要的数据集越大,我很可能现在还不懂。

  34. 模型参数的冗余性:网络层数不变情况下一般认为网络参数越多精度会越高,但实际上不是,LeNet中的卷积核数目减少为一半,在CRFAR-10数据集上的Top5 error下降只有0.1%

  35. 数据集的冗余性:一般认为图片集越多越好,但是CRFAR-10数据集在利用到40000时,模型的准确度已经没有太大提升。

  36. 数据集类别平衡性:数据集每个分类最好大致平衡,否则数据集类别不平衡会弱化其他类别的特征,使特征表达能力不平衡。

  37. 图像平滑处理,锐化处理:平滑处理是消除噪点主要使用图像滤波。锐化处理是突出图像的边界和细节。

  38. VGG使用小的3*3的卷积优势:1.相同感受野情况下(串联的3×3滤波和5*5滤波)可以减少训练参数的数量。2.比5*5有更多非线性的变化组合。

  39. 矩阵求导公式

  40. 1*1卷积核的作用?1.跨通道信息的融合;2.降维,升维。

  41. 随机森林的随机性指的是?1.决策树训练样本是有放回随机采样的;

    2.树中每个节点的分裂属性集合也是随机选择确定的;

  42. 随机森林和GBDT(Gradient Boost Decision Tree))算法的区别

    1.并行和串行

    随机森林是并行算法,GBDT算法是串行算法

    2.决策方式

    随机森林分类问题采用大多数投票选举法,回归问题采用各基分类器结果的平均值;GBDT算法采用各基分类器预测结果的累加和;

    3.样本选择

    随机森林各基分类器采用有放回随机采样的方式;GBDT则使用所有的样本;

    4.偏差、方差

    随机森林通过降低方差提高性能;GBDT通过降低偏差提高性能;

    5.异常值

    随机森林对异常值不敏感;GBDT对异常值敏感;

  43. 第n层感受野大小=上一层感受野大小+(第n层卷积核边长-1)乘以本层以前所有stride的乘积,例子

  44. 卷积神经网络超参数总结:Learning Rate,  Mini-Batch size,隐藏层层数,隐藏单元数,  Activation Function, Parameters of Regularization, Epoch, Parameters of Dropout。

  45. OptimizerMomentum, Adam, mini-batch SGD, SGD, GD。公式推导参考

  46. Highway Network

  47. cnn模型演化:LeNet:2个卷积3个全连接,最早用于数字识别
    AlexNet:12年ImageNet冠军,5个卷积3个全连接,多个小卷积代替单一大卷积;使用ReLU激活函数,解决梯度小数问题;引入dropout避免模型过拟合;最大池化。
    ZF-Net:13年ImageNet冠军,只用了一块 GPU 的稠密连接结构;将AlexNet第一层卷积核由11变成7,步长由4变为2。
    VGG-Nets:14年ImageNet分类第二名,更深的网络,卷积层使用更小的filter尺寸和间隔;多个小卷积让网络有更多的非线性,更少的参数。
    GoogLeNet:14年ImageNet分类第一名。引入Inception模块,采用不同大小的卷积核意味着不同大小的感受野,最后拼接意味着不同尺度特征的融合;采用了average pooling来代替全连接层;避免梯度消失,网络额外增加了2个辅助的softmax用于向前传导梯度。
    ResNet:引入残差单元,简化学习目标和难度,加快训练速度,模型加深时,不会产生退化问题;能够有效解决训练过程中梯度消失和梯度爆炸问题。在这里插入图片描述

  48. DenseNet:密集连接;加强特征传播,鼓励特征复用,极大的减少了参数量。

  49. 矩阵相乘的时间复杂度: 矩阵A 维度m*n, 矩阵B 维度 n*k,生成的矩阵维度是m*k,每个元素的计算量是n个元素相乘的加和,所以时间复杂度是O(m*n)*k = O(m*n*k) 约等于 O(n^3)。

  50. CNN抓住此共性的手段主要有四个:局部连接/权值共享/池化操作/多层次结构。

    局部连接使网络可以提取数据的局部特征;权值共享大大降低了网络的训练难度,一个Filter只提取一个特征,在整个图片(或者语音/文本) 中进行卷积;池化操作与多层次结构一起,实现了数据的降维,将低层次的局部特征组合成为较高层次的特征,从而对整个图片进行表示。来自

  51.  图像二值化方法迭代方法(该算法先假定一个阈值,然后计算在该阈值下的前景和背景的中心值,当前景和背景中心值得平均值和假定的阈值相同时,则迭代中止,并以此值为阈值进行二值化。),均值法分割(转化为灰度图,灰度图只统计灰度出现频率,不关心具体的分布,取均值),三角阈值分割。

  52. 迁移学习种类: 基于样本的迁移学习, 基于特征的迁移学习, 基于模型的迁移学习, 基于关系的迁移学习。

  53.  CRNN+CTC总结:文章的核心,就是将CNN/LSTM/CTC三种方法结合:首先CNN提取图像卷积特征,然后LSTM进一步提取图像卷积特征中的序列特征,最后引入CTC解决训练时字符无法对齐的问题

  54. focal loss : 更加关注于数据不平衡情况,focal是对交叉熵的改进,输出概率越大损失越小。对于负样本而言,输出概率越小则损失越小。

  55. Yolo v3在COCO数据集上的输出是13*13*355, 26*26*255, 52*52*255,255是怎么来的: (80类别+xywh+confidence) * 3个锚框 =255

  56. 上采样的三种方法: resize, deconvolution, unpooling。resize: 线性插值法,双线性差值法(根据距离比值插值)。反卷积是一种带空洞的卷积操作并非卷积逆,需要先在输入上插入零元素,然后卷积,反卷积的公式推导来自

     

  57.  BN的原理: 举例比如输入十张图RGB格式,BN要做的工作是对每个通道的10*H*W个像素点计算均值和方差,然后该通道的所有像素减去均值,除以标准差,最后需要再乘以γ加β后输出,这是BN归一化的流程。均值和方差是不可训练参数,但会保存起来用于推测,bete和gamma是可训练的参数。训练时,均值、方差分别是该批次内数据相应维度的均值与方差;推理时,均值、方差是加载训练时所有批次的数据计算得到的均值方差,公式参考

    加BN层之前 z=g(Wu+b),添加之后 z=g(BN(Wu+b)), 偏置参数b经过BN层后其实是没有用的,最后也会被均值归一化,当然BN层后面还有个β参数作为偏置项,所以b这个参数就可以不用了,公式变为z=g(BN(Wu))。 gamma和bete的意义:由于归一化后的输入基本会被限制在正态分布下,使得网络的表达能力下降。gamma和bete为解决该问题, gamma为尺度因子,bete为偏移因子。

  58. 卷积->BN->激活->池化

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值