开发分享:神经网络调试与优化技巧(持续更新)

本文探讨了神经网络架构的选择、样本不均衡处理、优化技巧等深度学习中常见的问题。针对局部最小值、欠拟合和过拟合,提出了相应的解决方案。详细介绍了loss异常的常见原因及解决方法,如初始化权重的重要性,并给出了各种激活函数对应的初始化策略。此外,还提供了超参数调试的建议和常用网络(如GAN、CNN、RNN)的训练技巧。
摘要由CSDN通过智能技术生成

1 神经网络架构怎么选?

NN=万能模型+误差修正
NN《==》矩阵线性变换+激活函数非线性变换
NN有效地原因:分布式表示(distributed representation)+组合性(compositionality)

  1. 增加神经元个数(一层)《==》 矩阵线性转换的能力
  2. 增加层数 《==》增加非线性转换的次数

浅层:模拟任何函数,数据量代价不可接受
深层:模拟任何函数,数据量需求降低(前提:空间中的元素可以由发展迭代而来)
深层比浅层更高效!

2 样本不均衡怎么办?

**现象:**长尾分布
长尾分布:少数类别数据多吗,多数类别数据少
在这里插入图片描述

解决:
(1)调节样本分布
(2)loss硬截断
(3)魔改loss:focal loss,dice loss, logits adjustments
(4)将softmax推广到多标签分类问题
(5)互信息

3 卡在local minima怎么办?

原因:学习率太小,初始化位置不好

解决

  1. 调学习率
    自适应变化(每次更新都不同)
  2. 调初始化
    预训练
    权重初始化:高斯分布,均匀分布,Glorot(Xavier),He,稀疏矩阵

4 欠拟合怎么办?

现象:干的太差——训练集上差,测试集上差

原因:数据量多维度少或者数据不好(不相关),模型太弱(数学表达:偏差大)

偏差 bias = pred - label
反映模型拟合能力/预测准确情况
模型忽略数据的程度

解决

  1. 数据
    (1)减少数据量,加入新特征
    (1)重新选择相关特征

  2. 模型
    ==》 增加模型复杂度
    增加神经元个数,网络层数
    减少正则化项,去掉dropout

  3. 超参
    减小学习率α——步子跨小点
    增加迭代次数——防止没收敛

5 过拟合怎么办?

现象:干的太好——训练集上好,测试集上差

注意:过拟合无法避免,只能缓解(因为训练数据有限)

原因:数据量少维度多或者数据不好(不纯)ÿ

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值