当前位置: 代码迷 >> 综合 >> 神经网络:细节知识点笔记
  详细解决方案

神经网络:细节知识点笔记

热度:97   发布时间:2023-12-06 04:14:29.0

目录

      • 1 问题
        • 1.1 梯度问题
        • 1.2 局部最小值 鞍点
        • 1.3 退化
      • 1.4 过拟合
      • 2 激活函数
      • 3 损失函数
      • 4 训练过程
        • 4.1 批量梯度下降 BGD
        • 4.2 随机梯度下降 SGD
        • 4.3 小批量梯度下降 MBGD
      • 5 优化方法
      • 6 输入输出
        • 6.1 输入 x
        • 6.2 输出 y
      • 7 权重初始化及学习率的设定

1 问题

1.1 梯度问题

▽ulL=(Wl+1)T[▽ul+1L]?f′(ul)\bigtriangledown _{u^l}L=(W^{l+1})^T[\bigtriangledown _{u^{l+1}}L]\bigodot f^{\prime}(u^l)ul?L=(Wl+1)T[ul+1?L]?f(ul)

  • 梯度消失:激活函数导数<1 多次连乘 前面层权重梯度接近0 参数无法有效更新
  • 梯度爆炸:激活函数导数》1 多次连乘 前面层权重梯度很大

1.2 局部最小值 鞍点

梯度下降能尽量保证下降到梯度为0的点 但不能保证这个点是全局最优

1.3 退化

  • 退化:在训练集和测试集误差都很大

神经网络层数越多,训练误差和测试误差越大

1.4 过拟合

  • ①增加数据量

  • ②正则化
    在这里插入图片描述

  • ③droupout:训练时随机忽略一些神经元

2 激活函数

  • sigmoid
    f(x)=11+e?xf(x)=\cfrac {1}{1+e^{-x}}f(x)=1+e?x1?
  • relu
    f(x)=max(0,x)f(x)=max(0,x)f(x)=max(0,x)
  • tanh
    f(x)=ex?e?xex+e?xf(x)=\cfrac {e^x-e^{-x}}{e^x+e^{-x}}f(x)=ex+e?xex?e?x?

3 损失函数

分类:交叉熵好于欧氏距离
回归:欧式距离

4 训练过程

4.1 批量梯度下降 BGD

每一次迭代时使用所有样本来进行梯度的更新

  • 代表样本总体 更准确的朝向极值点
  • 样本数量多的时候 训练速度慢

4.2 随机梯度下降 SGD

每次迭代使用一个样本来对参数进行更新

  • 迭代速度很快(只使用一个样本就更新参数)
  • 最终准确度下降

4.3 小批量梯度下降 MBGD

相比于以上两种 的折中方法
每次迭代使用batch_size个样本对参数进行更新

  • 加快训练速度的同时尽可能保证准确率

5 优化方法

6 输入输出

6.1 输入 x

归一化 缩放至[0,1]或[-1,1]区间

6.2 输出 y

分类:[0,0,预测类1,0,0] one-hot编码
回归:缩放至[0,1]或[-1,1]

7 权重初始化及学习率的设定

权重服从某种分布
学习率多次尝试 可以逐次减小

  相关解决方案