神经网络入门:正反向传播推导、CNN 初识


本文来自作者 sherry  GitChat 上分享 「神经网络入门:正反向传播推导、CNN 初识」

编辑 | 伏特加

单个神经元结构

对于单个神经元,如果我们给每一个输入一个权重,例如有三个输入(x1,x2,x3),相应的权重为(w1,w2,w3),则输入对于输出的影响为 WX^T=(w1*x1+w2*x2+w3*x3)。

现在,设定如果该值大于阈值 threshold,那么输出1;如果该值小于阈值,则输出0。用 bias=-threshold,可将上述描述简单化。

令 bias = - threshold,则:


有了上面的设定,我们就可以模拟是非问题,假设要判断一个图片中是否有狗,output=1 表示有,output=0 表示没有,我们只需要看给定权重(W)和偏置(Bias)的情况下,通过给定输入看输出就可以得到我们想要的信息了。

为了描述更细微的变化,我们将 output 的值域由0和1转变为 [0,1],该任务可以用 sigmoid 函数完成。


神经网络结构

由多个神经元组成的结构就称作神经网络。

关于神经网络的几个术语:

  1. 前向传播

  2. 梯度下降法求解

  3. 反向传播

等等,可能看了很多资料也云里雾里搞不清楚它们是干什么的,这里希望我的讲述能够带您走出此迷宫!

正如,我前面所说的,给定权重和偏置的基础上,输入对应输出,输入层 (input_1,input_2,input_3) 作用于隐藏层,得到三个中间值 (a_1,a_2,a_3),这三个中间值再作用于输出层得到最终的输出值 output,这一过程就是正向传播。

也就是,有了权重和偏置,我们的模型就确立了,给定输入,计算可得输出。

那么,问题来了,如果我们有一堆训练数据,我们怎么得到模型呢?也就是说我们如何获得模型中对应的权重和偏置呢(像上面的简单模型中,我们有33+3+31+1=16个参数)?

这是一个参数估计的过程。

插句话:模型是由参数决定的,那么常常就涉及这两个问题:模型参数已知,由输入计算输出;模型参数未知,由数据和一些数学方法进行参数估计。

我们用最小化输出差来完成参数的估计。

目标函数:

假设 a 为 x 对应的真实值,y(x) 为通过网络模型计算得到的输出值。两者差值越小,说明模型参数越合理,这是无需多言的。此外,目标函数的参数只有 W 和 B,此行的目标便是求得使目标函数最小的 W 和 B。

该问题一般使用梯度下降法进行解决。

权重和偏置的更新方程:

如果能够已知偏导数,则迭代至目标函数收敛即可。

那么现在的问题就是,如何求得网络模型中那么多参数的偏导?这里就用到了传说中的 BP 算法(也称 Back-Propagation,或反向传播算法)。

BP 算法的目的就是解决下图所示的问题。

BP 的核心是四个公式(四个公式的推导后续会补充到读者圈里):

公式1,得到由 y 和 a^L (真实值)求的最后一层的偏差 delta^L。

公式2,由下一层的偏差推导出上一层的,如下:

由公式1和公式2就可以求得网络中所有的 delta_j^l,再结合公式3和公式4,就可以求得所有的偏导,进而使用梯度下降法进行迭代。

如此,参数估计算法流程如下:

  • step1:初始化权重和偏向(Weights and Bias);

  • step2:输入参数x,设置输入层的 activation a^{input} = x;

  • step3:正向更新,对于 l1、l2...,L 计算激活值(也就是每个神经元的输出);

  • step4:计算输出层误差。

  • step5:反向更新得到各层的误差。

  • step6:得到各个偏导值。

  • step7:得到更新后的权重和偏置。

  • 使用更新后的权重和偏置重新计算,直到目标函数收敛,也就是前后两次的值基本不变。

总结

  • 参数决定模型(在神经网络中,决定神经网络模型的就是其对应的权重和偏置),常常涉及的两个问题就是已知模型参数,由输入计算输出和参数估计问题;

  • 正向传播:已知模型参数(权重和偏置),求不同输入下输出的过程;

  • BP的核心是四个公式,目的在于计算偏导数,用于使用梯度下降法最小化目标函值。

下面讲述几个与上述过程紧密相关的问题。

问题一:输出层饱和,学习速率慢。

问题二:梯度消失和梯度爆炸

问题三:过拟合(Overfitting)

阅读完整原文

扫描下方二维码

并与作者交流


  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值