NNDL总结

第四章 前馈神经网络

4.1 神经元

 人工神经元,简称神经元,是构成神经网络的基本单元。

7d50133b74d849b085b3bfe46b094be2.png

 当eq?z>0时,eq?a%3Df%28z%29为1,兴奋; 当eq?z<0时,eq?a%3Df%28z%29为0,抑制。

激活函数的性质

1、连续可导的非线性函数。

2、激活函数及其导函数要尽可能简单

3、激活函数的导函数的值域要在一个合适的区间内

4、单调递增(不一定)

常用的激活函数

S型函数

df501069c1144f3291b5dea72885672a.png

                                                 Logistic函数:eq?%5Csigma%20%28x%29%3D%5Cfrac%7B1%7D%7B1&plus;exp%28-x%29%7D

                                                 Tanh函数:eq?tanh%28x%29%3D%5Cfrac%7Bexp%28x%29-exp%28-x%29%7D%7Bexp%28x%29&plus;exp%28-x%29%7D

                                                 eq?tanh%28x%29%3D2%5Csigma%20%282x%29-1 

性质:

饱和函数

Tanh函数是零中心化,而logistic函数的输出恒大于0     

(非零中心化的输出会使得其后一层的神经元的输入发生偏置偏移,并进一步使得梯度下降的收敛速度变慢)                                                   

斜坡函数 

d775c0fff75e4b56b00ffaedf0682756.png

ReLU可以解决梯度消失问题 

死亡ReLU问题(Dying ReLU Problem)

训练时,如果参数在一次不恰当的更新后(如:学习率过大), 第一个隐藏层中某个 ReLU神经元在所有训练数据上都不能被激活,那么这个神经元自身参数的梯度永远都会是0,在以后的训练过程中永远不能被激活

4.2 网络结构

目前常用的神经网络结构有以下三种:
前馈网络

前馈网络包括全连接前馈网络卷积神经网络

前馈网络可以看作一个函数,通过简单非线性函数的多次复合,实现输入空间到输出空间的复杂映射。这种网络结构简单,易于实现。

记忆网络

记忆网络,也称反馈网络,网络中的神经元不但可以接受其他神经元的信息,也可以接受自己的历史信息。具有记忆能力。

图网络

图网络是前馈网络和记忆网络的泛化,包含很多不同的实现方式,比如图卷积网络、图注意力网络、消息传递神经网络等。 

4.3 前馈神经网络

前馈神经网络(全连接神经网络、多层感知器)

    各神经元分别属于不同的层,层内无连接

    相邻两层之间的神经元全部两两连接(全连接)。

    整个网络中无反馈,信号从输入层向输出层单向传播。

    可用一个有向无环图表示。

                                                                z^{(l)}=W^{(l)}a^{(l-1)}+b^{(l)} 

                                                                a^{(l)}=f_{1}(z^{(l)}) 

可合并写为:                                         z^{(l)}=W^{(l)}f_{l-1}(z^{(l-1)})+b^{(l)}

首先根据第l−1层神经元的活性值a^{(l-1)} 计算出第l层神经元的净活性值z^{l},然后经过一个激活函数得到第 l层神经元的活性值。因此,我们也可以把每个神经层看作一个仿射变换和一个非线性变换。 

参数学习

                                                       

权重衰减:抑制过拟合

对于所有权重,权值衰减方法都会为损失函数加上\frac{1}{2}\lambda W^{2}。因此,在求权重梯度的计算中,要为之前的误差反向传播的结果加上正则化的导数\lambda W

 L_{1}L_{2}范数见:梯度爆炸实验-CSDN博客

4.4 反向传播算法
周老师西瓜书上BP算法的图

 前向计算

step1:                    b_{h}=f(\beta _{h}-\gamma _{h}),\beta _{h}=\sum ^{d}_{i=1}v_{ih}x_{i}

step2:                   \hat{y}^{k}_{j}=f(\alpha _{j}-\theta _{j}),\alpha _{j}=\sum ^{q}_{h=1}w_{hj}b_{h}

step3:                  E_{k}=\frac{1}{2}\sum ^{l}_{j=1}(\hat{y}^{k}_{j}-y^{k}_{j})^{2}

 下面是反向传播的过程推导,当时手推的时候真的很麻烦,很费人。(ο̬̬̬̬̬̬̬̏̃ɷο̬̬̬̬̬̬̬̏̃)

