NNDL总结

news2024/9/20 19:49:23

第四章 前馈神经网络

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问题 

死亡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.coloradmin.cn/o/1369995.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java中的输入输出处理(一)

文件 文件&#xff1a;文件是放在一起的数据的集合。比如1.TXT。 存储地方&#xff1a;文件一般存储在硬盘&#xff0c;CD里比如D盘 如何访问文件属性&#xff1a;我们可以通过java.io.File类对其处理 File类 常用方法&#xff1a; 方法名称说明boolean exists()判断文件或目…

mysql原理--事务

1.事务的起源 对于大部分程序员来说&#xff0c;他们的任务就是把现实世界的业务场景映射到数据库世界。比如银行为了存储人们的账户信息会建立一个 account 表&#xff1a; CREATE TABLE account (id INT NOT NULL AUTO_INCREMENT COMMENT 自增id,name VARCHAR(100) COMMENT …

这些开源自动化测试框架,会用等于白嫖一个w

作者&#xff1a;黑马测试 链接&#xff1a;https://www.zhihu.com/question/19923336/answer/2585952461 来源&#xff1a;知乎 著作权归作者所有。商业转载请联系作者获得授权&#xff0c;非商业转载请注明出处。 随着计算机技术人员的大量增加&#xff0c;通过编写代码来…

C#上位机快速开发笔记

1.下载vs2012版本&#xff0c;安装密钥解除 #微信文章教程有详细描述&#xff0c;公众号“软件安装管家目录” 2.新建工程 3.界面模块介绍 3.资源管理器 3.1 图标修改位置 3.2 软件版本信息文件介绍 4.常用工具箱控件 1. Button按钮 #按键函数代码&#xff0c;按下按…

【Python排序算法系列】—— 希尔排序

&#x1f308;个人主页: Aileen_0v0 &#x1f525;热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法 &#x1f4ab;个人格言:"没有罗马,那就自己创造罗马~" 目录 希尔排序 &#xff08;ShellSort&#xff09; 由来和特点 理解 过程演示 Step1&#xff1a;…

GO语言笔记3-指针

