神经网络(系统性学习三):多层感知机(MLP)
相关文章:
神经网络中常用的激活函数
神经网络(系统性学习一):入门篇
神经网络(系统性学习二):单层神经网络(感知机)
多层感知机(MLP)
多层感知机(MLP)是一种经典的前馈神经网络(Feedforward Neural Network),通常用于解决分类、回归、监督学习任务。它由一个输入层、一个或多个隐藏层和一个输出层组成。
网络结构
-
输入层:接收数据输入,特征维度等于数据的特征数。
-
隐藏层:一个或多个隐藏层,每层包含若干个神经元,负责提取数据的特征。
-
输出层:根据任务(分类或回归)输出最终的结果。
主要参数
-
权重(Weights):连接各层神经元的参数,决定信号的强弱。
-
偏置:为每个神经元添加额外的灵活性。
-
超参数:学习率、隐藏层数、每个隐藏层的神经元数等
特别强调:每个神经元之间的权重和偏置绝大多数时候不相同!!!
核心步骤
以隐藏层只有一层为例。
(一)初始化权重和偏置
初始化权重和偏置矩阵。即对每个神经元之间的权重和偏置随机设定一个初始值。
1.1 避免对称性问题
如果所有权重都初始化为相同的值(比如都为0),反向传播计算的梯度对所有权重的更新将是完全相同的。这会导致所有神经元学习到相同的特征,从而失去模型的表达能力。
1.2 权重的初始化
权重的初始化影响网络的输入和输出值的分布。如果初始化值过大,可能导致激活函数的输出进入饱和区(如Sigmoid激活函数趋近于0或1),使得梯度变得极小,网络难以训练(梯度消失问题)。如果初始化值过小,网络学习速度会很慢。
权重可以初始化为均值为0的小随机值。
常见方法包括:
-
均匀分布:随机生成值在 [−a,a] 区间内。
-
正态分布:随机生成值符合
。
1.3 偏置的作用
偏置的初始化相对简单,通常设为零或一个小的随机值即可。它的作用是为神经元提供一个额外的自由度,允许模型学习非零输出。
(二)选择损失函数、激活函数
对于分类问题,常用交叉熵损失函数,对于回归问题,常用均方误差损失函数。以MSE损失函数为例,我们假定损失函数为L:
其中, 是预测值,
是真实标签。
激活函数的选择参考文章:常见的激活函数
(三)前向传播
1、从输入层到隐藏层
假设输入层的神经元为 ,隐藏层的神经元为
(隐藏层有 k 个神经元)。输入到第 j 个隐藏层神经元 hj 的计算公式如下:
其中:
-
是第 j 个隐藏层神经元与第 i 个输入神经元之间的权重。
-
xi 是输入层第 i 个神经元的输入值。
-
bj 是第 j 个隐藏层神经元的偏置。
经过激活函数 ,得到隐藏层神经元的输出:
2、从隐藏层到输出层
隐藏层的输出 将作为输入传递到输出层的神经元。假设输出层有 m 个神经元,输出层的第
个神经元的计算公式为:
其中:
-
是第
个输出层神经元与第 i 个隐藏层神经元之间的权重。
-
是隐藏层第 i 个神经元的输出值。
-
是第
个输出层神经元的偏置。
同样,经过激活函数(通常是Softmax或Sigmoid)后,得到输出层的输出:
反向传播与权重更新
(四)误差计算与反向传播
训练MLP时,使用反向传播算法来更新网络中的权重和偏置。反向传播算法基于链式法则计算损失函数对每个权重和偏置的梯度,然后使用梯度下降法(默认使用全批量梯度下降)来更新参数。
假设损失函数为 L,权重为 w,偏置为 b,则每个权重和偏置的更新规则为:
其中 η 是学习率, 和
是损失函数关于权重和偏置的偏导数。
(五)迭代过程
重复步骤三和步骤四,不断迭代更新权重和偏置。
终止条件:达到最大迭代次数、损失收敛、目标性能达标等。
注:整个过程只以一个隐藏层为例,如果有多个隐藏层,从隐藏层到隐藏层之间的传递也是类似的。也是以上一层的输出作为该层的输入,并通过激活函数将该层输入转化为该层的输出;其次就是注意每个神经元之间的权重和偏置不一样。
MLP优缺点总结
MLP 是一种通用的神经网络模型,广泛用于分类、回归、特征提取和强化学习等任务。尽管它的能力和表现已经被更复杂的模型(如卷积神经网络 CNN 和循环神经网络 RNN)在某些领域超越,但由于其简单性和强大的非线性拟合能力,MLP仍然是很多基础任务和小型数据集问题中的首选模型。同时,它常常作为其他复杂模型中的子模块,为解决复杂问题提供基础支持。
# 若对大噶有帮助的话,希望点个赞支持一下叭!
相关文章:

神经网络(系统性学习三):多层感知机(MLP)
相关文章: 神经网络中常用的激活函数 神经网络(系统性学习一):入门篇 神经网络(系统性学习二):单层神经网络(感知机) 多层感知机(MLP) 多层感…...

