• CMSC5707-高级人工智能之神经网络



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

    反向传播神经网络

    首先可以在心中搭起框架,一个神经网络可以理解为用若干个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
    请添加图片描述

  • 相关阅读:
    YourKit Java Profiler 2022.9.X Crack
    基于JAVA西宁市农副产品物流信息系统计算机毕业设计源码+数据库+lw文档+系统+部署
    Java如何使用DOM4j解析XML呢?
    探索“科技助实”,上海交通大学、蚂蚁集团等发起第三届ATEC科技精英赛
    TreeMap中如何对数字,英文字母,中文排序呢?
    Masked Auto Encoder总结
    第九章 内置模块
    redis缓存穿透、击穿、雪崩介绍
    java文件上传下载漏洞修复工具类
    【2023年11月第四版教材】第18章《项目绩效域》(第二部分)
  • 原文地址:https://blog.csdn.net/qq_44036439/article/details/127184670