神经网络(MLP多层感知器)

分类
神经网络可以分为多种不同的类型,下面列举一些常见的神经网络类型:

前馈神经网络(Feedforward Neural Network):前馈神经网络是最基本的神经网络类型,也是深度学习中最常见的神经网络类型。它由若干个神经元按照一定的层次结构组成,每个神经元接收上一层的输出,产生本层的输出,从而实现信息的传递和处理。

卷积神经网络(Convolutional Neural Network):卷积神经网络是一种专门用于图像处理和计算机视觉任务的神经网络类型。它通过卷积和池化等操作,可以提取图像中的特征,从而实现图像分类、目标检测、图像分割等任务。

循环神经网络(Recurrent Neural Network):循环神经网络是一种能够处理序列数据的神经网络类型。它通过记忆单元和门控机制等方式,可以处理任意长度的序列数据,从而实现自然语言处理、语音识别等任务。

自编码器(Autoencoder):自编码器是一种无监督学习的神经网络类型,它的目标是将输入数据进行压缩和解压缩,从而实现特征提取和降维等任务。

深度置信网络(Deep Belief Network):深度置信网络是一种由多个受限玻尔兹曼机组成的神经网络类型。它可以通过逐层贪心预训练和微调等方式,实现高效的特征学习和分类任务。

多层感知器(MLP)
MLP神经网络属于前馈神经网络(Feedforward Neural Network)的一种。在网络训练过程中,需要通过反向传播算法计算梯度,将误差从输出层反向传播回输入层,用于更新网络参数。这个过程中需要使用反向传播算法来计算梯度,并且在某些类型的神经网络中,例如循环神经网络(RNN),也存在反馈回路。除了MLP,其他常见的前馈神经网络包括卷积神经网络(CNN)和循环神经网络(RNN)等。
 

网络结构图

从输入层到隐藏层

连接输入层和隐藏层的是W1和b1。由X计算得到H十分简单,就是矩阵运算:
H = w ∗ x + b 
如果你学过线性代数,对这个式子一定不陌生,可以理解为w是一个权重(权重越高,这个特征也就越重要),b是一个偏置,如果有多个特征那么就有个w,还记得w T ∗ x 

如上图中所示,在设定隐藏层为50维(也可以理解成50个神经元)之后,矩阵H的大小为(4*50)的矩阵。

也就是说50个神经元就是一个矩阵50个特征,每一行就是他的w值,这里输入层总共两个维度,所有只有w1和w2,b值这里就不说了,假设为0

从隐藏层到输出层

连接隐藏层和输出层的是W2和b2,输入就是隐藏层输入的H值。同样是通过矩阵运算进行的:
Y = w 2 ∗ H + b 2 
最终输出层,最终是4个象限
H是450的矩阵,输出层的w2矩阵就是个504,最终得到一个4*4的矩阵

1. H是4*50的矩阵其实是一个列是神经元50个,行是4个数据集的经过第一轮计算的输出值H,隐藏层的目的就是计算出一个H值。
2. 输出层的 w矩阵是50*4,目的是为了将50个神经元压缩到4个输出特征,也就是每一个数据集在4个象限的概率。所以最终输出是4*4
 

激活层

  • 阶跃函数:当输入小于等于0时,输出0;当输入大于0时,输出1。
  • Sigmoid:当输入趋近于正无穷/负无穷时,输出无限接近于1/0。
  • ReLU:当输入小于0时,输出0;当输入大于0时,输出等于输入。

需要注意的是,每个隐藏层计算(矩阵线性运算)之后,都需要加一层激活层,要不然该层线性计算是没有意义的。

反向传播与参数优化

上面的过程其实就是神经网络的正向传播过程 ,一句话复习一下:神经网络的传播都是形如Y=WX+b的矩阵运算;为了给矩阵运算加入非线性,需要在隐藏层中加入激活层;输出层结果需要经过Softmax层处理为概率值,并通过交叉熵损失来量化当前网络的优劣。

算出交叉熵损失后,就要开始反向传播了。其实反向传播就是一个参数优化的过程,优化对象就是网络中的所有W和b(因为其他所有参数都是确定的)。

神经网络需要反复迭代。如上述例子中,第一次计算得到的概率是90%,交叉熵损失值是0.046;将该损失值反向传播,使W1,b1,W2,b2做相应微调;再做第二次运算,此时的概率可能就会提高到92%,相应地,损失值也会下降,然后再反向传播损失值,微调参数W1,b1,W2,b2。依次类推,损失值越来越小,直到我们满意为止。

此时我们就得到了理想的W1,b1,W2,b2
 

过拟合

过拟合是指模型在训练数据上表现很好,但在测试数据上表现不佳的现象。这通常是由于模型过于复杂,而训练数据又过少或过于噪声导致的。通过使用Dropout技术,我们可以减少模型的复杂度,并使其更加适应不同的训练数据。这样,我们就可以更好地泛化模型,从而在测试数据上获得更好的表现。

Dropout是一种在神经网络中用于防止过拟合的技术。它是通过在训练期间随机将一些节点的输出设置为0来实现的。具体来说,每个节点有一定的概率被“关闭”,即其输出被设置为0。这样,节点之间的连接就会被随机断开,从而迫使网络学习更加鲁棒的特征,而不是依赖特定的节点或连接。这种随机性可以被看作是一种正则化技术,可以有效地防止过拟合。

