deep learning

什么是过拟合?深度学习的过拟合如何缓解?

过拟合一般指过度在训练集上进行优化,反而损害了测试集上的泛化能力的现象。一般出现训练集的loss下降,测试集的指标不降反增,就说明出现了过拟合。

在模型层面我们可以通过Early Stop, L1/L2 Regularization, Batchnorm, Dropout,weight decay等方法进行缓解。

在输入数据层面,我们可以通过数据增广来进行缓解,如旋转,图像直方图正则化,以及Mixup等方法。

欠拟合、过拟合判断方法

1.通过Loss判断
训练集loss 不断下降,验证集loss不断下降:网络正常,仍在学习。
训练集loss 不断下降,验证集loss趋于不变,可能出现过拟合,数据分布不均匀。
训练集loss 不断下降,验证集loss不断上升,可能出现过拟合。
训练集loss 趋于不变,验证集loss不断下降,数据集有问题。
训练集loss 趋于不变,验证集loss趋于不变,学习过程中遇到瓶颈,可以减小学习率或批量数目和更换梯度优化算法,也有可能网络设计问题。
训练集loss 不断上升,验证集loss不断上升,可能网络结构有问题,超参数设置不正确
2.通过Accuracy判断
验证集的作用是在训练的过程对对比训练数据与测试数据的准确率,便于判断模型的训练效果是过拟合还是欠拟合 。
过拟合:训练数据的准确率较高而测试数据的准确率较低
欠拟合:训练数据的准确率和测试数据的准确率均较低
欠拟合
(1)在保证训练误差和验证误差差距在一定范围内,适当增加训练次数。
(2)增加特征
(3)减少正则化程度

逻辑回归

https://cloud.tencent.com/developer/article/1541704
逻辑回归函数的损失函数是对数似然函数。

交叉熵损失函数取平均就是对数似然函数(对数损失函数)。

layer normalization:
https://zhuanlan.zhihu.com/p/568938529?utm_id=0

问题1:Pytorch和Tensorflow的区别?
图创建

创建和运行计算图可能是两个框架最不同的地方。

在pyTorch中,图结构是动态的,这意味着图在运行时构建。

而在TensorFlow中,图结构是静态的,这意味着图先被“编译”然后再运行。

pyTorch中简单的图结构更容易理解,更重要的是,还更容易调试。调试pyTorch代码就像调试Python代码一样。你可以使用pdb并在任何地方设置断点。调试tensorFlow代码可不容易。要么得从会话请求要检查的变量,要么学会使用tensorFlow的调试器。

灵活性

pytorch:动态计算图,数据参数在CPU与GPU之间迁移十分灵活,调试简便;

tensorflow:静态计算图,数据参数在CPU与GPU之间迁移麻烦,调试麻烦

设备管理

pytorch:需要明确启用的设备

tensorflow:不需要手动调整,简单

问题3:torch.eval()的作用
对BN的影响:

对于BN,训练时通常采用mini-batch,所以每一批中的mean和std大致是相同的;而测试阶段往往是单个图像的输入,不存在mini-batch的概念。所以将model改为eval模式后,BN的参数固定,并采用之前训练好的全局的mean和std;总结就是使用全局固定的BN。

对dropout的影响:

训练阶段,隐含层神经元先乘概率P,再进行激活;而测试阶段,神经元先激活,每个隐含层神经元的输出再乘概率P,(所有神经元输出后再乘概率p)总结来说就是顺序不同!

问题4:PCA是什么?实现过程是什么,意义是什么?
主成分分析 (PCA, principal component analysis)是一种数学降维方法, 利用正交变换 (orthogonal transformation)把一系列可能线性相关的变量转换为一组线性不相关的新变量,也称为主成分,从而利用新变量在更小的维度下展示数据的特征。

实现过程:一种是基于特征值分解协方差矩阵实现PCA算法,一种是基于SVD分解协方差矩阵实现PCA算法。

意义:使得数据集更易使用;降低算法的计算开销;去除噪声;使得结果容易理解。

问题5:简述K-means.
K-means算法的基本思想是:以空间中k个点为中心进行聚类,对最靠近他们的对象归类。通过迭代的方法,逐次更新各聚类中心的值,直至得到最好的聚类结果。

假设要把样本集分为k个类别,算法描述如下:

(1)适当选择k个类的初始中心,最初一般为随机选取;

(2)在每次迭代中,对任意一个样本,分别求其到k个中心的欧式距离,将该样本归到距离最短的中心所在的类;

(3)利用均值方法更新该k个类的中心的值;

(4)对于所有的k个聚类中心,重复(2)(3),类的中心值的移动距离满足一定条件时,则迭代结束,完成分类。

Kmeans聚类算法原理简单,效果也依赖于k值和类中初始点的选择。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值