07-SpringCloud-Gateway新一代网关
一、概述 1、Gateway介绍 官网:https://spring.io/projects/spring-cloud-gateway Spring Cloud Gateway组件的核心是一系列的过滤器,通过这些过滤器可以将客户端发送的请求转发(路由)到对应的微服务。 Spring Cloud Gateway是加在整个微服务最前沿的防…...
HTML 表单实战:从创建到验证
HTML表单是用于收集用户输入数据的一种方式,可以用于创建各种类型的表单,例如登录表单、注册表单、调查问卷表单等。本文将详细介绍表单元素的使用,并利用JavaScript实现对表单数据的验证。 HTML表单元素的使用 输入框<input> <i…...

【redis 】string类型详解
string类型详解 一、string类型的概念二、string类型的常用指令2.1 SET2.2 GET2.3 MSET2.4 MGET2.5 SETNX2.6 INCR2.7 INCRBY2.8 DECR2.9 DECRBY2.10 INCRBYFLOAT2.11 APPEND2.12 GETRANGE2.13 SETRANGE2.14 STRLEN 三、string类型的命令小结四、string类型的内部编码五、strin…...

Vue.js 学习总结(13)—— Vue3 version 计数介绍
前言 Vue3.5 提出了两个重要概念:version计数和双向链表,作为在内存和计算方面性能提升的最大功臣。既然都重要,那就单挑 version 计数来介绍,它在依赖追踪过程中,起到快速判断依赖项有没有更新的作用,所以…...

【数据结构】【线性表】一文讲完队列(附C语言源码)
队列 队列的基本概念基本术语基本操作 队列的顺序实现顺序队列结构体的创建顺序队列的初始化顺序队列入队顺序队列出队顺序队列存在的问题分析循环队列代码汇总 队列的链式实现链式队列的创建链式队列初始化-不带头结点链式队列入队-不带头节点链式队列出队-不带头结点带头结点…...

2024年11月最新 Alfred 5 Powerpack (MACOS)下载
在现代数字化办公中,我们常常被繁杂的任务所包围,而时间的高效利用成为一项核心需求。Alfred 5 Powerpack 是一款专为 macOS 用户打造的高效工作流工具,以其强大的定制化功能和流畅的用户体验,成为众多效率爱好者的首选。 点击链…...
ODBC连接PostgreSQL数据库后,网卡DOWN后,客户端进程阻塞问题解决方法
问题现象:数据库客户端进程数据库连接成功后,再把跟数据库交互的网卡down掉,客户端进程就会阻塞,无法进行其他处理。该问题跟TCP keepalive机制有关。 可以在odbc.ini文件中增加相应的属性来解决,在odbc.ini 增加如下…...
VsCode使用git提交很慢(一直显示在提交)_vscode commit很慢解决方法
VsCode使用git提交很慢(一直显示在提交)_vscode commit很慢...

linux从0到1——shell编程9
声明! 学习视频来自B站up主 **泷羽sec** 有兴趣的师傅可以关注一下,如涉及侵权马上删除文章,笔记只是方便各位师傅的学习和探讨,文章所提到的网站以及内容,只做学习交流,其他均与本人以及泷羽sec团队无关&a…...

计算机网络技术专业,热门就业方向和就业前景
前言 在数字化飞速发展的今天,计算机网络技术专业成为了众多学子和职场人士关注的焦点。这一专业不仅涵盖了计算机硬件、软件和网络通信等多个领域的知识,更在就业市场上展现出强大的竞争力。本文将带您一探计算机网络技术专业的就业方向和就业前景&…...
C++中定义类型名的方法
什么是 C 中的类型别名和 using 声明? 类型别名与using都是为了提高代码的可读性。 有两种方法可以定义类型别名 一种是使用关键字typedef起别名使用别名声明来定义类型的别名,即使用using. typedef 关键字typedef作为声明语句中的基本数据类型的一…...
从零开始学习 sg200x 多核开发之 camera-sensor 添加与测试
sg2002 集成了 H.264 视频压缩编解码器, H.265 视频压缩编码器和 ISP;支持 HDR 宽动态、3D 降噪、除雾、镜头畸变校正等多种图像增强和矫正算法。 sophpi 中没有提供相关图像 sensor。本次实验是在 milkv-duo256m 上添加 GC2083。 GC2083 格科微的 GC2083 是一款…...

前端三剑客(二):CSS
目录 1. CSS 基础 1.1 什么是 CSS 1.2 语法格式 1.3 引入方式 1.3.1 行内样式 1.3.2 内部样式 1.3.3 外部样式 1.4 CSS 编码规范 2. 选择器 2.1 标签选择器 2.2 id 选择器 2.3 class 选择器(类选择器) 2.4 复合选择器 2.5 通配符选择器 3. 常用 CSS 样式 3.1 c…...

国土变更调查拓扑错误自动化修复工具的研究
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 一、拓扑错误的形成原因 1.边界不一致 2.不规则图形 3.尖锐角 4.局部狭长 5.细小碎面 6.更新层相互重叠 二、修复成果展示 1.边界不一致 2.不规则图形 3.尖锐角 4.局部狭…...

