高级人工智能之神经网络Artificial Neural Network


这章主要是介绍反向传播的神经网络,其中的过程以及相关计算,虽然有些知识在本科的人工智能课上有了解过,但是感觉当时学习的知识不成体系且没有深入本质,这次上课就感觉整个知识体系建立了起来。

反向传播神经网络

首先可以在心中搭起框架,一个神经网络可以理解为用若干个samples去训练出Weight(W)和Bias(b),从而可以利用这个网络将unknown input分类成不同的类别。其中:

  • forward pass是在训练好神经网络后的使用,用它对unknown input进行分类;
  • 而如何训练出weight和bias则是运用forward pass和backward pass.

请添加图片描述

Feed Forward Propagation前向传播

Feed Forward Propagation前向传播多是用于classification和recognition的任务中的,根据输入输出预测结果。

在用前向传播的神经网络进行分类的时候,我们假设其网络结构已经训练出来了,即Weight和Bias都已经知道了。
请添加图片描述
常规的流程我们都清楚,这方面主要就是集中于一些参数Weight和Bias个数的统计

  • Weight参数个数为神经网络中所有神经元nuron之间的连接数,如下图为两两层数之间的连接数之和。
  • Bias参数个数为神经网络中除了inputs neurons后,剩下所有的神经元个数。
    请添加图片描述
    对于其中的神经元(包括Hidden Layers和Output Layer),需要了解其激励函数的原理:
    请添加图片描述
    y = f ( u ) y=f(u) y=f(u)
    u = ∑ i = 1 i = I [ w ( i ) x ( i ) ] + b , u=\sum\limits_{i=1}^{i=I}[w(i)x(i)]+b, u=i=1i=I[w(i)x(i)]+b,
    b b b=bias, x x x=input, w w w=weight, u u u=internal signal
    Typically f ( ) f() f() is a logistic (Sigmod) function,i.e.
    f ( u ) = 1 1 + e x p ( − β u ) f(u)=\frac{1}{1+exp{(-\beta u)}} f(u)=1+exp(βu)1, assume β = 1 \beta=1 β=1 for simplicity,
    therefore f ( u ) = 1 1 + e − ( ∑ i = 1 i = I [ ω ( i ) x ( i ) ] + b ) f(u)=\frac{1}{1+e^{-\left(\sum_{i=1}^{i=I}[\omega(i) x(i)]+\mathrm{b}\right)}} f(u)=1+e(i=1i=I[ω(i)x(i)]+b)1

一个神经元激励计算的例子如下:
请添加图片描述

Back Propagation

Back propagation主要用于训练神经网络的,它也包括forward processing预测结果的过程,根据预测出来的结果对神经网络进行反向处理backward processing,更新网络权重。

这部分关键在于误差e的计算,以及在两种情况下如何进行权重更新。

Error计算

请添加图片描述
图中e(n)表示的是样本n在类别1上产生的误差, Y 1 、 Y 2 、 Y 3 Y1、Y2、Y3 Y1Y2Y3分别代表在三个类别上neurons的输出(并没有经过softmax层), T 1 、 T 2 、 T 3 T1、T2、T3 T1T2T3代表真实类别标签的三个分量。

权重的更新为 w n e w = w o l d − η ∗ ∂ E ∂ w w_{new}=w_{old}- \eta*\frac{\partial E}{\partial w} wnew=woldηwE, η \eta η为learning rate, 如下图证明所示,这样的更新可以使得系统整体的误差 E E E不断减小。
请添加图片描述

Weight Updating

请添加图片描述

Case1: Between the hidden layer and the output layer

简单地理解来说,就是误差 ε \varepsilon ε对预测值 x i x_i xi求偏导,然后预测值 x i x_i xi针对其计算中的e的指数上的和 u i u_i ui求偏导,最后该和 u i u_i ui w j , i w_{j,i} wj,i求偏导。
请添加图片描述
其中的sensitivity表示出来,可以复用在后面链式a hidden layer and a hidden layer之间状态更新的链式求导,链式前面sensitivity都一致,不一致的是后面 u i u_i ui w j , i w_{j,i} wj,i还是对 x j x_j xj求导。

Case2: Between a hidden layer and a hidden layer

请添加图片描述

实现改进的方面

Full Batch and mini-batch weight update

这是一种加快训练速度的方式,我们将所有数据用于训练的一轮称作one epoch. 在一个epoch中每多少个训练样本用于权重更新称作batch size.

  • Full-batch: 训练需要多次epoch,每次epoch将所有训练样本的gradient用于更新权重,一个epoch进行一次 backward pass.
  • Mini-batch:在一个epoch中,每几个样本的gradient进行权重更新,一个epoch进行多次 backward pass.
  • Online batch size: 每个样本的gradient都用于权重更新,batch size=1,前面的很多概念都是这个下面的。
    请添加图片描述

Dropout

丢掉神经网络中的几个节点预防过拟合overfitting。
请添加图片描述

Adaptive Moment estimation

之前的权重更新都是 w = w − α ∗ g w=w-\alpha*g w=wαg,现在引入momentum和root mean square,处理噪声问题带来的稀疏的gradient。
请添加图片描述

相关题目

weight update between the hidden layer and the output layer
请添加图片描述
weight update Between a hidden layer and a hidden layer
请添加图片描述

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

互联网民工蒋大钊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值