作业4:实现例题中的前馈神经网络_前馈神经网络计算例题-CSDN博客

4.5 优化算法

非凸优化问题因为可行域集合可能存在无数个局部最优点,通常求解全局最优的算法复杂度是指数级别的(NP难)。

 平方误差损失和交叉熵损失都是关于参数的非凸函数。

梯度消失 

 Sigmoid型函数的饱和区的导数更接近于0,误差经过每一层传递都会不断衰减。当网络层数很深时,梯度就会不停衰减,甚至消失,这就是梯度消失问题

 第五章 卷积神经网络

卷积神经网络是一种具有局部连接、权重共享等特性的深层前馈神经网络. 

全连接神经网络缺点:

1. 参数过多,效率低下,训练困难;会导致过拟合

2. 将图像展开为向量,会丢失空间信息。

3. 局部不变性特征:自然图像中的物体都具有局部不变性特征。全连接前馈网络很难提取这些局部不变特征。一般需要进行数据增强来提高性能。

目前的卷积神经网络一般是由卷积层、汇聚层和全连接层交叉堆叠而成的前馈神经网络。卷积神经网络有三个结构上的特性:局部连接、权重共享以及汇聚。

5.1 卷积

 一维卷积经常用在信号处理中,用于计算信号的延迟累积。不同滤波器(卷积核)提取信号序列中的不同特征。

 二维卷积

 一个输入信息X和滤波器W的二维卷积定义为:         

                                                              Y=W*X

                                            y_{ij}=\sum_{u=1}^{U}\sum_{v=1}^{V}w_{uv}x_{i-u+1,j-v+1} 

 

 互相关和卷积的区别仅仅在于卷积核是否进行翻转。互相关也可以称为不翻转卷积。

 卷积的变种

 引入卷积核的滑动步长零填充来增加卷积的多样性,可以更灵活地进行特征抽取。

 步长(Stride)是指卷积核在滑动时的时间间隔。

零填充(Zero Padding)是在输入向量两端进行补零 。

假设卷积层的输入神经元个数为M,卷积大小为K,步长为S,在输入两端各 填补P个0(zero padding),那么该卷积层的神经元数量为(M-K+2P)/S+1

一般常用的卷积有以下三类:

(1) 窄卷积(Narrow Convolution):步长S=1 ,两端不补零P=0,卷积 后输出长度为M-K+1

(2) 宽卷积(Wide Convolution):步长S=1,两端补零P=K-1,卷积 后输出长度M+K-1

(3) 等宽卷积(Equal-Width Convolution):步长 S=1,两端补零 P=(K-1)/2,卷积后输出长度M

 感受野:特征图上一个点对应输入图像上的区域

5.2 卷积神经网络

 根据卷积的定义,卷积层有两个很重要的性质:局部连接权重共享。

局部连接:每个神经元没有必要对全局图像进行感知, 只需要对局部进行感知, 然后在更高层将局部的信息综合起来就得到了全局的信息。

权值共享:减少了参数量

 特征映射(Feature Map)为一幅图像(或其他特征映射)在经过卷积提取到的特征,每个特征映射可以作为一类抽取的图像特征。

卷积层可显著减少连接个数,但每一个特征映射的神经元个数并没显著减少。

汇聚层可有效地减少神经元的数量

汇聚层(Pooling Layer)也叫子采样层(Subsampling Layer),其作用是进行特征选择,降低特征数量,从而减少参数数量。

常用的汇聚函数有两种:

(1)最大汇聚:对于一个区域,选择这个区域内所有神经元的最大活性值作为这个区域的表示。

(2)平均汇聚:一般是取区域内所有神经元活性值的平 均值。

 卷积网络的整体结构

卷积层、汇聚层、全连接层交叉堆叠而成。

5.3 参数学习

卷积的性质

 交换性:图像 X和 卷积核W有固定长度时,它们的宽卷积具有交换性

rot180(W)\widetilde{\bigotimes }X=rot180(X)\widetilde{\bigotimes }W

导数:\frac{\partial f(Y)}{\partial X}=rot180(\frac{\partial f(Y)}{\partial Y})\widetilde{\bigotimes }X=rot180(W)\widetilde{\bigotimes }\frac{​{\partial f(Y)}}{\partial Y}

 CNN的反向传播算法:https://www.cnblogs.com/pinard/p/6494810.html