深度学习图像视觉 RKNN Toolkit2 部署 RK3588S边缘端 过程全记录
深度学习图像视觉 RKNN Toolkit2 部署 RK3588S边缘端 过程全记录 认识RKNN Toolkit2 工程文件学习路线: Anaconda Miniconda安装.condarc 文件配置镜像源自定义conda虚拟环境路径创建Conda虚拟环境 本地训练环境本地转换环境安装 RKNN-Toolkit2:添加 lin…...
Linux应用编程(C语言编译过程)
目录 1. 举例 2.预处理 2.1 预处理命令 2.2 .i文件内容解读 3.编译 4.汇编 5.链接 5.1 链接方式 5.1.1 静态链接 5.1.2 动态链接 5.1.3 混合链接 1. 举例 Linux的C语言开发,一般选择GCC工具链进行编译,通过下面的例子来演示GCC如何使用&#…...

ssm实战项目──哈米音乐(二)
目录 1、流派搜索与分页 2、流派的添加 3、流派的修改 4、流派的删除 接上篇:ssm实战项目──哈米音乐(一),我们完成了项目的整体搭建,接下来进行后台模块的开发。 首先是流派模块: 在该模块中采用分…...

Python 获取微博用户信息及作品(完整版)
在当今的社交媒体时代,微博作为一个热门的社交平台,蕴含着海量的用户信息和丰富多样的内容。今天,我将带大家深入了解一段 Python 代码,它能够帮助我们获取微博用户的基本信息以及下载其微博中的相关素材,比如图片等。…...

Flink学习连载第二篇-使用flink编写WordCount(多种情况演示)
使用Flink编写代码,步骤非常固定,大概分为以下几步,只要牢牢抓住步骤,基本轻松拿下: 1. env-准备环境 2. source-加载数据 3. transformation-数据处理转换 4. sink-数据输出 5. execute-执行 DataStream API开发 //n…...
PHP和Node.js哪个更爽?
先说结论,rust完胜。 php:laravel,swoole,webman,最开始在苏宁的时候写了几年php,当时觉得php真的是世界上最好的语言,因为当初活在舒适圈里,不愿意跳出来,就好比当初活在…...

SCAU期末笔记 - 数据分析与数据挖掘题库解析
这门怎么题库答案不全啊日 来简单学一下子来 一、选择题(可多选) 将原始数据进行集成、变换、维度规约、数值规约是在以下哪个步骤的任务?(C) A. 频繁模式挖掘 B.分类和预测 C.数据预处理 D.数据流挖掘 A. 频繁模式挖掘:专注于发现数据中…...

04-初识css
一、css样式引入 1.1.内部样式 <div style"width: 100px;"></div>1.2.外部样式 1.2.1.外部样式1 <style>.aa {width: 100px;} </style> <div class"aa"></div>1.2.2.外部样式2 <!-- rel内表面引入的是style样…...
【JavaSE】绘图与事件入门学习笔记
-Java绘图坐标体系 坐标体系-介绍 坐标原点位于左上角,以像素为单位。 在Java坐标系中,第一个是x坐标,表示当前位置为水平方向,距离坐标原点x个像素;第二个是y坐标,表示当前位置为垂直方向,距离坐标原点y个像素。 坐标体系-像素 …...
稳定币的深度剖析与展望
一、引言 在当今数字化浪潮席卷全球的时代,加密货币作为一种新兴的金融现象,正以前所未有的速度改变着我们对传统货币和金融体系的认知。然而,加密货币市场的高度波动性却成为了其广泛应用和普及的一大障碍。在这样的背景下,稳定…...

【分享】推荐一些办公小工具
1、PDF 在线转换 https://smallpdf.com/cn/pdf-tools 推荐理由:大部分的转换软件需要收费,要么功能不齐全,而开会员又用不了几次浪费钱,借用别人的又不安全。 这个网站它不需要登录或下载安装。而且提供的免费功能就能满足日常…...

云原生安全实战:API网关Kong的鉴权与限流详解
🔥「炎码工坊」技术弹药已装填! 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 一、基础概念 1. API网关(API Gateway) API网关是微服务架构中的核心组件,负责统一管理所有API的流量入口。它像一座…...
LRU 缓存机制详解与实现(Java版) + 力扣解决
📌 LRU 缓存机制详解与实现(Java版) 一、📖 问题背景 在日常开发中,我们经常会使用 缓存(Cache) 来提升性能。但由于内存有限,缓存不可能无限增长,于是需要策略决定&am…...

GO协程(Goroutine)问题总结
在使用Go语言来编写代码时,遇到的一些问题总结一下 [参考文档]:https://www.topgoer.com/%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8B/goroutine.html 1. main()函数默认的Goroutine 场景再现: 今天在看到这个教程的时候,在自己的电…...

CVPR2025重磅突破:AnomalyAny框架实现单样本生成逼真异常数据,破解视觉检测瓶颈!
本文介绍了一种名为AnomalyAny的创新框架,该方法利用Stable Diffusion的强大生成能力,仅需单个正常样本和文本描述,即可生成逼真且多样化的异常样本,有效解决了视觉异常检测中异常样本稀缺的难题,为工业质检、医疗影像…...