每个神经元由两部分组成,第一部分(e)是输入值和权重系数乘积的和,第二部分(f(e))是一个激活函数(非线性函数)的输出, y=f(e)即为某个神经元的输出,如下:

前向传播

第一层神经网络传播

反向传播
到这里为止,神经网络的前向传播已经完成,最后输出的y就是本次前向传播神经网络计算出来的结果(预测结果),但这个预测结果不一定是正确的,要和真实的标签(z)相比较,计算预测结果和真实标签的误差δ ,具体的图解过程,这里就不在赘述。


 

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

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

相关文章

IDEA使用模板创建webapp时,web.xml文件版本过低的一种解决方法

创建完成后的web.xml 文件&#xff0c;版本太低 <!DOCTYPE web-app PUBLIC"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN""http://java.sun.com/dtd/web-app_2_3.dtd" ><web-app><display-name>Archetype Created Web Appl…

Unity设计模式——模板模式

模板方法模式&#xff0c;定义一个操作中的算法的骨架&#xff0c;而将一些步骤延迟到子类中。模板方法使得 子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 Abstract Class 是抽象类&#xff0c;其实也就是一抽象模板&#xff0c;定义并实现了一个模版方法。这…

主从Reactor高并发服务器

文章目录 Reactor模型的典型分类单Reactor单线程单Reactor多线程多Reactor多线程本项目中实现的主从Reactor One Thread One Loop各模型的优点与缺点 项目分解Reactor服务器模块BufferSocketChannelEpollerTimerWheelEventLoopAnyConnectionAcceptorLoopThreadLoopThreadPoolTc…

嵌入式Linux裸机开发(五)中断管理

系列文章目录 文章目录 系列文章目录前言STM32 中断系统IMX6U中断控制8个中断GIC中断控制器GIC介绍中断IDGIC逻辑分块GIC协处理器 中断使能中断优先级 重点代码分析官方SDK函数start.S文件自行编写中断驱动文件 前言 最近在学习中发现&#xff0c;学Linux嵌入式不仅是对Linux的…

c语言终点站--文件操作

前言&#xff1a; 为什么要学习文件操作呢&#xff1f;想要知道这个问题&#xff0c;我们就需要先了解什么是数据的可持久化。 那么什么是数据的可持久化呢&#xff1f;数据的可持久化就是把内存中的数据对象永久的保存在电脑的磁盘文件中&#xff0c;将程序数据在持久状态和…

Three.js如何计算3DObject的2D包围框?

推荐&#xff1a;用 NSDT编辑器 快速搭建可编程3D场景 在Three.js应用开发中&#xff0c;有时你可能需要为3D场景中的网格绘制2D的包围框&#xff0c;应该怎么做&#xff1f; 朴素的想法是把网格的3D包围框投影到屏幕空间&#xff0c;例如&#xff0c;下图中的绿色框 3D包围框…

LeetCode【84】柱状图中的最大矩形

题目&#xff1a; 思路&#xff1a; https://blog.csdn.net/qq_28468707/article/details/103682528 https://www.jianshu.com/p/2b9a36a548fa 清晰 代码&#xff1a; public int largestRectangleArea(int[] heights) {int[] heightadd new int[heights.length 1];for (i…

php+html+js+ajax实现文件上传

phphtmljsajax实现文件上传 目录 一、表单单文件上传 1、上传页面 2、接受文件上传php 二、表单多文件上传 1、上传页面 2、接受文件上传php 三、表单异步xhr文件上传 1、上传页面 2、接受文件上传php 四、表单异步ajax文件上传 1、上传页面 2、接受文件上传ph…

typora常用偏好设置

启用自动保存 关闭拼写检查 插入图片的设置 将图片保存在当前文件夹内 换行设置 关闭换行符的显示功能

ElementUI增删改的实现及表单验证

文章目录 一、准备二、添加功能2.1 新增添加按钮2.2 添加弹出框2.3 data中添加内容2.4 methods中添加相关方法 三、编辑功能3.1 表格中添加编辑和删除按钮3.2 methods中添加方法3.3 修改methods中clear方法3.4 修改methods中的handleSubmit方法 四、删除书籍功能4.1 往methods的…

【LeetCode刷题笔记】哈希查找

771. 宝石与石头 解题思路&#xff1a; 1. HashSet &#xff0c;把所有 宝石 加入 set , 然后遍历检查 每一块石头是否包含在set中 &#xff0c;若包含就是宝石。 2. 计数数组map, 把所有 宝石 进行 count 数组 计数 &#xff0c;, 然后遍历检查 每一块石头是否 count[stone] …

算法错题簿(持续更新)

自用算法错题簿&#xff0c;按算法与数据结构分类 python1、二维矩阵&#xff1a;记忆化搜索dp2、图论&#xff1a;DFS3、回溯&#xff1a;129612964、二叉树&#xff1a;贪心算法5、字符串&#xff1a;记忆化搜索6、01字符串反转&#xff1a;结论题7、二进制数&#xff1a;逆向…