【机器学习9】前馈神经网络

深度前馈网络是一类网络模型的统称,主要包括多层感知机、 自编码器、限制玻尔兹曼机, 以及卷积神经网络等。

1 激活函数

激活函数及对应导函数其它
Sigmoid在这里插入图片描述 在这里插入图片描述在这里插入图片描述导数 在z很大或很小时都会趋近于0, 造成梯度消失的现象
Tanh在这里插入图片描述 在这里插入图片描述在这里插入图片描述其导数在z很大或很小时都会趋近于0, 同样会出现“梯度消失
ReLU在这里插入图片描述 在这里插入图片描述在这里插入图片描述ReLU只需要一个阈值即可得到激活值,有效地解决梯度消失的问题,单侧抑制提供了网络的稀疏表达能力。局限性在于其训练过程中会导致神经元死亡的问题 :负梯度在经过该ReLU单元时被置为0, 且在之后也不被任何数据激活, 即流经该神经元的梯度永远为0, 不对任何数据产生响应。
LReLU在这里插入图片描述在这里插入图片描述既实现了单侧抑制, 又保留了部分负梯度信息以致不完全丢失。但a值的选择增加了问题难度, 需要较强的人工先验或多次重复训练以确定合适的参数值
PReLU与LReLU的主要区别是将负轴部分斜率a作为网络中一个可学习的参数, 进行反向传播训练, 与其他含参数网络层联合优化。

2 多层感知机

2.1 网络结构

定义第(l)层的输入为x(l), 输出为a(l); 在每一层中, 首先利用输入x(l)和偏置b(l)计算仿射变换z(l)=W(l)x(l)+b(l); 然后激活函数f作用于z(l), a(l)直接作为下一层的输入, 即x(l+1)。
在这里插入图片描述
在网络训练中, 前向传播最终产生一个标量损失函数, 反向传播算法(BackPropagation) 则将损失函数的信息沿网络层向后传播用以计算梯度, 达到优化网络参数的目的。

2.2 平方误差和交叉熵损失函数

给定包含m样本的集合 , 其整体代价函数为:

在这里插入图片描述

其中第一项为平方误差项, 第二项为L2正则化项。
梯度下降法中每次迭代对参数W(网络连接权重) 和b(偏置) 进行更新:
在这里插入图片描述
在这里插入图片描述下面针对两种不同的损失函数计算最后一层的残差δ(L); 得到δ(L)之后, 其他层的残差δ(L−1),…, δ(1)可以根据上面得到的递推公式计算。 进行简化计算,重点关注梯度产生的损失:

在这里插入图片描述

平方损失函数更适合输出为连续, 并且最后一层不含Sigmoid或Softmax激活函数的神经网络; 交叉熵损失则更适合二分类或多分类的场景。

3 Dropout和批量归一化

3.1Dropout

要求某个神经元节点激活值以一定的概率p被“丢弃”,即该神经元暂时停止工作。对于任意神经元, 每次训练中都与一组随机挑选的不同的神经元集合共同进行优化, 这个过程会减弱全体神经元之间的联合适应性, 减少过拟合的风险, 增强泛化能力。
在这里插入图片描述

3.2批量归一化

神经网络训练过程的本质是学习数据分布, 如果训练数据与测试数据的分布不同将大大降低网络的泛化能力, 因此我们需要在训练开始前对所有输入数据进行归一化处理。批量归一化方法是针对每一批数据, 在网络的每一层输入之前增加归一化处理(均值为0, 标准差为1)
在这里插入图片描述
其中x(k)为该层第k个神经元的原始输入数据, E[x(k)]为这一批输入数据在第k个神经元的均值, 在这里插入图片描述为这一批数据在第k个神经元的标准差。
批量归一化可以看作在每一层输入和上一层输出之间加入了一个新的计算层, 对数据的分布进行额外的约束, 从而增强模型的泛化能力。 但是批量归一化同时也降低了模型的拟合能力, 归一化之后的输入分布被强制为0均值和1标准差。 为了恢复原始数据分布, 具体实现中引入了变换重构以及可学习参数γ和β:
在这里插入图片描述
其中γ(k)和β(k)分别为输入数据分布的方差和偏差。在批量归一化操作中, γ和β变成了该层的学习参数, 仅用两个参数就可以恢复最优的输入数据分布, 与之前网络层的参数解耦, 从而更加有利于优化的过程, 提高模型的泛化能力。

4深度卷积神经网络

卷积神经网络特点是每层的神经元节点只响应前一层局部区域范围内的神经元。
深度卷积神经网络模型通常由若干卷积层叠加若干全连接层组成, 中间也包含各种非线性操作以及池化操作。
由于卷积运算主要用于处理类网格结构的数据, 因此对于时间序列以及图像数据的分析与识别具有显著优势。
卷积操作的本质特性包括稀疏交互和参数共享。

4.1 稀疏交互

