zoukankan      html  css  js  c++  java
  • 如何防止过拟合

    防止过拟合

    可以通过

    1 增加augmentation(flip  imgaug)

    2     增加pooling(因为没有参数)

    3 增加l2正则化

    lr正则化,就是l2范数,所以增加了l2范数loss会变成这样

    loss = L + lmda/2 * ||w||

    l2范数就是1**2+2**2+3**2+.....**2

    即所有数的平方和

    求导就是w1=w1+alpha*(dw1-  lmda / 2 * 2 * w1  )

    这样的好处就是让每一个节点尽量低,相当于起到删除节点的作用

    4 设置droupout

    1 想必不用多说了吧,就是通过增加数据

    2pooling可以增加泛化效果,有一种说法是因为pooling没有参数,之所以会导致过拟合不泛化就是因为卷基层很多参数,所以多使用pooling会减少拟合

    4droupout是设置一个值keep-prob,来确定每一个layer保留的节点,归根结底就是删除节点,

    比如保留0.5的点,也就是保留50%,所以每个层要保留一半的点,但是这个是随机的,每次和每次不一样,第一次可能保留上面一半的点,下次可能保留下面一半的点,保留上面的时候,就是上面进行forward,下面不动,并且bp也是上面的;而第二次可能forward的是下面那一半的节点,所以会导致下面的bp,上面的保持不变,

    这样的好处:

    1,可以保留更少的节点,然后避免过拟合

    2,由于是随机删除,所以不会对某一个节点特别倚重,而对某个节点基本上不用

    卷积的时候同理,

    因为卷积核的参数是in* kernel * kernel *out

    因为in ,out这两个参数是肯定不变的,所以肯定也是在kernel里面保留或者删除

  • 相关阅读:
    rsync使用
    文件系统、mkdir、touch、nano、cp笔记
    man/ls/clock/date/echo笔记
    Python之路,Day2
    Python之路,Day1
    自动化部署nginx负载均衡及监控短信报警
    NO.11天作业
    Tiny C Compiler简介-wiki
    stm32中使用cubemx配置freertos的信号量大小
    c99的新功能
  • 原文地址:https://www.cnblogs.com/lllcccddd/p/10560787.html
Copyright © 2011-2022 走看看