5.4 几种典型的卷积神经网络

 LeNet-5

 AlexNet(2012第一个现代深度卷积网络模型)

 VGG-Net

更小的卷积核

卷积核不超过3×3

2个3×3卷积核堆叠的感受野相当于 1个5×5卷积核

同等感受野,2个3×3卷积间加入激活函数,其非线性能力比1个5×5卷积强

更深的网络结构

AlexNet:5个卷积层

VGG16:13个卷积层

更深的结构有助于网络提取图像中更复杂的语义信息

 Inception网络

 Inception模块:一个卷积层包含多个不同大小的卷积操作

残差网络通过给非线性的卷积层增加直连边(也称为残差连接(Residual Connection))的方式来提高信息的传播效率。

 残差网络就是将很多个残差单元串联起来构成的一个非常深的网络。

5.5 其他卷积方式

转置卷积

微步卷积:步长S<1的转置卷积

输入特征之间插入0,间接使得步长变小 

如果卷积操作的步长为 S<1,希望其对应的转置卷积的步长为\frac{1}{S}, 需要在输入特征之间插入S-1个0来使得其移动的速度变慢.D=S-1=2-1=1

空洞卷积

在卷积核的每两个元素之间插入D − 1个空洞, 卷积核的有效大小为:

{K}'=K+(K-1)*(D-1)

第六章 循环神经网络

前馈网络存在的问题

连接在层与层之间,每层节点间无连接。 输入和输出的维数固定,不能任意改变。无法处理时序数据

循环神经网络(Recurrent Neural Network,RNN)

      1、具有短期记忆能力

      2、神经元可接受其他神经元信息,也可接受自身信息,形成有 环路的网络结构

      3、和前馈神经网络相比,更加符合生物神经网络的结构

      4、已广泛应用在语音识别、语言模型、自然语言生成等任务上

      5、容易扩展到更广义的记忆网络模型:递归神经网络、图网络

6.1 给网络增加记忆力

三种方法增加短期记忆能力:

延时神经网络

    建立额外延时单元,存储网络历史信息

有外部输入的非线性自回归模型

    用变量y_t的历史信息来预测自己

循环神经网络

    RNN通过使用带自反馈的神经元,能够处理任意长度的时序数据。

6.2 简单循环网络

 SRN:只有一个隐藏层的神经网络

NNDL 作业9 RNN - SRN-CSDN博客  

6.3 应用到机器学习

序列到类别:主要用于序列数据的分类问题:输入为序列,输出为类别。

同步的序列到序列:主要用于序列标注任务,即每一时刻都有输入和输出,输入序列和输出序列的长度相同。

异步的序列到序列:也称为编码器—解码器模型,即输入序列和输出序列不需要有严格的对应关系,也不需要保持相同的长度。

6.4 参数学习

在循环神经网络中主要有两种计算梯度的方式:随时间反向传播算法(BPTT)和实时循环学习算法(RTRL) 。                                                                            

 随时间反向传播算法的主要思想是通过类似前馈神经网络的误差反向传播算法来计算梯度。

 实时循环学习是通过前向传播的方式来计算梯度

ec46f681b76b4eceaa2894651e343958.png

6.5 长程依赖问题

 循环神经网络在学习过程中的主要问题是由于梯度消失或爆炸问题,很难建模长时间间隔的状态之间的依赖关系。

梯度爆炸 一般而言,循环网络的梯度爆炸问题比较容易解决,一般通过权重衰减或梯度截断来避免。

梯度消失 梯度消失是循环网络的主要问题.除了使用一些优化技巧外,更有效的方式就是改变模型。通过引入门控机制来进一步改进模型。

6.6 基于门控的循环神经网络

基于门控的循环神经网络:长短期记忆网络门控循环单元网络。

长短期记忆网络(LSTM)是循环神经网络的一个变体,可以有效地解决简单循环神经网络的梯度爆炸或消失问题.

门控循环单元(GRU)网络是一种比LSTM网络更加简单的循环神经网络。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/327171.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大型语言模型的幻觉问题

1.什么是大模型幻觉&#xff1f; 在语言模型的背景下&#xff0c;幻觉指的是一本正经的胡说八道&#xff1a;看似流畅自然的表述&#xff0c;实则不符合事实或者是错误的。 幻觉现象的存在严重影响LLM应用的可靠性&#xff0c;本文将探讨大型语言模型(LLMs)的幻觉问题&#x…

