zoukankan      html  css  js  c++  java
  • 神经网络知识补充

    神经网络知识补充

    回归与分类的区别

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

    做法: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模块有影响

  • 相关阅读:
    Xshell相关优化
    Inotify+rsync远程实时同步
    MySQL主从复制故障解决
    Docker部署centos7容器
    Salt-ssh批量部署minion
    MySQL数据库二
    防火墙2
    MySQl数据库
    防火墙
    http原理2
  • 原文地址:https://www.cnblogs.com/Jason66661010/p/13616027.html
Copyright © 2011-2022 走看看