深度学习(前馈神经网络)知识点总结

用于个人知识点回顾,非详细教程

1.梯度下降

  • 前向传播

特征输入—>线性函数—>激活函数—>输出

在这里插入图片描述

  • 反向传播

根据损失函数反向传播,计算梯度更新参数

在这里插入图片描述

在这里插入图片描述

2.激活函数(activate function)

  • 什么是激活函数?

在神经网络前向传播中,每一层的输出还需要经过激活函数再作为下一层的输入,即 a [ 1 ] = σ ( z [ 1 ] ) a^{[1]}=\sigma(z^{[1]}) a[1]=σ(z[1])

  • 为什么需要激活函数?

如果没有非线性激活函数,模型的最终输出实际上只是输入特征x的线性组合
在这里插入图片描述

  • 激活函数的分类

(1)sigmoid函数:除了输出层是一个二分类问题基本不会用
a = σ ( z ) = 1 1 + e − z a=\sigma(z)=\frac{1}{1+e^{-z}} a=σ(z)=1+ez1
(2)tanh函数:数据平均值更接近0,几乎所有场合都适用
a = t a n h ( z ) = e z − e − z e z + e − z a=tanh(z)=\frac{e^{z}-e^{-z}}{e^{z}+e^{-z}} a=tanh(z)=ez+ezezez

sigmoid函数和tanh函数两者共同的缺点是,在z特别大或者特别小的情况下,导数梯度或者函数斜率会变得特别小,最后就会接近于0,导致降低梯度下降的速度。

(3)Relu函数:修正线性单元,最常用的默认函数
a = m a x ( 0 , z ) a=max(0, z) a=max(0,z)
(4)Leaky Relu函数:进入负半区
a = m a x ( 0.01 z , z ) a=max(0.01z, z) a=max(0.01z,z)

sigmoid函数和tanh函数在正负饱和区的梯度都会等于0,而Relu和Leaky Relu可以避免梯度弥散现象,学习速度更快

在这里插入图片描述

3. 正则化

  • 偏差和方差

高方差过拟合,高偏差欠拟合

在这里插入图片描述

  • L1/L2正则化

在损失函数加上正则化,L1正则化更稀疏

在这里插入图片描述

  • dropout正则化

根据概率随机删除节点

在这里插入图片描述

  • 其它正则化方法

在这里插入图片描述

4.优化算法

  • mini-batch梯度下降法

数据集分成多个子集来更新梯度

在这里插入图片描述

  • 动量梯度下降(momentum)

参数更新时的梯度微分值计算方式采用指数加权平均

在这里插入图片描述
在这里插入图片描述

  • RMSprop(root mean square prop)

在这里插入图片描述

  • Adam

momentum+RMSprop

在这里插入图片描述

5.梯度消失和梯度爆炸

How to prevent vanishing gradient or exploding gradient?
The Vanishing/Exploding Gradient Problem in Deep Neural Networks

在神经网络的反向传播中,基于链式规则,n层隐藏层需要乘n次导数

  • 梯度爆炸gradient exploding:如果导数很大,那么当我们沿着模型传播时,梯度将呈指数增长,直到它们最终爆炸,梯度爆炸会导致学习不稳定
  • 梯度消失gradient vanishing:如果导数很小,那么当我们在模型中传播时,梯度将呈指数下降,直到最终消失,梯度消失会无法有效学习

解决方法

  • 适用Relu激活函数
  • 适用Batch Normalization (BN):
  • 降低学习率
  • 改变网络结构
  • 使用合适的权重初始化
  • 梯度裁剪Gradient clipping
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值