卷积核尺度远小于输入的维度, 这样每个输出神经元仅与前一层特定局部区域内的神经元存在连接权重(即产生交互) , 我们称这种特性为稀疏交互, 假设网络中相邻两层分别具有m个输入和n个输出, 全连接网络中的权值参数矩阵将包含m×n个参数。 对于稀疏交互的卷积网络, 如果限定每个输出与前一层神经元的连接数为k, 那么该层的参数总量为k×n。
全连接层

卷积层

稀疏交互的物理意义是, 通常图像、 文本、 语音等现实世界中的数据都具有局部的特征结构, 我们可以先学习局部的特征, 再将局部的特征组合起来形成更复杂和抽象的特征。 以人脸识别为例, 最底层的神经元可以检测出各个角度的边缘特征 ; 位于中间层的神经元可以将边缘组合起来得到眼睛、鼻子、 嘴巴等复杂特征 ; 最后, 位于上层的神经元可以根据各个器官的组合检测出人脸的特征 。

4.2 参数共享

参数共享是指在同一个模型的不同模块中使用相同的参数, 它是卷积运算的固有属性。
全连接网络中, 计算每层的输出时, 权值参数矩阵中的每个元素只作用于某个输入元素一次; 而在卷积神经网络中, 卷积核中的每一个元素将作用于每一次局部输入的特定位置上。 根据参数共享的思想, 我们只需要学习一组参数集合, 而不需要针对每个位置的每个参数都进行优化。

4.3 池化

池化操作的本质是降采样。 池化操作除了能显著降低参数量外, 还能够保持对平移、 伸缩、 旋转操作的不变性。

原理特点
均值池化通过对邻域内特征数值求平均来实现, 能够抑制由于邻域大小受限造成估计值方差增大的现象对背景的保留效果更好
最大池化通过取邻域内特征的最大值来实现, 能够抑制网络参数误差造成估计均值偏移的现象更好地提取纹理信息
相邻重叠区域的池化采用比窗口宽度更小的步长, 使得窗口在每次滑动时存在重叠的区域
空间金字塔池化主要考虑了多尺度信息的描述, 例如同时计算1×1、 2×2、 4×4的矩阵的池化并将结果拼接在一起作为下一网络层的输入

5深度残差网络

5.1 梯度消失

在2.2中推导的误差传播公式为:
在这里插入图片描述

如果再展开所有层的话,就涉及很多参数以及导数的连乘,这时误差很容易产生消失或者膨胀, 影响对该层参数的正确学习。 因此深度神经网络的拟合和泛化能力较差, 有时甚至不如浅层的神经网络模型精度更高。
在这里插入图片描述

ResNet把网络结构调整为, 既然离输入近的神经网络层较难训练, 那么我们可以将它短接到更靠近输出的层,输入x经过两个神经网络的变换得到F(x), 同时也短接到两层之后, 最后这个包含两层的神经网络模块输出H(x)=F(x)+x。

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

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

相关文章

客户管理系统升级,助力企业快速增长——API线索对接功能

在数字化时代,企业需要迅速适应不断变化的市场需求,实现高效的客户管理,以便迅速发现商机并提供更好的客户体验。为了助力企业取得成功,客户管理系统的API线索对接功能应运而生,带来更多机会、更高效率以及更全面的客户…

WebStorm配置less编译wxss或css

