• 神经网络知识补充


    神经网络知识补充

    回归与分类的区别

    回归:目标是预测值要与真实值十分的接近

    做法:minimize (pred - y)差距

    分类:目标是使得accuracy最高

    做法:并不是直接优化accuracy使得其最高,而是将两个分布((hat{y})|x)与(y|x)的divergence降低

    不直接优化accuracy原因:

    1.有可能acc在经过训练后上升,但是还是没有达到要求的分类(例如一个标签为1的数据的预测值由0.4提升到0.45,但是由于还是<0.5所以分类还是错的)——梯度为0

    2.有可能为0.499,但是预测值动一点点就>0.5,分类变了——梯度不连续

    过拟合

    过拟合的识别

    如果数据集的类别来源只是两类:train、test;那么我们要将test的一部分用于validation进行overfitting的检测,在训练的过程中进行overfitting的检测,一旦开始出现过拟合的现象,就取效果最好的那次并停止train

    k-fold

    train与validation的划分比例定,但是每个epoch都要按照比例进行重新划分,使得所有数据都有机会进行train

    过拟合的减小

    1.提供更多的数据

    2.降低模型的复杂度(类似mnist数字的识别就没有必要使用resnet152复杂模型)

    3.正则化(L1 L2 Dropout)

    这里的weight_decay表示正则化参数

    optimizer = torch.oitim.SGD(x.parameters(),lr=0.001,weight_decay=0.7)
    

    动量与学习率衰减

    动量

    无动量:仅仅考虑梯度的方向,而不考虑历史移动的方向,会出现梯度变化大的情况。

    添加动量:梯度变化的角度、范围不再那么刁钻。

    学习率衰减

    要进行学习率的衰减,learning rate先大后小,动态变化,前期梯度下降快,后期收敛快

    衰减方案1:

    scheduler = ReduceROnPlateau(optimizer,mode='min',factor=0.1,patience=10)
    
    for epoch in range(XXXX):
        xxxxxx
        xxxxxx
        schedule.step(loss)
    

    patience:是一个耐心值,表示当执行该函数连续10次的时候,loss的值依然没有发生变化,那么就需要进行learning rate的调整了(类似每次乘以0.8、0.08等)。

    衰减方案2:

    每一定数量的epoch进行learning rate的衰减

    每30个epoch步进learning rate=learning rate*0.1

    scheduler = StepLR(optimizer,step_size=30,gamma=0.1)
    
    

    提前停止(early stopping)

    当出现overfitting的时候就可以停止train了,而不是等到train_loss保持不变的时候。

    方法

    使用validation来检测是否出现overfiting

    如何知道此时的识别效果是最好的?是一个经验值

    dropout

    防止overfitting的一个有效的手段 ——随机减小connection的数量

    例子:参数是断掉连接的概率

    image-20200904200822739

    在train的时候使用dropout,而在validation不使用dropout

    model.train() # 把module设成训练模式,对Dropout和BatchNorm有影响

    model.eval() # 把module设置为预测模式,对Dropout和BatchNorm模块有影响

  • 相关阅读:
    HDU 3681 Prison Break 越狱(状压DP,变形)
    POJ 2411 Mondriaan's Dream (状压DP,骨牌覆盖,经典)
    ZOJ 3471 Most Powerful (状压DP,经典)
    POJ 2288 Islands and Bridges (状压DP,变形)
    HDU 3001 Travelling (状压DP,3进制)
    POJ 3311 Hie with the Pie (状压DP)
    POJ 1185 炮兵阵地 (状压DP,轮廓线DP)
    FZU 2204 7
    POJ 3254 Corn Fields (状压DP,轮廓线DP)
    ZOJ 3494 BCD Code (数位DP,AC自动机)
  • 原文地址:https://www.cnblogs.com/Jason66661010/p/13616027.html
Copyright © 2020-2023  润新知