指针的概念 先看一段代码的输出 package main import "fmt" func main(){ var age int 18fmt.Println("age的内存地址值是:",&age)//age的内存地址值是: 0xc000012090// 定义一个指针变量// *int 是一个指针类型&#xff0c;可以理解为指向int类型的…

Native组件Widget

demo下载路径 gitgithub.com:haijun-suyan/ReminderWidget.git 注意&#xff1a; 组件开发 SwiftUI 添加链接描述

鼠标随动指定区域高亮显示(Excel聚光灯)

实例需求&#xff1a;工作表中数据表实现跟随鼠标选中高亮效果&#xff0c;需要注意如下几个细节需求 数据表为连续区域&#xff0c;但是不一定从A1单元格开始数据表的前两行&#xff08;标题行&#xff09;不使用高亮效果数据表中已经应用了条件格式&#xff0c;高亮显示取消…

0109作业

1> 思维导图 2> 使用手动连接&#xff0c;将登录框中的取消按钮使用qt4版本的连接到自定义的槽函数中&#xff0c;在自定义的槽函数中调用关闭函数 将登录按钮使用qt5版本的连接到自定义的槽函数中&#xff0c;在槽函数中判断ui界面上输入的账号是否为"admin&quo…

静态网页设计——多彩贵州(HTML+CSS+JavaScript)(dw、sublime Text、webstorm、HBuilder X)

前言 声明&#xff1a;该文章只是做技术分享&#xff0c;若侵权请联系我删除。&#xff01;&#xff01; 感谢大佬的视频&#xff1a;https://www.bilibili.com/video/BV1cK411v7R2/?vd_source5f425e0074a7f92921f53ab87712357b 源码&#xff1a;https://space.bilibili.com…

【漏洞复现】锐捷RG-UAC统一上网行为管理系统信息泄露漏洞

Nx01 产品简介 锐捷网络成立于2000年1月&#xff0c;原名实达网络&#xff0c;2003年更名&#xff0c;自成立以来&#xff0c;一直扎根行业&#xff0c;深入场景进行解决方案设计和创新&#xff0c;并利用云计算、SDN、移动互联、大数据、物联网、AI等新技术为各行业用户提供场…

ROS2 Humble学习笔记

本文发表与个人的github pages。部分内容未同步到这里。 想查看完整内容&#xff0c;请移步到ROS2 Humble学习笔记。 一、前言 2013年的时候已经接触ROS了&#xff0c;当时断断续续学习了一些ROS的基础知识。16年搬到深圳之后&#xff0c;也有幸参加过星火的一次关于ROS的一些…

EI级 | Matlab实现VMD-TCN-GRU变分模态分解结合时间卷积门控循环单元多变量光伏功率时间序列预测

EI级 | Matlab实现VMD-TCN-GRU变分模态分解结合时间卷积门控循环单元多变量光伏功率时间序列预测 目录 EI级 | Matlab实现VMD-TCN-GRU变分模态分解结合时间卷积门控循环单元多变量光伏功率时间序列预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 1.【EI级】Matlab实现…

三甲医院ADR智能监测系统源码,药品不良反应智能监测系统全套源码,java语言,自主研发

ADR智能监测系统源码&#xff0c;药品不良反应智能监测系统全套商业项目源码&#xff0c;自主版权 ADR监测上报系统是基于医院临床数据中心而建立&#xff0c;运用信息技术实现药品不良反应的智能监测、报告管理、知识库查询、统计分析等功能。 系统自动提取不良反应报告数据&…

灵活轻巧的java接口自动化测试实战

前言 无论是自动化测试还是自动化部署&#xff0c;撸码肯定少不了&#xff0c;所以下面的基于java语言的接口自动化测试&#xff0c;要想在业务上实现接口自动化&#xff0c;前提是要有一定的java基础。 如果没有java基础&#xff0c;也没关系。这里小编也为大家提供了一套jav…

手撕 PCA

PCA&#xff08;Principal Component Analysis&#xff09;&#xff0c;中文名称&#xff1a;主成分分析。迄今为止最流行的降维算法。 假设 n 维空间中的一个单位立方体&#xff0c;易知&#xff1a;一维空间中该立方体中任意两点的距离不超过 1 1 1&#xff0c;二维空间中该…

【MySQL函数】掌握这些常用函数,让你的数据库操作如虎添翼!

目录 强制走索引 字符串函数 通配符 CONCAT&#xff1a;连接两个或多个字符串 LENGTH&#xff1a;返回字符串的长度 LOWER&#xff1a;将字符串转换为小写 UPPER&#xff1a;将字符串转换为大写 TRIM&#xff1a;删除字符串开头和结尾的空格 字符串转化为number 替换…

24/01/09 qt work

1. 使用手动连接&#xff0c;将登录框中的取消按钮使用qt4版本的连接到自定义的槽函数中&#xff0c;在自定义的槽函数中调用关闭函数 将登录按钮使用qt5版本的连接到自定义的槽函数中&#xff0c;在槽函数中判断ui界面上输入的账号是否为"admin"&#xff0c;密码是…

doris部署

doris-2.0.1.1部署安装 一、下载doris安装包二、解压到/data下&#xff0c;修改名称三、修改fe配置文件四、启动doris-fe五、验证doris-fe六、修改be配置文件七、启动doris-be八、mysql中连接be&#xff0c;在Doris中添加后端节点九、设置密码 一、下载doris安装包 wget https…

【开源】基于JAVA+Vue+SpringBoot的大学计算机课程管理平台

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 实验课程档案模块2.2 实验资源模块2.3 学生实验模块 三、系统设计3.1 用例设计3.2 数据库设计3.2.1 实验课程档案表3.2.2 实验资源表3.2.3 学生实验表 四、系统展示五、核心代码5.1 一键生成实验5.2 提交实验5.3 批阅实…