文章目录 前言先下载安装less程序:实参:要刷新的输出路径成功 前言 使用WebStorm写微信小程序,wxss写着很麻烦,就想着用less,接下来是配置less编译 先下载安装less npm install -g lessless会安装在你当前目录下(以D…

springboot苍穹外卖实战:十、缓存菜品(手动用redisTemplate实现缓存逻辑)+缓存套餐(Spring cache实现)

缓存菜品 缺点 缓存和数据库的数据一致性通常解决方案:延时双删、异步更新缓存、分布式锁。 该项目对于缓存菜品的处理较为简单,实际可以用管道技术提高redis的操作效率、同时cache自身有注解提供使用。 功能设计与缓存设计 建议这部分去看下原视频&…

在Spring Boot中使用进程内缓存和Cache注解

在Spring Boot中使用内缓存的时候需要预先知道什么是内缓存,使用内缓存的好处。 什么是内缓存 内缓存(也称为进程内缓存或本地缓存)是指将数据存储在应用程序的内存中,以便在需要时快速访问和检索数据,而无需每次都从…

(四)什么是Vite——冷启动时vite做了什么(源码、middlewares)

vite分享ppt,感兴趣的可以下载: ​​​​​​​Vite分享、原理介绍ppt 什么是vite系列目录: (一)什么是Vite——vite介绍与使用-CSDN博客 (二)什么是Vite——Vite 和 Webpack 区别&#xff0…

Uniapp-小程序自定义导航栏

一、项目背景 制作小程序页面时候发现原生导航栏有一定的高度是没有背景渲染的会出现这种情况 但是我们需要的是 二、原因 小程序的原生导航栏存在。一般可以使用 纯色填充顶部栏 可以直接使用navigationBarBackgroundColor完成 在style中添加 "navigationBarBackgrou…

深入了解域名与SSL证书的关系

在如今数字化的世界里,网络安全成为我们关注的重要议题之一。为了确保数据在网络上传输的安全性,我们通常会采取各种安全措施,其中最常用的就是SSL证书。然而,很多人并不了解SSL证书是如何与域名相互关联的。 首先,我…

Pytorch自动混合精度的计算:torch.cuda.amp.autocast

1 autocast介绍 1.1 什么是AMP? 默认情况下,大多数深度学习框架都采用32位浮点算法进行训练。2017年,NVIDIA研究了一种用于混合精度训练的方法,该方法在训练网络时将单精度(FP32)与半精度(FP16)结合在一起&#xff…

如何解决网页中的pdf文件无法下载?pdf打印显示空白怎么办?

问题描述 偶然间,遇到这样一个问题,一个网页上的附件pdf想要下载打印下来,奈何尝试多种办法都不能将其下载下载,点击打印出现的也是一片空白 百度搜索了一些解决方案都不太行,主要解决方案如:https://zh…

Open3D-ML点云语义分割【RandLA-Net】

作为点云 Open3D-ML 实验的一部分,我撰写了文章解释如何使用 Tensorflow 和 PyTorch 支持安装此库。 为了测试安装,我解释了如何运行一个简单的 Python 脚本来可视化名为 SemanticKITTI 的语义分割标记数据集。 在本文中,我将回顾在任何点云上…

uniapp h5发行

前端使用uniapp开发项目完成后,需要将页面打包,生成H5的静态文件,部署在服务器上。 这样通过服务器链接地址,直接可以在手机上点开来访问。 打包全步骤如下: 首先在manifest.json文件中进行基础配置,获取…

【SpringBoot篇】分页查询 | 扩展SpringMvc的消息转换器

文章目录 🛸什么是分页查询🌹代码实现⭐问题🎄解决方法 做了几个项目,发现在这几个项目里面,都实现了分页查询效果,所以就总结一下,方便学习 我们基于黑马程序员的苍穹外卖来讲解分页查询的要点…

黑马程序员微服务 分布式搜索引擎3

分布式搜索引擎03 0.学习目标 1.数据聚合 **聚合(aggregations)**可以让我们极其方便的实现对数据的统计、分析、运算。例如: 什么品牌的手机最受欢迎?这些手机的平均价格、最高价格、最低价格?这些手机每月的销售…

哪种猫罐头比较好?推荐给新手养猫的5款好口碑猫罐头!

新手养猫很容易陷入疯狂购买的模式,但有些品牌真的不能乱买!现在的大环境不太好,我们需要学会控制自己的消费欲望,把钱花在刀刃上!哪种猫罐头比较好?现在宠物市场真的很内卷,很多品牌都在比拼产…

字母不重复的子串-第15届蓝桥第二次STEMA测评Scratch真题精选

[导读]:超平老师的《Scratch蓝桥杯真题解析100讲》已经全部完成,后续会不定期解读蓝桥杯真题,这是Scratch蓝桥杯真题解析第158讲。 第15届蓝桥第2次STEMA测评已于2023年10月29日落下帷幕,编程题一共有6题,分别如下&am…

无需云盘,不限流量实现Zotero跨平台同步:内网穿透+私有WebDAV服务器

🔥博客主页: 小羊失眠啦. 🎥系列专栏:《C语言》 《数据结构》 《Linux》《Cpolar》 ❤️感谢大家点赞👍收藏⭐评论✍️ 无需云盘,不限流量实现Zotero跨平台同步:内网穿透私有WebDAV服务器 文章目…

2-10岁女童冬季穿搭怎么选?麻麻们看这里

分享适合女宝的羽绒服穿搭 这种黄色真的超好看 吸睛显白怎么穿都好看 长款连帽设计,精致走线 冬天穿时尚又好看!!

数据结构—LinkedList与链表

目录 一、链表 1. 链表的概念及结构 1. 单向或者双向 2. 带头或者不带头 3. 循环或者非循环 二.LinkedList的使用 1.LinkedList概念及结构 2. LinkedList的构造 3. LinkedList的方法 三. ArrayList和LinkedList的区别 一、链表 1. 链表的概念及结构 链表是一种 物理…

基于Qt 多线程(继承 QObject 的线程)

​ 继承 QThread 类是创建线程的一种方法,另一种就是继承QObject 类。继承 QObject 类更加灵活。它通过 QObject::moveToThread()方法,将一个 QObeject的类转移到一个线程里执行。恩,不理解的话,我们下面也画个图捋一下。 通过上面的图不难理解,首先我们写一个类继承 QObj…

Ladybug 全景相机, 360°球形成像,带来全方位的视觉体验

360无死角全景照片总能给人带来强烈的视觉震撼,有着大片的既视感。那怎么才能拍出360球形照片呢?它的拍摄原理是通过图片某个点位为中心将图片其他部位螺旋式、旋转式处理,从而达到沉浸式体验的效果。俗话说“工欲善其事,必先利其…