Python3 元组----20240105

Python 的元组与列表类似,不同之处在于元组的元素不能修改。 元组使用小括号 ( ),列表使用方括号 [ ]。 元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。 >>> tup1 = (Google, Runoob, 1997, 2000) >>> tup2 = (1<

stm32引脚输入输出设置寄存器操作汇总

下图时正点原子i2c时使用的宏定义 下面的代码是对PA0-PH15的引进行了穷举法代码&#xff0c;使用的时候只需要拷贝三行相应的引脚即可。 //IO方向设置 #define IIC_SDA PAout(0) //SDA #define SDA_IN() {GPIOA->CRL&0XFFFFFFF0;GPIOA->CRL|(u32)8<<0…

CMU15-445-Spring-2023-Project #1 - Buffer Pool

在存储管理器中实现缓冲池。缓冲池负责将物理页从主内存来回移动到磁盘。它允许 DBMS 支持大于系统可用内存量的数据库。缓冲池的操作对系统中的其他部分是透明的。例如&#xff0c;系统使用page唯一标识符&#xff08;page_id_t&#xff09;向缓冲池请求一个页面&#xff0c;但…

面试十分钟不到就被赶出来了,问的问题有点变态

从小厂出来&#xff0c;没想到在另一家公司又寄了。 到这家公司开始上班&#xff0c;加班是每天必不可少的&#xff0c;看在钱给的比较多的份上&#xff0c;就不太计较了。没想到12月一纸通知&#xff0c;所有人不准加班&#xff0c;加班费不仅没有了&#xff0c;薪资还要降40%…

在Gitee上维护Erpnext源

在Gitee上维护Erpnext源 官方的frappe和erpnext地址: GitHub - frappe/frappe: Low code web framework for real world applications, in Python and Javascript GitHub - frappe/erpnext: Free and Open Source Enterprise Resource Planning (ERP) 1, 仓库地址输入frappe的官…

python总结高阶-异常处理机制

文章目录 异常是什么&#xff1f;try和except结构try...一个except结构try...多个except结构try...except...else结构try...except...finally结构return语句和异常处理问题 常见异常常见异常的解决SyntaxError &#xff1a;语法错误NameError &#xff1a;尝试访问一个没有申明…

Git 实战指南:常用指令精要手册(持续更新)

&#x1f451;专栏内容&#xff1a;Git⛪个人主页&#xff1a;子夜的星的主页&#x1f495;座右铭&#xff1a;前路未远&#xff0c;步履不停 目录 一、Git 安装过程1、Windows 下安装2、Cent os 下安装3、Ubuntu 下安装 二、配置本地仓库1、 初始化 Git 仓库2、配置 name 和 e…

【JAVA】volatile 关键字的作用

&#x1f34e;个人博客&#xff1a;个人主页 &#x1f3c6;个人专栏&#xff1a; JAVA ⛳️ 功不唐捐&#xff0c;玉汝于成 目录 前言 正文 volatile 的作用&#xff1a; 结语 我的其他博客 前言 在多线程编程中&#xff0c;保障数据的一致性和线程之间的可见性是…

vmware workstation的三种网络模式通俗理解

一、前言 workstations想必很多童鞋都在用&#xff0c;经常会用来在本机创建不同的虚拟机来做各种测试&#xff0c;那么对于它支持的网络模式&#xff0c;在不同的测试场景下应该用哪种网络模式&#xff0c;你需要做下了解&#xff0c;以便可以愉快的继续测&#xff08;搬&…

Pandas数据可视化

pandas库是Python数据分析的核心库 它不仅可以加载和转换数据&#xff0c;还可以做更多的事情&#xff1a;它还可以可视化 pandas绘图API简单易用&#xff0c;是pandas流行的重要原因之一 Pandas 单变量可视化 单变量可视化&#xff0c; 包括条形图、折线图、直方图、饼图等 …

8 单链表---带表头节点

上节课所学的顺序表的缺点 顺序表的最大问题&#xff1a;插入和删除时需要移动大量元素 链式存储的定义 链式存储的逻辑结构 链表中的基本概念&#xff1a; 注意&#xff1a;表头节点并不属于数据元素 单链表图示&#xff1a; 把3个需要的结构体定义出来&#xff1a; typdef …